我如何在OpenGL ES 2.0中描述一个正方形?

我需要使用OpenGL ES 2.0在Xcode中绘制一个Tic-Tac-Toe板。 我是graphics编程新手,无法在iOS中的opengl中绘制正方形的信息。 我看了Ray的教程,很好,但是他讲的是绘制一个旋转的立方体。 我只想要一个方块; 我怎样才能描述一个OpenGL的广场?

Ray的这个教程涵盖了OpenGL渲染管道的准备和描述正方形所需的设置。 这是关于一半。

具体来说,要绘制一个正方形,您需要绘制两个三角形。 雷的代码像这样组织他们:

雷文德里希广场的定义

这是四个顶点和六个索引(两组三个):

Vector2 vertices[] = { Vector2(1, -1), Vector2(1, 1), Vector2(-1, 1), Vector2(-1, -1) }; short indices[] = { 0, 1, 2, 2, 3, 0 }; 

(Ray的教程使用3D位置,并提供了颜色信息,为简洁起见,我将其排除在外)。

使用glBufferData将这些数据存储到适当的缓冲区(假设您以前创建了两个缓冲区):

 glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer); glBufferData(GL_ARRAY_BUFFER, 4 * sizeof(Vector2), vertices, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuffer); glBufferData(GL_ELEMENT_ARRAY_BUFFER, 6 * sizeof(short), indices, GL_STATIC_DRAW); 

然后使用glDrawElements将绘图命令提交给卡片。

请注意,您可能需要根据当前的投影matrix调整顶点的坐标(等等)。 当变换stream水线configuration了一系列单位matrix时,提供的坐标将填满屏幕,但只适用于初始引导渲染。