码迷,mamicode.com
首页 > 其他好文 > 详细

OpenGL ES平移矩阵和旋转矩阵的左乘与右乘效果

时间:2017-08-06 21:58:23      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:opengl es   tran   场景   不同的   世界   指定   效果   作用   距离   

OpenGL ES平移矩阵和旋转矩阵的左乘与右乘

在OpenGL 、OpenGL ES中矩阵起着举足轻重的作用,而矩阵之间的左乘与右乘在效果上是不同的。

一、先平移后旋转

场景效果:人绕树旋转。

原理:以树为参考点,首先将人平移到树坐标系的指定位置(平移矩阵),然后旋转一定角度(旋转矩阵)。

公式:

pos = (matRotate * matTrans * vec4(pos,1.0)).xyz;

其中matRotate表示旋转矩阵;

matTrans表示平移矩阵;

pos表示三维世界的坐标。

 

二、先旋转后平移

场景效果:以太阳为参考点的地球自转。

原理:以太阳为参考点,首先旋转地球(旋转矩阵),然后将地球平移到太阳坐标系的指定位置(平移矩阵)。

公式:

pos = (matTrans * matRotate * vec4(pos,1.0)).xyz;

其中matRotate表示旋转矩阵;

matTrans表示平移矩阵;

pos表示三维世界的坐标。

 

注意事项:

OpenGL|ES是基于右手坐标系运算的,因此在上述公式中,矩阵是从右向左起作用的,也就是距离vec4的pos越近,越先起作用。

 

OpenGL ES平移矩阵和旋转矩阵的左乘与右乘效果

标签:opengl es   tran   场景   不同的   世界   指定   效果   作用   距离   

原文地址:http://www.cnblogs.com/calence/p/7295918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!