Develop a real-time global illumination rendering engine capable of computing indirect lighting in dynamic scenes. 开发一个实时全局光照渲染引擎,支持动态场景中的间接光照计算。
- Implement the core rendering pipeline using Direct3D 12. 使用 Direct3D 12 编写核心渲染管线。
- Write HLSL shaders to achieve Screen Space Reflections (SSR) and Screen Space Global Illumination (SSGI). 编写 HLSL 着色器实现屏幕空间反射 (SSR) 和屏幕空间全局光照 (SSGI)。
- Support shadow mapping for light sources and dynamic reflections. 支持光源阴影映射和动态反射。
- Use multithreading to handle scene geometry frustum culling and lighting calculations. 使用多线程处理场景几何体剔除(Frustum Culling)和光照计算。
- Build System and Compiler Information
- Build System Generator: CMake
- Build System: MSBuild
- Compiler: MSVC (Microsoft Visual C++)
- Integrated Development Environment (IDE): Visual Studio 2022
- Libraries
- Graphics and Rendering: DirectX 12
- Windows Platform Interface: Windows API
- COM Programming: Microsoft WRL (Windows Runtime C++ Template Library)
- Model Loading: tinyobjloader
- Development and Debugging Tools
Objective: Set up the development environment and understand Direct3D 12 basics.
Tasks:
- ✅ Install Visual Studio 2022 and Windows SDK.
- ✅ Learn Direct3D 12 pipeline: Root Signature, Command List, Descriptor Heap.
- ✅ Initialize project: Render a simple triangle.
Result: Direct3D 12 Triangle Rendering
Timeframe: 2024-11-15 to 2024-11-29
Objective: Implement the rendering pipeline and basic lighting with shadows.
Tasks:
- ✅ Implement Root Signature and PSO.
- ✅ Add camera movement.
- ✅ Load simple models.
- Implement dynamic lighting and shadow mapping.
Timeframe: 2024-11-30 to 2024-12-14
Objective: Add screen-space global illumination (SSGI) and reflections (SSR).
Tasks:
- Implement SSGI for indirect lighting.
- Add SSR using depth buffer ray tracing.
- Optimize post-processing performance.
Timeframe: 2024-12-15 to 2024-12-29
Objective: Optimize rendering performance with multithreading and culling.
Tasks:
- Use command lists for parallel rendering.
- Implement frustum culling.
- Optimize memory usage and resource management.
Timeframe: 2024-12-30 to 2024-01-13
Objective: Enhance visual quality with PBR materials and volumetric lighting.
Tasks:
- Add PBR materials with metalness and roughness.
- Implement volumetric lighting for atmospheric effects.
- Create a demo showcasing all features.
Timeframe: 2024-01-14 to 2024-01-28