Main.SideBar (edit) |
Main /
GroundRenderingGround Rendering means the rendering of the cells mostly. It should include water as well (which is not implemented by cell rendering), however currently this is not the case. Plugin architectureThe ground rendering architecture consists of plugins. This architecture makes development a lot easier, as the plugin can be reloaded without restarting boson and only very little recompilation (only the plugin) is necessary. Communication between the main boson code and the ground renderers occur only through the The class Ground RenderersThe actual ground renderer consists of several levels. The bottom level is the class ' The class The actual ground renderers are derived of Building list of visible cellsThe first task of rendering is to build a list of visible cells. This should do both, hide fogged cells and make sure that only cells inside the view frustum are rendered (performance). This is done using a quadtree currently. Additionally the tree also implements LOD: when at a certain depth a node is at least partially visible, but very far away from the camera, then a single large cell covering the whole node is added to the list instead of all cells of the node. Note that building the cell list is probably the most important part of the ground renderer. By reducing the amount of cells that are to be displayed, the actual rendering can be made a lot faster with only a little of overhead (the tree is extremely fast). However this is a very difficult and tricky part, as e.g. LOD usually reduces quality to a certain degree. A good LOD implementation is therefore one that can't be noticed. |