View Design
Responsibilities
- Convert world-space points and directions into camera space.
- Project camera-space points into viewport coordinates.
- Provide backend-neutral perspective-correct depth interpolation.
- Keep terminal and backend concerns outside the view package.
Conventions
Camera-space positive z is in front of the camera. Camera3::look_at builds a view transform using right, true_up, and forward basis vectors.
Limitations
The first version exposes compact projection helpers instead of full clipping, near/far planes, or unprojection.