BrendonButler / BrendonButler/entropy

[Feature] Build a compositor and render pipeline manager

Open
#27 0 comments 0 reactions 0 assignees View on GitHub
engine enhancement
Dominant language
Java
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

### Description of the Feature

A `Compositor` class that orchestrates rendering across multiple stages, including 3D scene rendering, 2D UI rendering, independant 2D/3D rendering, and optional post-processing. The compositor will manage viewport settings, framebuffer targets, and shader routing, ensuring that each renderer is invoked in the correct order and context.

This compositor will include:

- A `RenderPipeline` class to define and manage render stages
- A `Compositor` class that executes the pipeline and coordinates renderers
- A `RenderStage` enum or registry to identify stages (e.g., `SCENE_3D`, `UI_2D`, `POST_PROCESS`)
- A `FramebufferManager` for handling render targets and screen output
- Shader routing logic to apply effects selectively per stage

This system should be extensible to support features like split-screen, render-to-texture, and dynamic stage composition.

### Benefits of the Feature

1. Centralizes rendering orchestration for modularity and maintainability
2. Enables clean separation of 2D and 3D rendering logic
3. Supports layered rendering (e.g., 3D -> UI -> post-process)
4. Facilitates advanced features like split-screen and picture-in-picture
5. Allows selective shader applications per render stage
6. Provides a scalable foundation for future rendering enhancements

### Additional Information

[OpenGL glViewport Usage](https://registry.khronos.org/OpenGL-Refpages/gl4/html/glViewport.xhtml)

Consider future support for render graphs or stage dependencies

Related modules: `Render2D`, `Render3D`, `ShaderManager`, `FramebufferManager`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.