Hardware Heritage
Vector balls were the precursor to polygon-based 3D modeling. Instead of drawing expensive triangles, machines used their dedicated sprite or blitter hardware to plot pre-shaded "balls" at projected 3D coordinates.
Amiga Blitter
Vector balls are pure Amiga heritage. By using the Blitter to copy "BOBs" (Blitter Objects), the Amiga could move hundreds of spheres without touching the CPU, outperforming PC polygon engines of the time.
PC Sprite Loops
On PC, this required an ultra-optimized assembly loop to copy transparent sprites to the VGA memory. PC versions were often limited in ball count compared to the Amiga.
Modern Points
The shader uses gl.POINTS and calculates sphere lighting in the fragment shader for every pixel within the point's bounds, ensuring perfectly smooth lighting regardless of zoom.
Vector Balls
Simulating structure through a cloud of sprites.
Legacy ASM (Amiga)
; Project and Blit ball move.w (a1)+,d0 ; X coord move.w (a1)+,d1 ; Y coord move.l #BALL_SPRITE,a0 bsr DrawPreRenderedBOB
Modern GLSL
void main() {
vec2 uv = gl_PointCoord - 0.5;
float d = length(uv);
if (d > 0.5) discard;
float z = sqrt(0.25 - d*d);
vec3 n = normalize(vec3(uv, z));
col = baseColor * dot(n, lightDir);
}