carboncopies / BrainGenix-ERS

BrainGenix Environment Rendering System (ERS) aims to be a high performance rendering system aimed towards scientific applications such as virtual body simulation. [Note: This project is currently in development].
https://braingenix.org/divisions/ers
GNU Affero General Public License v3.0
3 stars 1 forks source link

Refactor - Seperate Subsystems #367

Closed datacrystals closed 2 years ago

datacrystals commented 2 years ago

Migrate VisualRender system out into different pieces:

Processing steps:

  1. Scene Processing (Physics, Animations, Scripts, etc.)
  2. Scene to mesh Conversion (Extract all meshes and associated textures into a mesharray)
  3. Render lighting updates for the mesharray
  4. Render mesharray

New data types:

  1. MeshArray (Vector containing mesh objects with their associated texture info, matricies)

Data types to refactor:

  1. Vertex - minify if possible
  2. Mesh - minify if possible
  3. Scene - make threadsafe if possible

Systems To Refactor:

  1. SceneManager - create threadsafe update functions
  2. Visualrenderer - reduce massive size and bloat, seperate editor and internal systems
  3. Renderermanager - seperate out editor and internal systems

New systems:

  1. Scene2Mesh (find name for this) - Create subsystem to convert the scene into a mesh
  2. LightingSystem (find name for this) - Create subsystem to handle the lights independently and async
  3. MeshArrayRenderer (find new name for this) - takes over much of the visualrenderer, renders things for the user
  4. SceneProcessing (Multiple systems) - Move this out into its own systems (all async)

Documentation

Convert this to a project board - then create issues from that. Use this as the branch to merge those sub-branches into.