Toy engine + Vulkan renderer I built for fun to learn Odin language (and some graphics techniques).
- 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 Physx 5.1)
- PBR + IBL + HDR based on Filament
- Point lights
- Tonemapping (tony-mc-mapface)
- Very Crude Text Rendering
- CSM
- Compute skinning
- Tools for baking IBL (irradiance SH and specular cubemaps)
- Clone repo
- Run
setup.batonce (this will download some large PhysX binaries and ensure submodules are up to date) - Run
build.batto generatebuild/debug/main.exe
All the dependencies for this project are included as git submodules.