"Blank" 3D Tiles Set

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…:slight_smile: ).

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…).