Assignment title: Information
COURSEWORK SPECIFICATION
G53GRA Computer Graphics 2016/2017
This document details the specification for the final coursework project, worth 70%
of your final mark for this module. It is due for submission by 3pm Thursday 11th
May 2017. Late submissions will receive a penalty of 5% of the coursework grade per
working day.
This document introduces the G53GRA Computer Graphics 2017 coursework, covering
• The challenge of designing and implementing a 3D graphics application
• Clarification of the structure of the coursework and deliverables
• The formats of the deliverables and the dates for submission
• An outline the marking criteria
Contents
Requirements 2
Techniques 3
Hierarchical Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Viewing and projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Texturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Keyboard and Mouse Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Programming Support 4
Submission 4
Demonstrations 5
Marking Scheme 5
Requirements for passing and distinction grades . . . . . . . . . . . . . . . . . 6
Coursework Specification 1Requirements
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 contents
and topics covered in the lectures and lab sessions. The lectures cover the theory
and techniques in the graphics pipeline, with demo code to show these techniques in
action. For example, you should understand how to create hierarchical 3D models from
polygons, manipulate and animate these objects in 3D space using transformations,
and interpolation. 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, from the
objects you create to how you animate them, and from the light and texturing effects
you create to make the scene appear more photo-realistic.
The minimum expected requirements for this coursework are as follows.
You should write a program that
– displays a virtual scene with three or more different 3D hierarchically modelled objects
(3D modelling / hierarchical modelling);
– has some moving / animated components (animation);
– looks realistic (lighting and texturing);
– is set in a thematic, appropriate environment, e.g. with a skybox;
– can be viewed from different positions/angles (viewing / project);
– allows user control, e.g. for viewing (keyboard and mouse input)
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 was exceptional. You
should also critically reflect on your coursework.
Coursework Specification 2Techniques
This section details the techniques that should be implemented in your coursework.
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 help implementing animation, notably demo-hands
and Lab 3.
Viewing and projection
You are required to provide facilities to obtain 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 eyes, whilst a third person setup would let the camera track
or follow the character from behind as it moves around. To produce realistic images of
your scene, you will need to use perspective projection. You may want to experiment
with the aspect ratio and field of view.
Lighting
In the lectures and labs, you are taught static source lighting, which means you create
a light source by specifying its location and properties, e.g. ambience, diffuse and
specular. To produce a scene with lighting effects, you should use these principles.
Coursework Specification 3Texturing
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,
but you are also provided with functionality for reading a texture from file (.bmp only).
Keyboard and Mouse Control
To demonstrate your scene from different viewpoints, or add additional functionality,
you will need to incorporate some input control using include 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 reading, 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 demo code. Use of the framework is
discretionary.
A complementary document containing a full specification of the framework is made
available on Moodle. The framework project is available via the School of Computer
Science Gitlab repository (IS login required).
https://projects.cs.nott.ac.uk/psxwowa/g53gra_framework
Submission
Submission should be made via Moodle. Your project files and report should be
compressed to a zip file and uploaded to Moodle.
The deadline for submission is 3pm Thursday 11th May 2017. Late submissions will
receive a penalty of 5% of the coursework grade per working day.
Remember, before submitting your code, test it on the A32 lab machines using Visual
Studio 2013. Marks will be lost for programs that do not compile, or have issues with
linking to image resources. All images should be loaded using relative paths (e.g.
Coursework Specification 4"./Textures/myimage.bmp"). Please ensure that you clean your project build before
submission.
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 knowledge of graphics techniques you have used.
Marking Scheme
1. Hierarchical Modelling (25 marks) Model objects using OpenGL to draw the scene
of your choice. The scene should be reasonable complex that has some narrative
or story. It should contain at least 3 different objects that demonstrate hierarchical
modelling, that have been coloured or textured.
2. Animation (10 marks) Animate selected objects in your scene.
3. Lighting and Texturing (10 marks) Use different light sources and types, and texture your objects, to create a sense of realism in your scene.
4. Artistic Impression (5 marks) Creativity, ingenuity and the overall appeal of the
scene will also count.
5. Report (10 marks) Use no more than four pages to explain how your program meets
each of the above requirements, and demonstrate this using screenshots of the
outputs form you program. Draw attention to any aspect of your project that you
found particular challenging, and critically reflect on your work.
6. Demo (10 marks) You will have the opportunity to demonstrate your coursework
in the labs to the lecturer or a tutor. The quality of your demonstration will be
contribute to the final grade.
Coursework Specification 5Requirements for passing and distinction grades
To achieve a passing grade (≥40%) you will have
– a report describing your 3D scene coherently
– basic working functionality, including animation, viewing, lighting and texturing
– clear, comprehensible code
– a working demo, with limited issues
To achieve a distinction grade (≥70%) you should have
– a well detailed report describing your 3D scene and critically reflecting on the
work you have done, including areas for improvement
– an impressive scene, demonstrating some artistic flair and ingenuity in creating
your objects
– demonstrated going beyond what you have learnt in lectures and labs and applying it to your project
– clearly structured and extensively commented code
– an high quality demo, that is engaging and fun
Coursework Specification 6