Computer Graphics Final Project
Introduction
This project demonstrates a comprehensive application of computer graphics techniques learned during the module. The implemented application showcases:
• Basic geometry rendering.
• Texture mapping for enhanced realism.
• Lighting and shadow mapping using Phong shading.
• Animation and user interaction (camera control and object movement).
• An advanced feature: Screen-Space Ambient Occlusion (SSAO) for realistic soft shadows.
The infinite scene effect adds depth to the user experience by simulating a boundless environment. These features are integrated to create a visually appealing and interactive application.
Progress Report
This section illustrates the development stages of the project with accompanying screenshots.
Stage 1: Basic Geometry Rendering
The initial step was to render basic geometries, such as cubes and planes, using Vertex Array Objects (VAOs) and Vertex Buffer Objects (VBOs).
Figure 1: Basic geometry rendering (cubes on a plane).
Stage 2: Texture Mapping
Textures were applied to the rendered geometries using STB image loading to enhance realism.
Figure 2: Texture mapping applied to the cube.
Stage 3: Lighting and Shadows
Phong shading was implemented to simulate realistic lighting, and shadow mapping was added to create dynamic shadows.
Figure 3: Lighting and shadow mapping.
Stage 4: Animation and User Interaction
Objects were animated using transformation matrices, and user interaction (camera control) was imple- mented for an interactive experience.
Figure 4: Object animation and camera interaction.
Stage 5: Advanced Feature (SSAO)
Screen-Space Ambient Occlusion (SSAO) was added to enhance the realism of soft shadows and depth perception in the scene.
Figure 5: SSAO effect applied to the scene.
Quality and Robustness
Quality
- The application maintains a stable frame rate of 15 FPS on compatible hardware. - Features such as shadow mapping and SSAO significantly enhance the visual quality.
Robustness
- OpenGL error checking ensures stability during runtime. - Graceful handling of missing resources (e.g., textures) with clear error messages.
- Efficient memory management avoids resource leaks.
Limitations and Future Work
Limitations
• Minor artifacts in shadow edges due to resolution constraints of the shadow map.
• SSAO noise in areas with insufficient samples.
Future Work
• Extend the application with dynamic weather effects, such as rain or fog.
• Improve lighting by implementing real-time global illumination.
• Enhance compatibility for WebGL and mobile platforms.
Acknowledgements
This project utilizes the following resources:
• GLFW for window and input management.
• GLEW for OpenGL extensions.
• GLM for mathematical operations.
• Tutorials from LearnOpenGL.
Special thanks to the instructor and peers for their guidance and support.