我正在使用此tutorial 并使它工作,但我只想绘制三角形的点。当我将drawArrays中的模式从GLES20.GL_TRIANGLES设置为GLES20.GL_POINTS时,不会绘制任何内容。或者,仅在顶点着色器中设置点大小也不会绘制任何内容。我错过了什么?
查看这样的代码this 我不确定我需要什么,因为我不想使用纹理,除非我不得不这样做。
答案 0 :(得分:0)
点可以产生出色的粒子效果,如火花或灰尘 粒子在穿过光线时会闪烁。甚至 虽然我们正在使用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