osg中采用的左乘操作
左乘操作(全局坐标系)..即左边的是先执行变换的.
OpenGL的: newpos = R* T * oldpos //先执行平移 后执行 旋转 (全局坐标系)
osg当中: newpos =oldpos * T *R //先执行平移 后执行旋转 (全局坐标系)
因为在osg当中矩阵执行的操作则是行矩阵操作.因此为了跟OpenGL的列矩阵做同步 而不在定义的时候就相当于做了一个转置操作.即
2 复合变化顺序
复合变换是从左到右构造的。
造成顺序很重要的一个原因就是,像旋转和缩放这样的变换是针对坐标系的原点进行的。
缩放以原点为中心的对象与缩放已离开原点的对象所得到的结果不同。 同样,旋转以原点为中心的对象与旋转已离开原点的对象所得到的结果也不同。
---->所以在有旋转、缩放、平移都存在时, 先写旋转、缩放 最后写平移矩阵
阅读(2596) | 评论(0) | 转发(0) |