Table of Contents
Terrain
Hydrolic errosion and River Creation
Polygonal generation!
http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
found this link with some nice ideas (not much explaining though)
Client
Structure todo
Note: currently the loading from disk for the terrain resides in Editor\Temp\Terrain\TerrainFullData.cs in the LoadFullData function.
Long term: add dynamic loading (and preprocessed loading) from disk for the heightfields.
Idea: maybe it is possible to buffer heightfields in ram, since the real overhead here is running them in physX?
BELANGRIJKE KLASSE: ServerclientOud/TODO/Wereld/QuadTree deze bevat info over de oude physx quadtree
TerrainBlockHeightfieldBuilder
This class Creates a PhysX heightfield (with stilldesign.physx wrapper), from a scene and TerrainFullData for a terrainblock. It returns the actor created. Note: Maybe this class should be static?
TerrainBlockClientPhysics
Handles the Client Physics logic of a terrain block. Creates and destroys the physics actor when required by the client physics.
<color red>IMPORTANT! This class assumes that the terrainblock fits perfectly into one quadtreenode.</color>
TerrainClientPhysics
This class represents a terrain and its client physics functionality. One of these represents one terrain, and ensure that physics is enabled correctly in the Client Physics. It creates the TerrainBlockClientPhysics objects, places them in the client physics engine. It is also responsible for supplying dynamic loading methods for the physics. TODO: Implement the creation of the actor by using a Factory passed by the constructor. This moves the creation/caching logic to the outside.
Editor - World Editor
WARNING: this part is probably deprecated
Todo: Hier een modes maken waarin de gpu paint op height and weight textures (ipv dat de processor dat doet) Vervolgens gebruikt een andere shader die als input om in de editor te renderen. De normal map kan ook gemaakt worden met behulp van de gpu.
De uitbreiding aan de World Editor voor het terrain bestaat uit:
TerrainEditorModule
Dit is de application logic voor de Terrain Editor, en zorgt ervoor dat de terrain editor doet wat hij moet doen in The Wizards Editor. Huidige functies: World Editor terrain tools
TerrainWorldEditorGUI (was: TerrainWorldEditorExtension)
De GUI voor de Terrain Editor functionality in de World Editor. Plaatst de gui controls in de WorldEditor. Alle bindings aan de tools zitten in de tools, GEEN REFERENCES NAAR TOOLS. References: alleen WorldEditor
Tools: (TerrainCreateTool, TerrainRaiseTool ,…)
Verschillende tools voor de World Editor References: Verwijzen naar de World Editor?, naar de GUI extension en de TerrainService?.
TerrainEditorForm
Dit is het formulier dat de TerrainWorldEditorGUI gebruikt om de DevExpress interface te laden. De effectieve controls zitten hier op
TerrainWorldEditorExtension
Deze klasse wordt gebruikt door de TerrainEditorModule, en zorgt ervoor dat de World Editor functionaliteiten van de Terrain Editor in de World Editor worden geladen. De verschillende tools:
TerrainCreateTool
This tools enables the user to click places on where to place a terrain. It uses the TerrainService? to do the action placing. And the editor to get EditorTerrains (this is bad practice).
TerrainRaiseTool
<color red>DESIGN ERROR:</color> Currently the terrainraisetool has a method that raises the terrain independently from the editor, and a private method that raises the terrain optimized for the editor. This is redundant code, and this issue should be fixed!
TerrainPaintTool
TODO (describe)