Cesium批量加载gltf模型

let cameraUrl = "../model/model.gltf";

let newPositions = [
    {"x": 6358638.974849774, "y": -498978.751542005, "z": 0},
    {"x": 6358638.973079549, "y": -498978.75154201075, "z": 149.5383532969183}
];

let instances = [];
for (let i = 0; i < newPositions.length; i += 1) {
    let cartesian = newPositions[i];
    //批量加载
    let modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(cartesian, new Cesium.HeadingPitchRoll(90, 0, 0)); // 旋转
    Cesium.Matrix4.multiplyByUniformScale(modelMatrix, 0.01, modelMatrix); // 缩放
    instances.push({
        modelMatrix: modelMatrix
    });
}

let primitive = new Cesium.ModelInstanceCollection({
    url: cameraUrl,
    instances: instances
});
viewer.scene.primitives.add(primitive);
Cesium是一个用于构建地球浏览应用的JavaScript库。它能够加载和渲染各种类型的3D模型,包括gltf模型。 要在Cesium加载gltf模型,首先需要引入Cesium库文件。可以使用<script>标签将cesium.js导入到HTML文件中。 接下来,在JavaScript代码中使用Cesium的Viewer对象创建一个视图器,用于显示地球场景。可以通过指定一个HTML元素的id来指定视图器的容器。例如,可以使用以下代码创建一个视图器: var viewer = new Cesium.Viewer('cesiumContainer'); 这里的'cesiumContainer'是要显示场景的HTML元素的id。 然后,可以使用Cesium的Entity对象创建一个实体,该实体可以包含gltf模型的位置、方向和缩放信息。可以使用以下代码创建一个实体: var modelEntity = viewer.entities.add({ name: 'gltfModel', position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height), orientation: Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Z, Cesium.Math.toRadians(rotation)), model: { uri: 'path/to/model.gltf' } }); 这里的longitude、latitude和height是模型在地球上的位置,rotation是模型的初始方向角度。 最后,调用Cesium的Viewer对象的render函数来渲染场景。可以将此函数放在循环中,以便持续渲染场景。 viewer.render(); 通过以上步骤,就可以在Cesium中成功加载并显示一个gltf模型了。您可以根据需要调整模型的位置、方向、缩放等属性,以实现更多的效果和交互。另外,Cesium还提供了许多其他功能和API,可以用于对模型进行更高级的操作和处理。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值