7174 Visual & Interactive Computing
7108 Graphics Visualisation Techniques
Semester 2 2018
Putting it all together – Final Assignment
Due Dates:
Demonstration: You must demonstrate your program at your usual lab time in week 13 (due date for the demonstration is therefore, the 1st of November, or Tuesday 30th October).
If you can’t attend the Lab, it is your responsibility to arrange a time to demonstrate your program. A demonstration is NOT optional you can’t just submit source code.
Both the written report and source code must be submitted on Canvas by 11:50 pm, Saturday 3th November.
The assignment will be marked out of 90, and is worth 90 towards your assignment mark.
This is to be done individually.
Documentation and code submission
Submit on Moodle
Submit a short report about one to two pages (no more than two pages). This should contain:
- A short one to two paragraph reflection on what you learned from the assignment;
- Major or minor technical problems you encountered.
- Any significant internal data structures you used;
- Any code you used that was not your own or provided by me; and its source.
- (Optionally for our information only: and not assessable) the number of hours you spent on the assignment, and some comment on the subject’s difficulty. Any hints on how to teach it better would also be appreciated.
- Your code as .cpp files or a zipped up project. Do NOT list large slabs of code in the word doc report. Make sure to include any associated texture maps or other resources. WARNING: If I think you have plagiarised/cheated I may run this through a code matching program.
Introduction
For this assignment you need to construct a ‘Major project’ that shows off your OpenGL skills I am open to a wide range of possibilities that include:
- A work of art (eg. a 3D scene);
- A game in 3d (I recommend you keep it simple, eg. breakout, pong or Tetris);
- A scientific visualisation; or
- A hobby visualisation, (this is just something cool, a highly featured 3d Matrix style screen saver for example).
Marking guidelines are difficult. The minimum I want to see must include the following to get a pass:
- Some scene construction, (e.g. a scene graph, or mesh);
- Some kind of height field;
- Lighting (at least 1 light source and 1 illuminated surface); and
- At least 1 texture; and finally
- PG students should include a particle system in the scene (e.g. as an explosion) or on the landscape (e.g. a fountain).
You can just enhance MT2 as your submission (which with minor modifications should meets the above criteria). But to get a mark of more than 60 you need to add at least a few extra features.
Below are some guides for additional features and indicative maximum marks for a given program feature:
- Height field smooth shaded no lighting (5 marks);
- Height field, illuminated using polygon normals (normal which can be displayed as lines) (10 marks);
- A height field, using averaged normal (normal which can be displayed as lines) (15 marks);
- Aesthetic elements (elements adding to the beauty of the scene) (up to 20 marks);
- Collision detection (object to object) (10 marks)
- Collision detection (object to ground) (5 marks)
- Cannon (or missile) that shoots (5 marks)
- Cannon (or missile) that shoots and hits things (10 marks)
- A vehicle that drives or fly’s and can be controlled (up to 20 marks);
- If the cannon or missile hits things and destroys them and has a recorded score on screen (5 marks);
- Really intricate scene graph (5 marks);
- A flyover eye view – fixed path (5 marks)
- Use of Alpha blending (partial transparency) (5 marks)
- Use of depth cueing (fog 3 marks)
- Use of 1 simple particle system (5 marks, not optional for the PG students)
- Heavy use of particle system to add feel and mood to the scene/game (15 marks)
- Addition of waves to the water in the height field (5 to 10 marks)
- Skybox 5 to 10 marks (3 marks for sky sphere)
- Scoring system (non combat) (5 marks)
- Use of ‘Billboard objects/textures” (5 to 10 marks)
- Rotating sun which is shown and is a light source (5marks + moon 10 marks)
For students with limited time I recommend you start with a shell program that you already have (eg MT1 or MT2).
I suggest the following steps for a minimum solution if you just want a P or CR grade
- Construct a height field, find a spot to put the marked tute 2 space port (or edit the height field to create a suitable spot)
- Put the scene graph from MT2 over that spot in that spot
- Make sure all things still work (lighting, culling, wireframe, normals textures etc.).
- Add one of the above easy features;
- Write the report
- Demo, and be happy with the mark, assuming it works.
WARNING: things that don’t work may attract significant mark penalties – especially program crashes; grossly wrong lighting calculations or obvious unattractive rendering artefacts. A small amount of Venetian blinding (Z fighting/depth buffer rounding conflict) is unavoidable with the lab machines and is ok.
——————————————————————————————-
Screenshots from my sample answer from 2014 which is a cannon that shoots down a space station – the equivalent this year would be a cannon that shoots the spaceport from your MT2 placed on the height field.
Heightfield as points
Smooth shading – an acceptable height field. With another hours coding and I would have it looking fantastic with bilboarded (or rendered) trees, beaches and snow caps
A miss
You can alter eye location to view through the gun to help aim – note the bounding sphere on the space stsion can be rendered or not
A hit on the station and the station is gone (though its bounding sphere is still rendered)