Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

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?

share|improve this question
add comment

2 Answers

up vote 16 down vote accepted

OpenGL ES 2.0 support 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.

share|improve this answer
add comment

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.

share|improve this answer
4  
False. use GL_POINTS and gl_PointSize in vertex shader –  Ellis Aug 3 '11 at 20:39
    
@Ellis Well he kind of said that. If you look at the link posted it talks about the GL ES 1 part that was deprecated, and how to "texture your glPoints" –  bobobobo Jan 2 '13 at 0:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.