A small renderer for learning graphics APIs and rendering techniques.
- PBR materials
- OBJ, glTF and FBX loading
- Directional light with shadow mapping
- MSAA
- Free and orbit cameras
- ImGui controls
- CMake 4.3.1+
- MinGW-w64
- Vulkan 1.3 SDK
- vcpkg with
VCPKG_ROOTset - Slang compiler (
slangc) inPATH - GLFW
- GLM
- ImGui
- fmt
- stb
- rapidobj
- fastgltf
- ufbx (included in the repository)
Debug:
cmake --preset windows-debug
cmake --build --preset win-debugRelease:
cmake --preset windows-release
cmake --build --preset win-releaseExecutables are written to build/win-debug and build/win-release.
- Hold right mouse button to look around
WASDto moveQ/Eto move down and up- Hold
Shiftto move faster F3to toggle the UI
- Utility
- Screenshot Export
- Drag-and-drop model loading
- File Associations
- Recent files
- GPU and CPU profiling
- FPS and frame-time graph
- VRAM and resource usage display
- Debug views of internal buffers and images
- Scene hierarchy
- Porting
- Linux
- Web
- Android
- Rendering Backends
- WebGPU
- DirectX
- Rendering Techniques
- Skybox Import
- Procedural default skybox
- Instanced Rendering
- Image-based lighting
- Cel-Shading
- Surface Dithering
- Point and spot lights
- Imported scene lights
- Animations
- Cascaded shadow maps
- HDR
- GPU Skinning
- GPU-driven rendering
- OIT
- Ray Tracing
- Post-processing
- SSAO
- Tonemapping
- Color grading
- Vignette
- Film grain
- Chromatic aberration
- Bloom
- Outline
- ASCII
- 3D Pixel Art
- Depth of field
- Motion blur
- Fog
- Custom runtime fullscreen effects