Cesium加载GLTF/GLB模型使用的接口是
const entity = viewer.entities.add({
name: "model layer",
position: position,
orientation: orientation,
model: {
uri: url,
minimumPixelSize: 128,
maximumScale: 20000,
},
});
相关API文档参见
ModelGraphics - Cesium Documentation
entity模型的数据参考文档
但是这份数据中没有gltf/glb的原始文档数据,如果想要像babylon那样反显模型的数据结构,Cesium是做不到的
除非……
修改源码
在源码仓库中找到这个文件
packages\engine\Source\Scene\GltfJsonLoader.js
找到这个方法 processGltfJson
async function processGltfJson(gltfJsonLoader, gltf) {
try {
addPipelineExtras(gltf);
await decodeDataUris(gltf);
await upgradeVersion(gltfJsonLoader, gltf);
addDefaults(gltf);
await loadEmbeddedBuffers(gltfJsonLoader, gltf);
removePipelineExtras(gltf);
const version = gltf.asset.version;
if (version !== "1.0" && version !== "2.0") {
throw new RuntimeError(`Unsupported glTF version: ${version}`);
}
const extensionsRequired = gltf.extensionsRequired;
if (defined(extensionsRequired)) {
ModelUtility.checkSupportedExtensions(extensionsRequired);
}
gltfJsonLoader._gltf = gltf;
gltfJsonLoader._state = ResourceLoaderState.READY;
return gltfJsonLoader;
} catch (error) {
if (gltfJsonLoader.isDestroyed()) {
return;
}
handleError(gltfJsonLoader, error);
}
}
将第9行的 removePiplelineExtras(gltf) 注释掉
就可以在前端加载gltf模型的时候看到gltfjson原始数据了,如下: