|  | Texturen im Allgemeinen 
Texturen sind prinzipiell fast das gleiche wie Zusammenfassungen von Objekten; sie werden intern genauso verwaltet, und auch fast genauso
in der Script-Sprache definiert. Zusammenfassungen nehmen ja nach erfolgter Schnittpunktberechnung die Farbe des Objektes an, auf dem der
Schnittpunkt liegt. Und das wird jetzt geändert: Die Farbe, die die Textur annimmt, wird aus der Position des Schnittpunktes im Raum berechnet.
Es handelt sich hier also um wirkliche 3D-Texturen, und nicht nur um die Projektion einer zweidimensionalen Texturen. Die Textur setzt sich also
quasi auch im Inneren der Objekte fort.[nach oben]Für jedes Texturobjekt muss jetzt genau ein Textur-Basisalgorithmus ausgewählt werden (in der Implementierung ist dies bei mir ein eigenes
C++-Objekt). Er sorgt für die Zuordnung von Farben zu Koordinaten. Dazu kommen beliebig viele Textur-Modifizierer: Sie skalieren, rotieren und
verschieben die Textur. Dabei werden die Koordinaten zuerst von den Modifizierern zurücktransformiert, und danach passiert erst die
Farbzuordnung mittels Basisalgorithmus.
 Bei der Vorstellug der Basisalgorithmen für Marmor und Holz wird man sich leicht wundern, denn die Basisalgorithmen an sich liefern nicht
direkt etwas, was wie Holz oder Marmor aussieht. Damit man eine realistische Textur erhält, braucht man noch einen speziellen Modifizierer:
Die Turbulenz, die ich ganz unten erkläre. Dabei wird die Textur nach einer bestimmten Regel durcheinangergewirbelt.
 
 | 
| |  | Basistextur: Würfel | 
 | Basistextur: Würfel 
 
Dies ist die einfachste Textur. Das Bild erklärt eigentlich schon alles: Es handelt sich einfach um aufgeschichtete Farbwürfel bzw. ein
3D-Schachbrett.
[nach oben] 
 | 
| |  | Basistextur: Marmor | 
 | Basistextur: Marmor 
 
Diese Textur sieht zwar erstmal überhaupt nicht wir Marmor aus. Etwas Turbulenz liefert aber direkt ein verblüffendes Ergebnis, doch
dazu mehr weiter unten.[nach oben]Bei dieser Basistextur handelt es sich einfach um ein Streifenmuster, wobei die weichen Übergänge mit dem Sinus der x-Koordinate erzeugt werden.
Um die Breite/Schärfe der Streifen zu beeinflussen, kann man den Sinus nuch in eine beliebige Potenz erheben. Ein höherer Exponent sorgt
dabei für schärfere Streifen.
 
 | 
| |  | Basistextur: Holz | 
 | Basistextur: Holz 
 
Die Grundlage für die Holztextur sind konzentrische Kreise um die y-Achse. Genauer gesagt: Die Farbe wird durch den Abstand von der
y-Achse bestimmt. Wenn man von innen nach außen geht, dann folgt die Farbe einer Art Sägezahn-Kurve
[nach oben] 
 | 
| |  | Basistextur: Landschaften | 
 | Basistextur: Landschaften 
 
Der Name deutet schon an, wofür diese Textur gedacht ist; man kann sie natürlich auch für andere Dinge brauchen.[nach oben]Man definiert dabei selbst beliebig viele Farbverläufe entlang der y-Achse. Damit kann man bei Landschaften z.B. höheren y-Werten die
Farbe weiß zuordnen, um damit schneebedeckte Gipfel zu erhalten etc.
 
 | 
| |  | Basistextur: XY-Projektion eines Bitmaps | 
 |  | Basistextur: Zylinderprojektion eines Bitmaps | 
 |  | Basistextur: Kugelprojektion eines Bitmaps | 
 | Basistextur: Projektion eines Bitmaps 
 
Hier wird eine Textur aus einer Windows-BMP-Datei gelesen und auf die Objekte "projiziert". Dabei gibt es drei verschiedene Projektionen:
Bei der XY-Projektion wird das Bitmap einfach frontal auf die Objekte projiziert. Das heißt, die x- und y- Koordinaten im Raum geben auch
die Koordinaten auf dem Bitmap an.[nach oben]Die zweite Möglichkeit ist die Zylinderprojektion. Dabei wird die y-Komponente im Bitmap weiterhin mit der y-Komponente im Raum identifiziert;
die x-Komponente im Bitmap ergibt sich allerdings aus dem "Längengrad".
 Was noch fehlt, ist schließlich die Kugelprojektion. Dabei wird die y-Komponente im Bitmap aus dem Breitengrad, die x-Komponente aus dem
Längengrad berechnet.
 
 | 
| |  | Basistextur: Wolken | 
 | Besondere Basistextur: Wolken 
 
Das Besondere an dieser Textur ist, dass sie nicht die Farbe des Objektes modifiziert, sondern die Transparenz und Lichtreflexion.
Gedacht ist sie eigentlich ausschließlich, um sie auf Staub anzuwenden. Mit noch etwas Turbulenz sieht das schon ganz brauchbar aus.
Ansonsten hat die Textur große Ähnlichkeit mit der Marmor-Textur.
[nach oben] 
 | 
| |  | Marmortextur mit Turbulenz | 
 |  | Holztextur mit Turbulenz | 
 |  | Wolkentextur mit Turbulenz | 
 | Noise und Turbulenz 
 
Noise und Turbulenz sind zwei ganz besondere Textur-Modifizierer. Sie verwirbeln die Textur nach einem bestimmten Schema, aber doch
zufällig durcheinander. Erst damit werden aus den Basistexturen richtig interessante Texturen.[nach oben]Noise und Turbulenz sind ein Kapitel für sich. Anstatt hier alles zu erklären, verweise ich nur auf die
Procedural Texture Page.
 Um schöne Texturen hinzukriegen, ist manchmal ein bisschen Probiererei gefragt; am Anfang kann man ja von meinen Beispielen links ausgehen.
Ich benutze in den Beispielen nur Turbulenz, die liefert in der Regel schönere Ergebnisse.
 
 | 
|  | Copyright (c) 1999-2000 Martin Melcher
 |