Feature #1945
Feature #7: Next-gen renderer (codename "Gloom")
Efficient reuse of world geometry across multiple frames/passes
Description
One of the most fundamental performance problems of the old 1.x renderer is that every time the player view is drawn, world surfaces are recomputed into GL geometry. (One can see how costly this is by freezing the rendering lists.) However, many rendering techniques require rendering all or some parts of the world multiple times: VR modes draw dual views, shadow mapping requires passes from lights' point of view, reflections need several passes for dynamic cube maps, and overall most of the world remains static across frames so recomputing geometry is wasted effort.
In practice, geometry should be stored as a reasonably small number of static vertex buffers. We should explore if moving planes could be partially or even completely implemented similarly to skeletal animation, where certain vertices would be affected by selected transformations. The trick would be to do this efficiently only for the needed planes, and only when the planes are expected to move. (After all, it is not necessary to efficiently support for all planes to move in the map with no foreknowledge.)
Benchmarking:Related issues
History
#1 Updated by skyjake almost 10 years ago
- Description updated (diff)
#2 Updated by skyjake almost 10 years ago
- Related to Feature #1628: Surface meshes added
#3 Updated by skyjake almost 10 years ago
- Tags changed from Renderer, MapData, Performance to Renderer, MapData, Performance, OpenGL
#4 Updated by skyjake almost 10 years ago
- Tags changed from Renderer, MapData, Performance, OpenGL to Renderer, MapData, Performance, OpenGL, GL2
#5 Updated by skyjake over 9 years ago
- Related to Feature #1745: Performance optimization added
#6 Updated by skyjake almost 8 years ago
- Target version set to Rendering
#7 Updated by skyjake almost 8 years ago
- Related to Feature #2136: Add a map rendering abstraction layer for supporting both Classic and Modern rendering modes added
#8 Updated by skyjake almost 7 years ago
- Description updated (diff)
#9 Updated by skyjake about 6 years ago
- Status changed from New to Resolved
- Assignee set to skyjake
- Target version changed from Rendering to 3.0
- % Done changed from 0 to 100
Gloom has an entirely different model for managing the map geometry.
For details, see the blog: Further rendering explorations
#10 Updated by skyjake almost 5 years ago
- Related to Feature #1308: Splitscreen multiplayer added