二、语义
在InputStruct(顶点着色器传入参数的结构体)中,名字是可以更改的,MeshRender传参的时候,为了能对应上这些数据,因为每个字段后面都必须加上语义,告诉MeshRender这个
字段储存什么数据。
POSITION 模型顶点信息,模型坐标
NORMAL 法线信息
TANGENT 切线信息
TEXCOOD(n) 从顶点传递到片段 高精度
COLOR float4 从顶点传递到片段 低精度
SV_POSITION 经过mvp矩阵 把顶点坐标转换到屏幕坐标的位置信息
SV_TARGET 输出到那个renderer target(相机)上面,默认0
三、矩阵变换
Unity里面变换矩阵都是左乘,矩阵乘法不满足交换律
M 模型空间转换到世界空间
V 世界空间转换到相机空间
P 3D坐标系转换成2维屏幕坐标系
例子:假设有A,B两个物体,和C相机 ,A物体是B物体的子物体,将A的坐标转换到相机空间下
将A物体坐标从B空间转到世界空间:Vector3 worldpos = B.tranform.localToWorldMatrix.MultiplyPoint(A.transform.localPosition);
将A物体坐标从世界坐标转到相机空间:C.tranform.worldToLocalMatrix.MultiplyPoint(worldpos);