Hi! How would I go about making a “blank” 3D Tiles set? To be more precise, instead of a normal terrain tileset, it will be just the spheroidal surface of the Earth? My use case is rendering a shader (similar to fresnel.) If I apply the shader directly to the tilemesh, it will apply the effect on the terrain’s surface (mountains, buildings, etc.) which I don’t want. I might also use it to optimize physics/raycasts.
Although there are some possible details to be sorted out, the thing that most closely matches the description so far (and as far as I understood it) would be a tileset that just defines the earth ellipsoid as a single sphere (slightly squashed, to match the WGS84 ellipsoid).
This could be something like this:
38252 blank tileset.zip (92.5 KB)
When loading it with
const viewer = new Cesium.Viewer("cesiumContainer", {
globe: false
});
const tileset = viewer.scene.primitives.add(
await Cesium.Cesium3DTileset.fromUrl(
"http://localhost:8003/tileset.json",
{
debugShowBoundingVolume: true,
}
)
);
const offset = new Cesium.HeadingPitchRange(
0, 0, 22000000.0
);
viewer.zoomTo(tileset, offset);
it will look like this:
Note that this may not be ideal yet:
- The sphere is a triangle soup, without texture coordinates. If you need texture coordinates, it will be necessary to create the sphere differently (maybe in Blender or so…)
- The bounding box is computed automatically - one could relatively easily define it manually, to have a “nice” orientation
But before spending more time here: Is this roughly what you had in mind?
Yes, this is what I needed exactly. Thanks!
If you’re going to actually use that for something, then I’d consider to at least … “polish” it a bit. (Eg. with a nicer bounding box… ).
I would have thought that the non-connectedness of the triangles and (more importantly) the missing texture coordinates could limit the applicability, but … I don’t fully understand where and how you want to apply a shader to that, and … when it’s sufficient, then… that’s probably OK.
(The only remaining question could be whether the number of triangles is sufficient. This could easily be cranked up a notch, but the next tesselation would already be ~1-2MB, which might already cause a short delay at load time…).