Skip to content

Latest commit

 

History

History
43 lines (35 loc) · 1.71 KB

File metadata and controls

43 lines (35 loc) · 1.71 KB

cool engine

image

Toy engine + Vulkan renderer I built for fun to learn Odin language (and some graphics techniques).

Features

  • Sparse entity system (ECS-like)
  • First person player controller based on Unreal character movement
  • Skeletal meshes and animation
  • Bindless System (see shaders/tonemapping.slang for a simple example!)
    • Bindless versions of Texture*, SamplerState and SamplerComparisonState, while keeping the usage the same.
    • Buffers use BDA
  • Metaprogram to generate assets tables and shader glue code
  • glTF loading of meshes and skeletal meshes
  • Physics (with Physx 5.1)

Renderer Features

  • 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)

How to build:

  1. Clone repo
  2. Run setup.bat once (this will download some large PhysX binaries and ensure submodules are up to date)
  3. Run build.bat to generate build/debug/main.exe

Screenshots

image

Dependencies

All the dependencies for this project are included as git submodules.