编辑
2025-05-16
cesium
0
请注意,本文编写于 53 天前,最后修改于 50 天前,其中某些信息可能已经过时。

目录

GLTF模型加载到实例化渲染的详细流程图

GLTF模型加载到实例化渲染的详细流程图

js
┌─────────────────────────────┐ │ Model.fromGltfAsync() │ └─────────────┬───────────────┘ ▼ ┌─────────────────────────────┐ │ GltfLoader.load() │◄───────┐ └─────────────┬───────────────┘ │ ▼ │ ┌─────────────────────────────┐ │ │ Model.update() 每帧调用 │ │ └─────────────┬───────────────┘ │ ▼ │ ┌─────────────────────────────┐ │ │ processLoader() │ │ 未完成时 └─────────────┬───────────────┘ │ 继续处理 ▼ │ ┌─────────────────────────────┐ │ │ GltfLoader.process() │────────┘ └─────────────┬───────────────┘ ▼ ┌─────────────────────────────┐ │ parse() 解析GLTF │ └─────────────┬───────────────┘ ▼ ┌─────────────────────────────┐ │ loadNodes() 加载节点 │ └─────────────┬───────────────┘ │ ├─────────────────┐ ▼ ▼ ┌─────────────────────┐ ┌────────────────────────┐ │ loadPrimitive() │ │ loadInstances() │ │ 加载每个图元 │ │ 处理EXT_mesh_gpu_ │ └─────────┬───────────┘ │ instancing扩展 │ │ └──────────┬─────────────┘ ▼ │ ┌─────────────────────┐ │ │ createPrimitive- │ │ │ LoadPlan() │ │ └─────────┬───────────┘ │ │ │ ▼ ▼ ┌────────────────────────────────────────────────┐ │ postProcessGeometry() │ │ 处理缓冲区和准备渲染资源 │ └────────────────────┬───────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────┐ │ new ModelSceneGraph() │ │ 创建模型场景图并初始化节点结构 │ └────────────────────┬───────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────┐ │ buildDrawCommands() │ │ 为每个可见primitive创建绘制命令 │ └────────────────────┬───────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────┐ │ ModelSceneGraph.pushDrawCommands() │ │ 构建渲染管线,包括InstancingPipelineStage │ └────────────────────┬───────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────┐ │ InstancingPipelineStage.process() │ │ 处理实例化数据,创建实例缓冲区 │ │ 修改shader以支持硬件实例化 │ └────────────────────────────────────────────────┘
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:幽灵

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 幽灵AI 许可协议。转载请注明出处!