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