基本类型
基本类型
tag :标签
Cull off :阴影面剔除 /不可见shader面剔除
Shader Target
unity 支持的Shader Target
#pragma target 2.0 - 5.0
Shader Model 1 、2、3、.... 可以理解为是C#语言的不同版本。
二维坐标系旋转
(根据上图的推到)
将坐标系顺时针旋转后,求得点坐标为:
x` = x cos角度 + y sin角度
y` = y cos角度 - x sin角度
将坐标逆时针旋转后,求得点坐标为:
x = x` cos负角度 + y` sin负角度
y = y` cos负角度 - x` sin 负角度
( 坐标变换 顺时针 和 逆时针 的区别在于角度的正负 )
总结
本ke复盘之前学习内容
1、命令缓冲区(Command Buffer)
2、固定函数渲染流水线(Fixed-Function Pipeline)简称固定管线
3、Shader
Gpu流水线上一些可高度编程的阶段,例如一些着色器 (顶点着色器、片元着色器等)由着色器编译出的代码,可以在GPU上运行。依靠着色器我们可以控制流水线上渲染的细节。
算错了 -35
RotX = [cos(a),sin(a),0
-sin(a),cos(a),0
0, 0, 1]
RotY = [cos(a),0,-sin(a)
0,1,0
sin(a), 0, cos(a)]
RotZ = [1,0,0
0,cos(a),sin(a)
0,-sin(a),cos(a)]
和差公式
sin(a+b) = sin(a)*cos(b)+cos(a)*sin(b)
sin(a-b) = sin(a)*cos(b)-cos(a)*sin(b)
cos(a+b) = cos(a)*cos(b)-sin(a)*sin(b)
cos(a-b) = cos(a)*cos(b)+sin(a)*sin(b)
旋转矩阵
点P.X=角度*cos*P的模长
点P.Y=角度*sin*P的模长
P角度=a
P1和P的夹角=b
即
P.X=r*cos(a)
P.Y=r*sin(a)
r=1
则P1的X点 = r*Cos(a+b)
根据和差公式得 = r*Cos(a)*Cos(b)-r*Sin(a)*Sin(b)
化简后得 = P.X*Cos(b)-P.Y*Sin(b)
P1的Y点 = r*Sin(a+b)
根据和差公式得 = r*Sin(a)*Cos(b)+r*Cos(a)*Sin(b)
化简后得 = P.Y*Cos(b)+P.X*Sin(b)
整理得
P1.X = P.X*Cos(b)-P.Y*Sin(b)
P1.Y = P.X*Sin(b)+P.Y*Cos(b)
矩阵写法
[x1,y1]=[cos(b),-sin(b),sin(b),cos(b)]*[x,y]
2D缩放矩阵[kx,0
0,ky]
3D缩放矩阵[kx,0,0
0,ky,0
0,0,kz]
正常
XY:
uniform vec2 _shear;
uniform vec2 _res;
out vec4 fragColor;
void main()
{
vec2 uv = gl_FragCoord.xy/_res;//将坐标系改为0~1
mat2 shaer = mat2(1,_shear.x,
_shear.y,1); //二维切变矩阵 此时_shear.x=-0.2 _shear.y=0
uv *= shaer; //坐标与矩阵相乘
vec4 outcol = texture(sTD2DInputs[0], uv);
vec4 color = outcol;
fragColor = TDOutputSwizzle(color);
}
ab = |a||b|cos&
几何意义:用于求两个向量的夹角
cos&
正为锐角
0为垂直
负为钝角
模型空间→世界空间→相机空间→屏幕空间
世界空间顶点=模型空间顶点*世界矩阵
相机空间顶点=模型空间顶点*世界矩阵*相机矩阵
ab = x1x2 + y1y2
BRDF光照模型=>次世代渲染
ssscai'z
uniform vec2 _res;
uniform vec3 _move;
out vec4 fragColor;
void main()
{
vec3 uv = vec3(gl_FragCoord.xy/_res,1);//映射坐标为0~1
mat3 M = mat3(1,0,_move.x, //x=-0.5
0,1,_move.y,
0,0,1);//平移矩阵
uv = uv * M;//相乘 OpenGL为列向量
vec4 color = texture(sTD2DInputs[0], uv.xy);
fragColor = TDOutputSwizzle(color);
}
摄像机:
近平面:超出近平面范围将被舍弃
远平面:超出远平面范围将被舍弃
FOV:视椎体角度
二维坐标系平移
二维坐标的平移,是平移坐标系。
o`p`(向量) 是 op(向量) 经过 oo`(向量)平移 后得到的。
op`(向量) 是 o`p`(向量)在 XOY坐标系中的呈现。
op`(向量) 坐标等于
x` = x + a
y` = y + b
二维坐标系旋转和平移
x = x` cos角度 + y`sin角度 + a
y = y` cos角度 - x`sin角度 + b
(a,b) 是坐标平移的向量
角度 是坐标先转的角度。