Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
CS4182 Course Project
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 require- ments 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 create an application. The basic requirements and advanced requirements account for 60% and 30%, respectively, of the total mark for this assignment. Besides, you are required to give a presentation to show your project, which accounts for 10% of the total mark. 2.1 Basic Requirements You are required to complete the following items for the basic requirements: 1) Creating new objects (10 marks) Create or import at least one new object with color/material/texture properties and put it/them at suitable locations. 2) Menu and Lighting (10 marks) Add a pop-up menu to switch between different light properties (ambient, diffuse, specular and position, point lights, directional lights, spotlights). 3) Manipulation (10 marks) Use keyboard/mouse to manipulate an object (size, position and angle) and the camera (position, angle and zoom-in/out). 1 Figure 1: Jeep game. 4) Adding autonomous objects (10 marks) Set an object to move around automatically and react to the environment (e.g. light). 5) Window resolution (10 marks) Allow user to set/select the window resolution, enable/disable full screen mode before or during the application. 6) Accelerating ribbon (10 marks) Set an accelerating ribbon on the road, and the jeep can be accelerated after passing the ribbon. 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. 2.3 Presentation You are required to give a presentation to show how well the basic and advanced requirement has been completed. 10 marks will be given based on the presentation. 2 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. 3 Submission Details Deadline: 23 Apr 2023 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 program. /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 relation- ship of these modules. This may be in the form of short paragraphs or a flow diagram. 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 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 two items (i.e., /Program and /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.