尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

cesium源码学习-02packages/engine/Source 目录与文件说明

cesium源码学习-02packages/engine/Source 目录与文件说明 packages/engine/Source 目录与文件说明本文档用于介绍 packages/engine/Source 下每个文件夹、子文件夹与文件的大致作用。1. 模块化阅读建议packages/engine/Source 可以按“基础能力 - 渲染抽象 - 场景系统 - 数据驱动 - 着色器 - 异步任务”的顺序理解模块建议阅读顺序关注重点Core1数学、坐标、时间、几何、资源与底层工具。Renderer2WebGL 资源、状态、渲染命令与 GPU 交互抽象。Scene3场景对象、地球、影像、3D Tiles、模型与渲染流程。DataSources4Entity 数据模型以及和 Scene 的适配。Shaders5GPU 着色器源码与 Renderer/Scene 联动。Workers6后台线程任务如几何生成、数据解码、瓦片处理。Assets补充运行时依赖的静态数据、纹理和图片。ThirdParty补充引擎直接引用的第三方实现。Widget补充历史兼容代码通常不是主阅读入口。2. CoreCore 是整个引擎的基础层其他大多数模块都直接或间接依赖它。路径作用Source/Core基础能力集合包含数学运算、几何对象、坐标系、时间系统、错误处理、资源访问与通用工具。代表文件Cartesian2.js、Cartesian3.js、Matrix4.js、Quaternion.js、JulianDate.js、Rectangle.js、Resource.js、Ellipsoid.js、Geometry.js。适合关注的问题坐标如何表示、矩阵如何变换、时间如何管理、底层资源如何请求、几何数据如何封装。3. RendererRenderer 是对底层 GPU 能力的抽象层负责把上层场景需求转成可执行的绘制命令。路径作用Source/Renderer封装 Buffer、Texture、Framebuffer、RenderState、ShaderProgram、DrawCommand 等底层渲染对象。代表文件Buffer.js、Context.js、DrawCommand.js、Framebuffer.js、Pass.js、RenderState.js、ShaderProgram.js、Texture.js、VertexArray.js。适合关注的问题GPU 资源如何创建、渲染状态如何配置、一次 draw call 如何组织、着色器如何绑定。4. SceneScene 是引擎最核心的一层负责把地球、影像、模型、3D Tiles、相机和各种特效组织成完整场景。路径作用Source/Scene场景主模块涵盖 Camera、Globe、ImageryLayer、Primitive、Cesium3DTileset、PostProcessStage 等。Source/Scene/GltfPipelineglTF 数据预处理流水线处理模型 JSON、buffer、纹理、压缩扩展与兼容转换。Source/Scene/Model模型系统实现负责 glTF/Model 的加载、节点、动画、材质和渲染资源拼装。Source/Scene/Model/Extensions模型扩展处理目录封装不同 glTF 扩展的解析与运行时接入。Source/Scene/Model/Extensions/Gpm模型中 GPM 相关扩展的实现目录。代表文件Scene.js、Camera.js、Globe.js、ImageryLayer.js、Primitive.js、Cesium3DTileset.js、ModelComponents.js、PostProcessStage.js。适合关注的问题一帧场景如何更新、瓦片如何调度、模型如何加载、Primitive 如何进入渲染队列。5. DataSourcesDataSources 是面向 Entity 的数据驱动层主要服务于更高层的声明式可视化 API。路径作用Source/DataSources把 CZML、GeoJSON、KML 或运行时 Entity 数据转换成场景中的可渲染对象。代表文件Entity.js、EntityCollection.js、DataSource.js、DataSourceCollection.js、CzmlDataSource.js、GeoJsonDataSource.js、KmlDataSource.js。适合关注的问题Entity 如何建模、属性如何随时间变化、DataSource 如何驱动 Primitive/Visualizer。6. ShadersShaders 保存 GPU 侧着色器源码和 Scene、Renderer 配合完成实际绘制。路径作用Source/Shaders着色器根目录按渲染用途拆分。Source/Shaders/Appearances各类 Appearance 对应着色器。Source/Shaders/Builtin内置 GLSL 片段库包含常量、函数和结构体。Source/Shaders/Materials材质系统着色器。Source/Shaders/Model模型渲染专用着色器。Source/Shaders/PostProcessStages后处理阶段着色器。Source/Shaders/Voxels体素渲染着色器。代表文件GlobeFS.glsl、GlobeVS.glsl、SkyBoxFS.glsl、PolylineFS.glsl、Materials/Color.glsl、PostProcessStages/FXAA.glsl。适合关注的问题顶点/片元着色器如何配合、材质参数如何进 shader、后处理链路如何实现。7. WorkersWorkers 负责把耗时计算放到后台线程避免阻塞主线程渲染。路径作用Source/WorkersWorker 入口与任务模块如几何生成、地形/矢量数据处理、模型或瓦片相关异步计算。代表文件createVerticesFromHeightmap.js、createGeometry.js、decodeDraco.js、transcodeKTX2.js、upsampleQuantizedTerrainMesh.js。适合关注的问题主线程如何派发任务、Worker 如何序列化数据、几何和纹理如何在后台预处理。8. Assets、ThirdParty、Widget这几个目录不是主业务逻辑入口但在运行时与兼容层上很重要。路径作用Source/Assets静态资源目录包括天文参数、默认纹理、图标、天空盒和地球纹理。Source/ThirdParty引擎直接使用的第三方实现或适配代码。Source/ThirdParty/Workers第三方 Worker 相关实现。Source/Widget历史兼容层代码用于兼容旧的命名方式或导出方式。
返回列表