The Wizards Wiki

Explore your world

User Tools

Site Tools


documentation:terrain

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentation:terrain [2011/02/27 17:05] btrixdocumentation:terrain [2024/08/26 13:25] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Terrain ====== ====== Terrain ======
-The goal is here to make a realistic looking terrain which requires very little to none interference of an artist. The terrain includes first off all the geometry of the land but I also want to include the placement of the vegetation. 
  
-Making a realistic terrain we first of all need to start from something basic this is [documentation:terrain:procedural_terraingeneration:noise|perlin noise]]. This create a very charp and random terrain. 
  
-The next stap is to smooth it out in several I'm currently working on 2 ways to do this First of all Thermal errosion this is a more general smooth function in which high placedground is being moved to lower places. +[[:documentation:terrain:procedural_terraingeneration|Terrain Generation]]
-The second type of errosion is [[documentation:terrain:hydrolic_errosion_and_river_creation|Hydrolic errosion]] this moves the sediment to lower place according to water flow. This also carves out rivers which gives the terrain an even more realistic look.+
  
-The vegetation system isn't started yet but i hope to start it soon.+ 
 +[[:documentation:terrain:hydrolic_errosion_and_river_creation|Hydrolic errosion and River Creation]] 
 + 
 + 
 +Polygonal generation! 
 + 
 + 
 +[[http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/|http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/]] 
 + 
 + 
 +found this link with some nice ideas (not much explaining though) 
 + 
 + 
 +http://procworld.blogspot.be 
 + 
 +===== 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><del>IMPORTANT! This class assumes that the terrainblock fits perfectly into one quadtreenode.</del></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 editorThis is redundant code, and this issue should be fixed! 
 + 
 +==== TerrainPaintTool ==== 
 + 
 +TODO 
 +(describe)
  
  
-I just implemented a way of sharpening out the terrain by adding more vertices at the same terrain. 
-\\ 
-{{:documentation:terrain:lowdetailterrain.jpg|}} 
-{{:documentation:terrain:highdetailterrain.png|}} 
-{{:documentation:terrain:heigherdetailterrain.jpg|}} 
-\\ 
  
  
documentation/terrain.1298826312.txt.gz · Last modified: 2024/08/26 13:57 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki