You are to develop a program using C++ and OpenGL that renders a tropical island. The exact contents of the island are up to you, but the end result should be a consistent looking graphical scene. Common to such scenes are trees and vegetation, sandy beaches, and clear blue skies and seas. You should consider how scene management and rendering of transparent objects could help with the correct and efficient rendering of the scene, and how vertex shaders and skeletal animation can help with creating realistic looking moving foliage. Think about ways in which the concepts you have learned during this module could be applied to create a dynamic day / night cycle.
Your island can be represented as a large heightmap, and should use additional meshes (loaded from file or procedurally generated) to represent the rocks, trees, and whatever other items you wish to include in your scene. The camera should automatically follow a preset âtrackâ around your environment that shows off the features you have implemented, unless the user presses a specific key that should allow a âfreeâ camera.
The coursework is divided into two parts. The first part is to use the knowledge gained from the tutorial series to develop a program that can display an animated environment containing combination of graphical elements, with the program automatically moving the camera.
The second part is to develop a number of advanced features that demonstrate your full understanding of the graphical techniques outlined during the module, and combine them into a single program to enhance the graphical scene created in part one.
You may use the material provided to you in graphical tutorial series, and are recommended to use this as your starting point. Marks can be gained by showing a good working knowledge of the tutorial material, as well as by moving beyond it by researching and implementing more advanced graphical techniques, and novel ways in which the techniques discussed in the module could be combined for enhanced graphical fidelity. You will not lose marks for using textures and models from external sources, but remember to reference and attribute them as appropriate.
Coursework part B - Advanced Features:
You are free to develop your own advanced ideas for enhancing the visuals of the coursework â you are not limited to this example list. Ask if you are unsure about the suitability of your idea, or want hints on how your idea could be achieved. The more complex, and well-engineered an effect is, the higher the mark that will be awarded.
1. Post processing effects: Blurring, colour correction, lens flare, HDR bloom effects etc. These may be applied to specific parts of the camera track, or optionally via keypresses.
2. Advanced Lighting: Inclusion of new light calculations such as spot lights, projective lighting, or alternate methods of calculating the contribution of a large number of lights.
3. Shadowing: Part of the scene must demonstrate the use of real time shadowing techniques. Use of multiple shadow maps, cascaded shadow maps, or omnidirectional shadow maps via cube mapping are considered more technically advanced.
4. Multiple viewpoints simultaneously using a split screen effect.
5. Animated objects (skeletal animation, a progressively evolving tree mesh, grass waving in the wind).
6. Environmental effects such as rain, splashing puddles, lightning strikes, or fire.
Learning Outcomes
1. Identify appropriate techniques for rendering graphics in real-time.
2. Describe graphical representations mathematically.
3. Realise which advanced techniques are required to achieve realism.
4. Use advanced techniques associated with lighting to create realism in graphical scenarios.
5. Balance processing and memory requirements of multiple graphical effects at cinematic frame rate