一、加载3d tiles模型, 移动视角模型漂移,怎么办?

答: 要么提高模型离地高度, 要么开启地形深度检测, 一般是两者结合, 因为如果只提高模型离地高度, 高度过高就会悬空, 过低还是会漂移。

  const tileset = await Cesium.Cesium3DTileset.fromUrl(
      path,
    );
    this.viewer.scene.primitives.add(tileset);
    // 模型外包围盒,center:模型中心点,radius:包围盒半径
    let boundingSphere = tileset.boundingSphere;
    // 模型中心点
    let origin = boundingSphere.center;
    let offset = Cesium.Cartesian3.fromDegrees(
      lng, lat, height, // 提高模型的高度, 防止飘移
    );
    // 计算世界坐标系下平移向量
    let translate = Cesium.Cartesian3.subtract(
      offset,
      origin,
      new Cesium.Cartesian3()
    );
    tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translate);

开启地形深度检测 防止模型滑动飘移

viewer.scene.globe.depthTestAgainstTerrain = true;

清_浅
297 声望8 粉丝

一乡二里,共三夫子不识四书五经六义,竟敢教七八九子,十分大胆!