Graphics Reference
In-Depth Information
Abb. 10.12 Mittels prozeduraler Textur erzeugte Holzmaserung
Textur geneigt und ein wenig gedreht ist, entstehen auf den Quaderoberflächen un-
terschiedliche Muster aus konzentrischen Kreisen oder parabelähnlichen Streifen
(Abb. 10.12 ).
Die folgende Funktion (nach einem Vorschlag von Milbradt, auf VisualBasic
umgestellt) ermittelt für beliebige Koordinaten u ; v ; w die Holzfarbe an dieser Stel-
le:
Private Function HolzFarbe(ByVal u As Single,
ByVal v As Single,
ByVal w As Single) As Color
Dim grain As Integer
Dim Radius, Winkel As Single
'
Radius = Sqrt(u * u+v * v)
Winkel = IIf(w = 0.0, 1.570796, Atan2(u, w))
Radius += 2.0 * Sin(20.0 * Winkel + 0.0067 * v)
grain = Radius Mod 60
HolzFarbe = IIf(grain < 40, Color.White, Color.Brown)
End Function
Die Vorteile prozeduraler Texturen sind:
Ihr Speicheraufwand ist minimal, es ist kein Array erforderlich.
Die Texturwerte können an jeder Stelle . u ; v / bzw. . u ; v ; w / berechnet werden.
Sie erreichen optimale Genauigkeit, da Runden und Interpolationen nicht erfor-
derlich sind.
Sie gelten im gesamten Definitionsraum.
Ihre Nachteile sind:
Sie sind selbst für Experten schwer zu erzeugen.
Die mehr oder weniger „manuelle“ Konstruktion komplexer Texturen ist nur mit
sehr viel Aufwand oder gar nicht möglich.
Search WWH ::




Custom Search