games101笔记——01基础变换

一.学习变换的目的:

无论是影视,还是动画抑或是游戏,都需要描述一个物体的变换,因此,理解变换的原理,才能进一步处理或渲染图像,也就是说,变换是必须的。

二.二维变换:

(1)缩放:

 简单的范围变换,利用表达式即为:x' = 0.5x  ;   y' = 0.5y,而将其转换为矩阵即为

 对应的s = 0.5,展开即为刚才的表达式,第一行和第二行的s即为对x和y的变换。

(2)翻转

 

只需要将x的范围变为负的就完成了变换。 

(3)拉伸

 

这个需要定点理解:

在a点,x的变换为x' = x+a,a = y,y = 1;

在b点,x' = x+0.5a,0.5a = y  ,y = 0.5。由规律可得,x' = x+ay,转换为矩阵的形式

 (4)旋转

对应的简单的正弦余弦变换

(5)平移

在该矩阵中,额外开创了一行一列,为了保证值不变,最下面一行的值为(0,0,1),而在最后一列,tx和ty对应了对x和y的平移变换,如下图所示  

 

 (6)组合变换

任何二维位置的变换都可以用上面的几种变换组合而成,就比如上面这个二维变换,可以先逆时针旋转45度,然后再向右平移到对应的位置,计算过程如下:

 

 计算时的顺序为从右到左,先逆时针旋转45度,再沿着正方向移动1个单位长度。

注意:注意变换的顺序,“先逆时针旋转45度,再沿着正方向移动1个单位长度”和“先沿着正方向移动1个单位长度,再逆时针旋转45度”这得到的结果是不同的。

三.三维变换

三维变化和二维变换非常相似,唯一需要注意的是,在旋转时因为是叉乘,所以有一个坐标系的变换和其余两个不同,需要额外注意一下。

对应的矩阵变换如下面所示:

1.坐标变换

(1)范围:

(2)平移:

 (3)旋转:

 2.自由变换:
在实际应用中,自由变换的情况会更多一些,在许多三维大片中,角色的复杂变换都需要利用自由变换来处理,例如飞机的相关变换:

这时就引出了一个公式——罗德里格斯旋转公式:

 其中,最右边的矩阵为矩阵的叉乘变换,如果想推导一下,用图解释的话即为:

 详细推导请参考:

 [数学]罗德里格旋转公式(Rodrigues' rotation formula) - 知乎

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值