2026-09-02 –, Ran1
CesiumJS's built-in APIs hit CPU bottlenecks when rendering massive dynamic objects in real time. This talk presents how we used Vertex Texture Fetch (VTF) to store position data in GPU textures, enabling real-time updates without geometry reconstruction, applied to a satellite trajectory monitoring system.
We needed to render thousands of satellites moving in real time on CesiumJS, each leaving a trail of trajectory points. The built-in API rebuilds vertex buffers on the CPU every time positions change, making it fundamentally unsuitable for large numbers of dynamic objects.
Vertex Texture Fetch (VTF) stores position data in GPU textures instead of vertex attributes, and samples them in the vertex shader to retrieve positions. Since the geometry only holds texture UV coordinates, it can be created once and reused. When objects move, only the texture pixels are updated. Thanks to this structure, the update cost remains nearly constant regardless of how many objects are moving simultaneously.
We are currently using this technique in a space surveillance system, rendering satellites with continuously changing orbits alongside massive numbers of point and polyline trails in real time. The talk will cover how the VTF pipeline works, how it differs from the traditional vertex attribute approach, and how we achieved 64-bit precision in a WebGL 32-bit float environment using High/Low splitting, — achieving over 150% frame rate improvement — with a demo showing the difference.
CesiumJS
I make my conference contribution available under the CC BY 4.0 license. The conference contribution comprises the abstract, the text contribution for the conference proceedings, the presentation materials as well as the video recording and live transmission of the presentation:Software Engineer at Meissa R&D, a geospatial intelligence company specializing in spatial data analysis with drone and satellite technology.