CS计算机代考程序代写 scheme Coursework

Coursework
COMP3011/GRA – COMPUTER GRAPHICS – SPRING 2021
This assignment is compulsory and worth 70% of your final mark for this module. It is due for submission via Moodle by 07/05/2021. Late submissions will receive a penalty of 5% of the assignment grade per working day. You should submit no fewer and no more than 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.
1. 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 consider the topics covered in the lectures and lab sessions. The lecture demos and lab solutions 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 several different 3D objects (3D modelling / hierarchical modelling).
• Has some well animated objects (animation).
• Looks somewhat realistic or at least sensible (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 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 2,000 words1and 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. For example, if you choose to use modern OpenGL techniques, we expect that you will explain how you implemented the shaders.
2. Choosing a scene
In order to avoid everybody ending up doing the same thing (e.g., the 30 planetarium projects we see every year) you need to choose specific parameters from which you will build your scene among the following
1 There is a strong idea that a maximum word count is often a minimum word count in disguise. This is not the case here, and if you can express the same content in 1,000 words than you would have in 2,000, you absolutely should and several overworked lab helpers and lecturers will be thankful for it.

list. How you end up implementing it is up to you. You don’t need to tell us which one you choose, and you can change at any time, but we encourage you to try to do something interesting. As part of your final report, you will need to write a section to explain what you decided to do and how it fits in the theme that you chose.
Those parameters are the following:
• A setting, which is basically a place or an object of focus. This will have influence over the sort of models you end up building: e.g. modelling a large city would require modelling vehicles, buildings, etc.
• A mood, which is an interpretation of that setting with a particular perspective. This would have influence over the sort of colours you use, the lighting, etc. A vaporwave beach would need a lot of light teal and pink lighting.
Settings
Here is a list of potential settings you can choose from:
1. A beach resort
2. An abandoned mall
3. A large city
4. A forest
5. An amusement park
6. An underground cave
7. A small town
8. A circus
9. The inside of a spaceship
10. A temple
11. Palm beach
12. A laboratory
13. A tropical island
14. A medieval castle
15. A restaurant or a bar
Variations/moods
Here is a list of potential moods/variations you can apply to those settings:
1. Plain/no variation
2. Vaporwave2
3. Cyberpunk3
4. Haunted (empty, dark, cobwebs?)
5. Medieval/ancient
2 Vaporwave is a visual aesthetics genre which depicts a satirical 80’s/90’s vision of exaggerated consumer capitalism and popular culture. It usually emphasises light pink and teal colour combinations. See https://en.wikipedia.org/wiki/Vaporwave and https://www.reddit.com/r/VaporwaveAesthetics/ for explanation and inspiration.
3 Cyberpunk is a sub-genre of science fiction which focuses on a combination of “low-life and high-tech”, meaning highly advanced technology and low-quality living conditions. Cyberpunk art usually emphasises dark colours and grey tones. See https://en.wikipedia.org/wiki/Cyberpunk and https://www.reddit.com/r/Cyberpunk/ for explanation and inspiration.

3. Techniques
This section details the graphics techniques that should be implemented in your coursework, to demonstrate your knowledge and skills.
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 several objects to make your scene look interesting. Other techniques you should look into to improve the modelling of your scene are surface subdivision and Beziers curves.
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 also 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.
4. Programming
You are allowed to use all techniques you have seen in the class, and we recommend that you ask on an individual basis if you want to use something that you did outside of it.
Because this is not an art class, please try to avoid importing highly complex models in Blender because you will not get marks for the complexity of those models. As far as we are concerned, because it was built outside of the scope of the class, we will treat it like a shape as complex as a simple cube.

5. 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 should remove the hidden .vs folder in order to reduce the size of the project.
2) Your report, in either pdf or Word, should be submitted separately from the code. You should remember to identify yourself in the report.
The deadline for submission is 07/05/2021. Late submissions will receive a penalty of 5% of the coursework grade per working day.
Before submitting your code, test it on the virtual desktop using Visual Studio. Marks will be lost for programs that do not compile or that have issues with linking to image resources. Please ensure that you clean your project build before submission.
6. Demonstrations
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.
7. Marking Scheme
This is not an art class, so you will be judged on your technical proficiency rather than on your artistic flair. The marking criteria are:
• Modelling (code & report): 25%
• Animation (code & report): 20%
• Lighting & Texturing (code & report): 20%
• Interaction (code & report): 15%
• Deliverables (structure, clarity, spelling, use of images, code quality): 15%
• Presentation: 5%
The marking of each criterion will be done in a holistic manner, meaning that you will be given a band and a numerical grade based the band that matches your submission the best, based on the professional judgment of the marker. This also means that the marking scheme should be used as a general guideline, and not as a to-do list. All criteria (except for the report and presentation) will be judged based on how complex the attempt was (e.g., a complex hierarchical model made of a hundred simple shapes vs a sphere a texture on it) and how well it was executed (e.g., an animated animal that looks like it’s grazing in random patterns vs an animated cow that looks like it is on drugs and teleporting randomly).
Those demonstrations will be programmed for after the hand-in deadline, during our
typical lab slot (to satisfy all timezones).

MODELLING
Distinction (70+)
All models are high-quality and realistic, using advanced techniques such as surface subdivision and Bezier curves, building up to a realistic scene. The report does a good job at explaining the modelling approach using pictures and diagrams and relating them to the code.
Merit (60-69)
Several complex, realistic models of varying quality, building up to a very good-looking scene. All normals are applied appropriately. The modelling is well explained in the report but might miss a few details.
Pass (40-59)
There are a few complex models but most of them are simpler and made of a few basic shapes. The report somewhat explains the modelling but has few details and no examples/images.
Fail (0-39)
Very few models, of very limited complexity (e.g., basic shapes). The report lacks explanations and images.
ANIMATION
Distinction (70+)
Implementation of complex animations at a professional standard. The animations are smooth and do not just rely on simple transformations. The report contains a thorough explanation of how the animations were implemented, documented with references to the code and screenshots where applicable.
Merit (60-69)
Several complex animations among simpler ones. The report explains reasonably well how they were implemented, along with screenshots and, where needed, diagrams.
Pass (40-59)
A few relatively simple animations, with maybe a couple of complex ones intermingled. The report contains some explanation of the way animation was implemented but is missing details and/or lacks illustrations.
Fail (0-39)
No or very little animation. The report lacks any sort of explanation.
LIGHTING & TEXTURING
Distinction (70+)
Complex and realistic-looking lighting and texturing. There are multiple types of lighting (e.g., multiple directional lights, ambient light, etc.). The textures are applied well and fitting to the objects. There may even be animated textures. The report explains and illustrates it to a professional standard (examples, pictures).
Merit (60-69)
Some attempt at lighting and texturing but the lights are a bit simple (e.g., only a couple of lights), and/or the textures are not always appropriate (few textures, some untextured objects, etc.) or appropriately applied. The report has missing pieces, does not explain your approach completely, and/or is missing some illustrative images.
Pass (40-59)
Simple lights and simple textures not always applied appropriately. The report is lacking in information and/or illustrations.
Fail (0-39)
No effort was put in lighting. The report lacks any sort of explanation.
INTERACTION
Distinction (70+)
Implementation of complex forms of interactions, such as localised triggers (i.e., triggers which work only at a certain distance of the camera), projectiles, or other sorts of complex controls. The report is detailed and contains an explanatory guide regarding how to interact with the scene.
Merit (60-69)
Implementation of some sort of interactions such as global triggers (press key to change the state of the scene). The report contains an explanatory guide regarding how to interact with the scene.
Pass (40-59)
Implementation of a basic movable camera. The report is very basic and does not touch a lot on interaction.

Fail (0-39)
The scene uses a fixed camera and offers no or little interaction. The report lacks any sort of explanation or guide.
DELIVERABLES
Distinction (70+)
Professional looking report with a good choice of illustrating pictures, detailed explanations. All illustrations have a caption and are referenced in the text. The code is of professional quality.
Merit (60-69)
Well-written and well-structured report but not quite professional looking enough. The code is reasonably well organised and cleaned. There are comments.
Pass (40-59)
Report is informative overall but lacking some details and/or screenshots. The code is messy but works.
Fail (0-39)
No or severely lacking report.
PRESENTATION
Distinction (70+)
Professional presentation, keeping to the allocated time, with a clear script showing the strengths and weaknesses of the scene.
Merit (60-69)
The demo was good but lacking in some aspect (e.g., too long, bugs, etc.).
Pass (40-59)
The demo had multiple flaws that made it hard to follow.
Fail (0-39)
There was no real demo to speak of.