Geländemodifikation

Selbst in den meisten modernen Computerspielen ist ein freies Modifizieren des Geländes während der Laufzeit nicht möglich. So werden beispielsweise Krater in Flugsimulatoren häufig nur als Textur dargestellt und nicht als dreidimensionale Veränderung des Geländes. Ich habe mich daher mit der Frage beschäftigt, wie sich dreidimensionale Modifizierungen am Gelände während der Laufzeit realisieren lassen.

In einem ersten Schritt wird eine Matrix, die so genannte Modifikationsmatrix, angelegt. Sie beinhaltet alle Werte, mit denen ein ausgewählter Bereich des Gelände modifiziert werden soll. Positive Einträge bedeuten eine Hebung des Geländes und negative Einträge entsprechend eine Senkung. Neben der Modifikationsmatrix wird eine rechteckige Bounding Box benötigt, welche das zu modifzierende Gelände umrandet. Ist beides gegeben, kann mit der Modifizierung begonnen werden. Dazu werden die Flächen, welche (teilweise) in der Bounding Box liegen so weit verfeinert, bis die Kantenlänge der verfeinerten Flächen kleiner oder gleich der Teilfächen der Bounding Box ist. Die Höhe, bzw. Breite einer Bounding Box Teilfläche berechnet sich dabei aus der Höhe/Breite der Bounding Box dividiert durch die Anzahl an Zeilen/Spalten der Matrix. In der folgenden Abbildung soll dies veranschaulicht werden.

Das folgende Bild zeigt ein Krater, welcher in eine ansonsten planare Fläche eingefügt worden ist. Die Form des Kraters, d.h. die Einträge der Matrix wurde eine Standardnormalverteilung berechnet.