RadixEngine
RadixEngine copied to clipboard
Implement Scene Management
We need to Implement some Scene Management algorithms. IMO I find this useful for rendering portals:
- Portal Culling VIDEO
- Scene graph
- LOD Frustum
useful link
@hhirsch @ElementW @Geertiebear What do you think about this plane?
- Portal culling or similar is mandatory for good performance, in addition to frustum culling, it's a thing I wanted to do (when I was still actively working on glPortal) but since the maps are entirely dynamic and made of entities right now, there's no way to compute the portals automatically; manual hinting is the only solution then, and it's error-prone and time-consuming. I'd like to enable more static/baked geometry to have this. Quake-derived engines like Source do that by using BSP as a base map space representation, and the
vis
/vvis
tools compute the portals, called "visleaves". - The scene graph has to be duly considered and thought out, as depending on what constraints we put on it we can optimize things differently. Quake-style engines basically have two levels: map geometry and entities' meshes, while more dynamic engines like Gamebryo (Elder Scrolls, Fallout, ...) have a full-featured recursive scene graph. Right now our scene graph is 1 level deep: entities, below a root.
- LOD is somewhat obvious to me too, however we don't have a lot of models yet so it's not really a concern thus far. But yeah, it will have to be done at some point if our scenes get quite populated. While it might present limited interest, I wonder if CSG-computed meshes would be a valuable addition, since they basically are the SVG of 3D space and can have a virtually infinite number of detail levels.