Premise
We are working on optimizing resource layers that render GIS data.
GeoJSON, in particular, is one of the pain points. Because GeoJSON can contain either large extent geometry or a huge number of features, the rendering pipeline need to be complex if we want to optimize it for both cases.
The most difficult parts are batching geometry and draping on the terrain.
Batching geometry bundles all features into one mesh, but the shader logic becomes complex, and it makes difficult to edit the geometry.
For draping, we use the shadow volume based method, but it causes some errors when we uses this method with the batching.
To avoid such complexity and maximize performance, we will handle these case as follows.
- Resource layers: Specialized layers for visualizing GIS data, with no dynamic editing support.
- Mesh: Simple and easy to edit.
Implementation policy
TODO
Note: These new meshes are rendered along the ellipsoidal surface. They support draping on the terrain too.
Premise
We are working on optimizing resource layers that render GIS data.
GeoJSON, in particular, is one of the pain points. Because GeoJSON can contain either large extent geometry or a huge number of features, the rendering pipeline need to be complex if we want to optimize it for both cases.
The most difficult parts are batching geometry and draping on the terrain.
Batching geometry bundles all features into one mesh, but the shader logic becomes complex, and it makes difficult to edit the geometry.
For draping, we use the shadow volume based method, but it causes some errors when we uses this method with the batching.
To avoid such complexity and maximize performance, we will handle these case as follows.
Implementation policy
TODO
Note: These new meshes are rendered along the ellipsoidal surface. They support draping on the terrain too.