Skip to content

Gpinchon/MSG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1d93e49 · Jan 27, 2025
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MSG

MSG is a full SceneGraph featuring a flexible Component system, giving a lot of freedom for adding new components to your scene and organizing it.

Subsystems and their role

Loading
flowchart
Assets::Parser --Loads--> Asset
Asset --Stores--> ECS & Objects
Renderer --Renders--> ECS
Game/Project --Edits--> ECS & Objects
Game/Project --Initializes/Triggers--> Assets::Parser & Renderer

The ECS system is the foundation of the whole project.

A SceneGraph is generated by the Assets parser or the user using the ECS system

The SceneGraph is then given to the Renderer

The Game/Project is in charge of managing window, assets and triggering rendering

The common tools for the whole project are located in Tools

Demos and tests are located in UnitTests

Dependencies

Dependencies are automatically fetched using CMake.

This project was made with the will to reduce dependencies to what's strictly necessary:

  • GLEW for OpenGL because I don't wanna query extensions manually*
  • STB for image parsing
  • zlib for FBX parsing
  • GLM for vectorial math
  • SDL2 for Scene Renderer window system and events
  • Nlohmann JSON for parsing GLTF
  • GTest GTest for unit tests
  • EGL-Registry & GL-Registry for KTX parsing
  • GCEM for accelerated Spherical Harmonics calculation

TODO List

If you want to participate, see the issues for task lists

Features

MSG features several functionnalities :

  • Temporal Anti-Aliasing
  • Temporal Accumulation
  • Screen Space Reflection inspired by Unreal Engine
  • Screen Space Ambient Occlusion
  • Smooth Shadows
  • Blended Order-Independant Transparency
  • Physically Based Materials, with MaterialExtensions allowing for various PBR workflows.
  • GPU Rigging
  • Animations