iphone opengl es glDrawElements问题

And*_*ndy 1 iphone opengl-es

我对opengl很新,所以我想知道是否有可能使用glDrawElements函数绘制两个单独的正方形(我实际上想绘制两个以上,但是为了学习我只会创建两个)?

顶点数组如下所示:

CGFloat数组[] =

{0.2,0.4,0.2,0.2,0.4,0.2,0.4,0.4,

0.8,1.0,0.8,0.8,1.0,0.8,1.0,1.0,};

非常感谢您的关注!

Bra*_*son 5

您可以通过在顶点使用索引数组,或在正方形之间使用退化三角形来完成此操作.索引数组将允许您指定哪个顶点连接到哪个顶点,并且可以轻松创建许多断开连接的对象.例如,您可以查看我的应用程序Molecules的源代码,其中我渲染许多断开连接的原子并在同一索引数组(实际上是索引顶点缓冲区对象)内进行绑定.iPhone图形硬件针对条带排序的索引三角形进行了优化.

正如大卫所指出的那样,如果你仍然希望对正方形使用三角形条带,你可以简单地通过在两个正方形之间创建一个额外的退化三角形来连接它们,这两个正方形的边由相同的顶点重复两次,第三个顶点是你的第二个广场的起点.如果你把它画出来,它看起来就像你的两个正方形之间的一条线.现代GPU在去除这些退化三角形方面非常有效.