glTF和glb格式与模型渲染,CesiumJS 中的 glTF 渲染系统以该类为核心
2026/4/6 14:45:40 网站建设 项目流程
CesiumJS 中的 glTF 渲染系统以该类为核心该类为加载和渲染 3D 资产提供了高层次的抽象。该系统支持 glTF 2.0 规范包括多种压缩、元数据和实例化的扩展。该架构采用模块化的“流水线阶段”设计将 glTF 组件转换为 GPU 可用的绘制命令。Model模型架构该类是3D资产的主要入口无论是独立文件还是内嵌的图块。它通过场景图来协调加载过程并管理视觉状态。ModelCesium3DTilesetGltfLoader模型glTF资产的主要原语。它应通过以下方式构造Model.fromGltfAsync packages/engine/Source/Scene/Model/Model.js49-52ModelSceneGraph管理 glTF 中定义的节点、皮肤和动画的层级结构packages/engine/Source/Scene/Model/Model.js38ModelRuntimePrimitive表示单个可渲染单元glTF 原语并存储渲染所需的流水线阶段序列packages/engine/Source/Scene/Model/ModelRuntimePrimitive.js49-108模型实体关系下图展示了高层类与底层渲染原语及发送给 的命令之间的关系。ModelContext资料来源packages/engine/Source/Scene/Model/Model.js38 packages/engine/Source/Scene/Model/ModelRuntimePrimitive.js49-108 packages/engine/Source/Renderer/Context.js41-71渲染流水线阶段CesiumJS 采用解耦流水线架构处理 glTF 数据。每个配置一个列表ModelRuntimePrimitivepipelineStages packages/engine/Source/Scene/Model/ModelRuntimePrimitive.js98这些阶段负责更新着色器的源代码、统一和顶点属性。艺名目的GeometryPipelineStage处理基本顶点属性位置、法线、tex坐标packages/engine/Source/Scene/Model/ModelRuntimePrimitive.js16MaterialPipelineStage处理 glTF PBR物理基渲染材料packages/engine/Source/Scene/Model/ModelRuntimePrimitive.js19FeatureIdPipelineStage摘录功能包含用于拣选和样式的 IDpackages/engine/Source/Scene/Model/ModelRuntimePrimitive.js15SkinningPipelineStage为动画角色应用GPU蒙皮packages/engine/Source/Scene/Model/ModelRuntimePrimitive.js30DequantizationPipelineStage用于解压压缩顶点数据的句柄KHR_mesh_quantizationpackages/engine/Source/Scene/Model/ModelRuntimePrimitive.js12有关具体阶段和绘制命令生成的详细信息请参见模型流水线。着色器系统模型着色器和通过从活跃流水线阶段拼接的片段动态生成。ModelVS.glslModelFS.glsl顶点着色器ModelVS处理坐标变换、变形、蒙皮以及将属性传递给片段着色器packages/engine/Source/Shaders/Model/ModelVS.glsl10-171片段着色器ModelFS处理材质、光照PBR和可见性效果如裁剪平面packages/engine/Source/Shaders/Model/ModelFS.glsl43-155着色器执行流程下图展示了 glTF 片段着色器内的执行顺序。资料来源packages/engine/Source/Shaders/Model/ModelFS.glsl64-155定制化与专业渲染glTF 系统可扩展支持用户定义逻辑和专用数据格式自定义着色器用户可以通过 API 向模型流水线注入 GLSL 代码。这允许自定义程序纹理、顶点位移和材质覆盖。详情请参见自定义着色器。CustomShader高斯Splats通过扩展支持高保真基于点的渲染。详情请参见高斯散块。KHR_gaussian_splatting全景将全景影像和街景服务整合进场景。详情请参见全景和街景。选取与元数据在 glTF 系统中拨片由PickingPipelineStage packages/engine/Source/Scene/Model/ModelRuntimePrimitive.js24它会渲染独特的“选色”到PickFramebuffer packages/engine/Source/Scene/PickFramebuffer.js15-32系统还支持 允许着色器在EXT_structural_metadatametadataStage packages/engine/Source/Shaders/Model/ModelFS.glsl72-75

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询