一、加载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;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。