笔者发现,cesium最新版已经能展示gltf2.0动画。为此把经验分享给大家。
废话不多说,直接贴代码。
var viewer = new Cesium.Viewer('cesiumContainer', {
shouldAnimate: true, // (非常重要) 设置true是为了动画可以自动播放
// …… 省略了其他和本文无关参数
})
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
Cesium.Cartesian3.fromDegrees(102.0, 24.0, 0.0)
) // 102.0表示经度,24.0表示纬度,0.0表示高度,读者可自行替换。
var model = scene.primitives.add(Cesium.Model.fromGltf({
// url: blender2.8 导出的.glb或者.gltf格式文件的路径(带动画的)如:
url: './gltf/JinChe1.glb',
modelMatrix: modelMatrix,
scale: 1.0, // 放大缩小倍数 1.0表示不放大缩小,2.0放大一倍,0.5缩小一倍。
}))
// (非常重要) 加载模型动画,model为模型变量,
// 有两处model.readyPromise和model.activeAnimations……读者可自行替换
Cesium.when(model.readyPromise).then(function() {
model.activeAnimations.addAll({
loop: Cesium.ModelAnimationLoop.REPEAT
})
})
效果视频:https://pan.baidu.com/s/1Iq-AgxLpzwzUu_6eB41g5Q
提取码:1nrt
有这个教程的模型和源码吗?
这个文章是网友发的。源码在文章里,现在版本的Cesium_Man.glb是2.0的,可以加载了看效果
模型:
链接:https://pan.baidu.com/s/1Z7QTj8EnrbJ7D72wDoFHeQ
提取码:eigp