Entwicklung eines BRDF-Shader-Plugins für Cinema 4d
Entwicklung eines BRDF-Shader-Plugins für Cinema 4d
Entwicklung eines BRDF-Shader-Plugins für Cinema 4d
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Nachdem die <strong>BRDF</strong>-Werte der darüber und darunter liegenden Zeile gewichtet<br />
wurden, muss dies rekursiv <strong>für</strong> alle folgenden Winkelwerte geschehen.<br />
Pseudocodeausschnitt 6 aus der Funktion GetInterpolatetValue zeigt den<br />
rekursiven Aufruf der Funktion <strong>für</strong> die nächste Spalte bis zu einer maximalen<br />
Rekursionstiefe von 3. Bei der maximalen Tiefe bzw. bei φo in Spalte 3<br />
(Spalte 0 entspricht θi) angekommen, werden die beiden <strong>BRDF</strong>-Werte <strong>für</strong><br />
die entsprechenden Zeilen ausgelesen, gewichtet und interpoliert zurückgegeben.<br />
Stehen die <strong>BRDF</strong>-Werte, getrennt nach rot, grün und blau in der<br />
Datei, werden diese getrennt gewichtet und in Vektor p zurückgegeben.<br />
1 i f ( column < 3)<br />
2 {<br />
Listing 6: Pseudocode: Rekursive Interpolation<br />
3 p = GetInterpolatedValue ( t h e t a _ i , phi_i , theta_s ,<br />
phi_s , bottomLine , nextColumn ) ∗ weightBottom<br />
4 + GetInterpolatedValue ( t h e t a _ i , phi_i , theta_s ,<br />
phi_s , topLine , nextColumn ) ∗ weightTop ;<br />
5 }<br />
6 else<br />
7 {<br />
8 i f ( numberOfBrdfValues == 1)<br />
9 {<br />
10 p = bottomLineBrdfValue ∗ weightBottom +<br />
topLineBrdfValue ∗ weightTop ;<br />
11 }<br />
12 e lse<br />
13 {<br />
14 p . x = bottomLineBrdfValueR ∗ weightBottom +<br />
topLineBrdfValueR ∗ weightTop ;<br />
15 p . y = bottomLineBrdfValueG ∗ weightBottom +<br />
topLineBrdfValueG ∗ weightTop ;<br />
16 p . z = bottomLineBrdfValueB ∗ weightBottom +<br />
topLineBrdfValueB ∗ weightTop ;<br />
17 }<br />
18 }<br />
19 return p ;<br />
Das Ergebnis ist ein interpolierter <strong>BRDF</strong>-Wert <strong>für</strong> die beiden Winkelpaare<br />
zur Lichtquelle und zum Betrachter. In Abschnitt 4.5 wird genauer auf<br />
dessen Weiterverwendung eingegangen.<br />
34