Skip to main content

GeoTiles

The GeoTiles plugin provides efficient management and streaming of 3D Tiles datasets for large-scale geospatial visualization. It consolidates all tiles into a single ObjectMesh containing multiple hierarchical ObjectMeshGeometry instances, enabling fast and unified rendering within Tellusim Engine. Textures are stored as a single 2D array texture and decoded via GPU-accelerated JPEG decompression with optional BC-compression, greatly reducing CPU overhead and optimizing GPU memory usage. Thanks to GPU-based content processing, this plugin supports extremely high visualization distances. It is ideal for applications such as digital twins, geospatial viewers, simulation platforms, and any tool requiring scalable, high-performance 3D geospatial visualization.

note

An API key is required to access Google photorealistic 3D Tiles datasets.

#include <geospatial/geotiles/include/TellusimGeoTiles.h>

Example

// create tiles
GeoTiles tiles(GeoTiles::TypeEarth);
tiles.setRoot("https://tile.googleapis.com/v1/3dtiles/root.json", key);
tiles.setTextureLayers(512);
if(!tiles.create(device, graph, shading_material)) return false;
tiles.setMaxDistance(200000.0);

// process tiles
AutoPtr<Thread> thread = makeAutoPtr(makeThreadFunction([&](Thread *thread) {
if(!tiles.process(tiles_async)) Time::sleep(10000);
tiles_async.wait();
}));

// update tiles
if(!tiles.update(device, sample_camera.getNode())) return false;