Bryceforum Terrain Tutorial ~ I ~

Substitution parametrischer Objekte durch Terrains

Terrains als Ersatz für parametrische Objekte

Die Terrains in Bryce sind ein Musterbeispiel für eine hervorragende Darstellung natürlicher Gebirge und Geländeformationen. Verknüpft mit den fraktalen Texturen, welche mit Bryce angeboten werden, lassen sich natürliche Umgebungen in naher Perfektion rendern. Daß Terrains aber noch viel mehr vermögen, soll das folgende Tutorial verdeutlichen.

Beispiel:

Bei der Erstellung einer Häuserfassade kann man natürlich eine Kombination von parametrischen Objekten benutzen, die das gewünschte Ergebnis produziert. Hierbei geht man bei der Konstruktion der Szene beispielsweise von einem großen Quader aus, der mit boolschen Operatoren durchbrochen wird, wobei die gewünschten Fenster entstehen. Diese werden dann mit Hilfe weiterer parametrischer Objekte, wie Zylindern und langgestreckten Quadern verziert. Zum Abschluß soll die Fassade noch durch Arcaden verziert werden und oben mit einem klassischen Kranzgesims abschließen.

Tafel 1
Diese Beispielszene wurde auf die oben beschriebene Art und Weise hergestellt. Sie besteht aus etwa vier Dutzend boolschen Operatoren und 280 parametrischen Objekten.
Besonders “verschwenderisch” fallen dabei die Gesimse ins Gewicht, welche für sich allein schon etwa 60% der Szenenobjekte in Anspuch nehmen. Die Gebäudewand benötigt etwa 3,5 MB an Plattenspeicher
280 parametrische Objekte
Hauswand (gerendert)
Natürlich soll es bei der Konstruktion eines Gebäudes nicht nur bei einer Hauswand bleiben. Daher benötigt man die zuerst erstellte Wand insgesamt 4x und kommt damit schon auf eine beachtliche Szenenkomplexität von etwa 1120 parametrischen Objekten. Ich habe in diesem Einfachen Beispiel nur noch ein Dach hinzugefügt und auf Zwischendecken und weitere Verzierungen verzichtet. Zwei dieser Bauwerke benötigen über 2000 Objekte, was bei vielen Rechnern schon an die Grenzen stößt.
1121 parametrische Objekte
Bauwerk (gerendert)

Da es sich hier um ein relativ einfaches Beispiel handelt, kann sich der Leser sicher vorstellen, welche Mengen an parametrischen Objekten für Szenen, wie “New York” oder “Château Phantasie” notwendig gewesen wären. Wir sprechen hier von zehntausenden…..

Dies wäre kein Tutorial, wenn es für das Problem nicht eine elegante Lösung anbieten würde ;-). Wie in den Untersuchungen zum Tutorial “Was man bei Szenen mit mehreren tausend Objekten beachten sollte” schon deutlich geworden ist, können Terrains nicht nur schnell verarbeitet werden, sie nehmen auch eine vergleichsweise gewaltige Menge an Informationen auf! Es empfiehlt sich daher zur Vermeidung einer sehr großen Anzahl parametrischer Objekte diese durch gezielten Einsatz von Terrains zu ersetzen.
Dazu bedarf es einer kurzen Analyse des zu erstellenden Objekts unserer Häuserwand, bzw. unseres Beispielbauwerks.
Die Häuserwand in unserem Beispiel besteht nämlich grundsätzlich aus vier unabhängigen logischen Ebenen:

  1. der eigentlichen “Wand” mit den Aussparungen für die Fenster und Arcaden,
  2. den Gesimsen, die eine hellere Farbe haben, als die Wand (Ansonsten könnten sie auch als Oberfläche der Wand gesehen werden!),
  3. den Fensterrahmen, welche eine bräunliche Färbung aufweisen,
  4. und den Glasfenstern

letztere lassen sich einfach durch eine rechteckige Fläche aus Fensterglas darstellen. Die drei ersten “Gebilde” lassen sich auch als symmetrisches Terrain darstellen, was durch folgende Grafiken erreicht wird, welche Sie in einem externen Programm wie “Photoshop” oder “Corel Draw” selber zeichnen können.

Tafel 2

Diese drei Grafiken können dann in symmetrische Terrains über den Terraineditor verwandelt werden. Hierzu laden Sie die gezeichneten Grafiken als Bild ein und wenden sie auf das Terrain an. Die Origanalgrafiken, die ich verwendet habe, sollten eine Auflösung von 512×512 nicht unterschreiten, andernfalls sehen die entstandenen Wände etwas verzerrt aus.

Tafel 3
Die insgesamt vier Ebenen sind einzeln im linken Bild dargestellt und erzeugen – zusammengefügt – jene Hauswand, welche vorher aus parametrischen Objekten erzeugt wurde. Bis auf die Fläche für das Fensterglas wurde kein einziges parametrisches Objekt herzu benötigt. Ohne die farbliche Differenzierung hätte natürlich sogar ein einziges Terrain ausgereicht, wobei man mit einer Textur als Bilddatei einen ähnlichen und noch sparsameren Umgang erreichen könnte!

 

Tafel 4
Das entstandene Gebäude benötigt 22,4 MB Festplattenspeicher, wohingegen dasselbe Bauwerk als Sammlung parametrischer Verknüpfungen “nur” 13,8 MB bvenötigt. Ich habe allerdings für die Arcaden eine Terraindimension von 1024 gewählt, ohne die die Datei etwa dieselbe Größe als Terrain gehabt hätte.

Wichtig ist aber: Die Datei aus den Terrains enthält nur 21 Objekte, während die erste Version aus 1121 parametrischen Objekten bestand. Mit Blick auf die quadratische Entwicklung Speicherzeit, ist das ein gradezu unschätzbarer Vorteil, denn bei den meisten Szenen soll es ja nicht bei einem Gebäude bleiben!

Repliziert man das Beispielbauwerk einmal auf 30 Objekte, dann wird der gewaltige Unterschied zwischen den terrainbasieren Konstruktionen und den parametrischen Verknüpfungen auf beeindruckende Art und Weise deutlich!

Tafel 5
Diese Szene besteht nun aus insgesamt 30 Terrainbauwerken, welche insgesamt mit 672 MB zu Buche schlagen! Diese ungeheure Informationsmenge lässt sich auf einem System mit einem 1000 Mhz Prozessor und 256MB Hauptspeicher mit nur geringen Verzögerungen händeln. Zum Speichern benötigte das Testsystem “nur” 81 Sekunden, was für diese Szenengröße extrem kurz ist.

Bryce legt die Terraininformationen anscheinend geschickt im Speicher ab, was dazu führt, daß erst beim Abspeichern auf Festplatte diese gewaltige Menge an Informationen sichtbar wird. Ich möchte betonen, daß mein Testrechner wirklich nur 256MB Speicher besaß und Bryce damit ohne langwieriges “Swapping” auf die Harddisk zurecht kam.
Hätte ich diese Szene aus parametrischen Objekten erstellt, so würden diese 30 Bauwerke insgesamt 33630 Objekte beinhalten, was unterhalb von 1 Gigabyte Hauptspeicher von Bryce meist mit einem Systemzusammenbruch bestraft wird. Selbst wenn es mir gelungen wäre, diese Szene zu konstruieren, so hätte ein 1200Mhz Thunderbird schließlich zum Abspeichern hochgerechnet eine Zeit von ca. 12 Stunden benötigt!