into the screen space, -1.0 to +1.0. Fragment shaders actually output pixel. You write shading algorithms for the desired effects. GPUs are really good at sampling pixels from textures, bitmaps uploaded to the GPU.
• Append new particles the vertex buffer • Every frame increments its age • Only render particles where age < max life typedef struct { GLfloat x; GLfloat y; GLfloat radius; GLfloat age; GLfloat dissolveAngle; // Color GLfloat red; GLfloat green; GLfloat blue; GLfloat alpha; } SketchPoint;