- Notifications
You must be signed in to change notification settings - Fork25
flwmxd/LuxGI
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Hybrid GI solution, based on DDGI ( include Ray-Tracing and SDF-Tracing )
The project is a Hybrid GI solution, partly inspired by Lumen and DDGI. The main core idea is to provide a complete GI solution (including Indirect-Light, Infinite-Bounce, Emissive-Lighting, Glossy-Reflection, Shadow, AO) that can run on both Raytracing-supported and non-raytracing hardware. Due to the shortage of time, there are still some performance issues in this project, but as a throwaway, I believe it can provide some new ideas to most of the people who are interested in GI.
Left is SDF-On, Right is Raytracing-On
- Hybrid rendering and Global Illumination
- using Raytracing and SDF-Tracing to make DDGI in realtime
- Surface Cache for SDF Material representation
- Deferred-Shading
- SDF/Ray tracing reflection
- SDF/Ray tracing soft shadow
- SVGF denoiser
- Standard PBR with GGX and roughness/metalness
- ECS IoC Container
- Data Driven ECS architecture
- Auto Injection ECS System(based on entt)
- RHI Interface
- Vulkan 1.3
- SPIR-V reflection
- Windows
- Click gen_build_win.bat
- Choose Game as main project
- Building with RelWithDebInfo
- Linux
- Not support now
- Mac
- Not support now
- WSAD, QE - movement
- Mouse + Right Button - rotate the camera
- Shift - move faster
This project is made with lots of awesome open-source code, they are
RTXGI, the fully raytracing DDGI implementation.
cereal, A C++11 library for serialization.
entt, high performance ECS library
glad, an vulkan/opengl function loader
glfw, open source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development
imgui, is a bloat-free graphical user interface library for C++
libacc, AboutAcceleration structure library (BVH-, KD-Tree) with basic parallel construction
hybrid-rendering, provide raytracing and denoise.
spriv-cross, SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other shader languages.
tracer, c++ crash tracer.
glm, OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software.
spdlog, Very fast, header-only/compiled, C++ logging library
stb, single-file public domain (or MIT licensed) libraries for C/C++
flax-engine, open source game engine. provide the idea how to generate and trace sdf.
Also Paper Reference
About
Hybrid GI solution, based on DDGI ( include Ray-Tracing and SDF-Tracing )