prev up next

Interpolation

Die Vorgehensweise beim TextureMapping ist Lineare Interpolation. Die ensprechenden Werte bekommt man in dem man die Eckpunkte des entschprechenden Dreiecks interpoliert. Den Start- und End-(u,v) Wert für jede Scanline des Dreiecks erhält man dann aus den (u,v) Werten der einzelnen Eckpunkte.
Seien (u1,v1), (u2,v2) und (u3,v3) die (u,v) Werte einzelner Eckpunkte, dann sind Ustart und Uend :

Ustart = u1 - (u1 - u2)(y1 - y)/(y1 - y2)
Uend = u1 - (u1 - u3)(y1 - y)/(y1 - y3)
wobei y die Höhe der Scanline ist.

Die (u,v) Werte in der Scanline erhält man dann entsprechend
Uscan = Uend - (Uend - Ustart)(Xend -X)/(Xend - Xstart)

wobei Xend und Xstart der Start- und Endpunkt der Scanline, und X der interpolierte Wert aus der Scanline ist.

Die v-Werte berechnet man dann entsprechend.
Vstart = v1 - (v1 - v2)(y1 - y)/(y1 - y2)
Vend = v1 - (v1 - v3)(y1 - y)/(y1 - y3)

Vscan = Vend - (Vend - Vstart)(Xend -X)/(Xend - Xstart)


prev up next