Generieren des Terrains

Zu Beginn wird angenommen, dass ein Datensatz mit allen Informationen über das Gelände bereits vorliegt, z.B. in Form von Satellitenaufnahmen. Sollen in der grafischen Anwendung jedoch große Landschaften wie beispielsweise Inseln oder der Grand Canyon visualisiert werden, so wären die dafür nötigen Datensätze beliebig groß. Aus diesem Grund wird das Terrain, welches letztlich visualisiert wird, anhand des vorliegenden Datensatzes generiert.

Das Generieren des Datensatzes funktioniert wie folgt: zu Beginn wird ein Rechteck angenommen, welches der Grundfläche des Geländes entspricht. Nun wird überprüft, ob das Rechteck verfeinert werden muss, um das Gelände zu approximieren. Dazu interpoliert man die Höhe des Mittelpunktes jeder Kante des Rechtecks anhand der beiden zur Kante gehörenden Eckpunkte und vergleicht diesen Höhenwert mit dem Höhenwert, den der gegebene Datensatz für diese Stelle angibt. Ist die Differenz von gegebener und interpolierter Höhe an mindestens einer Kante größer als ein vorher festgelegter Fehlerschwellwert, so wird das Rechteck in vier kleinere, gleichgroße Rechteck verfeinert. Der Test wird anschließend auf diesen vier Rechtecken wiederholt. Das Verfahren wird nun so lange wiederholt, bis die Fehler aller Quadrate unterhalb des Fehlerschwellwertes liegen. Je geringer dieser Fehlerschwellwert ist, umso exakter wird das gegebene Gelände approximiert. Das Verfeinerungsverfahren soll die folgende Skizze veranschaulichen, wobei das gegebene Gelände blau, der Fehler rot und die Kanten schwarz gefärbt sind:

Nach dem Verfeinern wurde das Gelände bereits hinreichend approximiert. Bevor das Gelände nun trianguliert werden kann, wird überprüft, ob Rechtecke mit gemeinsamer Kante sich höchstens um eine Größenordnung unterscheiden (siehe dazu ausführlich die Bachelor-Arbeit). Wenn dies der Fall ist, ist sichergestellt, dass es zu keinen visuellen Artefakten kommt. Sollten sich zwei angrenzende Flächen jedoch um mehr als eine Größenordnung unterscheiden, müssen die entsprechenden Flächen nachverfeinert werden. Ist das Gelände nun hinreichend verfeinert, kann es vermascht werden. Bei der Triangulierung wird so vorgegangen, dass jede Fläche einzeln trianguliert wird. Das folgende Bild zeigt ein Gelände mit einem bestimmten Fehlerschwellwert, nachdem es verfeinert und vermascht wurde.

Rendern des Terrains

Nachdem das Gelände generiert wurde steht nun das Rendern noch aus. Neben der Berechnung der Normalen gehört dazu auch die Texturierung. Im wesentlichen wird zwischen höhenabhängiger Färbung und normaler Texturierung gewählt. Bei höhenabhängiger Färbung wird der Farbwert, welcher einem Knoten zugewiesen wird abhängig von der Höhe, d.h. dem y-Wert des Knotens gemacht. Im Allgemeinen wird diese Technik der Kolorierung verwendet, um die Struktur eines Geländes zu visualisieren. Das folgende Bild zeigt das Gelände aus dem letzten Kapitel, versehen mit einer höhenabhängigen Färbung, wobei ein monochromer Farbbereich zwischen Schwarz (tiefster Punk) und Weiß (höchster Punkt) gewählt wurde.

Bei der Texturierung hat man die Wahl zwischen einer Texturierung mit einer Textur und der Texturierung mit mehreren Texturen. Das unten stehende Bild zeigt das Gelände von oben mit einer großen Textur, welche auf das Terrain gemappt wurde. Verwendet man mehrere Texturen für ein Terrain, so spricht man von Tiling. Beim "Kacheln" kann das Gelände beispielsweise mit sich periodisch wiederholenden Texturen texturiert werden, etwa einer Gras-Textur für großflächige Weidenflächen. Dadurch benötigt man weniger Speicherplatz, da man lediglich eine kleinere Textur benötigt, die sich periodisch wiederholt.