Tutorials : Terragen und Masken
 
  Terragen und Masken  
 
 
 

Einleitung

In den folgenden Kapiteln geht es um die Verwendung von Masken zur Festlegung von Surface Layern. Terragen und seine Verwendung wird (mehr oder weniger) als bekannt vorausgesetzt. Es kann nur empfohlen werden, Terragen und Overlays vor dem Lesen dieses Textes bereits gelesen zu haben, da dieser Text darauf aufbaut.

Ganz genau betrachtet, ist der Text eigentlich beschränkt auf Anwendungen des SO-Plugin. Ohne dieses Plugin lassen sich Masken in Terragen nicht verwenden. Um die folgenden Hinweise und Beispiele auszuprobieren, muss man also das SO-Plugin installiert haben.

Es sind Überdeckungen mit Tutorien anderer Autoren mehrfach vorhanden (ich habe versucht, solches durch Angabe eines Links zu kennzeichnen).

Eine Beschreibung der gleichen Thematik (etwas kürzer) ist in einem Tutorial von Frank Basinski enthalten (Surface Mapping For Professionals).

Es wurde versucht englische Begriffe zu vermeiden und durch deutsche zu ersetzen. Bei einigen Begriffen bleibe ich aber bei den englischen, da sie einfach gebräuchlicher sind (diese werden aber übersetzt). Es wird erstmal keine Übersetzung in die englische Sprache geben, der Aufwand ist mir z.Zt. zu hoch.

Nun erstmal eine kurze Klärung der im Folgenden häufig verwendeten Begriffe
(nicht missverstehen, ich bestehe nicht auf meiner Festlegung der Begriffe. Ein gemeinsames Verständnis hilft aber beim Lesen ungemein ;):
¤ Layer - verkürzt für "Surface Layer" (Oberflächenschicht)
¤ Tile - verkürzt für "Seamless Tile" (aneinander passende Kachelgrafik)
¤ Textur - eine Grafik, die Informationen über die farbliche, räumliche und/oder strukturelle Gestaltung einer Oberfläche enthält
¤ Overlay - Sonderform der Textur, die die farbliche Gestaltung einer Oberfläche beschreibt
¤ Bumpmap - Sonderform der Textur, die die Reflektionseigenschaften und die strukturelle Gestaltung einer Oberfläche beschreibt
¤ Maske - Sonderform der Textur, die die räumliche Verteilung einer Oberfläche festlegt (bei Terragen auf 2 Dimensionen beschränkt)

Als Referenz werden Terragen in der Version 0.8.xx (z.Zt. bis 0.8.44) und SO-Pack vom 7.1.2001 verwendet. Bei anderen Versionen differieren Werte, Dialoge und Programmverhalten sicherlich.

Es wird weder ein Anspruch auf Vollständigkeit erhoben, noch angenommen, dass alle Angaben korrekt sind (wie heisst das so schön: nach bestem Wissen und Gewissen ;). Die Version des folgenden Textes ist die Rev. 2.0, Änderungen werden im Terragen-Forum bekanntgegeben.

Hinweise und Anmerkungen zum Text (oder auch einfach Fragen *g*) bitte in obigem Forum oder per e-Mail an mich.

Masken

Zu Beginn dieses Kapitels beantworten wir zuerst die Frage: Was sind denn Masken?
Nun, entsinnen wir uns an Overlays, diese verändern die Farbgebung eines Layers. Im Gegensatz dazu verändern Masken die Verteilung eines Layers. Eine Maske ist also ein Ersatz für die Festlegungen der Regler, die die Layer-Verteilung beeinflussen:


Normalerweise bestimmt Terragen aus den obigen Einstellungen eine Verteilung und stellt diese in dem Preview-Fenster dar. Mit einer Maske legt man diese Verteilung nun fest und bekommt natürlich dann auch im Preview-Fenster die Maske bzw. Wirkung der Maske angezeigt. Wenn man so will, kann man mit Masken also ähnliche Effekte bezüglich der Layer-Verteilung erzielen, wie mit Overlays bezüglich der Farbgebung... Weiter unten sind dazu Beispiele vorhanden. Oder ganz knapp zusammengefasst:
¤ Overlays legen das "Wie" fest und
¤ Masken das "Wo".

Das Einbinden einer Maske ist einfach, man klickt auf den Button "Tex" unterhalb des Reglers "Fractal Noise":


Der Rest kommt uns bekannt vor, man kann die Masken-Art festlegen:


    Anmerkung: Bitte wählt nicht "Image Overlay (RGB texture version)" aus. Das ist nur für Overlays!
Und gibt anschliessend die notwendigen Parameter an:



Dies ist soweit von der Vorgehensweise identisch wie bei Overlays. Schauen wir uns also nur die Unterschiede an (oder schlagen wir noch einmal in Terragen und Overlays nach...).
Beim "Image Overlay" sind die Overlay-Arten "Transparent", "Additive" und "Subtractive" erstmal zu vermeiden. Sie würden ja die Maske mit der vorhandenen Verteilung des Layers mixen. Es sei denn natürlich, man möchte das... Zu den sich dann ergebenden Effekten jeweils ein Beispiel:

    Zuerst die "eigentliche" Festlegung des Layers. Um die Sichtbarkeit der Effekte zu erhöhen, ist er recht ungewöhnlich definiert (Coverage ca. 50%, keine Fractal Noise, keine Altitude oder Slope Constraints):


    Und nun die versprochenen Beispiele zu den vier möglichen Overlay-Arten:

    Total Overlay, die Maske ersetzt die ursprüngliche Festlegung vollständig.
    Additive, die Maske wird zu der ursprünglichen Festlegung addiert.
    Transparent, die Maske ersetzt die ursprüngliche Festlegung vollständig an den Stellen, an denen sie nicht schwarz ist. Bei der verwendeten Maske ist ein Unterschied zu "Additive" nicht deutlich sichtbar (einige schwarze Punkte sind vorhanden)... Wären größere dunkle Bereiche vorhanden, würde man den Unterschied besser sehen können.
    Subtractive, von der ursprünglichen Festlegung wird die Maske subtrahiert.

Anmerkung: Das Einschränken einer Maske auf einen Bereich des Layers kann eingegeben werden. Ich hatte allerdings eine hohe Anzahl an Abstürzen bei solchen Definitionen. Ich nehme deswegen an, dass man Masken nur auf die gesamte Terrain-Größe anwenden kann.

Mir persönlich erscheint neben "Total Overlay" noch "Subtractive" sehr sinnvoll. Man kann so einfach Bereiche festlegen, in denen ein Layer eben nicht auftauchen soll. Und das Problem habe ich schon häufiger gehabt ("verdammt, wie kriege ich den Sand vom Fels")... Eine weitere Anwendung von "Subtractive" ist das Vermeiden von mehrfachen Zuordnungen einer Fläche zu verschiedenen Layern. Auch dazu entsinnen wir uns an schon mal diskutierte Eigenschaften von Terragen, den Regler "Scale+Depth".

Der Regler "Scale+Depth" wurde in Terragen und Terrains vorgestellt zum Einstellen der "Transparenz" eines Layers, also wie stark die Rauhheit eines darunter liegenden Layers noch sichtbar ist. Neben diesem Regler kann der Effekt auch durch die Verwendung einer Maske erzielt werden. Dazu wird die Maske bei störenden Layern subtrahiert. Der Unterschied gegenüber dem Regler "Scale+Depth" liegt in einer etwas anderen Abgrenzung zwischen den Layern.



Der obere Ausschnitt wurde mittels einer Maske erstellt, der untere durch Anwendung von "Scale+Depth". Man kann erkennen, dass die Maske einen etwas genaueren Verlauf an der Schnittgrenze der Layer erzeugt.

Nachdem wir nun wissen, was eine Maske ist und wie man sie bei Terragen angibt, kommen wir zum Aufbau einer Maske...
Eine Maske ist ein Graustufenbild, bei dem der Grauwert die Stärke oder die Präsenz eines Layers an einem Punkt im Terrain festlegt. Masken sehen also ähnlich aus, wie der Inhalt des Preview-Fensters neben den Reglern "Coverage" und "Fractal Noise". Und genau wie in diesem Fenster sind die Zuordnungen der Graustufen zur Stärke des Layers:

¤ schwarz = Layer nicht vorhanden
¤ weiss = Layer bedeckt Terrain 100%
¤ Zwischenstufen sind linear angeordnet (z.B. Grauwert 64 = 25%, 128 = 50%, etc.)

Es können auch "echte" Farbbilder als Masken verwendet werden (in einem Tutorial habe ich das als Tipp gelesen und ausprobiert). Allerdings mit einer Einschränkung: In diesem Layer ist dann die gleiche Grafik auch als Overlay ("Total Overlay") zu verwenden. Ansonsten ergeben sich sehr eigenwillige Farben für den Layer. Ich nehme an, dass die Maske mit ihren RGB-Anteilen auf die RGB-Anteile der Layer-Farbe wirkt. Bei Grauwerten ist diese Wirkung dann gleichmäßig, bei Farbwerten wird ein Filtereffekt erzielt. So würde z.B. eine rote Maske nur auf die Rotwerte eines Layers wirken... Das kann natürlich auch sinnvoll sein, mir fällt blos keine Anwendung ein.

Eine Image-Maske muss als quadratische Bitmap-Datei (24Bit) angelegt sein (also genauso, wie ein Overlay). Da die Maske ja die Präsenz eines Layers im Terrain festlegt, sollte die Maske mindestens die Größe des Terrains besitzen. Wie schon so oft beim Umgang mit Texturen gilt auch hier: je größer, je mehr Details sind möglich.
Im Unterschied zu Overlays brauchen Masken natürlich nicht bezgl. Verzerrungen korrigiert zu werden. Die Draufsicht ist ja immer unverzerrt... Aber noch ein Hinweis: Terragen hat erfahrungsgemäß "Vorzugsrichtungen" beim Rendern. Dadurch werden mitunter eigentlich symmetrische Bereiche asymmetrisch. Dieser Effekt kann durch eine vergrößerte Maske mit einer kleinen Korrektur behoben werden. Im nachfolgenden Beispiel hatte ich das unterlassen und man kann den Effekt gut sehen:


Der Ausschnitt zeigt ein "rechtslastiges" Interpretieren der Maske und des Overlays.

Es gelten bei der Anwendung von Masken Terragen's Regeln bezgl. des Verhaltens von Layern zueinander weiterhin. Ich kann z.B. auch nicht durch eine Maske einen Layer ausserhalb seines Parent Layers festlegen. Allerdings kann man durch geschicktes Anwenden der Arten "Additive" oder "Subtractive" die Ordnung der Layer umgehen und so das Auftauchen eines Layers in einem bestimmten Bereich des Bildes erzwingen bzw. verhindern.

Masken können natürlich pro Layer auch mehrfach angewendet werden. Dies ist z.B. beim Mischen von Strata-Masken mit Image-Masken notwendig. In so einer Situation ist dann die Masken-Art "Additive" bzw. "Subtractive" für die Image-Maske anzuwenden.

Jetzt wissen wir ja schon mal einiges darüber, wie man Masken prinzipiell erstellt bzw. wie sie aufgebaut sind. Um das zu veranschaulichen, einige Beispiele einfacher Masken und die gerenderten Bilder:

weicher Übergang zwischen Layern
harter Übergang zwischen Layern
harter Übergang zwischen Layern

Masken bestimmen ja nun nicht nur, wo ein Layer im Terrain auftaucht, sondern auch wie der Übergang von einem Layer zu einem anderen ist. Je danach, wie der Übergang zwischen Layern sein soll, habe ich verschiedene Alternativen:

¤ Weicher Übergang: Masken mit gegenseitigen Überlappungen und weichem Übergang von schwarz nach weiss
¤ Harter Übergang : Masken mit abruptem Übergang von schwarz zu weiss

Masken ersetzen die Festlegungen zur Verteilung eines Layers. Sie ändern nicht die Oberflächeneigenschaften (Farbe und Bumpiness), beeinflussen diese aber. Man kann sich vorstellen, was passiert, wenn 2 Layer mit überlappenden Masken verschiedene Farbfestlegungen haben: es entsteht eine Mischfarbe. Genauso auch beim Überlappen von Layern verschiedener Bumpiness, wodurch eine "Misch-Bumpiness" entsteht.

Natürlich lassen sich auch Tile-Masken verwenden. Dadurch wird der entsprechende Layer gemäß der Wiederholung häufiger im Terrain auftauchen. Mal auch dazu ein Beispiel, von links nach rechts sind Layer Preview, Tile und gerendertes Bild zu sehen:


Wichtig ist halt nur, dass die Tile-Grafik als ein Graustufenbild vorliegt.

Nachdem wir bisher nur Image-Masken betrachtet haben, noch einige Worte zu Strata-Masken. Man fragt sich, wozu denn Strata-Masken? Nun, mal zwei Anwendungsbereiche für Strata-Masken:
verworfene Höhenbereiche
eine Strata-Maske teilt ja das Terrain in einzelne Höhenbereiche und ordnet die Höhenbereiche dann entsprechend dem Layer zu. Das kann ich auch über die "Altitude Constraints" erreichen (wenn auch viel mühsamer). Aber auch bei der Strata-Maske können wie bei dem Strata-Overlay durch eine "Versatz-Grafik" die Höhenbereiche "verzogen" werden. Etwas Vergleichbares ist auf eine andere Art und Weise nicht möglich.
einfachere Festlegung von Erdschichten
Durch die Anwendung von Strata-Masken ist (finde ich) die Festlegung der Schichten bezgl. Farbe und Bumpiness einfacher als bei der Anwendung des Strata-Overlays. Die Farbzuordnung kann "nebenbei" geändert werden und die Bumpiness ist plötzlich auch unterschiedlich festlegbar. Allerdings braucht man nun jede Menge Layer... Ich denke, zwischen 3 und 6 sind aber ausreichend zur Erzeugung natürlich wirkender Erdschichten. Und auch hierzu mal eine Beispielmaske (um den Platz besser auszunutzen ist die Grafik gedreht worden):


Masken wirken (wie schon erwähnt) auf einen Layer. Möchte ich mehrere Bereiche festlegen, brauche ich also 2 Dinge: mehrere Masken und eine entsprechende Anzahl an Layern. Das Vorgehen beim Arbeiten mit Masken ist dadurch etwas anders als ohne.
Mal als Beispiel das Bild "Bilder einer Ausstellung":


Insgesamt 4 Masken legen hier die verschiedenen Bereiche für die Layer fest, von denen im Folgenden mal 3 zu sehen sind:

       
Von links nach rechts wird die Position:
¤ der Grundfläche,
¤ der Pyramiden und
¤ der Bilder in den Pyramiden
festgelegt. Um Überlagerungen der Bilder zu vermeiden, sind die Bilder auf einen Layer mit den Ost/West- und einen mit den Nord/Süd-Bildern aufgeteilt (dieser wird oben nicht gezeigt).

Wie wir feststellten, bedeutet dass Arbeiten mit Masken recht schnell eine grosse Anzahl an Layern. Da aber über Masken festgelegte Layer beim späteren Renderen kaum Zeitverluste mit sich bringen, ist das kein Nachteil. Im Gegenteil, das Verwenden von Masken kann die Renderzeit stark verringern, da Terragen beim Rendern weniger Prüfungen durchführen muss. Die Aufenthaltsorte des Layers sind ja vorgegeben.

Zum Abschluss noch einige Worte zur Maskenerstellung...
Generell würde ich (auch bei gewünschtem hartem Übergang) ein "Weichzeichnen" am Rande der weissen Bereiche empfehlen. Terragen generiert zwar die Übergänge schon etwas überlappend, dies ist aber nur bei sehr naher Kameraposition sichtbar. Für harte Übergänge sind 2-3 Pixel als Rand ausreichend, für weiche Übergänge mindestens 10 - 50 notwendig. Diese Werte sind aber nur Richtwerte, nicht berücksichtigt sind dabei die Terrain-Größe und die Renderauflösung. Es gilt je kleiner das Terrain, je kleiner der Übergangsbereich und je größer die Renderauflösung, je größer der Übergangsbereich.

Schwierig wird es natürlich dann bei großen Terrains mit kleiner Renderauflösung bzw. bei kleinen Terrains mit großen Renderauflösungen bzw. bei ... ;-))

Ein Vergrößern der Maske kann sowohl mit dem favorisierten Grafikprogramm als auch mit Terragen selbst durchgeführt werden. Bei stufigem Terrain (z.B. Treppen, Gebäude, etc.) würde ich das Grafikprogramm vorziehen, bei Rundungen Terragen (ist aber auch durch persönliche Vorlieben geprägt). Der Grund liegt in der Art wie die Vergrößerung erstellt wird. Terragen "glättet" beim Vergrößern des Terrains vorhandene Stufen. Da ist ein Grafikprogramm sicherlich besser. Bei Rundungen erzeugen Grafikprogramme aber (je nach Programm) beim Vergrößern "pixlige" oder stufige Verläufe. Dann ist Terragen mit seinem Glätten des Verlaufs besser geeignet.

Strand
Zur Erzeugung einer Maske für Strandbereiche ist hervorragend der Maskengenerator vom WaterWorks-Plugin geeignet. Man gibt einfach als neue Wasserhöhe die des Strandendes ein und läßt eine Maske vom Generator erstellen. Ein evtl. gewünschter Vergrößerungsfaktor kann dabei einfach angegeben werden. Im Anschluß öffnet man das "RAW"-Bild und speichert es als BMP-Bild wieder ab. Bereiche, in denen der "Strand" nicht oder nur wenig vorhanden sein soll, färbt man schwarz bzw. dunkel und mittels Verwischen und/oder Weichzeichnen lassen sich die Übergänge natürlicher gestalten.
Anmerkung: Bevor der Maskengenerator gestartet wird, unbedingt die Wasserhöhe aktualisieren!
Schnee auf Bergen/Plateaus
Auch in dieser Situation ist der Maskengenerator vom WaterWorks-Plugin gut geeignet. Man "flutet" halt sein Terrain so hoch man möchte, läßt eine Maske erstellen und öffnet die RAW-Datei. Nun invertiert man die Maske und speichert sie als BMP-Datei ab. Hierbei können nun Berge, die nicht von Schnee bedeckt sein sollen, schwarz gefärbt werden. Ausläufer und Übergänge werden "weichgezeichnet" oder "verwischt".
Objekte
Terrains mit Objekten sind sehr einfach in eine Maske zu überführen. Man hat wohl schon ein Graustufenbild, in das man ja die Objekte gezeichnet hat. Dieses Bild ist halt (mit Ausnahme der Objekte) schwarz zu färben und als Maske zu verwenden. Es ist die Verwendung einer vergrößerten Maske dingend zu empfehlen. Die Übergänge zwischen Objekt und Umgebung können dann von kleineren Renderproblemen "befreit" werden. Ein Vergrößerungsfaktor von 2 bis 4 ist aber durchaus ausreichend.

Ansonsten exportiert man mit dem Firmament- oder dem FEO-Plugin das Terrain als BMP-Graustufenbild und zeichnet darin mit einer Farbe (z.B. rot) die Bereiche, in denen der entsprechende Layer auftauchen soll. Den Rest färbt man schwarz und zum Schluss tauscht man die Farbe mit der Farbe "weiss" und gestaltet die Übergänge seinen Wünschen entsprechend.
 
 
Nach oben
 
 
 
©2002 TerraFiction
  Alle Tutorials können für den privaten Gebrauch gespeichert werden.
Das Veröffentlichen der Tutorials, auch auszugsweise, ist ohne ausdrückliche Genehmigung nicht gestattet.