shader着色器

1.数学

    齐次坐标:点p=a+b+c+o(原点),向量p=a+b+c,所以向量的其次坐标(a,b,c,0),点(a,b,c,n)

            其次坐标变换,n>1放大,n<1缩小

                                对称变换 ,| -1   0    0   0  | 

                                                   |  0   1    1   0  |

                                                   |  0   0    1   0  |

                                                   |  0   0    0   1  |

[x,y,z] = [x,y,z,n] * Mat变换矩阵

T1 = { x11,x12,x13,x21,x22,x23,x31,x32,x33}比例、旋转、对称、交错变换

T2 = {x41,x42,x43}平移变换

T3 = {x14,x24,x34}投影变换

T4 = {x44}整体比例缩放

                参考:https://blog.csdn.net/zx3517288/article/details/79154036

    四元数:(x,y,z,w),(x,y,z)表示向量,w表示旋转角度,

            四元数q1*q2叉乘:
                      (w1*w2 - x1*x2 - y1*y2 - z1*z2) +
                      (w1*x2 + x1*w2 + y1*z2 - z1*y2) i +
                      (w1*y2 - x1*z2 + y1*w2 + z1*x2) j +
                      (w1*z2 + x1*y2 - y1*x2 + z1*w2) k

                参考:https://www.cnblogs.com/mengdd/p/3238223.html

2.glsl

    顶点shader和片段shader

    attribute顶点相关,uniform顶点无关数据,varying顶点和片段之间传递数据

    变量前加highp、mediump、lowp精度声明

    vec4:rgba、顶点坐标(齐次坐标)、xy成员返回vec2,xyz成员返回vec3

    vec3:法线坐标(顶点所在面的法线)、

    vec2:纹理坐标

    sampler2D:访问二维纹理

    raymarch:光线步进(3dmax中的射线检测)

    sdf:符号距离函数,物体外部点值>0,物体内部点值<0,物体表面上的点==0

    法线坐标参考:https://blog.csdn.net/zhw_giser/article/details/11950307

3.hlsl

   

4.shader toy(webgl使用glsl规范)

       vscode shader toy 插件

        学习的网站:https://juejin.im/post/5ba451f3e51d4527ed001f0a

                           https://www.shadertoy.com

                           https://thebookofshaders.com/05/?lan=ch

5.shader editor(goole插件或者网页)

        http://shdr.bkcore.com/

6.shader-scholl

       cnpm install -g shader-school   运行shader-school命令

7.geeks3d

        http://www.geeks3d.com/shader-library/

8.glsl参考

      https://www.cnblogs.com/mazhenyu/p/3804518.html

你可能感兴趣的:(开发随笔)