Yanıtlar:
OpenGL ES 2.0 Nokta Spritelarını destekler; Onları parçacıklar için kullanıyorum. Sadece kullanmak glDrawElements
ile GL_POINTS
.
Köşe gölgelendiricisinde, boyutu doku eşlemesinde parça gölgeleyicisiyle ayarlar gl_PointSize
ve 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.
float
Parça gölgelendiricilerinde kesinlik belirtmeyi unutmayın - varsayılanfloat
kesinlikleri yoktur ve bazı sürücülerde bu gölgelendiriciler derlenemeyebilir.