Cairn is the 3D engine our games are made in. This is where it began: everything it needs to put a lit model on screen and save the scene it sits in.
What's new
Engine
- A window and a Vulkan device through nvrhi, with logging and a crash handler that writes a readable stack trace to the log.
- An entity component system with transforms and parent and child entities.
- Scenes saved as YAML. Saving a scene that was just loaded gives the same bytes, so a change shows up cleanly in version control.
- A forward renderer with a camera, built-in meshes (cube, sphere, plane) and screenshots.
- glTF import: meshes, materials and textures, each with an ID of its own, so moving a file breaks nothing.
- Projects: a project file, an asset folder and a start scene.
- HDR rendering with exposure and the ACES tonemap.
Editor
- The editor shell: a viewport, a hierarchy, an inspector, and undo and redo for every change.
- Move, rotate and scale gizmos, a fly camera and a ground grid.
Testing
- Unit tests that run on every build, and render tests that compare each picture against a reference image.
Known issues
- Built and tested on macOS only. Windows and Linux are not built yet.