Open Zylann opened 6 years ago
Another reference: https://github.com/JTippetts/U3DTerrainEditor
Here is a pretty neat terrain implementation that can smoothly transition from a ground close up to a space view of an entire planet! http://proland.inrialpes.fr/ http://www-evasion.imag.fr/Membres/Eric.Bruneton/
Here is a demo video showing off some of the features. This YouTube channel has a number of other videos showing off the individual systems more closely, so it is worth checking those out as well: https://www.youtube.com/watch?v=uvskrieOWPw
I'm making this thread to reference useful info about other terrain systems. May not always be doable in Godot 3.0 (GLES3) while keeping the tool simple, but it's a good source of inspiration:
Just Cause 2: https://www.gamasutra.com/view/feature/192007/sponsored_the_world_of_just_cause_.php Megaterrain, 32km across, layer types, streaming from CD, geomorphing, clipmaps
Witcher 3: http://www.gdcvault.com/play/1020197/Landscape-Creation-and-Rendering-in Megaterrain, more than 16km across, two splat layers (background and overlay), clipmaps, many twists, avoids
discard
to make holesLumix Engine: https://github.com/nem0/LumixEngine Classic heightmap, one splat layer using texture arrays, satellite map for far away terrain, uses CLOD
Texture blending trick: https://www.gamasutra.com/blogs/AndreyMishkinis/20130716/196339/Advanced_Terrain_Texture_Splatting.php Use alpha as depth to blend detail textures, looks similar to Witcher 3 overlay technique --> Implemented in the 3.x plugin
Farcry 5 terrain system: https://drive.google.com/file/d/1H6ouhi96pLg8WDlwXSGHFupPyZDv2MF6/view 10x10km, similar to what the module does, but also implements streaming to handle such a large size and most of it happens on GPU instead. The more I see those techniques the more I think Godot should support compute + scriptable rendering pipeline, it's frustrating :p Also outputs NaNs in vertex positions to create holes instead of fragment discard! Uses ID+weight splatmaps, and optimize amount of texture fetches and do displacement decals by using... virtual textures?? Also use the heightmap to bend tree roots and stuff placed on the ground