Cesium 加载桥梁3DTiles数据时,出现部分区域发暗、部分正常的现象
分析原因:
可能是由于默认的物理渲染(PBR)以及根据模型表面法线和场景光线方向计算的动态光照导致的。这种情况会根据模型不同角度产生阴影变化,使部分区域显得较暗。
要实现贴图后整个模型颜色一致(去除阴影效果),可以为tileset应用自定义着色器,将其设置为“非光照”模式(unlit mode),仅使用原始纹理颜色,而忽略光照影响。
以下是CesiumJS中的实现方法:
1.正常加载tileset:
const viewer = new Cesium.Viewer('cesiumContainer');
const tileset = await Cesium.Cesium3DTileset.fromUrl('path/to/your/bridge_tileset.json'); // 替换为您的3D Tiles URL
viewer.scene.primitives.add(tileset);
await viewer.flyTo(tileset);
2.应用非光照自定义着色器:
const unlitShader = new Cesium.CustomShader({lightingModel: Cesium.LightingModel.UNLIT
});
tileset.customShader = unlitShader;