要理解矩阵的几何意义,每个矩阵其实都相当于是一个变换关系,一个矢量通过和旋转矩阵相乘得到一个新的矢量,可以理解为这个矢量进行了一次旋转变换。
关于线性变换,要遵守一个顺序,先进行缩放,再旋转,最后平移
标准的三变换矩阵为
1 0 0 tx cosθ 0 sinθ 0 kx 0 0 0
0 1 0 ty 0 1 0 0 0 ky 0 0
0 0 1 tz -sinθ 0 cosθ 0 0 0 kz 0
0 0 0 1 0 0 0 1 0 0 0 1
在unity中,世界空间坐标系和模型空间坐标系采用的都是左手坐标系,即x正方向为右,y正方向为上,z正方向为前;但是观察空间坐标系采用的是跟openGL一致的右手坐标系,即z正方向为后。
scene场景中点击摄像机出现的三个坐标轴不是观察空间的坐标轴,那是摄像机自身的模型坐标系的坐标轴。
在一个渲染管线内,一个顶点的变换过程为 模型空间到世界空间坐标系(模型变换),世界空间到观察空间(观察变换),观察空间进行裁剪空间准备投影,投影空间到屏幕空间。
UnityShader支持的语义
POSITION 模型空间中的顶点位置,通常是float4类型
NORMAL 顶点法线,通常是float3类型
TANGENT 顶点切线, 通常是float4类型
TEXCOORDn, 顶点的纹理坐标,0表示第