Toy engine + Vulkan renderer I built for fun to learn Odin language, then ported to Jai (to utilize it's awesome metaprogramming features).
- Sparse entity system (ECS-lite)
- First person player controller based on Unreal character movement
- Skeletal meshes and animation
- Bindless System (see
shaders/text.slangfor a simple example!) -
- Bindless versions of
Texture,SamplerStateandSamplerComparisonStateas handles, while keeping the usage the same.
- Bindless versions of
-
- Buffers use BDA
- glTF loading of meshes and skeletal meshes
- Physics (with Physx 5.1)
- PBR + IBL + HDR based on Filament
- Point lights
- Tonemapping (tony-mc-mapface)
- CSM
- Compute skinning
- Tools for baking IBL (irradiance SH and specular cubemaps)
All the dependencies for this project are included as git submodules. Some of them are forked from another repo!
- jai-libktx
- jai-mikktspace
- slang-jai
- jai-vulkan
- jai-vma
- jai-imgui
- JaiPhysX
- gltf_parser This is forked from here.
- miniaudio-jai.
