cesium viewer.scene.clampToHeight 方法的副作用?

请问异常原因是什么?

QQ202616-105443-HD (1).gif


复现

cesium 沙盒 "cesium": "1.137.0"

QQ202616-10423-HD.gif

import * as Cesium from "cesium";

const viewer = new Cesium.Viewer("cesiumContainer");

viewer.entities.add({
  polygon: {
    hierarchy: Cesium.Cartesian3.fromDegreesArray([
      -99.0, 30.0, -99.1, 30.05, -99.1, 30.0,
    ]),
    // height:0,  // 明确声明后异常消失
  },
});

viewer.zoomTo(viewer.entities);

setInterval(() => {
  viewer.scene.clampToHeight(Cesium.Cartesian3.fromDegrees(-95.0, 30.0));
}, 100);
阅读 614
1 个回答

如果是要polygon贴地, 建议直接给明确高度 heightReference: Cesium.HeightReference.CLAMP_TO_GROUND;
clampToHeight依赖当前帧的深度纹理,比如地形和其他Primitive的渲染结果,需要检测地形,polygon没有给高度,而且加了setInterval,会不断触发深度计算,导致渲染不稳定;
所以不要频繁调用clampToHeight

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题