2

几年来我一直在学习和使用 Objective-C 和 cocos2d(iOS 游戏引擎),所以我决定从 iOS 设备上的 OpenGL ES 开始。我已经开始阅读一本涵盖这个主题的书,但是我在这方面的背景很少,我不得不承认我有点迷茫。我是一个非常实际的人,我只通过自己做事来学习。这本书确实给出了一些很好的例子,但不幸的是大部分都涵盖了三角形。

所以,我有几个关于 OpenGL 的问题:

  • 顶点真的需要以逆时针顺序声明以防止剔除吗?
  • OpenGL 真的会根据三角形绘制所有形状吗?
  • 如果是这样,我将如何绘制一个矩形?

如果有人可以编写一个快速的顶点数组示例来说明如何在屏幕上绘制矩形,我将不胜感激。不需要缓冲区或任何东西,实际上只是矩形的顶点。

4

1 回答 1

2

OpenGL ES 2.0 支持以下渲染类型:GL_POINTS、GL_LINE_STRIP、GL_LINE_LOOP、GL_LINES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN 和 GL_TRIANGLES。

如果您忽略绘制点和线的那些,您可以在三角形带三角形扇形和简单三角形之间进行选择。要绘制一个矩形,您可以轻松地使用两个三角形。

要指定面部剔除的顺序,您可以使用glFrontFace。然而,它的常见做法(据我所知)使用逆时针排序。

如果您在为 ios 找到好的 opengl es 2.0 教程时遇到问题,您可能应该在某些平台上寻找一些教程。WebGL 和 Android 也在使用 opengl es 2.0,并且(除了语法)代码看起来几乎相同。

于 2012-12-18T20:11:37.353 回答