Computer Graphics
Basics of Computer Graphics
MVP Matrices
To convert from model coordinates \(\displaystyle v\) to screen coordinates \(\displaystyle w\), you do multiply by the MVP matrices \(\displaystyle w=P*V*M*v\)
- The model matrix \(\displaystyle M\) applies the transform of your object. This includes the position and rotation. \(\displaystyle M*v\) is in world coordinates.
- The view matrix \(\displaystyle V\) applies the transform of your camera.
- The projection matrix \(\displaystyle P\) applies the projection of your camera, typically an orthographic or a perspective camera. The perspective camera shrinks objects in the distance.
View Matrix
Reference
Lookat function
The view matrix is a 4x4 matrix which encodes the position and rotation of the camera.
Given a camera at position \(\displaystyle p\) looking at target \(\displaystyle t=p-f\) with up vector \(\displaystyle u\) and right vector \(\displaystyle r\),
this matrix is written as:
r_x r_y r_z 0 u_x u_y u_z 0 f_x f_y f_z 0 p_x p_y p_z 1
Matrix lookAt(camera_pos, target, up) { forward = normalize(camera - target) up_normalized = normalize(up) right = normalize(cross(up, forward) // Make sure up is perpendicular to forward up = normalize(cross(forward, right) m = stack([right, up, forward, camera], 0) return m }