Baryzentrische Interpolation im Dreieck
← Hierarchie Ebenen | ● | Bresenham →
Die Rasterisierung findet in der Pipeline zwischen den Per-Vertex und den Per-Fragment-Ops statt.
Prinzip der Rasterisierung:
FĂĽr jedes aus einem projizierten Dreieck generierte (d.h. rasterisierte) Fragment werden die assoziierten Attribute der Eckpunkte (Farbe, Normale, Texturkoordination, etc.) interpoliert → baryzentrische Interpolation.
Innerhalb eines Dreiecks ergibt die baryzentrische Interpolation aus den Eckwerten $s_{1/2/3}$ an den Eckpunkten $\vec{v}_{1/2/3}$ den Skalarwert am Punkt $\vec{v}$.
Bemerkung: Die Determinate $det(\vec{v2}-\vec{v1},\vec{v3}-\vec{v1})$ kann man sich als das Doppelte des Flächeninhalts des Dreiecks $A_{123}$ vorstellen:
Beispiel in 2D:
- $ det(\vec{a},\vec{b}) = \vec{a}.x \cdot \vec{b}.y - \vec{a}.y \cdot \vec{b}.x $
- $ \vec{a} = (1,0)^T, \vec{b} = (0,1)^T $ → $ det(\vec{a},\vec{b}) = 1 $
- $ A_{12} = \frac{1}{2} det(\vec{a},\vec{b}) = \frac{1}{2} $
Damit ergeben sich die Faktoren $w_1$, $w_2$, $w_3$ jeweils als Verhältnis von Flächeninhalten wie im Folgenden am Fall $w_1 = A_{23} / A_{123}$ illustriert (der Faktor $\frac{1}{2}$ kürzt sich heraus):
Rechenbeispiel:
← Hierarchie Ebenen | ● | Bresenham →