讲解COMP3011调试C/C++语言、C/C++语言调试
- 首页 >> Java编程Coursework  
G53GRA/COMP3011 – COMPUTER GRAPHICS  
This assignment is compulsory and worth 70% of your final mark for this module. It is due for submission  
via Moodle by 08/05/2020. Late submissions will receive a penalty of 5% of the assignment grade per  
working day. You should submit two files on Moodle:   
 A single zip file containing your code, including executable (we must be able to run your program  
without having to reset the ’include’ and ’lib’ directory paths), and   
 A single pdf file containing your explanation of your code (you must explain your code) and your  
answers to the questions. Please provide screenshots in your pdf file.  
Requirements  
In this coursework, you are required to apply what you have learnt about 3D computer graphics and  
OpenGL programming to create and display a scene of your choice. The coursework will not only test your  
understanding of the concepts of computer graphics, but also your ability to implement a 3D graphics scene.  
When thinking about your coursework idea, you should take into account the topics covered in the lectures  
and lab sessions. The C++ Framework available on Moodle and the lecture demos should allow you to  
quickly create and display your own scene. The tutorials undertaken in the lab sessions have shown you  
how to create a basic scene, step-by-step, covering everything from hierarchical modelling, to lighting and  
texturing. There are endless opportunities for you to explore in creating your scene. The minimum  
expected requirements for this coursework are as follows.  
 Displays a virtual scene with three or more different 3D objects (3D modelling / hierarchical  
modelling);  
 Has some well animated objects (animation);  
 Looks realistic (lighting and texturing);  
 Is set in a thematic, appropriate environment, e.g. with a skybox;  
 Allows user control, e.g. for viewing (keyboard and mouse input).  
Please note you may be import some models from elsewhere, but your coursework must include OpenGL  
programming. You are also required to write a report documenting your work, outlining how you have met  
the requirements. The report should be no more than four pages, and contain screenshots of your program.  
You should draw attention to any work you found challenging, and highlight particular aspects of your work  
that you think exceptional. You should also critically reflect on your coursework.  
Techniques  
This section details the graphics techniques that should be implemented in your coursework, to  
demonstrate your knowledge and skills.   
Hierarchical Modelling  
There are basic 3D models that can be created in OpenGL, such as cubes and spheres, but these alone will  
not give a reasonably detailed scene. You will need to combine these basic building blocks in a meaningful  
way that will produce convincing and aesthetically pleasing scenes. The OpenGL statements for  
manipulating matrix stacks, e.g. glPushMatrix, will help create more complex hierarchical models. You  
should create at least three different objects to display in your scene.  
Animation  
The scene you create should contain at least one animated object. There are examples in both the demos  
and tutorials for implementing animation.   
Lighting  Texturing  
In the lectures and labs, you are taught static point source lighting, which means you create a light source  
by specifying its location and properties. You will need to find appropriate images to texture the objects in  
your scene. The principle of texturing and the OpenGL statements required for texturing are covered, and  
you are provided with functionality for reading a texture from file (.bmp only).  
Viewing and projection  
You are required to provide facilities to obtain different views of your scene from different positions and  
directions. For example, in first person shooters, the camera is set up as though it is the characters eye,  
whilst a third person setup would let the camera track or follow the character from behind as it moves  
around. To produce realistic images, you will need to use perspective projection. You may want to  
experiment with the camera aspect ratio and field of view. To demonstrate your scene from different  
viewpoints, or add additional functionality, you will need to incorporate some input control using key  
presses and mouse clicks, as well as mouse motion.  
Programming Support  
As part of the coursework support, you are provided with a C++ Framework that contains a set of ‘library’  
classes and functions that handle some of the work needed to display your scene, e.g. window handling,  
image loading, display loops, etc. This is made available for both Windows via Microsoft Visual Studio and  
macOS via XCode. The Framework has also been used to create the lecture demo code. Use of the  
framework is discretionary.  
Submission  
Submission should be made via Moodle. Two files should be submitted:  
1) Your code should be compressed to a zip file (name the zip file ’yourName.zip’) and uploaded to Moodle.  
The zip file must include all the source files and the executable file to run your code. You might need to  
clean the project before submission, so that it is small enough to be submitted on Moodle.  
2) Your report, in either pdf or Word, should be submitted separately from the code. You should remember  
to identify yourself in the report. Please refer to the section on the structure of your report.  
The deadline for submission is 08/05/2020. Late submissions will receive a penalty of 5% of the coursework  
grade per working day.   
Before submitting your code, test it on the A32 lab machines using Visual Studio. Marks will be lost for  
programs that do not compile or have issues with linking to image resources. Please ensure that you clean  
your project build before submission.  
Report  
Your report should contain 7 sections  
1. Introduction  
2. Modelling  
3. Lighting  
4. Texture  
5. Animation  
6. Interaction  
7. Conclusion  
Section 1 (Introduction) should explain the reason why you chose to implement this scene, your  
inspirations, and a general description of the scene.  
Sections 2, 3, 4, 5, 6 should give technical details, accompanied by screenshots and references to specific  
bits of code (only if necessary) on how you implemented those aspects of the coursework.  
Section 7 (conclusion) should describe what you perceive to be the strength and weaknesses of your project,  
what aspect of it you are particularly proud of, and what you think would need to be improved.  
There is no word or page limit but overly long reports will be penalised for their readability, or lack thereof.   
Demonstration  
As part of the assessment, you will be required to do a 5-minute demonstration of your scene to the  
lecturer or a tutor. Your demo will highlight your coursework features, and you will be required to answer  
questions about your scene and its implementation. This will be an opportunity to show off your knowledge  
and skills in computer graphics. The coursework demonstration is provisionally scheduled for the lab  
session of the 12/05/2020. You will be provided the location in A32 and a time slot for the demonstration  
in due time.  
Marking Scheme  
This is not an art class, so you will be judged on your technical proficiency rather than on your artistic  
flair. You will be marked in a demo session, during which you will be assigned to a marker.   
You will be marked on six criteria, weighted as follows:  
 Deliverables (20%)  
 Modelling (20%)  
 Lighting (15%)  
 Textures (15%)  
 Animation (15%)  
 Interaction (15%)  
The detailed marking rubric is available as a PDF file along with this coursework, detailing the characteristics  
of each aspect of a submission for each grade. Those characteristics are left for interpretation by the person  
who will mark your submission.   
