CesiumJS 2022:ModelExperimental新架构详解:缓存与模型加载

版权申诉
0 下载量 164 浏览量 更新于2024-07-01 收藏 580KB DOC 举报
在CesiumJS 2022的源码解读系列中,第6部分着重分析了新的三维模型(ModelExperimental)架构,该架构是对原有Scene/Model.js模块的升级,旨在优化场景模型的加载、解析、渲染和调度过程。ModelExperimental主要关注于性能提升和扩展性,特别是针对下一代3DTiles(1.1版本)的兼容性和对glTF2.0的支持。 1. ModelExperimental的缓存机制是架构的核心部分,它利用ResourceCache和ResourceCacheKey来管理。ResourceCache是一个类似于静态类的工具,提供了一种全局访问方式,如通过键名`ResourceCache.get("somecachekey")`获取已缓存的资源。这里的资源并非Resource类实例,而是由ResourceLoader的子类所构成,如GltfLoader。通过这种方式,CesiumJS能够高效地复用和管理资源,提高加载速度。 2. 加载与解析过程经过了精心设计。首先,GltfLoader负责初步加载模型数据,然后GltfJsonLoader进一步解析glTF的JSON部分。状态判断在这里也至关重要,确保加载过程的正确性和完整性。此外,采用了ES6Promise,使得模型的加载能够实现异步处理,提高了用户体验。 3. 模型组件的创建基于解析后的glTF数据,构建出符合CesiumJS需求的场景图结构。这一步涉及模型的实例化和组织,确保它们能够在渲染时正确呈现。 4. 在模型的更新和DrawCommand的创建阶段,CesiumJS展示了一种有趣的设计,通过创建DrawCommand来调度渲染任务。这种设计允许更灵活的渲染控制,同时提供了可能的性能优化路径。 5. ModelExperimental是实验性的,这意味着它还在不断迭代和完善中。随着CesiumJS版本的更新,这套架构有望逐步成熟,最终可能去掉"Experimental"的标签。这意味着用户可以期待更稳定、功能更丰富的三维模型支持。 CesiumJS 2022的ModelExperimental架构是Cesium团队对性能和功能扩展的一次重大改进,它革新了模型处理流程,提升了整体性能,并为未来的新技术和标准做好准备。开发者们可以借此更好地利用CesiumJS进行高效的三维场景构建和渲染。