iOS Core 系列知识OpenGL、BeautifyiOS 开发

OpenGL ES(四) 变换

2016-10-11  本文已影响1165人  cdcyd

基本变换:平移(translation)、旋转(roration)、缩放(scale)、透视(perspective),这4个基本变换可以单独使用,也可以组合使用(两个基本变换可以使用矩阵乘法组合起来)
注意:当使用组合变换时,顺序很重要,例如平移和旋转组合,先平移和先旋转会得到两个完全不不同的结果

所有的基础变换矩阵,都可以通过GLKit/GLKMatrix4.h里的函数构建

projectionMatrix 和 modelviewMatrix
当我们构建好了变换矩阵之后怎么传递的OpenGL呢?GLKBaseEffect有一个transform的属性,其中有两个矩阵分别是projectionMatrix和modelviewMatrix
projectionMatrix:投影矩阵,下面就是设置一个正投影的代码

// 伪代码
const GLFloat aspect = view.width/view.hight;
baseEffect.transform.projectionMatrix = GLKMatrix4MakeOrtho(-0.5 * aspect,
                                                            0.5 * aspect,
                                                            -0.5,
                                                            0.5,
                                                            -50,
                                                            50);

modelviewMatrix:模型矩阵,下面是设置一个沿z轴平移的矩阵

// 伪代码
baseEffect.transform.modelviewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -3.0f);

Demo下载地址:https://github.com/cdcyd/CCOpenGLES

上一篇下一篇

猜你喜欢

热点阅读