shader学习笔记(一)- 利用矩阵对模型顶点进行缩放、旋转、平移

书籍资料参考:
《Unity Shader入门精要》—— 冯乐乐 4.5矩阵的几何意义:变换
视频资料参考:
【技术美术百人计划】图形 1.2.2 矩阵运算
庄懂的技术美术入门课(美术向)-直播录屏-第19课

模型缩放

缩放矩阵

在这里插入图片描述
shader:

float scale=0.5;
vertex.xyz *= 1.0 + scale;

模型旋转

绕x轴旋转矩阵:

在这里插入图片描述

shader:

 vertex.yz = float2(vertex.y * cosθ - vertex.z * sinθ,vertex.y * sinθ + vertex.z * cosθ);

绕y轴旋转矩阵:

在这里插入图片描述

shader:

 vertex.xz = float2(vertex.x * cosθ + vertex.z * sinθ,-vertex.x * sinθ + vertex.z * cosθ);

绕z轴旋转矩阵:

在这里插入图片描述
shader:

 vertex.xy = float2(vertex.x * cosθ - vertex.y * sinθ,-vertex.x * sinθ + vertex.y * cosθ);

注意:

unity中,需要小心旋转的变换顺序是zxy
在这里插入图片描述

模型平移:

平移矩阵:

在这里插入图片描述

shader:

vertex.xyz += float3(moveX,moveY,moveZ);

复合变换:

在绝大多数情况下,我们约定变换的顺序是先缩放,再旋转,最后平移
复合矩阵:从右往左
在这里插入图片描述