- Notifications
You must be signed in to change notification settings - Fork16
Ilum graphics playground for learning
License
NotificationsYou must be signed in to change notification settings
Chaf-Libraries/Ilum
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ilum Graphics Playground, name afterPlanet Ilum fromstar wars.
A framework for computer graphics learning and practice (It's not a game engine!)
bilibili: Project demo video
Platform
- Windows 10
- Visual Studio 2022
- xmake >= v2.7.5
- [optional] CUDA >= 11.7
Build
Ilum usesxmake for building. You can compile the whole project by simply run command:
xmake -y
or you can open the project in Visual Studio by generating.sln
file:
xmake project -k vsxmake
Vulkan
- Mesh Shading
- Dynamic Rendering
- Ray Tracing Pipeline
- Draw/Dispatch Indirect
- Bindless Resource
CUDA
- CUDA & Vulkan Interop
- Static compilation
- Automatic resource state tracking and transition
- Texture memory aliasing
- Seamless interoperation between Graphics API and CUDA
- Easy to customize render pass
Render Pass
Visibility Deferred Shading Pipeline
Visibility Geometry Pass
- Mesh shading with meshlet frustum culling (if device support
mesh_shader
) - Usual rasterization without optimization
- Mesh shading with meshlet frustum culling (if device support
Visibility Buffer Visualization
- Visualize visibility buffer: instance and primitive
Visibility Buffer Lighting Pass
- Indirect dispatch to support multiple material graphs
- Generate lighting result and GBuffer
Shadow
- Classic Shadow Map (Spot Light)
- Omnidirectional Shadow Map (Point Light)
- Cascade Shadow Map (Directional Light)
Ambient Occlusion
- SSAO
IBL
- Spherical Harmonic Encoding Diffuse
- Pre-Filter For Specular
Ray Tracing
- Path Tracing
Post Process
- Tone Mapping
- Bloom
- FXAA
TODO
- Resource Pool
- Runtime compilation maybe
- Multi-threading
Feature
- Static compilation and HLSL generation
- Easy to customize material node
- Support usual BSDF models
You can extend the renderer features by adding these plugins:
- RHI
- Render Pass
- Material Node
- Importer
- Editor