Theme Catppuccin
Make yourself at homeCatppuccin

A softer light for long learning sessions.

Appearance

Loading your preference…

Dark palette

Choose a dark palette to try it.

Light uses Latte. Your choices stay in this browser.

Camera, clipping, depth

SKETCHBOOK / 09 The projection room · 2-week chapter

Page 1 of 3: Name the space before the coordinate

One point takes several forms

Name the space before the coordinate

An object-space vertex is local to a model. A world transform places it in the scene. A view transform describes it relative to the camera. A projection produces clip coordinates, and perspective division and viewport mapping eventually produce a screen location. A three-number position without its space is incomplete debugging information.

Use homogeneous coordinates to compose affine transforms and represent the projection’s w component. Under the common column-vector convention, a chain such as projection × view × model × point applies the rightmost operation first. Other conventions exist; document yours and test a translation and rotation with known points.

The ray reference already builds a perspective camera basis, while the raster reference starts after projection and clipping with ScreenVertex values. The latter does not already contain a hidden 3D camera pipeline. Your diagrams and extension must preserve that distinction.

TRY IT IN YOUR STUDIO

Trace one vertex through named spaces on paper. Check an identity transform, one translation, and one camera-relative point before attempting a rotating cube.

From the page to your own work

Your studio assignment.

Keep coordinate spaces, clipping, and visibility distinct in one small experiment.

A finish line you can see

Your own overlap/depth test plus a near-plane clipping sketch or implementation with documented input and output spaces.

  1. Label object, world, camera, clip, and screen coordinates in your diagram.
  2. Show that overlapping triangle visibility is independent of draw order when their depths differ.
  3. Handle a near-plane crossing before perspective division in your extension.
  4. State the reference raster lab’s screen-space scope honestly.
Keep the evidence in your weekly notebook ↗
Explain it like an engineer

Try answering aloud before opening the review notes. Use your own implementation as evidence.

Why is “divide by z and discard bad vertices” not triangle clipping?
  • A crossing triangle can have visible area even if one vertex is outside.
  • Clipping generates intersection vertices and may split the primitive.
  • Perspective division near zero can create unbounded coordinates.

These prompts support practice; they are not an automatic assessment of your work.

A small creative variation ↗

Animate on paper three positions of one triangle crossing a near plane; draw the surviving polygon each time.

Optional. Save it for later if this chapter already feels full.

Coming back after a break? ↩

Use two overlapping screen-space triangles with constant different depths. Confirm the nearer one wins before introducing a camera.

Books & principles behind this study +

Original Parallax explanations and assignments, with these works for further reading.

YOUR MARGIN NOTES

Leave yourself a good question.

What changed your mind? What would you try next?

Notes are private to this browser and saved as you write.

A CHECKPOINT, NOT A SCORE

Can you explain the idea and try the exercise yourself?

Completion records your own assessment. It does not compile or test your C++.
Companion source 4 files