Android OpenGl ES Triangle Fan

时间:2015-02-28 12:53:13

标签: java android opengl-es

我正在尝试在我的应用中使用OpenGL,因此将粘贴的this代码复制到我的项目中。它工作得很好,但我想绘制三角扇而不是仅绘制三角形。如何更改代码以便我可以这样做?

2 个答案:

答案 0 :(得分:0)

使用三角形风扇并没有什么神奇之处。您只需将作为第一个参数传递的基本类型更改为对GL_TRIANGLE_FAN的绘制调用。例如,您的教程代码当前有此调用的地方:

GLES20.glDrawElements(GLES20.GL_TRIANGLES, indices.length,
        GLES20.GL_UNSIGNED_SHORT, drawListBuffer);

您可以将其更改为:

GLES20.glDrawElements(GLES20.GL_TRIANGLE_FAN, indices.length,
        GLES20.GL_UNSIGNED_SHORT, drawListBuffer);

现在您只需添加更多顶点和索引,就可以进入城镇了。

OpenGL定义三角形粉丝的方式,第一点由所有三角形共享。如果指定顶点:

v0 v1 v2 v3 v4 v5 v6 ...

生成的三角形是:

v0 v1 v2
v0 v2 v3
v0 v3 v4
v0 v4 v5
v0 v5 v6
...

相关的基本类型是三角形条带(GL_TRIANGLE_STRIP),它们比三角形扇子更常用。

答案 1 :(得分:-1)

三角扇并不直接存在于opengl es中。如果你想创建三角形粉丝,你需要使用三角形和指标进行绘制。这是一个关于如何完成这项工作的非常好的教程。 http://www.learnopengles.com/tag/triangle-strips/