shader原理之个人见解
shader原理入门
在不涉及任何复杂效果的情况下。
shader实际上就是编写顶点着色器和片元着色器。
在编写shader的时候,实际上无论是threejs还是cesium都已经内置了很多的方法和变量。
我们需要做的只是将这些变量取出来,然后通过一些算法算出想要的位置和色值通过gl_Position和gl_FragColor返回着色器。
顶点着色器中:
顶点着色器主要用来获取position(位置)、normal(法线)、uv(贴图)还有一些threejs、cesium内置的属性。然后通过varying传递给片元着色器。
片元着色器中:
在每渲染一个像素的时候都会去调用片源着色器取计算这个像素的颜色等信息。所以其中算法的效率很重要。
着色器中涉及大量矩阵运算,可以回去补一下线性代数了。
cesium中的坐标系问题:
cesium中编写着色器涉及到了各种坐标系,需要将数据矩阵在各个坐标系中来回转换。在api中有转换的方法。
api:https://www.cnblogs.com/s313139232/p/14317366.html
注意:矩阵的点乘a*b和b*a是不同的。
钻研不易,转载请注明出处。。。。。。