Discussion 3

Bullets


Rasterization pipeline

Real world example

Metal Graphics Rendering Pipeline

🍿 If time permits: Demo per-vertex & per-fragment lighting with Metal

Cubic Hermite Interpolation

Hermite basis functions

\begin{align} P(t) & = \begin{bmatrix}t^3 & t^2 & t^1 & t^0\end{bmatrix} \begin{bmatrix}a \\ b \\ c \\ d\end{bmatrix} \\ & = \begin{bmatrix}H_0(t) & H_1(t) & H_2(t) & H_3(t)\end{bmatrix} \begin{bmatrix}h_0 \\ h_1 \\ h_2 \\ h_3\end{bmatrix} \\ & = \begin{bmatrix}H_0(t) & H_1(t) & H_2(t) & H_3(t)\end{bmatrix} \begin{bmatrix}P(0) \\ P(1) \\ P'(0) \\ P'(1)\end{bmatrix} \end{align}

Catmull-Rom Interpolation

Plug-in Cubic Hermite Interpolation

\begin{align} P(t) & = \begin{bmatrix}H_0(t) & H_1(t) & H_2(t) & H_3(t)\end{bmatrix} \begin{bmatrix}P(0) \\ P(1) \\ P'(0) \\ P'(1)\end{bmatrix} \\ & = \begin{bmatrix}H_0(t) & H_1(t) & H_2(t) & H_3(t)\end{bmatrix} \begin{bmatrix}0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -1/2 & 0 & 1/2 & 0 \\ 0 & -1/2 & 0 & 1/2\end{bmatrix} \begin{bmatrix}P_0 \\ P_1 \\ P_2 \\ P_3\end{bmatrix} \end{align}

Bézier curves & surfaces

🖍 Board work on de Casteljau's algorithm & Berstein polynomial

Board work at the end of section