Was ist TerraMaker

TerraMaker ist ein Terraingenerator und ein -editor zum Erstellen und Bearbeiten von Terrains für das Programm Terragen. TerraMaker ist 2003 entstanden. Mittlerweile habe ich das Programm weiter ausgebaut und verbessert. In der aktuellen Version sind bereits viele Ideen und Erfahrungen der letzten Jahre mit eingeflossen. Natürlich ist TerraMaker nicht nur für Terragen-Classic gedacht. Auch für Terragen 2 können Terrains erzeugt und bearbeitet werden.



Arbeitsweise von TerraMaker

TerraMaker arbeitet mit einem internen 32-Bit-Array, welches die Terraindaten aufnimmt. Alle Bearbeitungsfunktionen arbeiten mit 32 Bit Verarbeitungstiefe. Dadurch gehen auch kleinste Terrainstrukturen bei der Bearbeitung nicht verloren. Das hat natürlich seinen Preis. Die Verarbeitung von 32-Bit dauert etwas länger als die reine 16- oder 8-Bit Verarbeitung. TerraMaker ist kein Bildbearbeitungsprogramm !! Es berechnet alle Funktionen in dem Array und gibt sie dann als Bild zur Ansicht. Das Vorschaubild hat eine Auflösung von 8 Bit, d.h. dort können sicherlich nicht alle Feinheiten des Terrains abgebildet werden. In der Z-Ansicht werden jedoch einige Details besser sichtbar. Terrain-Dateien (*.ter) von TerraGen haben eine Auflösung von 16 Bit. TerraMaker wandelt beim Abspeichern das Terrainarray in ein 16-Bit Format um. Dabei wird versucht, auch die kleinsten Strukturen einzubinden. TerraMaker nutzt dabei den vollen Umfang von 16 Bit (65536 Stufen) aus.
Zur Erzeugung der Terrainstrukturen wird ein Überlagerungsverfahren verwendet, welches seinen Ursprung im Perlin-Noise-Verfahren hat. Ich verwende diese Umschreibung, da ich auf Grund der „Schnelligkeit“ von VB einiges an dem Verfahren modifizieren musste. Ich beschränke mich auf 5 festgelegte Überlagerungsfrequenzen und einem begrenzten Umfang an Zufallszahlen. Diese Zufallszahlenarrays sind in den „PERLIN SET’s“ abgelegt. Bei der Überlagerung werden die Höhenstrukturen über eine Zufallsfunktion addiert oder subtrahiert. Dadurch entstehen z.T sehr komplexe Terrains. Grundsätzlich gilt: je größer die Verarbeitungstiefe, um so detaillierter das Terrain, um so länger die Berechnung.

Bedienung und Funktionen
Hier gehe ich auf alle Einstellungen und Funktionen von TerraMaker ein. Dabei wird jeder Folder einzeln beschrieben:

Oberfläche allgemein

Im oberen Bereich des Programmfensters ist die Buttonleiste für die Globalen Funktionen wie Speichern, laden , löschen von Terrains etc. Diese Funktionen sind (wenn nicht deaktiviert) zu jederzeit des Programmablaufes aktiv.

alt

Hier gibt es nun die Globalen Funktionen

alt

New - neues Terrain

Load - Laden eines Terrains. Hier können verschiedene Terrainformate oder Bildvormate angewählt werden.

Save - speichern des aktuellen Terrains als TER-File

Save as - hier kann das Terrain in verschiedenen Formen exportiert werden.

alt


Backup - Hier kann zu jedem Zeitpunkt das Terrain im aktuellen Zustand gesichert werden. Es kann dann auch jederzeit in diesen Zustand zurückgeholt werden. Es ist eine Form der UNDO-Funktion allerdings nur mit einer Stufe.

Print - hier kann das Terrain mit Daten, wie Dateinamen, Größe und Abmessungen ausgedruckt werden. (Derzeit nur Ausdruck auf A4 oder B4 möglich

alt


Properties - Hier können die Grundeinstellungen gesetzt werden, welche TerraMaker beim Start vornimmt.


alt

Zoom - Hier kann man die Terrainansicht (nicht das Terrain selber) Vergrößern oder Verkleinern. Sollte es bei der Änderung der Zoomansicht zu unschönen Artefakten oder Rasterungen kommen, so sind diese nur in der Ansicht und nicht in den Terraindaten vorhanden.

Terragen - hier kann das erzeugte/geladene Terrain direkt mit Terragen geöffnet werden.

3D-View - öffnet das Terrain in einer 3D-Ansicht

ObjectMaker - öffnet den ObjektMaker

Ein Doppelklick auf die Terrainfläche erzeugt einen Wiederaufbau der Ansicht aus den Terraindaten. Die Zoom-Button sind nicht aktiv, wenn ein Object geladen wurde.

Im unteren linken Bereich „View“ befinden sich zwei Button „X-Y“ und „Z“. Über diese kann die Ansicht umgeschaltet werden (siehe abschnitt „Z-Ansicht“). Im „Info“-Bereich wird der aktuelle Programmstatus angezeigt. Darunter ist der Statusbalken zu sehen. Unter dem Terrainfenster werden folgende Daten angezeigt. (v.l.n.r.)

* Größe des Terrains und Zoomfaktor

Die weiteren Felder beziehen sich auf die Position des Fadenkreuzes in der Terrainansicht.

* Höhe in TerraUnits
* Höhe in Pixeln
* Position in X-Richtung
* Position in Y-Richtung
* Höhe in Metern - Die Höhenangaben in TerraUnits und in Metern beziehen sich auf die Daten aus „Landscape Area“ im Folder „Global“. Werden die Einstellungen dort geändert, so ändert sich auch die Angaben der Höhen.

Und nun zu den einzelnen Programmfunktionen

Global

Die globalen Parameter dienen der Grundeinstellung des Terrains in seinen Abmessungen und werden in der Terraindatei mit abgespeichert. Diese Daten können jederzeit beliebig geändert werden. Jede Änderung wirkt sich auch sofort auf die Positionsangaben im Statusbereich von TerraMaker aus.

alt


Terrain Grid Points - Einstellung für die Größe des Terrains in Pixel. Erst der Klick auf Resize verändert die Größe des Terrains

Planetary Context - Hier können die Daten für den Planetenradius und Krümmung angegeben werden. Mit dem Button Planet Complete wird der Planetenradius auf 6km gesetzt und die Krümmung aktiviert. Mit diesen Daten ist es relativ einfach einen kompletten Planeten in TG zu rendern. Da es immer wieder Abstürze von TerraGen bei der Änderung dieser Daten gibt, habe ich mich entschieden diese Modifikationen bereits in TerraMaker einzubauen. Damit ist alles notwendige bereits in der Terrain-Datei festgelegt.

Landscape Area - Hier werden die Angaben zum unteren und obersten Punkt im Terrain eingegeben. Im Gegensatz zu TG werden bei der Änderung der Terrainabmessungen nicht die Höhen geändert, sondern automatisch die Angabe „metres point spacing“.

Fix Height - Hier kann das Terrain in seinen Höhenabmessungen begrenzt werden. Die Höhen werden immer in den angegebenen Bereich optimiert.

Generator

Hier nehmen wir die Einstellungen zur Erzeugung eines Terrains vor. Die Regler haben folgende Funktionen:

alt

Iteration - gibt die Rechentiefe des Generators an.

  • MIN= geringe Rechentiefe = grobere Details = schneller
  • MAX= hohe Rechentiefe = feine Details = langsamer


Heigth -Bei der Überlagerung von Strukturen ist dieser Regler ausschlaggebend, wie die neue Struktur auf das vorhandene Terrain gelegt werden soll. Bei Einstellung MIN wirkt sich die neue Struktur mit etwa 1% auf das vorhandene Terrain aus.

resultierende Terrain = altes Terrain 100% + neue Struktur* 1%.

Bei MAX wird die neue Struktur mit voller Höhe auf das alte Terrain aufgerechnet, d.h.

resultierende Terrain = altes Terrain 100% + neue Struktur* 100%.

Bei der Erstellung eines Neuen Terrains oder aktivieren von „clear Terrain“ ist dieser Regler unwirksam.

Structure -gibt die Größe der Hauptstruktur an, d.h., Die Abstufung der Strukturgröße erfolgt in 5 Schritten von MAX = große Terrainelemente (langsame Anstiege) bis MIN= kleine Terrainelemente (Rauschen) . Der eingestellte Wert gibt an, welche Strukturgröße die Landschaft bestimmt.

Bsp: Einstellung „Structure“

max mittel min
alt alt alt



Perlinset -Hier kann man aus verschiedenen Strukturvarianten wählen. Zum Programmumfang gehört das Standard-Set. Weitere Sets können installiert werden. Ein neues Terrain wird aus dem markierten Set generiert. Dadurch entstehen eine Vielzahl von Möglichkeiten aus verschiedenen Perlin-Sets Terrains zu erzeugen.

clear Terrain
Aktiviert = bevor ein neues Terrain erzeugt wird das vorhandene Terrain gelöscht. (!!)
Deaktiviert = die neue Struktur wird auf das vorhandene Terrain aufgerechnet (siehe auch Regler „Heigth“)

Random seed -Start der Berechnungsfunktionen. Wert kann manuell eingegeben werden (0-999999) oder mit der Funktion „RND“ auf einen neuen Zufallswert gesetzt werden.

Modify Options - Hier kann der Überlagerungsmodus eingestellt werden. Diese Funktion ist nur aktiv, wenn beireits ein Terrain gelden wurde oder ein Terrain erstellt wurde.

Preview - Mit diesem Button kann eine Vorschau auf das zu erstellende Terrain erzeugt werden. Dieses geht natürlich viel schneller. Anzeige erfolgt im ausgewählten Farb-Modus

use Mask und Mask... - wenn aktiviert kann hier eine Maske geladen werden. Die Maske beeinflusst die Überlagerung von Terrains. Bei der Maske gelten folgende Regeln:

* RGB(0,0,0) - hier wird kein Terrain überlagert
* RGB (255,255,255) - hier wird das Terrain mit 100%*[Einstellung Regler Hight] überlagert.
* Alle Zwischenwerte der Graustufen entsprechen dann einer Überlagerung mit geringerem Wert.

inv. - wenn aktiviert, dann wird die geladene Maske invertiert in die Berechnung einbezogen.

view - hier kann man die Maske noch mal in einer Vorschau ansehen

Produce Terrain - und los geht’s mit der Berechnung. Im Statusbalken wird der Fortschritt der einzelnen Berechnungsstufen angezeigt.

Edit

Dieser Bereich ermöglicht das pixelgenaue Bearbeiten des Terrains. Über die Buttonleiste können die einzelnen Funktionen angewählt werden.

keine Funktion ist ausgewählt (Standardeinstellung)

alt

Malpinsel - hier kann man bei gedrückter linken Maustaste im Terrain „malen“. Dabei kann mit der „Pick“-Funktion die Terrainhöhe an den Malpinsel übermittelt werden. Die Höhe ist im Farbbalken ablesbar. Der Regler „Heigth“ stellt die Malhöhe ein. Der Regler „Width“ bestimmt die Stiftbreite.

alt
Bei "Malen" stehen verschiedene Pinsel zur Verfügung. v.l.n.r

* Rechteckiger Pinsel
* runder Pinsel
* Rauschen

Die Zahl am rechten Rand der Leiste gibt die Strichbreite an.

altTerrain anheben - mit gedrückter linken Maustaste kann man eine „Spur“ in das Terrain einzeichnen (rot), an welcher entlang, nach dem loslassen der Maustaste das Terrain angehoben wird. „Width“ bestimmt hier wieder die Breite und „Depht of Effects“ die Stärke des Anhebens. „Heigth“ hat hier keinen Einfluss.

altTerrain absenken (siehe: Terrain anheben)

Erosion -wie Terrain anheben, nur das entlang der Spur eine Erosion auf das Terrain berechnet wird. „Depht..“ bestimmt wieder die Stärke des Effectes.

Rauschen - entlang der Spur wird ein rauschen auf das Terrain gelegt.

Weichzeichnen - entlang der Spur wird das Terrain weichgezeichnet (Regler wie bei „Erosion“)

Schärfen - entlang der Spur wird das Terrain geschärft (Regler wie bei „Erosion“)

Width -bestimmt die Dicke des Stiftes

Depht -bestimmt die Stärke der Filter

Height -wählt eine Höhe aus – mit dem Regler Fine Tuning kann man diese Höhe fein einstellen – Reset setzt das fine tuning zurück

Pick wenn Aktiv = bei Mausklick auf das Terrain wird die aktuelle Terrainhöhe in den Höhenregler übernommen. Wird automatisch eingeschaltet, wenn der Stift gewählt wurde.

Auswahl - hiermit kann ein Bereich des terrains ausgewählt werden

Fill - füllt den Bereich mit der Höhe, welche mit dem Regler Height ausgewählt wurde

Lift - hebt den Bereich an – die Stärke wird durch den Regler Depht angegeben

Lower - senkt den Bereich ab – die Stärke wird durch den Regler Depht angegeben

Trim - schneidet das Terrain anhand des ausgewählten Bereiches Quadratisch zu. Dabei wird die längste Kante des Auswahlbereiches heranngenommen und diese Länge als Basislänge des Quadrates hergenommen. Danach wird der Auschnitt wieder auf die Größe der nächst größeren Standardterraingröße (129,256,512 ...) vergrößert. Die dabei zwangsläufig entstehende Pixligkeit des Terrains kann durch diverse Filterfunktionen wieder retuschiert werden.

Reflect - spiegelt den ausgewählten Bereich Vertikal oder Horizontal

Make Object - kopiert den ausgewählten Bereich in ein Objekt

Color white setzt den Höhenregler ganz nach rechts = maximale Höhe = RGB 255,255,255 und schaltet „Pick“ aus. Diese Funktion die dem schnellen Einstellen der Werte zum Erstellen von Masken.

Mask.. hier öffnet sich die Maskenfunktion. Diese dient dazu, Masken für Terragen einfach aus einem Terrain zu erstellen.



white alle Bereiche, die nicht weiß sind (RGB 255,255,255) werden schwarz ausmaskiert (RGB 0,0,0)

black alle Bereiche, die nicht schwarz sind (RGB 0,0,0) werden weiß ausmaskiert (RGB 255,255,255)

Range alle Bereiche, die innerhalb der Regler from und to liegen werden maskiert

Effects

In diesem Bereich kann das Terrain global bearbeitet werden. Folgende Funktionen stehen zur Verfügung:

alt

Invers Invertiert das komplette Terrain, d.h. was vorher Berge waren sind danach Täler, ok ?

Sinus shift hebt das Terrain nach einer Sinusfunktion an


Elevator shift Über eine eigenes Fenster kann hier die Höhenverschiebung innerhalb der Terrains eingestellt werden. Im linken Feld kann mit gedrückter Maustaste ein Höhenverlauf eingestellt werden. Dabei ist folgendes zu beachten. Von links nach rechts sind die Höhen im Ausgangsterrain, von oben nach unten, im resultierenden Terrain gezeichnet. Eine Diagonale von rechts oben nach links unten erzeugt keine Veränderung des Terrains. Im unten dargestelltem Beispiel würde das Terrain im unteren Höhenbereich zusätzlich abgesenkt, im oberen Höhenbereich zusätzlich angehoben. Man kann aus den, in der rechten Liste angezeigten Voreistellungen sich eine Kurve aussuchen. Eine selbst gemalte Kurve kann mit „Add“ dauerhaft abgespeichert werden. Eine vorhandene Kurve kann modifiziert werden und mit „Save“ abgespeichert werden. „RESET“ setzt die Ausgangsdiagonale fest.

alt

Gamma Shift Hebt das Terrain nach einer Gammafunktion an – Invers = senkt das Terrain

Fourier analysis Bearbeitet das Terrain anhand deiner Fourierfunktieon

Smooth Weichzeichnen des Terrains

Noise Legt ein Rauschen auf das Terrain

Erosion Berechnet eine Erosion auf das Terrain. River= Flusstrulktur – Rain = Tropfenstruktur

Strech zieht das Terrain vertikal auseinander

Clamp begrenzt das Terrain anhand der Höhenregler.

Depht Legt die Stärke der Effekte fest.

Elevator-Parameter Mit diesen Reglern kann man für Smooth, Noise, Elevator den zu bearbeitenden Höhenbereich festlegen. Die Anzeige der Höhen in Metern dient dazu als Orientierung.

Reset“ stellt die Regler auf Ausgangswerte zurück( gesamter Höhenbereich)

Objects

Auf der Objects-Seite können nun Objecte (Bilder) in das Terrain eingebunden werden. Mit Add-Objectskönnen Bilder in das Terrain geladen und mit der Maus frei positioniert werden. Mit der rechten Maustaste kommt man in ein Menu:

alt

Object-Menu

alt

Properties: Ruft den Einstellungsdialog für das Object auf

Hier kann die Methode angegeben werden, wie das Object mit dem Terrain verbunden wird.
“Putting on Terrain” setzt das Object auf Das Terrain auf, unabhängig vom darunterliegendem Terrain



Adjustment - Gibt die Position der oberen linken Ecke des Objectes an

Die Angaben von H1 und H2 geben die Höhenmaße des Objectes an. Mit H1 bestimmt man die Absolute Höhe des Objectes, mit H2 den Abstand des Objectes vom Terrain. Dabei wird der Punkt vom Mittelpunkt des Objectes auf das darrunterliegende Terrain verwendet. H2 ist nur aktiv, wenn “Putting on Terrain” aktiv ist.

Orientation

  • Rotate left, right - dreht das Object um jeweils 90° links herum, bzw rechsherum (Uhrzeigersinn)
  • Reflect .... - spiegelt das Object an der jeweils angegebenen Achse


Filter

alt

Hier können einige Filter für das Object angewählt werden. Da das Object ein Bitmap ist, sind diese Filter auch nicht vergleichbar mit den Terrainfiltern. es sind ausschließlich richtige Bitmap-Filter, wie man sie aus dieversen Bildbearbeitungsprogrammen kennt. Diese Filter haben vorgegebene Standartwerte und können nicht eingestellt werden.

  • Copy - koppiert das Objekt, d.h. es entsteht ein neues Objekt mit identischem aussehen.
  • to front - hebt das Objekt in den Vordergrund, wenn mehrere Objekte übereinander liegen, kann so das Objekt wieder vollständig sichtbar gemacht werden
  • to back - legt das Objekt in den Hintergrund, um andere darunterliegende Objekte sichtbar zu machen
  • Merge: Bindet das Object mit den Einstellungen in das Terrain ein
  • Merge all: bindet alle offenen Objecte in das terrain ein
  • Delete : löscht das matkierte Objekt
  • Delete all : löscht alle nichteingebundenen Objekte
  • Save Object : hier kann das Objekt als BMP-File abgespeichert werden
  • Save Mask : Das Objekt wird hier als BMP-Maske abgespeichert, um diese später in Terragen für das Surface zu verwenden. Die Maske erhält die Größe des Terrains mit einem schwarzen Hintergrund und das Gewählte Objekt in eine Maske umgewandelt und mit der derzeitigen Position und größe direkt in die Maske eingebaut. Das Umwandeln des Objektes in eine Maske wird anhand der Graustufen vorgenommen, alles Graustufen, die zwischen RGB(0,0,0) und RGB(5,5,5) liegen werden als schwarz interpretiert. Alle anderen Graustufen werden zu RGB(255,255,255) gewandelt. Damit erhält man eine zum gewählten Objekt zugehörige Pixelgenaue Maske.

Z-Ansicht

Diese Funktion wird aktiviert mit dem „Z“-Button im Bereich „View“. Im Normalfall sieht man das Terrain nor aus der Vogelperspektive. Wie in Terragen, so auch in allen anderen Tools. Hier ist die Besonderheit, das man sich das Terrain auch von der Seite ansehen kann. Damit wird die Vorstellung, wie das Terrain tatsächlich aussieht klarer. Mit den Slidern „x“ und „Y“ kann man seine Position der Ansicht wählen.

alt


X – das Terrain wird von oben nach unten aufgeschnitten , Ansicht von links

Y – das Terrain wird von links nach rechts aufgeschnitten, Ansicht von unten

Eine Änderung der Slider bewirkt eine sofortige Umschaltung und Aktualisierung der unteren Z-Ansicht.

Um hier helfen die Positionsangaben im unteren Fensterbereich, um die genaue Position im Terrain zu bestimmen. Dadurch sind vor allem detaillierte, positionsgenaue Änderung am Terrain möglich. Wird eine Bearbeitungsfunktion gewählt wird automatisch von der Z-Ansicht wieder in die X-Y-Ansicht umgeschaltet.

Real -hier kann die Anzeige umgeschaltet werden. Ist der real-Button ausgewählt, zeigt sich das Terrain mit realen Höhenabstufungen. Ist Real ausgeschaltet, wird die Terrainansicht auf die gesamte Anzeigefläche optimiert.

3D-VIEW

Zeigt das Terrain in einer 3D-Ansicht an. Das Höhenverhältnis entspricht der Ansicht in TerraGen



REDRAW - wiederholt den Bildaufbau

Farbbutton - hier kann man die Vordergrundfarbe der Darstellung ändern

Save - speichert die Ansicht als BMP-File ab.

ObjectMaker

Der ObjektMaker ist ein eigenständiger und sehr komplexer Bestandteil von TerraMaker. Mit ihm kann man Objekt erstellen. Die Objekt werden erzeugt aus der Kombination der 3 Ansichten X ,Y und Z-Ansicht.Im Vorschaubild kann man sich das Ergebnis anschauen. Wahlweise in 3D oder von Oben.



Die Z-Ansicht ist die Ansicht von Oben. Die X- und die Y-Ansicht sind Masken, womit die Z-Ansicht modifiziert wird. Die Art der Modifikation wird unter Option Result angegeben.

Global (rechts oben)

Load -lädt eine komplette Einstellung des ObjektMakers von der Festplatte

Save - sichert die kompletten Einstellungen auf der Festplatte.

Reset - setzt alle Ansichten zurück

Preview

Preview - berechnet das Objekt mit den aktuellen Einstellungen und Zeigt es an

Apply - übernimmt das Objekt in den TerraMaker und Schließt den Objektmaker

In der X- und Y-Ansicht kann man mit der Maus eine Maske erstellen. Dazu fährt man mit gedrückter Maustaste über die Ansicht

In der Z-Ansicht kann man mit der linkem Maustaste malen und mit der rechten Maustaste löschen. Die Breite für den Pinsel wird mit dem rechten Regler angegeben, die Höhe mit dem linken Regler. Je Heller der Grauton, umso höher wird der Punkt.

Über die einzelnen Button an den Ansichten können verschiedene Funktionen Ausgewählt werden. Für alle Ansichten haben folgende Button die gleiche Funktion.

Clear löscht die Ansicht

Full füllt die komplette Ansicht mit der maximalen Höhe

Load lädt eine Ansicht von der Festplatte

Save Sichert die aktuelle Ansicht auf der Festplatte

Preset lädt eine voreingestellte Ansicht aus der Liste

Smooth Weichzeichnen der Ansicht



Z-Ansicht

Diffuse macht die Ränder der Ansicht diffuse

From Pre. Übernimmt die Ansicht aus Result in die Z-Ansicht



X- und Y-Ansicht

Reflecting spiegelt die Ansicht an der mittleren vertikalen Achse

Inverse Invertiert die Ansicht

Sym macht die Ansicht symmetrisch. Die linke seite wird an der vertikalen Mittellinie auf die rechte Seite der Ansicht gespiegelt.

Swap Tauscht X- und Y-Maske miteinander aus.

-> kopiert X auf die Y-Ansicht

<- kopiert Y auf die X-Ansicht



Besonderheit

Rotation X - Damit wird die X-Maske im Ergebnis rotiert. Damit lassen sich rotationssymmetrische Körper erzeugen.

Use Y and Z-Mask - kann nur aktiviert werden, wenn Rotation X aktiviert ist. Modifiziert den mit X-Maske erstellten Körper mit der Z- und der Y-Maske.

Y=CrossMask - kann nur aktiviert werden, wenn Rotation X und Use Y an Z Mask aktiviert ist . Zusätzlich wird bei der Rotation noch die Y-Maske kreuzweise als Maske verwendet.