首页 > 其他分享 >ECE 4122/6122 OpenGL with OBJ files and Multiple Objects

ECE 4122/6122 OpenGL with OBJ files and Multiple Objects

时间:2024-10-21 12:20:52浏览次数:7  
标签:files ECE code OBJ file camera key your

ECE 4122/6122 Lab 3: OpenGL with OBJ files and Multiple Objects

(100 pts)

Category: 3D Graphics

Due: Tuesday October 22th , 2023 by 11:59 PM

Objective:

To create a dynamic 3D graphics application using lighting, shading, model transformations, andkeyboard inputs.

Description:

You can use the code from tutorial09_Assimp to create a C++ application that loads in the obj files for

the 3D chess pieces and the chess board.Modify the keyboard inputs so that (5 points each)

  1. 1) ‘w’ key moves the camera radially closer to the origin.
  2. 2) ‘s’ key moves the camera radially farther from the origin.
  3. 3) ‘a’ key rotates the camera to the left maintaining the radial distance from the origin.
  4. 4) ‘d’ key rotates to camera to the right maintaining the radial distance from the origin.
  5. 5) The up arrow key radially rotates the camera up.
  6. 6) The down arrow radially rotates the camera down.
  7. 7) The ‘L’ key toggles the specular and diffuse components of the light on and off but leaves the

ambient component unchanged.

  1. 8) Pressing the escape key closes the window and exits the program

Points grading:

  • 30 Points – loading obj files and displaying the chess pieces.
  • 30 Points – rotating and placing the chess pieces in the correct location and orientation
  • 40 Points – keyboard control described above
  • 5 pts extra credit the textures are applied correctly to the chess pieces and chessboard.
  • 5 pts extra credit make a short, narrated video of your program in action. (include it in the zip

file)Turn-In Instructions

Create a Lab3 folder at the same level as the other tutorialxx _xx folders and place your code and the attachedfolders containing the obj file information in that folder.Modify the top level CMakeLists.txt file to build代 写ECE 4122/6122  OpenGL with OBJ files and Multiple Objects  your Lab3 application. You can make any needed changesto the files in the common folder to handle the keyboard input.Zip up the folders Lab3 and common into Lab3.zip and upload this zip file on the assignment sectionofCanvas. When the TAs replace the existing folders with yours and the code should compile and run correctly.You can also include a short, narrated video of your program in action.

Grading Rubric:

If a student’s program runs correctly and produces the desired output, the student has the potential to get a 100

on his or her homework; however, TA’s will look through your code for other elements needed to meet the lab

requirements. The table below shows typical deductions that could occur.

AUTOMATIC GRADING POINT DEDUCTIONS PER PROBLEM:

Camel Case: This naming convention has the first letter of the variable be lower case, and the first letter in each new wordbe capitalized (e.g. firstSecondThird).his applies for functions and member functions as well!

The main exception to this is class names, where the first letter should also be capitalized.

Variable and Function Names: Your variable and function names should be clear about what that variable or function represents. Do not useone letter variables, but use abbreviations when it is appropriate (for example: “imag" instead of“imaginary”). The more descriptive your variable and function names are, the more readable your code will

  1. This is the idea behind self-documenting code. File Headers:Every file should have the following header at the top

/*

Author: your nameClass: ECE4122 or ECE6122 (section)Last Date Modified: date

Description:What is the purpose of this file?

*/

Code Comments:

  1. Every function must have a comment section describing the purpose of the function, the input andoutput parameters, the return value (if any).
  1. Every class must have a comment section to describe the purpose of the class.
  2. Comments need to be placed inside of functions/loops to assist in the understanding of the flow ofthe code.

 

标签:files,ECE,code,OBJ,file,camera,key,your
From: https://www.cnblogs.com/goodlunn/p/18489187

相关文章

  • 解决:error while loading shared libraries:lib***.so.*: cannot open shared object
    问题描述运行编译后的可执行程序时报错errorwhileloadingsharedlibraries:lib***.so.:cannotopensharedobjectfile:Nosuchfileordirectory.原因分析从错误信息提示中,可以知道是在指定的路径找不到或者缺乏这个动态链接库。解决方案//在动态链接库的配置里,加......
  • 一,Object(Java中所有类的父类)
    Java编程基础:深入理解Object类及其常用方法在Java中,Object类是所有类的父类,它提供了一些基本的方法,这些方法对所有对象都可用。本文将详细探讨Object类的常用方法,包括hashCode()、toString()、equals()、clone()和finalize(),以及它们的使用和示例代码。Object类概述Object类是J......
  • 牛马阅读(知识+重点翻译) Advanced Deep-Learning Techniques for Salient and Category
    ABSTRACT目标检测,包括目标检测(OD)、显著目标检测(SOD)和特定类别的目标检测(COD),是计算机视觉界最基本但最具挑战性的问题之一。在过去的几十年中,研究人员已经做出了巨大的努力来解决这个问题,因为它在其他计算机视觉任务(如活动或事件识别、基于内容的图像检索和场景理解)中得......
  • GameObject
    基础概念GameObjcetUnity的GameObject类用于表示任何可以存在于场景中的事物。GameObject是Unity中场景的构建块,可充当用于确定GameObject外观以及GameObject作用的功能组件的容器。除了使用代码修改GameObject的属性外还可以在编辑器中选中对象,通过Inspector面......
  • 解决TypeError: 'NoneType' object is not subscriptable
    1.捕获异常的方式try:img_list=img_list["name"]except:img_list=""2.对象进行判断ifimg_list:img_list=img_list["name"]else:img_list=""demotextJson=json.loads(res.text)#转json对象iftextJson:##整个对象都......
  • vs 使用git管理bin obj 去除版本控制
    转自:https://www.cnblogs.com/taidi/p/6095549.htmlVS使用Git时,如何忽略不想上传的文件在.net开发中,有很多文件是不希望上传,加入协助开发中,例如生成在的bin/Debug,bin/Release文件等。在代码目录下建立.gitignore文件:.gitignore(用记事本另存可以保存这个名字),配置上要忽略的......
  • C# UDP通信 ReceiveAsync() 一直等待问题
    问题描述两个C#应用,一个作为服务端Server,另一个作为客户端Client,客户端打开一个Udp端口,循环接收数据;服务端开启后向客户端发送指令,当服务端出现异常时关闭了服务端的UdpClient,此时客户端卡死在_client.ReceiveAsync(),无法再接收到消息。客户端代码:try{varcts=newCanc......
  • 【连续6届稳定EI检索】第七届电力电子与控制工程国际学术会议(ICPECE 2024)
    第七届电力电子与控制工程国际学术会议(ICPECE2024)由华东交通大学与辽宁科技学院联合主办,将于2024年10月18日至20日在中国·本溪举行。本次会议还得到了辽宁省机器人驱动控制工程实验室及辽宁省大型机械设备健康监测与维护技术工程研究中心的协办。高录用|快检索|JPCS独立出......
  • 编程语言-Object Pascal语言的面向对象扩展
    ObjectPascal是经典编程语言Pascal的一个扩展版本,引入了面向对象编程(OOP)的关键特性,如类与方法。这一革新性发展是在Pascal的创始人NiklausWirth的协商下,由LarryTesler带领的团队在苹果公司完成的。起源ObjectPascal的前身可以追溯到名为Clascal的语言。Clasc......
  • IDEA上面简单使用ObjectDB
    一、ObjectDB介绍ObjectDB是一个面向对象的数据库管理系统,使用Java作为编程语言,适用于处理各种规模的数据,从较小的数据库到非常大的数据库,支持数据库文件大小可达到128TB。二、IDEA上面使用(maven)新建一个objectdb数据库从一个简单的开源项目开始1.下载下面的文件,在终端输......