Yanıtlar:
OpenGL ES 2.0 Nokta Spritelarını destekler; Onları parçacıklar için kullanıyorum. Sadece kullanmak glDrawElementsile GL_POINTS.
Köşe gölgelendiricisinde, boyutu doku eşlemesinde parça gölgeleyicisiyle ayarlar gl_PointSizeve kullanırsınız gl_PointCoord.
Köşe gölgelendiricim:
uniform mat4 uMvp;
uniform float uThickness;
attribute vec3 aPosition;
attribute vec2 aTexCoord;
attribute vec4 aColor;
varying vec4 vColor;
void main() {
vec4 position = uMvp * vec4(aPosition.xyz, 1.);
vColor = aColor;
gl_PointSize = uThickness;
gl_Position = position;
}
Parça gölgelendiricim:
uniform sampler2D tex0;
varying vec4 vColor;
void main()
{
gl_FragColor = texture2D(tex0, gl_PointCoord) * vColor;
}
Android'de iseniz, benim Fransız Eğitimi öğretebilirsiniz . Nokta sprite ile tam bir proje var.
Şaşırtıcı bir şekilde, glLineWidth () noktaları da büyütür:
GLES20.glLineWidth(8); // Make the edges (and points!) thicker
GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 38);// 38 is number of my vertexes
OpenGLES 2.0 nokta spritelarını doğrudan desteklemez. Ya edebilirsiniz senin glPoints doku veya el bir noktaya merkezli bir kamera bakan ve kamera hizalanmış quad oluşturun.
floatParça gölgelendiricilerinde kesinlik belirtmeyi unutmayın - varsayılanfloatkesinlikleri yoktur ve bazı sürücülerde bu gölgelendiriciler derlenemeyebilir.