Feature #7: Next-gen renderer (codename "Gloom")
Add a map rendering abstraction layer for supporting both Classic and Modern rendering modes
The map renderer is responsible for drawing the world surfaces. Note that this excludes mobjs (which may be sprites or 3D models) and special effects (lens flares, particles). Map rendering does include atmospheric fog, distance fog, and dynamic/static lighting of the surfaces.
A thin abstraction layer should be added that makes it possible to implement different kinds of map renderers.
- The "Classic" map renderer, developed during the Doomsday 1.x series, should be one of the map renderer implementations. Until a new renderer is fully functional, the Classic renderer should be the default option.
- A new "Modern" renderer should be developed based on libgui GL classes with OpenGL 3.3 as a requirement. It should share as much of the Classic geometry generation code as possible for supporting map hacks.
This approach allows keeping the older rendering as a fallback for older hardware while giving us full freedom to build the Modern renderer without compromises.
#4 Updated by skyjake over 2 years ago
- Status changed from New to Rejected
The classic renderer is very different from Gloom, and it relies on an entire stack of supporting resource management code. Gloom will not be using much of the old resource management as-is, so it doesn't make much sense to keep both in the engine.
The new renderer will be the only one availble in Doomsday 3, while the classic renderer remains in the 2.x branch.