The following images give an impression of what Tinman 3D can do.
Data-driven continuous level-of-detail terrain mesh |
Smooth terrain mesh with queryable ambient occlusion |
Data-driven surface texturing (tri-planar + standard UV) |
Real-time shadows (LiSPSM + CSM) |
Data-driven planting of foliage and other 3D objects |
Queryable per-vertex displacement for terrain materials |
Real-time persistent painting and deformation of terrain mesh |
Up to 256 distinct materials - anywhere at any resolution |
1m DEM with color-ramp and ambient occlusion |
1m DEM + 50cm imagery using smooth texture atlas |
Silent City of Rocks - NED 1/9" + GoogleMaps |
High resolution reconstruction of mining area |
Terrain mesh with view frustum and horizon culling |
Robust shadow-mapping setup for terrain mesh |
Georeferenced terrain decal texture |
Vector shape layers on terrain mesh |
Real-time debugging helpers |
Interactive data inspection & editing |
Real-time reprojection and rendering of geodata |
Interactive data inspection & preparation |
Tinman 3D uses rasters as input for creating terrain meshes and textures.
The basic process of creating a terrain mesh from raster data is simple:
Tinman 3D provides powerful implementations for these steps.
1. Full Resolution Raster | 2. Reduced Raster | 3. Terrain Mesh |
---|---|---|
You will never again associate "CLOD" with "slow". The dynamic Continuous Level-Of-Detail mode of Tinman 3D is fast enough for real-time applications.
The basic meaning of CLOD is that the whole terrain is represented by a single triangle mesh. The mesh triangles can differ in size, which makes it possible to capture different levels of detail at once. A CLOD mesh is always contiguous, it does not have holes or T-junctions. Terrain meshes created by Tinman have an inherent quadtree structure, where each node represents a mesh sector. All terrain operations can be performed on the whole mesh or on specific sectors.
Using a CLOD approach for terrain rendering has various benefits:
Benefits of Continuous Level-Of-Detail |
---|
The maximum dimensions of a Tinman 3D raster are 2^30+1 by 2^30+1. In other words: 1073741825 by 1073741825.
Rasters are sparse, so an empty raster will not consume a single byte, independent of its size.
Current realtime 3D engines have an upper limit orders of magnitude below that. Here are some examples:
Unreal Engine:
Maximum "Recommended Landscape Size" : 8129 by 8129
https://docs.unrealengine.com/latest/INT/Engine/Landscape/TechnicalGuide/#performanceconsiderations
CryEngine:
Maximum "Recommended Terrain Size" : 4096 by 4096
http://docs.cryengine.com/display/SDKDOC2/Creating+a+New+Level
Unity:
Maximum "Heightmap Resolution" per Terrain object : 4097 by 4097
http://docs.unity3d.com/Manual/terrain-OtherSettings.html
A typical game terrain spans an area of 16km by 16km. Using the maximum terrain sizes mentioned above, this would result in ground detail of 4m resp. 8m. Working around these limitations in order to improve ground detail requires considerable amount of manual work and design.
With Tinman 3D, you no longer have to worry about terrain size. You simply choose how big your terrain should be - then you decide how much detail you want to paint on it; on-the-fly and in real-time. The Demo Application uses a detail map of size 262144 by 262144. This would provide ground detail for a typical game terrain of 6cm. The possibility to paint arbitrary detail everywhere onto the terrain simplifies development and saves time.
With a maximum size raster, Tinman 3D can easily represent the entire Earth with 9mm of gound detail.