Screen Space Ambient Occlusion
Platform:
Windows PC
Graphics Engine:
DirectX11
Language:
C++, HLSL
Tools Used:
Visual Studio, ImGUI
Duration:
1 Week
Team Size:
1
Completion:
May 6th, 2024
Overview
Screen Space Ambient Occlusion (SSAO) Implementation is a sophisticated post-processing effect created using DirectX11. This effect enhances the visual realism of scenes by simulating the occlusion of ambient light in screen space. The implementation leverages multiple render targets to achieve high-quality results, including base color, normals, ambient light, depth, and dedicated SSAO targets for both the base effect and a blur pass.
Goals
- Advanced Post-Processing: Develop a complex SSAO effect using multiple render targets to deepen understanding of advanced rendering techniques.
Links To Project
Detailed Info
In this project, I implemented a Screen Space Ambient Occlusion (SSAO) effect in DirectX11. This process involved the following key components:
- Base Color Render Target: Stores the primary color information of the scene.
- Normals Render Target: Captures the surface normals required for accurate lighting calculations.
- Ambient Light Render Target: Used for image-based lighting, enhancing the realism of ambient light in the scene.
- Depth Render Target: Contains the depth information necessary for calculating occlusion.
- SSAO Render Targets: Two targets are used for the SSAO effect. The first target applies the base SSAO effect, while the second target is for a blur pass that smooths the samples, reducing noise and improving visual quality.
Implement Details
The implementation process included the following steps:
- Render Target Setup: Configure multiple render targets to store essential scene information such as base color, normals, ambient light, and depth.
- SSAO Calculation: Use the depth and normals render targets to compute the occlusion factor for each pixel, creating a base SSAO effect.
- Blur Pass: Apply a blur filter to the SSAO render target to smooth out the occlusion samples, reducing artifacts and enhancing visual coherence.
- Integration: Combine the SSAO effect with the final scene render to achieve realistic ambient occlusion.
Future Enhancements
To further improve this project I would look towards:
- Performance Optimization: Explore optimizations to improve the computational efficiency of the SSAO effect.
- Quality Improvements: Investigate advanced blur techniques and alternative SSAO algorithms to further enhance visual fidelity.
- Extended Platform Support: Adapt the implementation for other graphics APIs, such as DirectX12, to strengthen my understanding of DirectX12.