-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
component: bindingsRelated to Python Bindings generationRelated to Python Bindings generationcomponent: engine objectsRelated to objects from the engine itself (e.g. Cameras, Lights, Meshes, etc.)Related to objects from the engine itself (e.g. Cameras, Lights, Meshes, etc.)component: opengl-primitivesRelated to abstractions of OpenGL objects like VBOs, IBOs, VAOs, Textures, etc.Related to abstractions of OpenGL objects like VBOs, IBOs, VAOs, Textures, etc.component: rendering pipelineRelated to the parts of the rendering pipeline (e.g. culling, shadows, lighting, etc.)Related to the parts of the rendering pipeline (e.g. culling, shadows, lighting, etc.)component: shadersRelated to creating/updating/refactoring glsl shaders from the engineRelated to creating/updating/refactoring glsl shaders from the enginetype: docstype: feature
Description
Description
This module is in charge of exposing all available features into an abstract renderer interface. It should be similar to ThreeJS. We should have a similar ShadderLib and ShaderChunk system to generate a Master Shader used for the rendering process, without requiring that many state changes if possible.
Tasks
- Design the whole renderer module
- Implement
ShaderChunkmodule (C++) - Implement
ShaderLibmodule (C++) - Implement render pipeline (should support multiple lights and shadows) (C++)
- Examples of usage (C++)
- Python bindings
- Examples of usage (Python)
- Documentation (API auto-generated using Sphinx + Breathe)
- Documentation (.rst custom made for a detailed description)
Notes
- Should abstract away the renderer interface from the specific graphics API (e.g. OpenGL), similar to how ThreeJS handles WebGL, WebGL2, and WebGPU. We should move all graphics-API-specific objects to their own folder.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
component: bindingsRelated to Python Bindings generationRelated to Python Bindings generationcomponent: engine objectsRelated to objects from the engine itself (e.g. Cameras, Lights, Meshes, etc.)Related to objects from the engine itself (e.g. Cameras, Lights, Meshes, etc.)component: opengl-primitivesRelated to abstractions of OpenGL objects like VBOs, IBOs, VAOs, Textures, etc.Related to abstractions of OpenGL objects like VBOs, IBOs, VAOs, Textures, etc.component: rendering pipelineRelated to the parts of the rendering pipeline (e.g. culling, shadows, lighting, etc.)Related to the parts of the rendering pipeline (e.g. culling, shadows, lighting, etc.)component: shadersRelated to creating/updating/refactoring glsl shaders from the engineRelated to creating/updating/refactoring glsl shaders from the enginetype: docstype: feature
Projects
Status
Todo