Cesium加载3D模型后如何让模型始终面向屏幕?
我在用Cesium加载glTF模型时发现,模型会随着视角旋转而转动,导致始终侧面对着屏幕。比如放个路牌模型,怎么调整都能让它的正面永远朝向用户视角呢?
尝试过在Entity里设置orientation : HeadingPitchRoll,但模型直接消失了。查文档看到有Cesium.Transforms.headingPitchRollQuaternion相关方法,但参数不太懂该怎么配置:
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(-115.0, 37.0, 0),
model: {
uri: 'path/to/model.glb',
runtimePrimitive : {
geometryInstances : geometryInstances,
appearance : new Cesium.PerInstanceColorAppearance({
flat : true,
closed : true
})
}
},
orientation : new Cesium.VelocityOrientationProperty(entity) // 这里完全没效果
});
还试过给模型加 Billboard 的alwaysOnTop属性,但3D模型不支持这个属性。控制台报错Property orientation is not a valid cartographic,是不是需要配合其他参数设置?
Cesium.VelocityOrientationProperty或者直接设置orientation属性,但得配合动态计算的四元数。试试下面这个方案:这样就能让模型始终面向相机视角了,路牌之类的模型就不会乱转了。记得把
position和orientation分开设置,不然容易冲突。