著色器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
https://www.cnblogs.com/onsummer/p/14212009.html
https://blog.51cto.com/u_15080020/4200536