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