如何将Android OpenGL ES 2.0三角形样本转换为点

时间:2012-04-23 05:59:45

标签: android opengl-es-2.0

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

查看这样的代码this  我不确定我需要什么,因为我不想使用纹理,除非我不得不这样做。

1 个答案:

答案 0 :(得分:0)

Simple OpenGL Primitives”说:

  

点可以产生出色的粒子效果,如火花或灰尘   粒子在穿过光线时会闪烁。甚至   虽然我们正在使用3D图形,但渲染单点   屏幕本身 会产生2D空间的错觉 ,因为我们的   监视器屏幕是平的,或二维的,没有什么可以   表示深度。因此,使点看起来具有互动性的一种方法是   让他们以有趣的模式在屏幕上移动,例如    圆形,螺旋形以及正弦和余弦公式的变体

修改
但如果你只想要你的点可见,你可以使用 glPointSize(浮点大小) glPointSize(int大小) 像这样:

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

另一方面,OpenGL ES 2.0支持Point Sprites,在顶点着色器中,你可以用gl_PointSize设置大小:

uniform float uThickness;
...
gl_PointSize = uThickness;    

参考文献:
stackexchange
wikibooks
Pro Open GL ES for Android