Atlaslog
Atlaslog / Field Notes / 3D & Cesium
Field note · 3D & Cesium

3D Tiles render as a flat white mass with no edges

Quick answer

tileset.json and all tiles return 200 and zoomTo shows the building volumes, but every face is nearly pure white. Untextured b3dm blocks without vertex normals receive the default up-facing normal, so all faces get near-1.0 lighting and merge with a white basemap.

Last verified 2026-11-03 · Multiple versions · Cite this page
Applies to: CesiumJS 1.121
Symptom
Checklist
  1. Set tileset.enableLighting to false and see whether the white darkens and edges appear.
  2. Hide all imagery and set scene.globe.baseColor to dark grey to confirm the model is not lost against the basemap.
  3. Log the tileset.properties keys to see which batch table fields exist, such as height, floors or use.
  4. Toggle viewer.scene.globe.show to false to separate a contrast problem from a placement problem.
Fix

Pass enableLighting: false with maximumScreenSpaceError: 8 to Cesium3DTileset.fromUrl, or colour by a batch table field through Cesium3DTileStyle conditions on the height property. Set colorBlendMode to Cesium3DTilesetColorBlendMode.REPLACE when ambient light washes the colour out again.

Code
var tileset = await Cesium.Cesium3DTileset.fromUrl('/data/buildings/tileset.json');
viewer.scene.primitives.add(tileset);

tileset.readyPromise.then(function () {
  var names = tileset.properties && Object.keys(tileset.properties);
  console.log('batch table 字段:', names);
});
var tileset = await Cesium.Cesium3DTileset.fromUrl('/data/buildings/tileset.json', {
  enableLighting: false,
  maximumScreenSpaceError: 8
});
Watch out
All 120 field notesChinese originalRunnable examples
English edition written for Atlaslog from the original Chinese field note. Code is unchanged and runs as-is.
Cite this page

Atlaslog (2026). 3D Tiles render as a flat white mass with no edges. https://www.jingweizhi.com/en/cookbook/cesium-3dtiles-white-model.html (accessed 2026-11-03).