着色器GLSL
CesiumJS PrimitiveAPI 高级着色入门 - 从参数化几何与 Fabric 材质到着色器 - 下篇 - 知乎
明确一个定义,在
Primitive API
中应用着色器,实际上是给Appearance
的vertex- ShaderSource
、fragmentShaderSource
或Material
中的fabric.source
设置着色器代码,它们所能控制的层级不太一样。但是他们的共同目的都是为了 Geometry 服务的,它们会随着 CesiumJS 的每帧 update 过程, 创建 ShaderProgram,创建 DrawCommand,最终去到 WebGL 的底层渲染中。
Cesium图元(三角形)着色
Cesium中的三角形着色可以通过以下步骤实现:
- 创建三角形几何体:使用Cesium提供的几何体创建函数,如Cesium.Geometry.fromPositions(),传入三个顶点的位置信息创建一个三角形几何体。
- 创建顶点属性:使用Cesium.VertexFormat对象定义顶点属性,包括位置、法线、纹理坐标、颜色等。
- 创建顶点数组:根据顶点属性的定义,创建一个包含顶点数据的数组,每个顶点的数据按照属性的顺序排列。
- 创建渲染实例:使用Cesium.Primitive对象创建一个渲染实例,将几何体和顶点数组传入。
- 设置着色器:使用Cesium.ShaderSource对象定义顶点着色器和片元着色器的代码,可以在着色器中实现三角形的着色逻辑。
- 应用着色器:将着色器代码应用到渲染实例中,通过Cesium.Material对象设置着色器的属性,如颜色、纹理等。
- 渲染三角形:将渲染实例添加到Cesium的场景中,通过场景的渲染循环将三角形绘制到屏幕上。
https://www.cnblogs.com/wanghui2011/articles/11301622.html