讲解C++留学生编程、program编程辅导、讲解c/c++程序设计

- 首页 >> Matlab编程
CW2
You are to develop a program using C++ and OpenGL that renders a graphical scene in a cyberpunk style. The signature elements of cyberpunk include bold colours, neon lights, rain, and dense cityscapes. The exact way in which you convey a cyberpunk atmosphere is up to you, but you should consider how the provided tutorials into lighting and post-processing techniques can be combined to achieve the visuals common to cyberpunk themed media.
Your scene should be contained within a large landscape, and must contain a number of graphical elements that are rendered through the use of a scene graph. These elements could include simple geometric shapes to represent buildings in a city, or artefacts within cyberspace. 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 following videos should provide some inspiration on what features could possibly be replicated in your program:
https://www.youtube.com/watch?v=yfH5H2oO8i0
https://www.youtube.com/watch?v=-fu7jN2_2pE
https://www.youtube.com/watch?v=zKNAdGcZ2Q8
https://www.youtube.com/watch?v=SqSuRdkglxM
Think about ways in which the concepts you have learned during this module could be applied to replicate the contrast between light and dark prevalent in the videos, and how effective usage of simple geometric shapes, textures, and shader programs could create a simple futuristic cityscape.
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 A – Standard Features:
You must implement the following set of basic features:
The scene must include a landscape of some form, rendered such that at least one texture is used in the fragment shader.
Part of the scene must be lit using at least one light source, including calculations for ambient, diffuse and specular components.
Part of the scene must show use of environment mapping.
The camera should initially move automatically through the scene.
The scene should be controlled via an overall scene graph for efficient rendering.
Appropriate usage of simple meshes and textures to combine into additional scene elements.
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.
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.
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.
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.
Multiple viewpoints simultaneously using a split screen effect.
Animated objects (skeletal animation, a progressively evolving mesh, light cycles).
Environmental effects such as rain, splashing puddles, lightning strikes, or fire.
Deliverable Items
1.Source code. Clean your solution in Visual Studio, and then zip your work folder.
2.A document containing at least four screenshots with descriptions, a list of any key/mouse presses that perform actions, and a link to a YouTube video of your coursework running.
Marks Available (100)
Coursework Part A (50 marks)
Implementation of the standard features gains up to 50 marks.
A “first class” submission consists of these features implemented with well-structured code, running at 60fps in full screen on the lab PC.
Coursework Part B (50 marks)
Implementations of advanced rendering techniques (including, but not limited to, the features described above) gain up to 50 marks.
A “first class” submission entails a balanced scene of graphical effects including at least four advanced graphical features (well implemented and integrated with the standard features), running at a minimum of 60fps in full-screen mode. The code should be clearly formatted.
Learning Outcomes
Identify appropriate techniques for rendering graphics in real-time.
Describe graphical representations mathematically.
Realise which advanced techniques are required to achieve realism.
Use advanced techniques associated with lighting to create realism in graphical scenarios.
Balance processing and memory requirements of multiple graphical effects at cinematic frame rate.

站长地图