I’ve used the NPM
shapefile package to convert shapefile to GeoJSON, then load it with a GeoJsonDataSource, but performance can be iffy with only a few hundred KB of input data. I used the streaming mode in that converter and handed batches of output to Cesium, but I had to implement this pending PR to make that possible.
When you say “over 1GB of polygon data”, is that one incredibly-detailed polygon, or is this thousands/millions of polygons? If the former, I’d look at some kind of offline processing to (greatly!) reduce the detail before importing. If the latter, a service-based approach like 3D tiles, where you’re only requesting the data you need for the limited area you’re currently viewing, might help.