程序代写案例-COMP3011/GRA

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
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. Those demonstrations will be programmed for after the hand-in deadline, during our
typical lab slot (to satisfy all timezones). 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).


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.


欢迎咨询51作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468