OpenGL ES 2.0 Point Sprites Size

| | August 10, 2015

I am trying to draw point sprites in OpenGL ES 2.0, but all my points end up with a size of 1 pixel…even when I set gl_PointSize to a high value in my vertex shader.

How can I make my point sprites bigger?

2 Responses to “OpenGL ES 2.0 Point Sprites Size”

  1. OpenGL ES 2.0 supports Point Sprites; i use them for particles. Just use glDrawElements with GL_POINTS.

    In vertex shader, you set the size with gl_PointSize and use gl_PointCoord in fragment shader for texture mapping.

    My vertex shader:

    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;  
    }
    

    My fragment shader:

    uniform sampler2D tex0;
    varying vec4 vColor;
    
    void main() 
    {
       gl_FragColor = texture2D(tex0, gl_PointCoord) * vColor;
    }
    

    If you are on Android, you can look my french Tutorial. There is a full project with point sprites.

  2. OpenGLES 2.0 does not directly support point sprites. You can either texture your glPoints or manually create a camera-facing and camera-aligned quad centered on a point.

Leave a Reply