GLTools-GLFrame概念

学习OpenGL也有一些日子的,最近终于有点弄明白角色帧的含义了,这里在此简单记录下,有说的不对的可以留言。

其实角色帧也叫做观察者,通常移动的物体称为角色,只有角色才会有自己的变化,所以其实GLFrame是拿来做变化用的。可以用来产生模型视图矩阵。来产生位置的移动。

GetCameraMatrix是GLFrame的一个函数,我们通常会用这个来进行设置,我们可以通过此函数来获取一个观察者变换过后的矩阵。


这个函数就是先产生一个旋转矩阵,然后再去产生一个平移矩阵,然后两者做叉乘,其实我们把观察者往前移动,如果物体本身就在我们观察者的前面的话,其实物体是会放大的。所以上面其实为什么要把z轴给取反就是这个意思,变化都是逆变化的,y之所以不用取负数,我目前的想法是如果我vUp取的是负数就代表我脑袋是朝下看的,然后根据矩阵的乘法的话其实坐标也是会反转的,这想想其实就可以了,也有说camera的坐标系是z轴向外是负方向,x轴向左是x的正轴方向,而y轴方向是相同的,这样想,创建旋转矩阵的时候其实也可以想明白。我相机往左,相当于物体向右反转。也就是这里的vUp成为的是矩阵的y列


就比如说我们设置键盘的向左键可以让物体绕着y轴移动

if(key == GLUT_KEY_LEFT)
        viewFrame.RotateWorld(m3dDegToRad(5.0), 0.0f, 1.0f, 0.0f);

我们按了左键之后,物体显示如下,很好的体现了这个说法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值