Zurück: Texturen and Materialien


Weiter: Mehr Texturen





5.1 Texturen

Texturen bestimmen das Aussehen und die Eigenschaften von Oberflächen, wie Farbe, Reflektion, Transparenz, und Rauhigkeit ect. Es gibt 4 Arten von Texturen in Art of Illusion: Uniform, image-mapped, prozedural 2-D und prozedural 3-D. Diese sind hier unten im Detail beschrieben. Wählen Sie Szene->Texturen um eine neue Textur zu erstellen oder eine vorhandene zu editieren. Dabei öffnet sich diese Dialogbox:

Die meisten Optionen sind hier selbsterklärend. Falls bereits Texturen erstellt und in der Liste sind, kann man sie mit Löschen (Delete) aus der Liste entfernen, mit Bearbeiten (Edit) kann man die Textur in ihren Parametern verändern und Kopieren (Copy) erwartet die Eingabe eines Namens für die kopierte Textur - die bis zur Bearbeitung identisch mit der Ursprungstextur ist.

Import ermöglicht Texturen aus anderen AoI Dateien in die aktuelle Datei zu importieren.

Neu (New) auswählen öffnet den rechten Dialog:

Hier können Sie einen Namen für Ihre Textur eintragen und den Typ aus der Dropdown Liste wählen.



Einmal erstellt können Texturen jedem 3D Objekt zugewiesen werden und können in jeder gewünschten Art gemappt werden indem ihre Skalierung, Orientierung und/oder ihre Position relativ zum Objekt angepaßt werden. Texturen können auch in Layern übereinander gelegt werden, um komplexe real wirkende Oberflächen nachzuahmen.


5.1.1 Uniforme (homogene/einheitliche) Texturen

Uniforme Texturen sind die einfachste Art von Texturen in Art of Illusion. Diese verleihen den Objekten diverse Oberflächeneigenschaften gleichmäßig (uniform) auf das ganze Objekt verteilt. Um nun eine uniforme Textur kreieren einfach nur auf Szene -> Texturen und dann im Texturendialog auf Neu und Uniform klicken. Das bringt diesen Dialog hervor:


Eine gerenderte Kugel oben im Dialog zeigt die aktuelle gewählte Textur an. Auf die Vorschau doppelklicken zeigt folgenden Dialog an:

Das ermöglicht die Ansicht zu rotieren und zu zoomen und andere Objekte als die Kugel zur Vorschau zu nutzen.

Die Vorschau kann mit Hilfe der gedrückten STRG Taste und dem Auf - und Abziehen des Mauscursors gezoomt werden, während man mit gedrückter rechter Maustaste panen kann.

Hier unten sind die verschiedenen Eigenschaften die verändert werden können. Es gibt 4 Farben die bestimmt werden können. Einfach auf das Farbfeld klicken - das öffnet das Farbfeld zur Rechten.

Farben werden in 3 möglichen Farbmodellen bestimmt: Farbschattierung, Sättigung und Ausprägung (HSV), Rot, Grün und Blau (RGB) oder Farbschattierung, Sättigung und Helligkeit (HSL).

Die 4 Farbeigenschaften sind:


Diffuse Farbe (Diffuse Colour)
Das ist die Basisfarbe des Objektes. Bei Abwesenheit anderer Eigenschaften sieht das Objekt so aus.

Reflektierende Farbe (Specular Colour)
Die reflektierende Farbe ist die Farbe die vom Objekt reflektiert wird. Dies funktioniert nur wenn der Wert größer als 0 eingestellt wird. (S. unten).

Transparente Farbe (Transparent Colour)
Wenn die Transparenz größer als Null gesetzt ist, ist es diese Farbe, die durch das Objekt hindurchgeleitet wird. (S. unten).

Emissive Farbe (Emissive Colour)
Diese Eigenschaft wird benutzt um leuchtende Objekte zu simulieren. Die gewählte Farbe wird vom Objekt ausgesender (emittiert). Einige Beispiele sind unten zu sehen. In diesen Beispielen wird die Farbschattierung und Sättigung benutzt, die auch für die diffuse Farbe benutzt wird - und das mit variierenden Werten. Die V-Werte der HSV Farben sind direkt proportional zur emittierten Lichtmenge. Deshalb ist das Zuweisen der Helligkeit über das HSV Farbmodel sicherlich am geeignetsten.



Unter den Farbeigenschaften sind 5 numerische Werte verschiedener Eigenschaften einstellbar per Schieberegler oder mit einem Eintrag in das Werte Feld.

Transparenz (Transparency) ist der Grad zu dem das Licht durch das Objekt hindurchgeht. Ein Wert von 1 bedeutet das das Objekt komplett durchsichtig ist, - während ein Wert von 0 bedeutet das das Objekt komplett Opaque (undurchsichtig) ist. Die Bilder unten zeigen Objekte mit einer Transparenz von 0.5. Die Auswirkung der Variation der Transparenten Farbe ist hier gezeigt. Normalerweise wird ein durchsichtiges Objekt das Licht in einer ähnlichen Farbe wie seine diffuse Farbe hindurch lassen. Aber in der Computergrafik sind wir darauf nicht zwingend angewiesen - und können die Realität verbiegen.

Spekularität ist die Reflektivität des Objekts. Ein Wert von 1 bedeutet das das Objekt ein perfekter Spiegel ist, und seine diffuse Farbe ist dann nicht zu sehen. Ein Wert von 0 ist komplett nicht spiegelnd.

Die Bilder zur Rechten zeigen alle Objekte mit der Spekularität 0.3 und zeigen den Effekt der Variation von Reflekierende Farbe.

Plastikartige Objekte reflektieren normalerweise das Licht weiß während metallische Objekte dazu neigen ihre Refelktionen in der diffusen Farbe zu mellieren. In den Beispielen hier sind Farbschattierung (Hue) und Sättigung (Saturation) der diffusen Farbe auch in der Reflekierende Farbe benutzt worden - mit verschiedenen Werten und verglichen mit der "plastik-weißen" Spekularität.


Zusätzlich zur Spekularität ist der Parameter Glanz (Shininess) der die Intensität von Glanzlichtern kontrolliert. Obwohl glänzende Oberflächen eigentlich nur durch Spiegelungen hervorgerufen werden, ist der Glanz-Parameter sinnvoll wenn man z.B. plastikartige Oberflächen darstellen will ohne eine Spiegelung einzusetzen. In den meisten Fällen wollen Sie beides einsetzen Specularität und Glanz. Weiter hier unten sind Beispiele mit verschiedenen Glanz Werten - mal mit, mal ohne Spiegelung.


Rauhheit (Roughness) Dieser Parameter kann genutzt werden um den Effekt von Rauhigkeit auf Oberflächen nachzuahmen, der die Schärfer und Spiegelung einer Oberfläche herabsetzt. Hohe Werte ergeben stärker "geblurrte" Spiegelungen und weitgezogenen Highlights wie unten gezeigt. Beachten Sie bitte das dafür der Glanz/Lichtdurchlässigkeit "enabled" sein muß in den Rendersettings des Raytracers (siehe Rendering) um den Effekt zu sehen.

Wolkigkeit (Cloudiness) kontrolliert den Grad der Tansluzenz für tranzparente Objekte. Höhere Werte verursachen stärkeres Blurring des transmittierten Lichtes wie unten gezeigt. Wie auch beim Rauheit Parameter muss dafür der Glanz/Lichtdurchlässigkeit während des Renderns "enabled" sein.




5.1.2 Bild basierte/gemappte Texturen


Diese Art der Textur ermöglicht die Oberflächeneingenschaften anhand eines 2-D Bildes anzugeben. Diese Bilder werden normalerweise in 2-D Malprogrammen erstellt. Um eine neue bildbasierte Textur zu erstellen klicken Sie einfach auf Szene->Texturen, dann auch Neu klicken und Image Mapped aus der Dropdown-Liste wählen. Folgender Dialog erscheint daraufhin:

Dieselben Oberflächeneingenschaften wie in den Uniforme Texturen Dialog sind hier auch vorhanden. Diesmal sind aber Farbe und Werte bestimmt durch die Auswahl von 2-D Bildern. Das bedeutet die Werte der Parameter variieren über die Objekt Oberfläche entsprechnde dem(n) verwendeten Bild(ern) - anstatt gleichförmig zu sein.

Auf der linken Seite der Dialogbox sind die diffuse, reflektierende, transparente und emissive Farbe angeordnet. Wenn Sie die quadratische Box zur rechten des Textes anklicken, öffnet sich ein Dialogbox die 'Images' heißt. Klicken Sie auf Laden um ein neues Bild einzulesen. Das Bildformat kann dabei *.jpg, *.png, *.gif oder *.hdr sein. Einfach ein Bild finden und dann "Öffnen" um es in den Dialog aufzunehmen. Ein "Thumpnail" Bildchen davon wird sichtbar. Das Bild kann mit einem Klick selektiert werden - dann auf OK klicken. Wenn kein Bild gewünscht ist einfach auf Nichts auswählen klicken.

Beachten Sie das rechts vom Bild immer noch eine "uniform colour" Box ist. Die Farbe die Sie hier wählen beeinflusst das ausgewählte Bild gleichförmig/gleichmäßig.

Wie auch beim Uniform Textur Dialog, wird mit einem Doppelklick auf das Vorschau- Fenster eine Auswahl für das Vorschau Objekt gezeigt. Die Vorschau kann gezoomt (STRG + RMB hoch und runterziehen) und gepant werden (RMB + ziehen).



Die Bilder unten rechts zeigen die Auswirkung vom Zuweisen der Bilder zu den verschiedenen Farbeigenschaften. Das Bild selbst ist links davon gezeigt:



Auf der rechten Seite des Image-mapping Dialoges sind numerische Eigenschaften einzustellen. Die Eigenschaften Transparenz, Specularität, Glanz und Wolkigkeit die auch im Uniform Texturen Dialog verfügbar sind da zunächst, aber zusätzlich sind weitere Eigenschaften vorhanden; Bump Höhe and Verdrängung (Displacement). Diese kontrollieren die "Hügeligkeit" einer Oberfläche. Bump Mapping variiert die Oberflächennormale so, das man glaubt die Oberfläche wäre hügelig oder rauh, während Verdrängung (Displacement Mapping) tatsächlich die Geometrie verändert.

Bei Bildbasierten Texturen ist die Stärke der Tranzparenz, Spiegelung usw. von der gewählten Imagemap bestimmt, die ausgesucht wird indem man auf die quadratischen Boxen neben der Schiebereglern klickt. Wenn kein Bild ausgesucht wurde/wird kann eine gleichmäßige Farbe mit Hilfe der Slider ausgewählt werden. Wenn jedoch ein Bild ausgewählt wird. dann variieren die Eingenschaften über die Oberflächen entsprechend dem Bild. Sie können auswählen, ob mehr die Roten, Grünen oder Blauen Werte benutzt werden um diese jeweiligen Eigenschaften zu bestimmen (in der Stärke). Dieses Auswählen der bestimmenden Farb- Komponente geschieht mit dem Dropdown Feld zur Rechten des Dialogs. Für Bilder die einen Alpha-Kanal oder Transparenz unterstützen (Gif und PNG) wird - sofern so ein Kanal im Bild vorhanden ist eine Komponente namens Mask verfügbar. Das kann hervorragend genutzt werden um Effekte auf der Oberfläche zu begrenzen. Zudem kann der Grad der Transparenz genutzt werden um die Stärke des Effektes zu beeinflussen - natürlich nur im Rahmen des Wertes der mit dem Slider eingestellt wurde. Der am häufigsten auftretende Verwendungsgrund für Masken ist die Textur an bestimmten Stellen durchsichtig zu machen - also im Transparenz Kanal (s. unterstehendes Beispiel). Aber die Benutzung einer Maske kann eben auch in jedem anderen Kanal/Eingenschaft sinnvoll sein.



Die Schieberegleer (Sliders) ändern die Stärke des jeweiligen Effektes. Auf diese Weise kann man nur Teile der Oberfläche transparent oder glänzend aussehen lassen. Einige Beispiele sind hier unten zu sehen:



Der Imagemap Dialog ermöglicht auch eine Kachelung (tiling) des Bildes (default: Angestellt) - es wird also endlos aneinandergereiht - so das die gesamte Oberfläche des Objekts immer bedeckt ist- auch wenn das Bild kleiner skaliert ist, als das Objekt. Auch kann das Bild in beide Richtungen gespiegelt werden.

(Pixel)Bilder die für Texturen benutzt werden können über Szene -> Bilder direkt gehandhabt werden. In diesem Dialog können Bilder geladen, gesichert und/oder gelöscht werden. Diese Bilder werden in der AoI Datei ohne weitere Komprimierung (als die der AoI Datei selbst = verlustfrei) gespeichert.


5.1.3 Prozedurale Texturen


Procedurale Texturen sind solche, in denen die oben beschriebenen Eigenschaften mit Hilfe mathematischer Algorithmen beschreiben werden. Es gibt 2 Arten von prozeduralen Texturen in Art of Illusion: Prozedurale 2D und prozedurale 3D Texturen. Die 2D Texturen kann man sich als "bemaltes Blatt Papier" vorstellen die um das Objekt herumgewickelt werden - so wie in der Sektion Mapping (siehe 5.1.4) beschrieben. Prozedurale 3D Texturen andererseits, sind sozusagen "Körperliche - solide" Texturen und Objekte denen sie zugewiesen werden sehen aus als wären sie aus einem Block dieses Materials herausgeschnitten worden.

Das graphische Interface (Gui) sieht jedoch für beide Typen fast identisch aus - somit werden beide in diesem einen Abschnitt beschrieben.

Um eine neue prozedurale Textur zu erstellen gehen Sie auf Szene -> Texturen klicken auf Neu und wählen Prozedural 2D oder 3D als Textur Type. Es wird folgender Dialog erscheinen:

Es wird dazu ein Vorschaufenster angezeigt das die aktuelle Textur im Editor darstellt - auf einer Kugel. Das Vorschau Fenster wird automatisch upgedatet wenn die Textur verändert wird. Die Größe des Vorschaufensters kann geändert werden, indem am an einer Ecke zieht. Ebenfalls kann in das Vorschaufenster gezoomt (STRG ziehen mit RMB) werden und ein Drehen (MMB) wie Verschieben (schieben mit RMB) des Vorschauobjektes ist ebenfalls möglich. Wie im Uniformen Texture Dialog kann mit Doppelklick auf das Vorschaufenster ein Dialog aufgerufen werden, der es ermöglicht die Art des Vorschau Objektes einzustellen.



 Am Anfang zeigt das Vorschaufenster eine gleichmäßig weiße Textur. Bitte beachten Sie das 2D Texturen mit Hilfe von Projetion Mapping gezeigt werden (sehen Sie auch im Mapping Abschnitt), während 3D Texturen mit linearem Mapping angezeigt werden. Deshalb können dieselbe Prozedur bei einer 2D Textur und einer 3D Textur unterschiedlich aussehen. Alle folgenden Beispiele sind deshalb mit 3D Texturen erstellt - als Übung sollten Sie eine hier vorgestellte prozedurale Textur als 2D Textur erstellen - wenn diese dann anders aussieht als hier beschreiben, wissen Sie warum dem so ist.

Die Boxen auf der rechten Seite des Editors zeigen die Oberflächeneigenschaften an, die weiter oben bereits beschreiben wurden für andere Arten von Texturen. Die Idee hinter dem prozeduralen Editor ist es Werte (Zahlen oder Farbwerte) in die entsprechenden Boxen zu leiten. Das geschieht indem Werte, Funktionen und Transformationen eingegeben werden, miteinander verbunden werden und in die jeweiligen Eigenschafts-Boxen eingeleitet werden. Das erzeugt eine Menge Werte welche für jeden Punkt der Oberfläche berechnet werden - so wird die Textur erzeugt. Werte und Funktionen werden über das Einfügen- (Insert) Menü des Editors hinzugefügt.


Wir nehmen ein einfaches Beispiel: Eine gleichmäßige diffuse Farbe. Klicken Sie auf Einfügen -> Werte -> Farbe (Insert -> Values -> Color). Dabei wird ein kleines Quadrat auf der Fläche platziert, das so aussieht. Um diese Farbe auf das Objekt anzuwenden klicken Sie auf das pinkfarbene Dreieck und verbinden es mit dem Dreieck der Diffus Box (klicken drag and drop). Eine Verbindungslinie ist dabei entstanden, die jetzt diese Boxen verbindet Das Vorschau Fenster bleibt unverändert, da die Farbe nicht verändert wurde - es ist die gleiche Farbe wie der Standardwert. Doppleklicken auf die Farb Box öffnet den Farbauswahldialog.Wählen Sie die farbe Ihrer Wahl und klicken auf OK. Das Vorschaufenster wird nun die gewählte Farbe auf das Objekt projizieren.

Jede Werte-, Funktions- usw. Box die vom Einfügen Menü eingefügt werden hat mindestens einen "Ausgabe" Verbinder (Dreieck das nach außen zeigt), dort liegt entweder ein Wert oder eine Farbe "an". Pinke Pfeile indizieren eine Farbe, während schwarze Pfeile einen Wert beeinhalten. Um genauer zu sein - die Ausgaben repräsentierenn Wertebereiche, die die Farbe oder Wert an jedem Punkt der Oberfläche beeinhalten. Die meisten haben auch einen Pfeil am Eingang der Box - nehmen also auch Eingangswerte entgegen.

Also probieren wir jetzt etwas komplizierteres - ein Farbverlauf über die Oberfläche. Klicken Sie das farbige Quadrat an und drücken sie Entf (del) um es zu löschen. Diesmal wählen Sie Einfügen -> Farbfunktionen -> Individuell ( Insert -> Color Functions -> Custom). Das erstellt eine Farbverlaufsbox . Verbinden Sie den Ausgang dieser Box mit der Diffus Box. Die Vorschau zeigt nun eine schwarze Kugel. Das kommt daher weil die ausgewählte Farbe von dem schwarzen Eingangspfeil der Box abhängt. Wenn Sie diesen mit der Maus anklicken und halten zeigt er den aktuellen Wert an - der ist "0" (Null) - und das wiederum repräsentiert schwarz in dem Farbverlauf. Um einen Verlauf zu bekommen müssen wir die Farbwerte der Box bezogen auf Ihre räumliche Position bekommen. Wenn also der Farbverlauf in X-Richtung verlaufen soll, so geben wir X am Eingang der Box an. Klicken Sie auf Einfügen -> Werte -> X (
Insert -> Values and select X). Das erstellt eine Box mit der Bezeichnung X. Die Ausgabe dieser Box ist der X Wert jedes einzelnen Punktes der Oberfläche. Verbinden Sie jetzt diese Box mit der Farbverlaufsbox und das Vorschaufenster wird nun einen Farbverlauf auf der Kugel anzeigen:

Wenn wir ein Y mit der Box verbunden hätte, hätten wir einen Verlauf in Y-Richtung bekommen. Was aber wenn wir den Verlauf diagonal haben möchten? In diesem Fall müssen wir ein (X+Y) in die Box "füttern". Wählen Sie beides aus - also eine X und eine Y Box aus dem Einfügen -> Werte Menü. Um die Addition herbeizuführen, wählen Sie Einfügen -> Funktionen -> Hinzufügen  (Insert -> Functions -> Add) . Dann verbinden Sie erst die X und Y Boxen mit der Hinzufügen Box und dann den Ausgang der Hinzufügen Funktion mit der Farbverlaufsbox (es funktioniert auch umgekehrt - keine Angst!)- so wie hier rechts gezeigt:

Es gibt auch einen anderen Weg, wie wir dies hätten erreichen können. Unter Einfügen -> Funktionen -> Ausdruck (Insert -> Functions -> Expression) finden wir eben mit diesem Ausdruck Modul eine mächtige Hilfe und Möglichkeit. Wählen Sie dieses Modul aus und doppelklicken Sie es. Diese Funktion erlaubt es Ihnen einen beliebigen mathematischen Ausdruck  einzugeben aus X,Y,Z der Zeit und Boxen Eingaben. Geben Sie nun aber einfach "x+y" ein und klicken OK. Verbinden Sie die Box mit der Farbverlaufsbox und Sie sehen das derselbe Effekt erreicht wird. Eine weitere Möglichkeit wären Transformationen - aber dazu später....



Lassen Sie uns nun genauer die Werte anschauen - als auch Funktionen und die verfügbaren Transformationen.

Werte (Values)

So sieht das Einfügen -> Werte Menü aus.

Die meisten Einträge sind selbsterklärend:

Nummer (Number) fügt eine Box mit einer einzelnen konstanten Nummer ein. Doppelklicken Sie die Box um deren Wert zu ändern.

Farbe (Color) fügt eine Box mit einer einzelnen Farbe ein. Doppelklicken Sie die Box um den farbauswahl Dialog aufzurufen.

X, Y and Z fügen Boxen ein deren Ausgänge einfach die X,Y und Z Werte eines jeden Punktes einer Oberfläche repräsentieren. Bei 2D prozeduralen Texturen ist z=0. (Wichtiger Unterschied zu 3D prozeduralen Texturen!)

Zeit (Time) fügt eine Box ein deren Ausgabe den aktuellen Zeitwert der Timeline darstellt. In Animationen ändert sich der Wert - entsprechend können die Texturen 
animiert werden. Eine Vorschau im Editor dafür wird es möglicherweise ab Version 2.6 von Art of Illusion geben.... - also muss man in dem Fall die Vorschau ins Hauptfenster verlegen.



Blickwinkel (View Angle) Diese Modul kann benutzt werden um Oberflächeneigenschaften abhängig vom Blickwinkel zwischen Kamera und Oberfläche erscheinen zu lassen. Es ist sinnvoll um Fresnel Effekte zu simulieren, bei denen die Speckularität frontal geringer ist und anwächst bei größeren Winkeln. Das Blickwinkel Modul  gibt als Ergebnis den Cosinus des  Einfallwinkels aus. Das Beispiel unten zeigt wie das für einen Fresnel Effekt genutzt werden kann. In dem Beispiel wurde die prozedurale Textur aus dem linken unteren Bild genutzt., um die Vase "plasik-artiger" erscheinen zu lassen  - die metallene Vase daneben hat eine höhere Spiegelung die allerdings gleichmäßig ohne Blickwinkelabhängigkeit appliziert wurde (zum Vergleich).


Das Modul hat auch anderen Nutzen, einer davon ist die Möglichkeit einfache "Toon" Materialien herzustellen, wie hier unten gezeigt:



Parameter - erlaubt es Texturen nach Wunsch des Benutzers nur dort zu nutzen wo bestimmte Parametereinstellungen zutreffen. Man kann damit Teile einer Textur auch nur Teilen von Objekten zuordnen - eben abhängig von Parametern. Siehe Textur Parameter für Einzelheiten dazu. Soviel sei hier gesagt: Man kann sich damit oftmals ein UV Mapping ersparen und viel interessantere Eigenschaften erstellen.

Kommentar (Comment) Dieses Modul ist eigentlich nur eine Textbox, die es ermöglicht Kommentare und Erklärungen in einer Prozedur zu beschreiben. Damit kann man auch nach langer Zeit noch erkennen was man eigentlich machen wollten - bzw. andere Benutzer können das so leichter nachvollziehen. S. unterstehendes Beispiel:


Funktionen (Functions)

Dies ist das Einfügen -> Funktionen Menü (Insert -> Function).

Diese Einträge werden numerischen Werten hinzugefügt um diese auf verschiedenste Arten zu modifizieren:

Ausdruck (Expression) ermöglicht die Eingabe jeglicher mathematischen Ausdrücke von x, y, z, t (t=time / Zeit) und 3 Möglichkeiten des Inputs zu der Box. Diese Eingänge sind benannt input1, input2 und input3.

Ausdrücke (Expressions) können folgende mathematische Operanden verwenden: +,-,/(division),*(multiplikation), ^(potenz zu /to the power of),%(modulus) und können folgende Funktionen beinhalten: sin(a): sine von a, cos(a): cosine von a, sqrt(a): Quadratwurzel (square root) von a, abs(a): absoluter Wert von a, log(a): natürlicher logarithmus von a, exp(a): e "hoch" a (dasselbe wie e^a),min(a, b): minimum von a und b, max(a, b): maximum von a und b,pow(a, b): a hoch b  (dasselbe wie a^b), angle(a, b) : der Winkel der  aus einem rechtwinkeligen Dreieck mit den Seiten a und b geformt wird, bias(a, b): die Bias Funktion mit a bias von b,,gain(a, b): die Gain Funktion mit a gain von b.
Die Konstanten pi und e werden ebenfalls erkannt.

Individuell (Custom) ermöglicht eine Kurve zu zeichnen die auf die sich die Ausgabe zur Eingabe bezieht. Neue Punkte können mit Mausklick und gedrückter STRG Taste zur Kurve hinzugefügt werden. Die Punkte können auch bewegt werden - click und drag. Die Kurve kann auch geglättet werden indem die entsprechende Checkbox angeklickt wird. Zusätzlich kann diese Funktion periodisch gemacht werden, d.h. sie wiederholt sich außerhalb des 0-1 Bereiches unendlich oft. Eingaben kleiner als 0 erzeugen eine Ausgabe von 0, und Eingaben größer als 1 erzeugen Werte von 1.

Skalieren/Verschieben (Scale/Shift) multipliziert die Eingabe mit einem konstanten Wert und addiert einen Offset hinzu. Doppelklicken auf die Box ermöglicht die Änderung der  Werte.

Hinzufügen, Wegnehmen, Multiplizieren, Dividieren (Add, Subtract, Multiply, Divide) hier sind die Übersetzungen mindestens eigenartig. Diese Boxen haben jeweils 2 Eingänge, welche addiert, subtrahiert (der untere Eingang vom oberen Eingang), multipliziert oder dividiert (obere durch das untere) werden - je nach gewählter Funktion.

Abs gibt den absoluten Wert zurück, d.h ist die Zahl positiv ändert sich nichts - ist sie negativ, wird der gleiche Wert aber positiv zurückgegeben (-5 wird +5)

Verwischen (Blur) erzeugt einen blurring Effekt. Es gibt 2 Eingänge, einer ist für den Wert der verwischt werden soll, der andere gibt den Wert der Stärke des Effektes an. Genauer gesagt ist der 2te Wert der Bereich über den die Glättung erfolgt.

Zuschneiden (Clip) Diese Funktion beschneidet den Eingabewert auf einen Bereich der per Doppleklick auf die Box festgelegt werden kann. Eingabewerte die in den Limits liegen bleiben unverändert - Werte unterhalb des Minimums werden auf Minimum gesetzt, Werte oberhalb des Maximums werden auf Maximum gesetzt.

Größer als (Greater Than) gibt 1 zurück wenn der obere Wert größer ist als der untere - sonst wird 0 wiedergegeben (Wie "wahr"/"unwahr").

Min, Max beide haben 2 Eingänge. Diese werden miteinander verglichen und dann wird je nach Box das Minimum oder das Maximum ausgegeben.



Interpolieren (Interpolate) die Ausgabe basiert auf 3 Werten. Wert 1 und Wert 2 (obere und untere Eingabe) bestimmen das Maximum und Minimum und der Fraction Input bestimmt den Wert zwischen  Min und MAX.Beispiel: Wenn die Fraction Eingabe 0,5 ist, liegt der Wert in der Mitte zwischen MIN und MAX - ist er 0,25 ist die Ausgave ein Viertel des Weges zwischen den beiden Werten.

Mod hat 2 Eingänge - den Dateneingang und den Modul Wert. Es wird der Rest einer Division ausgegeben. Angenommen der Wert sei 5 und der Modul 4, dann wird 5 durch 4 geteilt was den Rest 1 ergibt.

Sinus, Cosinus, Quadratwurzel, Exponential, Log (Sine, Cosine, Square Root, Exponential, Log) das sind eigentlich selbsterklärende mathematische Funktionen mit einem einzigen Eingang und Ausgang. Die Eingaben für Sinus und Cosinus sind in Radians. Das Logarithmyus Modul ist natürlich also zur Basis e.

Quadrat (Power) Die Ausgabe ist die linke Eingabe potenziert um den oben eingegebenen Wert.

Bias This module calculates Ken Perlin's Bias function. Given an input value between 0 and 1, it calculates an output value which is also between 0 and 1 according to: y(x) = x^(log(B)/log(0.5)) where the input value x and bias B correspond to the two input ports. If B=0.5, then y(x)=x. Values of B less than 0.5 push the output toward smaller values, while values of B greater than 0.5 push the output toward larger values.

Zunehmen (Gain) Dieses Modul kalkuliert Ken Perlin's Gain Funktion. Angenommen sei eine Eingabe zwischen  0 und 1, dann kalkuliert das Modul einen Ausgabewert, der seinerseits auch zwischen 0 und 1 liegt nach diesem Beispiel: y(x) = Bias(2*x, 1-G)/2 if x<0.5 1-Bias(2-2*x, 1-G)/2 if x>0.5 wobei der Eingabewert x und das Gainmodul G den beiden Eingängen zuzuordnen sind und Bias die oben beschriebene Bias(x, B) Funktion ist. Wenn G=0.5, dann ist y(x)=x. G Werte kleiner als 0,5 glätten die Eingabe, indem sie die Ausgabe in Richtung 0,5 drücken, während größere Werte die Ausgabe in Richtung 0 oder  1 beeinflussen und damit die Eingabe "schärfen".

Zufall (Random) Dies ist ein Eindimensionales Zufalls Rauschmuster. Es hat 2 Eingänge, wobei einer die Dimension (Größe) darstellt, und die andere die Menge an Rauschen ist
welche das Muster angewandt wird. Die Eingabedimension ist standardmäßig Zeit (time), da diese Funktion meist genutzt wird um eine Positionsänderung in einer Animation zu erzeugen. Diese Funktion kann aber auch genutzt werden, um Zufallsmuster im Raum zu erzeugen, oder um Variationen in Texturmustern zu generieren. Wie auch bei diversen hier weiter beschriebenen Mustern /( Patterns) bringt ein Doppelklick auf die Box einen Dialog hervor, in dem dei Amplitude und die Anzahl der Oktaven bestimmt werden kann. Sehen Sie in der Beschreibung des  Rauschen / Noise Musters nach für weitere Details dazu.

Farbfunktionen Color Functions

Dieser Abschnitt beschreibt das Einfügen -> Farbfunktionen Menü (Insert -> Color Function).

Diese Funktionen werden genutzt um Farbwerte auf unterschiedlichste Art zu ändern:

Individuell (Custom) Wie wir weiter oben bereits gesehen haben kann man diese Funktion benutzen um Farben nach Werten auszuwählen (0-256). Die Standardwerte sind Schwarz zu weiß. Doppelklicken eröffnet den Dialog zur Rechten. Um eine Farbe zu ändern einfach auf das kleine Dreieck unter dem Farbbalken klicken - das Dreieck wird rot.  Danach auf das Farbquadrat klicken - es öffnet sich der Farbauswahldialog. Weitere Farben können dem Farbbalken hinzugefügt werden über Hinzufügen (Add). Dadurch wird ein weiteres Dreieck hinzugefügt, so das der Farbverlauf aus beliebig vielen Zwischenfarben bestehen kann. Die Positionen der kleinen Dreiecke können über ziehen mit der Maus bestimmt werden oder über die Eingabe einer Zahl zwischen 0 und 1 in die Value Box. Der Farbverlauf kann periodisch gemacht werden indem man das entsprechende Häkchen setzt. Das bedeutet das sich der Farbverlauf ständig wiederholt. Wenn es nicht ausgewählt wird, werden die Teile der Oberfläche außerhalb des Farbverlaufs eine gleichmäßige Farbe vom Ende des Farbverlaufs annehmen.


Mischen (Blend) ist eine weitere Möglichkeit eine Farbe aus einem Bereich auszuwählen. Es nimmt 2 Eingaben entgegen und mischt sie entsprechend ihrer numerischen Werte. Der wichtigste Unterschied zwischen dieser Funktion und der Individuell - Möglichkeit ist, das hier die Eingaben Farbwerte sind und eben auch von anderen Funktionen erzeugt werden  können. Hier rechts ist ein einfaches Beispiel, wo eine Farbe eine feste rote Farbe ist und und die andere ist eine Farbe einer Individuellen Farbverlaufsmap. Die Funktion die die Farbe aus dem Farbverlauf bestimmt ist einfach Y - das würde einen Verlauf in Y Richtung erzeugen. Das wird mit der roten Farbe gemixt bezogen auf die X Position, - da das die Funktion ist die in die Mixen (Blend) Funktion gestöpselt wurde. Offenbar können deutlich komplexere Funktionen definiert werden.



Hinzufügen, Wegnehmen und Multiplizieren (Add, Subtract, Multiply) sind weitgehend selbsterklärende mathematische (Farb)Funktionen die 2 Eingaben annehmen und die Rechnung anhand der RGB Werte der Farben vornehmen.

Heller, Dunkler (Lighter, Darker) Beide Funktionen nehmen 2 Farben entgegen und geben die aus die heller oder dunkler ist. Bestimmt wird das heller oder dunkler über die luminance Komponente des CIE XYZ Farbsystems.

 Gewichten (Scale) erlaubt die Eingabefarbe mit einem numerischen Input zu skalieren. Jede Komponente der Farbe wird mit dem numerischen Wert multipliziert. Ein doch irgendwie verstecktes Feature ist, das dieses Modul genutzt werden kann um Eigenschaften wie Specularität, Glanz, Transparenz ect. über ihren normalen max. Wert (1) hinaus.  Die resultierende Eigenschaft ist die Eingabefarbe multipliziert um den Eingabewert. Ein Beispiel ist unten gezeigt: Im linken Bild ist die Specular Color weiß (also Hue-0, Saturation-0 und Wert von of 1) und der Glanz (Shininess) ist auf 1 gesetzt. Der Glanz ist damit das Produkt von 1x1 =1. Das Bild zur rechten zeigt fast das Gleiche, aber diemal ist die spiegelnde Farbe (specular color) skaliert um den Faktor 20  - das Produkt vpn Glanz und specular color ist damit 20 x 1= 20 und das Ergebnis ist ein (künstlich) strahlenderes Highlight auf der Vorschaukugel - sowetwas kann z.B. für Zwecke der Cartoon Erstellung sinnvoll sein.



Ein anderer Nutzen entsteht im Zusammenhang mit emissiven Texturen ; Die Gewichten Funktion kann hier ähnlich benutzt werden wie oben, hier um ein emissives Licht zu verstärken, das mit Global Illumination berechnet werden kann. Das untere Bild zeigt den Effekt eines Skalieren Moduls auf einer emissive Farbe einer Kugel mit den Skalierungswerten 1,2,5 und 10. Das Bild wurde mit Photon Mapping für Global Illumination gerechnet.

RGB Dieses Modul ermöglicht es Rot, Grün und Blau Komponenten  von numerischen Eingabewerten bestimmen zu lassen - was eigentlich eine sehr einfache Sache ist. Die Kraft liegt darin das die Eingaben ihrerseits von anderen Funktionen stammen können. Im rechten Beispiel ist die rote Komponente bestimmt durch ein Rauschen ( Noise ) Modul, die grüne Komponente wird durch ein Wood (Holz) Modul erzeugt und die blaue Komponente basiert auf einer View Angle (Blickwinkelabhängigkeit) zur Power 3  (hoch 3). 



HSV Wie die RGB Funktion hat auch dieses Modul 3 Komponenten mit numerischem Input; ein Eingang für jede Farbkomponente. Nur werden hier die Hue, Saturation und Value Komponenten mit numerischen Eingaben bestimmt. Im rechten Beispiel sieht man Hue bestimmt von der X Position auf der Oberfläche.



HLS Wie oben, jedoch diesmal werden Hue, Lightness und Saturation bestimmt. Im rechten Beispiel wird die Lightness sinusförmig variiert und die Saturation wird durch ein skaliertes Cells pattern bestimmt.



Transformationen

Dieses Modul aus dem Menü erzeugt transformationen auf dem Koordiantensystem.
Das Einfügen-Transformationen (Insert -> Transforms) Menü sieht wie folgt aus:



Linear

Dieses Modul ermöglicht Skalierung, Rotation und Translation von x,y und z. Ein Doppelklick auf die Box bringt einen Dialog hervor, der es ermöglicht die relevanten transformations Parameter einzugeben.

Ein Beispiel ist rechts zu sehen. Hier ist die einfache Textur oben aus dem HSV Beispiel benutzt worden. Der Hue Eingang wird aber mit einem linear transform Modul beeinflusst. Mit den Standardeinstellungen würde das in derselben Textur enden wie oben. Aber hier wurde ein Saklierungsfaktor von 5 in der X Spalte eingegeben und einen 45° Rotation um die Z-Achse - das Ergebnis ist die Textur rechts.



Polar

Das Polar Modul transformiert das lineare Koordinatensystem von x und y zum polaren Koordinatensystem das durch die radiale Distanz (r) und theta (Winkel) beschrieben wird. Ein Beispiel ist links zu sehen.

Das obere Beispiel zeigt das Ergebnis der r Koordinate im HUE Eingang der HSV Funktion. Das erzeugt ein Muster wo die gleiche Entfernung eines jeden Punktes zur Mitte dieselbe Farbe erzeugt - deshalb entstehen die Ringe.

Ähnlich über die theta (Winkel) Funktion. Punkte die denselben Winkel haben bekommen dieselbe Farbe wie hier unten links gezeigt.



Kugelförmig (Spherical)

Diese Funktion transferiert das lineare Koordinatensystem zum kugelförmigen Koordinatensystem.

Das obere Beispiel rechts zeigt ein Grid pattern (s. dazu weiter unten). Das wird benutzt um Farben eines individuellen Farbverlaufs Musterartig auf die Kugel aufzubringen.

Wenn nun alle Achsen über das Spherical Modul kugelförmig gemacht werden produzieren sie aus dem Grid oben das untere Bild.



Zittern(Jitter)

Dieses Modul behält das lineare Koordinatensystem bei, erzeugt aber ein zufälliges Zittern der Textur. Doppelklicken der Box ermöglicht die Modifikation der Amplitude und des Bereiches des Effektes.

Im linken Beispiel ist die Textur aus dem oberen Polar Beispiel genutzt worden. Das produziert die bekannten Ringe. Diesmal wurde jedoch ein Jitter (Zittern) Modul mit Amplitude 0,5 in die x und y Koordinate mit eingebracht. Das obere Bild zeigt was passiert wenn die Skalierung auf 1 gesetzt wird - im unteren Bild wurde die Skalierung verkleinert.




Muster (Patterns)


Es gibt viele vorgegebene Textur Muster in Art of Illusion, erreichbar über das Einfügen -> Muster ( Insert -> Patterns) Menü wie hier links gezeigt. Jedes Muster hat 3 Eingänge für die x,y und z Koordinaten.

Weiter unten schauen wir uns jede Art von Muster und einige mögliche Variationen an. In jedem dieser Fälle wurde die Ausgabe der Musterbox in eine Individuelle Farbverlaufsbox gesteckt und deren Ausgang wiederum in den diffusen Kanal.

Rauschen (Noise)

Dieses Modul erzeugt ein fraktales Rauschmuster indem es mehrere Oktaven von Ken Perlins gradient noise function addiert. Jede Oktave hat die doppelte Frequenz der vorhergehenden Oktave. Sie können die Anzahl der Oktaven bestimmen und die Amplitudenhöhe der ersten Oktave, indem sie die Box doppelklicken und die gewünschten Werte eintragen. Die Amplitude jeder höheren Oktave ist errechnet aus der Multiplikation der Amplitude der vorangehenden Oktave mit dem Wert des Rauschen (Noise) Eingangs der typischerweise zwischen 0 und 1, obgleich das nicht zwingend so sein muss. Weil das mehr ein Eingang denn ein Parameter ist muss es nicht konstant sein. Das ist insbesondere dann nützlich, wenn ein Rauschen erstellt werden soll das über die Oberfläche eines Objektes variiert.

Die Rauschen Funktion ist so skaliert das die Ausgabe typischerweise zwischen 0 und 1 liegt. Abhängig von den Parameterwerten und der Eingabe können die Werte aber auch außerhalb dieses Bereiches liegen.

Hier unten einige Beispiele:




Turbolenz (Turbulence)

Dieses Modul gleicht dem Rauschen Modul mit der Ausnahme das es den absoluten Wert jeder Oktave her nimmt bevor es die Werte addiert. Das erzeugt "Rillen" oder Vertiefungen (creases) im Ausgang während die weiteren Abkömmlinge sich diskontinuierlich ändern. Das Ergebnis erinnert irgendwie an turbulent fließende Flüssigkeiten. Das Turbolenz Modul ist so skaliert, das die Ausgabe typischerweise zwischen 0 und 1 liegen. Abhängig von den Parameterwerten und der Eingabe können die Werte aber auch außerhalb dieses Bereiches liegen.

Hier unten ein paar Beispiele:




Netz/Gitter (Grid)

Diese Modul ist eine große Hilfe wenn man gleichförmige Gitternetze erzeugen will. Es wird ein gleichförmiges 3 dimensionales Gitter von "feature points" erstellt. Der Wert an jedem Punkt ist gleich der Entfernung zum nächsten "Feature point". Ein Doppelklick auf das Modul eröffnet die Möglichkeit den Raum zwischen den "Feature points" zu verändern. 
Hier unten ein paar Beispiele:




Zellen (Cells)

Dieses Texturmuster ist der Grid Funktion ähnlich, aber anstelle die Feature Punkte gleichmäßig zu verteilen, verteilt es sie zufällig. Das Zellenmodul hat 3 Ausgänge. Der Zellen Ausgang gibt einen Wert zwischen 0 und 1 aus, dieser Wert identifiziert den nächsten Feature point. Dieser Wert ist derselbe für jede Zelle die von diesem Feature point definiert wird. Das ist sinnvoll um ungleichmäßige Zellenmuster zu erzeugen bei denen jede Zelle eine andere Frabe hat. Die distance 1 und distance 2 Ausgänge geben die Abstände zum nächsten und zum übernächsten Feature point an. Entfernung (Distance) 1 ist beim Zellenmuster gleich dem Gridmuster.

Zusätzlich können die Entfernungen zwischen jedem Punkt und den Feature points auf 3 mathematische Weisen berechnet werden, was in verschiedenen Mustern resultiert:  Euclidean, City Block und Chessboard. Die Art und Weise kann nach Doppelklick auf die Box bestimmt werden.

Die Ergebnisse mit jeder der 3 Möglichkeiten und 3 verschiedenen Distanz Einstellungen sind hier dargestellt:

Der Ausdruck (expression) distance2-distance1 ist eine sehr nützliche Funktion:

In diesem Beispiel ist der Ausdruck in ein individuelles Farbmodul gesteckt worden und das ist seinerseits verbunden mit dem Diffus und Emissiv Kanal.



Marmor (Marble)

Dies ist ein mathematisches Muster das Marmor simuliert. Zusätzlich zu den x, y und z Eingängen gibt es ein Rauschen (noise) Eingang. Doppelklicken der Modul Box ermöglicht die Abstände der Marmorierung zu ändern, als auch die Amplitude und Anzahl der Oktaven. Hier unten einige Beispiele:



Holz (Wood)

Nicht überraschen - dieses Muster simuliert holzartige Strukturen. Seine Ausgabe für einen gegebenen Punkt ist proportional zur Entfernung von der Y -Achse plus einer turbulenz Funktion. Doppleklicken des Moduls ermöglicht verschiedene Parameter zu ändern: noise amplitude, ring spacing und number der noise octaves. 
Hier unten einige Beispiele:

Wenn Sie die Option "Only Output Fraction" benutzen, so wird die Ausgabe zur Mod 1 berechnet, so entsteht eine Reihe konzentrischer Ringe, bei denen die Ausgabe wächst von 0 zu 1 über die Weite jeden Ringes. Der häufigste Gebrauch dieses Moduls ist es, es an eine Individuelle Farbfunktion zu stecken, was dann eine schöne Reihe von Farbbändern in Holzmuster erzeugt. Wenn es so benutzt wird ist es eine gute Idee nicht die Option "Only Output Fraction" zu benutzen, sondern die Funktion periodisch zu machen. Andernfalls kann die Antialiasing Funktion des Moduls zu sichtbaren Artefakten führen.

Schachbrett (Checker)

Diese Modul erzeugt ein Schachbrettmuster - das man sehr häufig in Computergrafiken "bewundern" kann. Es gibt keine Optionen bei dieser Box - aber die Skalierung kann über eine Transform Box in x,y und z Richtung bestimmt werden:


Ziegel (Bricks)

Dieses Modul erzeugt ein Mauersteinmuster das für den Stein eine 1 ausgibt und für den Mörtel eine 0. Doppelklicken ermöglicht eine Eingabe von Steinhöhe, Fugenhöhe und  Fugenversatz-wie in den unteren Beispielen:


Bild (Image)

Dieses Modul erlaubt die Benutzung eines Pixelbildes in der prozeduralen Textur. Wie auch bei den Bildbasierten Texturen muss das Bild im Format .gif, .png, .jpg oder .hdr vorliegen. Das Modul hat 5 Ausgänge: Eine Farbmap des Bildes und 4 numerische Ausgänge die den rot, grün, blauen und Masken Komponenten entsprechen. Wie man z.B. den Maskenausgang mit nutzen kann, ist hier nachzulesen.

Ein Doppelklick bringt folgenden Dialog hervor:

Auf das Quadrat klicken ruft den Bildauswahl Dialog auf.

Die  X-Größe und Y-Größe sind relativ zur Größe des Bildes.

Die Tile und Mirror Optionen ermöglichen das Bild zu kacheln (wiederholen) in der x und/oder der y Richtung oder zu spiegeln. Im letzten Fall wird das Bild an jeder Seite gespiegelt - das ermöglicht eine nahtlose Überblendung über die Objektoberfläche.

Die Ausgaben des Moduls können entweder zu (i) Red, Green & Blue (RGB) (ii) Hue, Saturation & Value (HSV) oder (iii) Hue, Lightness & Saturation (HLS) gesetzt werden.


Hier unten ist ein Beispiel des Bildmoduls. Die Ausgänge des Moduls beinhaltet die Farbe und 4 numerische Ausgänge in folgender Reihenfolge: Red, Green, Blue und Mask. Hier wurden den blauen Sternen ein Glühen verliehen indem der blaue Ausgang mit einem Skalierungsmodul verbunden wurde, das eine blaue Farbe skaliert und in den Emissive Kanal eingeleitet wird. Der rote Ausgang (welcher am stärksten im orangen Stern zutage tritt) - wird benutzt um die Spiegelung zu bestimmen - und der Farbausgang geht geradewegs in die Diffus Box.


Bearbeiten (Edit) Menü

Das andere verfügbare Menü im prozeduralen Textureditor ist das Bearbeiten Menü:

Rückgängig /Undo (Undo/Redo) Dieser Eintrag ermöglicht die letzte Aktion rückgängig zu machen oder wiederherzustellen.

Ausschneiden (Cut) kopiert alle ausgewählten Module und kopiert diese in die Zwischenablage und löscht die ausgewählten im Editor.

Kopieren (Copy) kopiert alle ausgewählten Module und kopiert diese in die Zwischenablage ohne löschen der Module im Editor.

Einfügen (Paste) kopiert die Module aus der Zwischenablage in den Editor.

Löschen (Clear) löscht alle ausgewählten Module.

Eigenschaften (Properties) Dieser Eintrag ermöglicht die Beeinflussung der Antialiasing Einstellungen der Textur. Normalerweise ist der Wert mit 1 vollkommen in Ordnung - größere Werte verstärken den Antialiasing Effekt - glätten aber die Textur auch mehr.


Beispiele für prozedurale Texturen

Das Werkzeug prozedurale Texturen ist eine sehr mächtige und flexible  Art Texturen zu erzeugen. Die oben dargestellten Abschnitte zeigen zwar alle verfügbaren Module, können die Möglichkeiten aber nicht im Detail darstellen. Um diese Möglichkeiten vollends zu entdecken muss man ein wenig Geduld mitbringen um die Möglichkeiten selber zu entdecken. Die oben gezeigten Beispiele haben oftmals nur eine Verbindung in den diffus Kanal gehabt. Um etwas Anregung zu geben was an Möglichkeiten in den Modulen steckt sind hier noch einige Beispiele aufgeführt:

Auch diese Beispiele nutzen nur eine sehr begrenzte Anzahl an Modulen - aber in etwas anspruchsvollerer Weise. Klicken Sie auf die Bilder um mehr über deren Entstehung zu erfahren.










Zurück: Texturen and Materialien


Weiter: Mehr Texturen


Zurück zum Inhalt