RasterCore
Ready to execute

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