Toy engine + Vulkan renderer I built for fun to learn Odin language (and some graphics techniques).
- Fully written by hand (Fuck off Claude). Wow so special.
- Sparse entity system (ECS-like)
- First person player controller based on Unreal character movement
- Skeletal meshes and animation
- Bindless System (see
shaders/tonemapping.slangfor a simple example!) -
- Bindless versions of
Texture*,SamplerStateandSamplerComparisonState, while keeping the usage the same.
- Bindless versions of
-
- Buffers use BDA
- Metaprogram to generate assets tables and shader glue code
- glTF loading of meshes and skeletal meshes
- Physics (with Box3D, vendored in Odin)
- DDGI (requires hardware raytracing)
- Parallax-Corrected Cubemaps
- PBR + IBL + HDR based on Filament
- Point lights
- Tonemapping (tony-mc-mapface)
- Very Crude Text Rendering
- CSM
- Compute skinning
- Clone repo
- Run
git submodule update --init --recursiveto get submodules. - Run
build.batto generatebuild/debug/main.exe. Orbuild.bat 1to generate a release build inbuild/release/main.exe.
All the dependencies for this project are included as git submodules.