cesium有几个默认的用法,不知道如何翻译,但是不了解还是感觉很不舒服:
1、带有scratch部分的关键词,主要是一些全局的临时变量,用于减少内存的申请,大部分是在某个函数的开始部分清空内容,参与计算,计算完成后再次清空内容;
2、带有Derived部分的关键词;
-
DerivedCommand是根据Command中的shader添加了一些自己的glsl代码,但是与Command使用相同的几何数据;
-
DerivedCommand 依附于Command存在,索引更新实体时,也要相应你的更新DerivedCommand;
-
Derived主要是用于多个命令的参数大体相同,不用重新创建命令,减少重复cpu执行过程,而且命令主要用于绘制,DerivedCommand 依附于Command存在,在绘制的时候减少webgl命令的切换,提高执行效率;
-
此外Resource也有Derived的方法,主要是tileset.json中都是相对路径,需要使用最初的baseUrl,所以通过Derived方法实现。
3、cesium中的很多处理过程是流程式的,比如地形瓦片、3DTiles等处理过程,这些过程都有各种处理状态,例如:准备状态、开始下载、下载完成、正在处理、处理完成等。
这些流程式的过程一般都会使用pass、state或者passState标识。
但是在很多时候要进行各种状态的判断,判断方式都是使用“==”感觉有写累赘,例如使用下面这种方式感觉更好:
//primitive.js中
// cesium 原本的方式
if (
this._state !== PrimitiveState.COMPLETE && // 数据状态不是完成
this._state !== Primiti

本文详细介绍了Cesium的几个关键用法,包括scratch变量、DerivedCommand的使用和流程式处理,以及类的结构。同时,讨论了抗锯齿实现、大坐标处理方法和对象销毁的处理策略,揭示了Cesium提高性能和效率的内部机制。
最低0.47元/天 解锁文章
4646

被折叠的 条评论
为什么被折叠?



