Iphone 如何在iOS中使用OpenGL ES 2.0绘制矩形?

Iphone 如何在iOS中使用OpenGL ES 2.0绘制矩形?,iphone,objective-c,ios,opengl-es,Iphone,Objective C,Ios,Opengl Es,我已经学习和使用Objective-C和cocos2d(iOS游戏引擎)好几年了,所以我决定从iOS设备的OpenGL ES开始。我已经开始读一本涉及这一主题的书,但是在这方面我没有什么背景,我不得不承认我有点迷路了。我是一个非常务实的人,我只是通过自己做事来学习。这本书确实给出了一些很好的例子,但不幸的是大部分都是三角形 因此,我有几个关于OpenGL的问题: 顶点真的需要按逆时针顺序声明以防止剔除吗 OpenGL真的基于三角形绘制所有形状吗 如果是这样,我将如何绘制矩形 如果有人能写一个

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

因此,我有几个关于OpenGL的问题:

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

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

OpenGl ES 2.0支持以下渲染类型:GL_点、GL_线_带、GL_线_环、GL_线、GL_三角形_带、GL_三角形_扇和GL_三角形

如果忽略用于绘制点和线的点和线,则可以在点和线与简单三角形之间进行选择。要绘制一个矩形,可以很容易地使用两个三角形

要指定面剔除的顺序,可以使用。然而(据我所知)通常使用逆时针顺序


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

谢谢您的回答。你的意思是,形状确实是由三角形组成的,对吗?所以一个矩形必须由两个三角形组成,如果我理解正确的话。我不太明白你关于逆时针排序的观点。如果逆时针排序,我不需要指定剔除模式,对吗?你对好的教程有什么好的参考吗?:)标准OpenGL(不是ES)也支持四边形。然而,这在OpenGL3.1中被删除了。所以是的。。每个形状都必须由三角形组成。如果使用逆时针排序,则无需更改任何内容(这是
glFrontFace
的默认值)。不久前我在webgl上使用了这些教程:谢谢,我已经看过了。据我所知,OpenGL在内部绘制三角形,不是吗?因为本教程中的正方形是由其四个角点指定的。所以OpenGL遍历数组并连接这些三角形本身。或者我遗漏了什么?使用四个坐标来渲染正方形是有效的,因为使用了三角形条带(参见答案中的链接)