先看下问题
加入一个白膜,移动视角,会感觉这个白膜不在固定的位置,飘忽不定
原因分析
这是由于在这个场景中添加了地形,白膜与地形相交了。
解决办法
- 如果给定的模型高度是高于地面的,则可以关闭地形
viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider();
- 如果必须有地形,或者原始给定的3dtiels高度低于地面,则设置3dtiles高度高于地形
tileset.readyPromise.then(function (tileset) {
var heightOffset = 370.0;
var boundingSphere = tileset.boundingSphere;
var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
var surface = Cesium.Cartesian3.fromRadians(
cartographic.longitude,
cartographic.latitude,
0.0
);
var offset = Cesium.Cartesian3.fromRadians(
cartographic.longitude,
cartographic.latitude,
heightOffset
);
var translation = Cesium.Cartesian3.subtract(
offset,
surface,
new Cesium.Cartesian3()
);
tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
});
这里高度值heightOffset 需要获取该区域地形的高程值。文章来源:https://www.toymoban.com/news/detail-698234.html
- 开启地形深度检测
viewer.scene.globe.depthTestAgainstTerrain = true;
这种方法比较简单,但是对性能有一定损耗。
文章来源地址https://www.toymoban.com/news/detail-698234.html
到了这里,关于cesium中移动地球时,模型(3dtiles)感觉在飘着,会错位的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!