前言
Primitive是cesium核心api之一,与entity方式绘制方式(基于数据)不同,primitive更接近渲染引擎底层。entity适合以数据绘制实体,而primitive更适合图形学对有webgl经验的更亲和。primitive绘制的图形比entity添加的实体性能更好,webgl特性使primitive能绘制更多样式的图形。
Primitive
特性
1 由两部分组成
(1)几何形状(Geometry):定义了Primitive的结构,例如三角形、线条、点等
(2)外观(Appearance ):定义Primitive的着色(Sharding),包括GLSL(OpenGL着色语言,OpenGL ShadingLanguage)顶点着色器和片段着色器( vertex and fragment shaders),以及渲染状态(render state)
2 使用Geometry和Appearance 具有以下优势:
(1)性能:绘制大量Primitive时,可以将其合并为单个Geometry以减轻CPU负担、更好的使用GPU。合并Primitive由web worker线程执行,UI保持响应性
(2)灵活性:Geometry与Appearance 解耦,两者可以分别进行修改
(3)低级别访问:易于编写GLSL 顶点、片段着色器、使用自定义的渲染状态
3 同时具有以下劣势:
(1)需要编写更多地代码
(2)需要对图形编程有更多的理解,特别是OpenGL的知识