OpenGL ES 3D 编程与 3D 编程技巧
1. OpenGL ES 3D 相机系统
在 3D 图形编程中,相机系统是一个重要的部分。在 OpenGL ES 里,我们可以通过一些方法来实现相机的功能。
1.1 矩阵栈注意事项
矩阵栈有最大深度限制,通常在 16 到 32 个条目之间,具体取决于 GPU 和驱动程序。在应用程序中,最多使用四个层次结构就足够了。
1.2 简单相机系统实现原理
在之前的例子中,我们可以看到如何在 3D 中实现相机系统。比如使用 glTranslatef() 方法将整个世界沿 y 轴向下移动 2 个单位,由于相机固定在原点,看向负 z 轴,这样就给人一种相机向上移动了 2 个单位的错觉,而所有对象的 y 坐标仍然为零。
如果想要将相机放置在位置 (10, 4, 2),可以使用如下代码:
gl.glTranslatef(-10, -4, -2);
若要让相机绕 y 轴旋转 45 度,则使用:
gl.glRotatef(-45, 0, 1, 0);
也可以将这两个步骤结合起来:
gl.glTranslatef(-10, -4, -2);
gl.glRotatef(-45, 0, 1, 0);
这里的关键是要对变换方
超级会员免费看
订阅专栏 解锁全文
1420

被折叠的 条评论
为什么被折叠?



