Skip to content

Coordinate Spaces

Follow one vertex from model space to the pixel it lands on, one stage at a time.

What you should come away with: Where each matrix in the chain hands over to the next, and what the GPU does between them.

Assumes: Projection & the Frustum. It will still make sense without it, but that one comes first.

1 / 6 · Model space
  • frustum
  • tracked vertex
drag or arrow keys to orbit

One vertex, all the way down

Spacexyzw
Model0.500.500.501.00
World1.230.80-0.791.00
View1.230.78-3.711.00
Clip1.851.883.273.71w now carries depth
NDC0.500.500.88÷ w
Screen719149pixels

One corner of the cube, followed the whole way. Watch w pick up the depth at the clip stage — every row after it is that same point divided by that number. The frustum you see in the canvas is not drawn separately: it is the camera’s own frustum pushed through the identical pipeline, which is why it lands exactly on the −1…1 cube at the NDC stage.

Where that leaves you

You can now name which of the six spaces a coordinate is in from the shape of the numbers alone — w still 1, w carrying the distance, ±1 on every axis, pixels counting down from the top — and say what put it there.

This did not teach you rasterisation. The lab follows one vertex to the pixel it lands on and stops; filling the triangle between three such pixels, and interpolating every varying across it with the perspective accounted for, is fixed-function work with no matrix in it and nothing a reader could move.