Rendering
Turian renders with Vulkan 1.3 through Silk.NET. The same renderer draws Studio's Scene and Game views, headless screenshots from the CLI, and your exported game.
The frame
Each frame is drawn by a set of render systems, in order:
| System | Draws |
|---|---|
| Standard | Models and meshes with PBR materials and scene lighting. |
| Mesh | Simple meshes. |
| Gizmos | Editor gizmos and debug lines (Studio only). |
| World UI | .ui documents placed in the world on quads — in Studio and CLI renders; not yet in exported games. |
| Overlay | Screen-space .ui documents on top of the scene. |
The renderer targets a Vulkan swapchain in a window, or an offscreen image for Studio's views and headless rendering.
Cameras
A CameraComponent defines a view:
| Property | Meaning |
|---|---|
UsePerspective |
Perspective when true, orthographic otherwise. |
FieldOfViewDegrees |
Vertical field of view (perspective). |
Frustum |
Height of the view volume (orthographic). |
NearPlane, FarPlane |
Clipping distances. |
AspectMode, FixedAspectRatio |
Follow the window's aspect, or keep a fixed one. |
Priority |
Among active cameras, the highest priority renders. |
Switch cameras by changing priorities — the CameraCycler in the Bistro example hands the highest priority around a
list of cameras. Ready-made controllers — Free Fly, FPS, Orbit and Follow — live under
Add Component → Rendering → Camera.
Lights
A LightComponent is either:
- Point — emits from the node's position in every direction, falling off with the square of the distance. Up to 10 per frame.
- Directional — parallel light along the node's forward axis, like the sun; position is ignored. Up to 4 per frame.
Intensity and Color (RGBA) set its strength and tint.
Materials
Surfaces use glTF's PBR metallic-roughness model: base colour, metallic, roughness, normal, occlusion and emissive, each with a factor and an optional texture. See Assets for authoring materials and importing them from models.
Graphics settings
The project's Graphics Settings asset holds rendering options; today that is the default maximum texture resolution. See Project Settings.
Rendering without a window
The CLI renders scenes to PNG files with the same renderer, which is handy in CI and for regression checks:
turian-cli screenshot MyGame --camera "Main Camera" --width 1920 --height 1080 --out shot.png
turian-cli playmode MyGame --frames 120 --out after-two-seconds.png
Without a GPU, a software Vulkan driver such as Mesa's lavapipe works; the turian-cli container image includes one.
Not there yet
Turian 1.0's renderer is deliberately small. Shadows, image-based lighting, a skybox, post-processing and custom render passes from project code are on the roadmap, not in this release.