CS4182 Course Project
(2020/21 B)
1 Ob jectives
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 (Fig- ure. 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 different 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 cre- ate 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 prop-
erties and put it/them at suitable locations. 2) Menu and Lighting
1
Figure 1: Jeep game.
Add a pop-up menu to switch between different light properties (ambient, diffuse, 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 com- plete 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 difficulties and another 15 marks will be given based on the content design.
3 Submission Details
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 different 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 pro- gram.
/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 effects pro- duced, 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 applica- ble), including: programming tasks, report writing, and group coordina- tion.
Note that your submission must contain the above three items (i.e., /Program, /Demo, /Report). Marks will be deducted if any is miss- ing. 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.
4