【CS4182解析】CS4182 Course Project
(2020/21 B)
1 Objectives
The objectives of this project are for students to have some hands-on experiences
of graphics programming and to develop a graphics application. Students are
given a Python/OpenGL program with a virtual jeep game and asked to
extend this program to provide additional features.
2 Requirements of the Assignment
This assignment can be carried out as individual or group projects. The
maximum number of members in each group is 2. However, the group-based
assignment is expected with more work and creativities, and the responsibility
of each group member should be clearly indicated in the report.
In the assignment, you are given an OpenGL program of a 3D jeep game (Figure.
1) and are asked to extend this program to include additional features.
There are two levels of requirements for the program, basic and advanced, to
cater for students of di?erent backgrounds and interests. The basic requirements
are designed for all students to practice some basic graphics programming skills.
The advanced requirements are for students who would like to go further to create
an application. The basic requirements and advanced requirements account
for 75% and 30%, respectively, of the total mark for this assignment. The extra
5% is a bonus, but the final mark will be clipped to 100.
2.1 Basic Requirements
You are required to complete the following items (15 marks each) for the basic
requirements:
1) Creating new objects
Create or import at least one new object with color/material/texture properties
and put it/them at suitable locations.
2) Menu and Lighting
1
sETEE-oeoso-e-o-tottr-os.sn
Figure 1: Jeep game.
Add a pop-up menu to switch between di?erent light properties (ambient,
di?use, specular and position, point lights, directional lights, spotlights).
3) Manipulation
Use keyboard/mouse to manipulate an object (size, position and angle)
and the camera (position, angle and zoom-in/out).
4) Adding autonomous objects
Set an object to move around automatically and react to the environment
(e.g. light).
5) Window resolution
Allow user to set/select the window resolution, enable/disable full screen
mode before or during the application.
Note: you are required to compile all the basic functions into a single file
instead of multiple independent files. But you may use another project to complete
your advanced requirements since it may be totally irrelevant to the above
basic requirements.
2
2.2 Advanced Requirements
You are expected to extend the program into an application. This may include
a short animation sequence to present an advertisement or a short story. Here,
15 marks will be given based on the technical diculties
and another 15 marks
will be given based on the content design.
3 Submission Details
Deadline: 30 April 2020
Each group needs to submit the following items via Canvas. The submission
link in Canvas will be open later.
/Program:
1) A source subdirectory containing all the source files and necessary files
(e.g., texture files).
2) A binary subdirectory containing the executable program and relevant
files, including texture files or libraries. Note that we only need to click
on the executable file to run your program on Windows PC. So, you may
need to try the executable file on a di?erent machine before you submit
the work. Note that your implementation must be on Windows using
Python, as we do not have a Mac to test your program.
3) A readme file with instructions on how to compile and execute the program.
/Demo:
A demo video that guides the marker through the main contributions of
the work. A maximum resolution of 1080p is enough. Do not use even higher
resolution (mainly for Mac users). Use compression format (e.g. mp4) instead
of raw video files to prevent huge file size.
/Report:
The purpose of this report is just to indicate the main contributions of the
work, so that we may grade the work appropriately. We will not be grading the
report itself. Hence, there is no need to submit a large report. It can just be a
few pages providing the following information:
1) A cover that indicates your name(s) and student ID(s).
2) A brief description of the revised program, including the main modules
and the relationship of these modules. This may be in the form of short
paragraphs or a flow diagram.
3
3) Briefly discuss each of the five items in the basic requirements. For each
item, please point out the objective of the work and the final e?ects produced,
with screen captures of the results. You also need to point out
the names of the modified modules (with brief explanation of the added
functions). Similar information also needs to be provided for the advanced
requirements.
4) You need to declare the responsibilities of each group member (if applicable),
including: programming tasks, report writing, and group coordination.
Note that your submission must contain the above three items (i.e.,
/Program, /Demo, /Report). Marks will be deducted if any is missing.
Note also that your work must be built inside the 3D jeep game
provided. You can build anything within it.
4 Marking
This course project contributes 20% of the final course mark.
推荐阅读
- 使用C++实现trie树(单词查找树,字典树)
- python数据结构之set的用法详解
- Python字典(Dictionary)完全解读和用法详解
- window和mac笔记本怎么拼接屏幕及设置
- npm项目配置中文参考文档
- Node.js非阻塞IO模型、异步调用、事件驱动、回调函数和EventEmitter
- node.js开发web服务器,读取html文件并显示html页面
- node.js开发入门基础,线程模型和事件循环、阻塞处理和非阻塞处理
- 经典线性结构之线性表、栈和队列数据结构详解和实例分析