1

我正在使用本教程 并使其正常工作,但我只想绘制三角形的点。当我将 drawArrays 中的模式从 GLES20.GL_TRIANGLES 设置为 GLES20.GL_POINTS 时,没有绘制任何内容。或者,仅在顶点着色器中设置点大小也不会绘制任何内容。我错过了什么?

看着这样的代码, 不确定我需要什么,因为除非必须,否则我不想使用纹理。

4

1 回答 1

0

简单的 OpenGL 原语”说:

点可以产生出色的粒子效果,例如火花或灰尘粒子在穿过光线时会闪烁。即使我们正在使用 3D 图形,在屏幕上渲染单个点本身也会产生 2D 空间的错觉,因为我们的显示器屏幕是平面的或 2 维的,并且没有任何指示深度的东西。因此,使点看起来具有交互性的一种方法是让它们在屏幕上以有趣的模式移动,例如 圆形、螺旋形以及正弦和余弦公式的变化

编辑
但如果你只想让你的点可见,你可以使用glPointSize(float size)glPointSize(int size)像这样:

gl.glPointSize(5.0f);
gl.glDrawElements(...);    

另一方面,OpenGL ES 2.0 支持点精灵,在顶点着色器中,您可以使用 gl_PointSize 设置大小,如下所示:

uniform float uThickness;
...
gl_PointSize = uThickness;    

参考:
stackexchange
wikibooks
Pro Open GL ES for Android

于 2012-04-23T09:52:24.977 回答