Documentation

Rendering

OpenGL-based rendering system with materials, meshes, and post-processing.

Rendering System

The renderer is OpenGL-based and includes:

  • GPU meshes for primitives, imported models, and raw mesh assets.
  • Texture and shader caching.
  • Skybox rendering.
  • Render targets for game view and preview.
  • Optional post-processing pipeline.

Default Shader Paths

Default shader paths are defined in Renderer:

Resources/Shaders/vert.glsl
Resources/Shaders/frag.glsl
Resources/Shaders/skinned_vert.glsl
Resources/Shaders/  (post-FX shaders)

Materials & Textures

Each renderable object has:

  • MaterialProperties - color, ambient/specular strength, shininess, texture mix
  • Optional materialPath for external material assets
  • Albedo/overlay/normal map textures
  • Per-object vertex/fragment shader overrides

Models & Meshes

Mesh Sources

  • OBJ via OBJLoader - includes triangle data for picking and physics.
  • Assimp via ModelLoader for formats like FBX/GLTF, with node hierarchies and animation data.

Raw Meshes

Editable mesh assets are stored as .rmesh and can be loaded/saved via ModelLoader.

Post-Processing

Post-FX can be enabled per camera and configured in PostFXSettings.

Available Effects

  • Bloom - Bright area glow effect
  • Exposure/Contrast/Saturation - Color grading controls
  • Color Filter - Global color tint
  • Motion Blur - History buffer-based blur
  • Vignette - Edge darkening effect
  • Chromatic Aberration - Color fringing
  • Ambient Occlusion - Screen-space AO