30
Graphikprogrammierung - Markus Geilfuß – WS 2003/2004 Seite 1 von 30 Dokumentation zum Projekt “Dogfight“ Im Rahmen der LV Graphikprogrammierung Prof. Dr. Heinzel FH Fulda WS 2003/04 Stand 05.01.2004 Bearbeiter: Markus Geilfuß e-Mail: [email protected]

“Dogfight“ - hs-fulda.de · Graphikprogrammierung - Markus Geilfuß – WS 2003/2004 Seite 1 von 30 Dokumentation zum Projekt “Dogfight“ Im Rahmen der LV Graphikprogrammierung

Embed Size (px)

Citation preview

Graphikprogrammierung - Markus Geilfuß – WS 2003/2004 Seite 1 von 30

Dokumentation zum Projekt

“Dogfight“

Im Rahmen der LV Graphikprogrammierung

Prof. Dr. HeinzelFH Fulda WS 2003/04

Stand 05.01.2004

Bearbeiter: Markus Geilfuße-Mail: [email protected]

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 2 von 30

Inhaltsverzeichnis

1. PROJEKTINHALT ....................................................................................................................... 3

1.1 BESCHREIBUNG DES PROJEKTES.............................................................................................................3 1.2 UNTERTEILUNG DIESER DOKUMENTATION...............................................................................................3

2. ERSTELLUNG UND GESTALTUNG EINER UMGEBUNG ................................................. 3

2.1 BESCHREIBUNG DES AUFGABENBEREICHS...............................................................................................3 2.2 ERSTELLUNG EINES HIMMELS................................................................................................................4 2.2.1 BESCHREIBUNG DER AUFGABE...........................................................................................................4 2.2.2 HERANGEHENSWEISE UND DURCHFÜHRUNG..........................................................................................4 2.2.3 AUFGETRETENE PROBLEME UND LÖSUNGEN.........................................................................................6 2.3 ERSTELLUNG EINER REALISTISCHEN LANDSCHAFTSUMGEBUNG...................................................................7 2.3.1 BESCHREIBUNG DER AUFGABE...........................................................................................................7 2.3.2 ERSTELLUNG DER GEOMETRISCHEN STRUKTUR......................................................................................7 2.3.3 TEXTURIERUNG DER INSEL..............................................................................................................10 2.3.4 AUFGETRETENE PROBLEME, LÖSUNGEN UND ABSCHLIESSENDE BEMERKUNGEN.........................................14 2.4 ERSTELLUNG UND ANIMATION EINES OZEANS........................................................................................15 2.4.1 BESCHREIBUNG DER AUFGABE.........................................................................................................15 2.4.2 ERSTELLUNG DES OZEANS...............................................................................................................15 2.4.3 ANIMATION DES OZEANS................................................................................................................16 2.4.4 AUFGETRETENE PROBLEME UND LÖSUNGEN.......................................................................................17 2.5 WOLKEN UND NEBELEINSATZ..............................................................................................................18 2.5.1 BESCHREIBUNG DER AUFGABE.........................................................................................................18 2.5.2 ERSTELLUNG DER WOLKEN.............................................................................................................18 2.5.3 POSITIONIERUNG VON WOLKEN UND NEBEL.......................................................................................20 2.5.4 AUFTRETENDE PROBLEME UND LÖSUNGEN.........................................................................................22

3. SOUNDEFFEKTE UND SOUNDTRACK ................................................................................ 23

3.1 BESCHREIBUNG DES AUFGABENBEREICHS..............................................................................................23 3.2 HERANGEHENSWEISE UND DURCHFÜHRUNG...........................................................................................23

4. FILMSCHNITT, COMPOSITING ........................................................................................... 25

4.1 BESCHREIBUNG DES AUFGABENBEREICHS..............................................................................................25 4.2 HERANGEHENSWEISE UND DURCHFÜHRUNG...........................................................................................25

5. ABSCHLIESSENDE BEMERKUNGEN .................................................................................. 26

5.1 GESCHÄTZTER ZEITAUFWAND..............................................................................................................26 5.2 DATENMENGE, RENDERZEITEN.............................................................................................................27

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 3 von 30

6. ANHANG ...................................................................................................................................... 27

6.1 ABBILDUNGSVERZEICHNIS....................................................................................................................27 6.2 LITERATURVERZEICHNIS......................................................................................................................28 6.3 INHALT DER BEIGELEGTEN CD-ROM................................................................................................29

1. Projektinhalt

1.1 Beschreibung des Projektes

Das Projekt beschäftigt sich mit einem Luftkampf zur Zeit des 2ten Weltkriegs, bei demzwei Flugzeuge ein anderes, feindliches verfolgen und zum Absturz bringen. BesonderenWert wurde hierbei auf die visuelle Umsetzung gelegt, sei es bei der Animation, derUmgebungsgestaltung oder den Visual Effects. Dieses Grundkonzept wurde in eineUmgebungstory eingebettet, welche im Inneren eines Leuchtturms beginnt und mit demAbsturz des feindlichen Flugzeuges in diesen endet.

1.2 Unterteilung dieser Dokumentation

Der durch mich zu erledigende Projektteil lässt sich grob in 3 Bestandteile unterteilen;zum einem in die mit Abstand größte Aufgabe - die komplette Gestaltung einerfunktionsfähigen Umgebung mit Wasser, Himmel, Landschaft und Wettereffekten - zumanderen in die Erstellung eines eigenen, zum Projekt passenden Soundtracks und demanschließenden Filmschnitt sowie Nachbearbeitungen und Compositing.Analog zu dieser Unterteilung wird auch diese Dokumentation eingeteilt, zunächst folgtdie Erstellung und Gestaltung der Umgebung, darauf die Kreation des Soundtracks undanschließend Compositing, Nachbearbeitung und Filmschnitt.

2. Erstellung und Gestaltung einer Umgebung

2.1 Beschreibung des Aufgabenbereichs

Ohne realistische Umgebung ist kein realistischer Gesamteindruck möglich. Umsowichtiger war es, die Umgebung glaubhaft und möglichst realistisch umzusetzen. Hierbeimussten zahlreiche Einzelteile realisiert und zueinander in Verbindung gebracht werden.

Zugleich stellen sich allerdings Fragen im Bereich der Renderzeiten und des Speicherbe-darfs – wie groß muss und darf eine Umgebung sein? Wie lange darf eine Wolke rendern?Alles Dinge, die bei der Erstellung einer Umgebung bedacht werden müssen, um die

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 4 von 30

Fertigstellung des Projektes innerhalb des sehr engen Zeitrahmens zu garantieren.

Im Folgenden wird die Erstellung der Umgebung, die im Projekt Verwendung fand, imDetail erläutert - bestehend aus Himmel, Inselstruktur und -texturierung sowie einesanimierten Ozeans und schlussendlich die Erstellung und der Einsatz von realistischenWolkenformationen und Nebel. Hierbei werden auch zahlreiche aufgetretene Problemesowie deren Lösungen erläutert.

2.2 Erstellung eines Himmels

2.2.1 Beschreibung der Aufgabe

Im Zuge dieser Aufgabe galt es einen Hintergrund für die einzelnen Szenen zu entwerfen.Dieser Hintergrund war einem reellen Himmel nachzuempfinden. Vorgabe der Planung-phase war hier eine dunkle, kalt wirkende und bewölkte Stimmung kurz vor Sonnen-aufgang.

2.2.2 Herangehensweise und Durchführung

Es existieren mittlerweile zahlreiche Möglichkeiten, in Lightwave einen Himmel zurealisieren, von denen einige im Verlauf dieser Aufgabe auf ihre Tauglichkeit getestetwurden, welcher nun im folgenden erläutert wird. Die wohl gebräuchlichste und am häufigsten anzutreffende Methode ist die Erstellungeines so genannten „SkyDome“. Hierbei wird eine große Halbkugel modelliert, auf die an-schließend eine Himmelstextur angewendet wird.Das Hauptproblem besteht hierbei nicht in der Modellierung – diese ist in Sekundenbruch-teilen zu bewerkstelligen – sondern darin eine geeignete Himmelstextur zu erstellen.

Abbildung 1 - Testrender mit SkyTracer2

Hierzu wurde zunächst der Lightwave eigene „SkyTracer2“ verwendet, allerdings mitwenig zufrieden stellenden Ergebnissen; die Wolken wirkten flach und unansehnlich. Ich zweifle nicht daran, dass es mit SkyTracer möglich ist sehr schöne Himmeltexturen

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 5 von 30

von Sonnenaufgängen und wolkenfreien Sonntagen zu erstellen – welche auch in zahlrei-chen Tutorials beschrieben werden - zur Erstellung von realistisch aussehenden Wolken-formationen scheint SkyTracer jedoch weniger geeignet (siehe Abb.1)

Eine andere Möglichkeit besteht darin, mithilfe von TerraGen [TerraGen] in Verbindungmit dem SOPack Plugin [SOPack] und einigen Tricks in Lightwave eine geeignete .HDRTextur zu erstellen (ein Tutorial hierzu findet sich auch auf [HDRTut]).

Wussten die aus TerraGen gerenderten Einzelbilder jedoch noch zu überzeugen, war esmir trotz zahlreicher Versuche nicht möglich, eine verzerrungsfreie Textur zu erzeugen.Nichtsdestotrotz bietet diese Möglichkeit einige interessante Ansätze, weswegen ich aufdie Nennung dieses Verfahrens nicht verzichten wollte.

So existiert z.B. die Möglichkeit in TerraGen auch eine umgebende Gebirgsstruktur zuerzeugen und so die Illusion einer endlos weiterführenden Landschaft nur durch Einsatzeiner Umgebungstextur zu erzeugen (siehe auch Abb. 2) Wie in der Landschaftsgestaltung jedoch zu sehen sein wird, greift dieser Vorteil in un-serem Projekt nicht, da die Umgebung ausschließlich aus Wasser besteht. Aus diesem undaus Zeitgründen wurde auf eineweitere Verfolgung dieser Möglich-keit daher verzichtet.

Die dritte getestete – undschlussendlich verwendete -Möglichkeit ist die Anwendung desSkyGen Plugins [SkyGen]. DiesesPlugin ist Bestandteil des EKI Plu-gin-Pak 2.0 und ist in der Lageeinen einfach strukturierten, aberausreichenden Himmel in Echtzeitzu erzeugen.

Abbildung 3 - Parametereinstellung SkyGen

Abbildung 2 - TerraGen Testrender

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 6 von 30

Im Vergleich zu den zuvor vorgestellten Möglichkeiten der Erzeugung mittels SkyTraceroder TerraGen erscheint die Anwendung von SkyGen vergleichsweise einfach; durch Ver-schieben einer Anzahl von Reglern werden die Anzahl der Wolken, sowie Parameter fürSonne, Mond und den generellen Farbverlauf eingestellt (siehe Abb.3). Hierbei existierendrei mögliche Arten von Wolken - die Palette reicht von dicken Nebelwolken bis zukleinen Schönwetterwölkchen –welche in unterschiedlichen Häu-figkeitsgraden verwendet werdenkönnen. Echt volumetrischeWolken sind mit dem Pluginallerdings nicht möglich, dafür be-wegt sich die Renderzeit im Se-kundenbereich, ohne unansehnli-che Wolkenformationen wie z.B.SkyTracer2 zu verursachen. Bei allzu grossem Wolkeneinsatzführt das Plugin jedoch zu schlech-teren Ergebnissen, daher wurdennur wenige Wolken eingesetzt, undanschließend weitere zweidimensionale Wolken in die Szenen eingefügt (siehe Kapitel2.5, Wolken und Nebeleinsatz). Als „Basis“ für einen Hintergrund hat es sich jedoch alsäußerst geeignet erwiesen. Als weiterer Vorteil konnte auf den umgebenden SkyDomevollständig verzichtet werden, wodurch die Szenerie nicht mehr künstlich begrenzt wurdeund die Anzahl der Polygone innerhalb der Szenen – wenn auch nur um einen kleinen Teil– gesenkt werden konnte.

2.2.3 Aufgetretene Probleme und Lösungen

Die größte Herausforderung bestand darin, überhaupt eine geeignete Verfahrensweise zurErzeugung eines Himmelhintergrundes zu finden. Diese Suche gestaltete sich weitaus auf-wendiger als dies in der Kürze der Dokumentation darstellbar ist, da es auch leider sehrwenig Dokumentationen zu diesem Thema gibt – speziell was Wolkenformationen be-trifft. So gestaltete sich der Großteil der Suche als zeitaufwendiges Testen von schlechtdokumentierten Verfahrensweisen.

Als klares Fazit bleibt zu sagen, das realistische Himmelhintergründe immer noch einHindernis in Lightwave darstellen. Halbwegs erträgliche Renderzeiten bei einem vernünf-tigen Ergebnis lassen sich nur mit dem Einsatz zusätzlicher „Tricks“ (wie dem Einsatzweiterer 2D-Wolken) erreichen. Viele Verfahren führen selbst bei hohen Renderzeiten zuunbefriedigenden Ergebnissen.

Abbildung 4 - Render mit SkyGen Plugin

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 7 von 30

2.3 Erstellung einer realistischen Landschaftsumgebung

2.3.1 Beschreibung der Aufgabe

Im Zuge dieser Aufgabe galt es, der umgebenden Landschaft eine geographische Strukturzu geben, d.h. die ursprünglich plane 2D-Landschaft durch z.B. realistische Gebirgsstruk-turen oder Inselgebilde in eine glaubhaft realistische Szenerie zu verwandeln.

2.3.2 Erstellung der geometrischen Struktur

Wie schon zuvor bei der Erstellung des Himmels existieren auch hierbei mehrereMöglichkeiten, eine realistische Landschaft zu modellieren.

Die zunächst naheliegenste ist, echte geographische Daten als Grundlage zu verwenden.Dies ermöglicht z.B. auf einfache Art und Weise, realistische Gebirgszüge zu kreieren.Hierzu werden sogenannten SDTS-Daten verwendet (siehe [SDTS]), welche diegeographischen Grunddaten auf Basis von Satellitendaten enthalten. Lightwave ist in der Lage, diese SDTS-Dateien als Textur zu importieren; alsDeformation-Textur auf eine geeignete 2D-Plane angwendet lassen sich so die zuroriginären Geographie gehörigen Strukturen nachbilden. Diese Hervorgehensweise birgt jedoch auch Probleme in sich; so eignet sie sich zwarhervorragend zur Erstellung von Gebirgsstrukturen, nicht jedoch für sanfte Übergängeund Strände, wie sie bei einerInsel vorkommen. Zudem ist es nicht ohne weiteresmöglich, die Strukturnachträglich zu ändern, ohneden realistischen Eindruck zuverlieren. Man erhält demnachzwar auf einfache Art undWeise originalgetreueGeometrien, nimmt damitallerdings in Kauf, dass dieseunter Umständen nicht denWunschvorstellungenentsprechen.

Für diesen Versuch wurdenzunächst SDTS-Daten vonSüdseeinseln verwendet, dadiese der gewünschten Struktur am nächsten erschienen. Zur Texturierung wurde analog des Tutorials [Newtek1] vorgegangen, welches zwar ansich zufriedenstellende Resultate hervorbringt, allerdings wiederum nur fürGebirgsstrukturen geeignet scheint.

In Abb.5 ist ein Testrender einer solchen, mit SDTS-Daten erstellten Struktur zu sehen.

Abbildung 5 - Gebirgsstruktur mit SDTS-Daten, prozeduraleTexturierung

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 8 von 30

Im Weiteren wurde versucht, mit Abschwächungen der geographischen Grunddaten undeiner geänderten Texturierung dem gewünschten Inselbild näher zu kommen. Die dabeierreichten Ergebnisse waren zwar ein Schritt in die richtige Richtung, allerdingsinsbesondere in der Animation (Flug über die Inselgruppe bzw. auf die Inselgruppe zu)noch nicht zufriedenstellend.Durch die Abschwächungen derGeometriedaten in derDeformation der 2D-Ebenekonnten zwar harte Strukturenvermieden werden, das Resultatwar allerdings eine uniformeHügellandschaft ohne Charakterund mit geringerm Realitätsgrad(siehe Abb.6).

Aufgrund eines tragischenFehler meinerseites sind dieUrsprungsdaten dieser beidenVersuche leider verlorengegangen - Die Daten waren inLightwave-Unterverzeichnissen gespeichert; Das Lightwave Installationsprogramm hatanscheinend die Eigenschaft, auch bei einer reparierenden Installation alleUnterverzeichnisse zu entleeren. Somit sind leider nur vereinzelte Testbilder verblieben.

Was zunächst nach einer Katastrophe aussah, hatte durch den anschließenden komplettenNeuanfang schlussendlich große Vorteile. Durch die bereits in Kapitel 2.2 beschriebenenErfahrungen im Umgang mit dem Programm TerraGen [TerraGen], und den negativenErfahrungen aus den vorherigen Landschaftsmodellierungen, versuchte ich nun mit dessenHilfe eine geeignete Inselstruktur zu erstellen - was zu wesentlich besseren Ergebnissenführte.

TerraGen bedient sich bei der Erstellung von Landschaften fraktaler Grundmuster.Zunächst werden in einem Dialog die gewünschten Grundcharakteristiken eingestellt(Wie realistisch soll die Landschaft sein, Anteil vulkanisch basierender Strukturen, etc.).Auf Basis dieser Daten wird eine Grundlandschaft erstellt (Siehe Abb.7).

Abbildung 6 - Verfeinerte Inselstrukturen auf SDTS-Basis,prozedurale Texturierung

Abbildung 7 - Erstellung einer Grundlandschaft mit TerraGen

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 9 von 30

Diese lässt sich nun in einer 2D Ansicht weiter bearbeiten. Die Bearbeitung ist hierbei aufeine einfache Anhebung und Senkung des Geländes begrenzt, was allerdings mit einigerÜbung und den entsprechenden Grundattributen durchaus zu guten Resultaten führte.

In unserem Fall ist das Ziel eine Inselstruktur, daher wurde zunächst die Umgebungabgesenkt, um eine isolierte Landmasse zu erzeugen. Anschließend wurden inaufwendiger Feinarbeit geographische Besonderheiten, z.B. eine Bergerhöhung imNorden hinzugefügt. Die Bearbeitung selbst erfolgt hierbei anhand der 2D-Karte (Abb.8,rot hervorgehoben). Ein Render Preview hilft hierbei, das anschließende 3D-Ergebnis zuüberprüfen. Die Kamera lässt sich hierbei frei positionieren. (Abb.8, gelb hervorgehoben).

Nachdem die Insel entsprechend unseren Wünschen bearbeitet wurde, kann sie von Ter-raGen direkt als Lightwave 3D-Objekt exportiert werden.

Zu beachten ist hierbei, dass TerraGen die gesamte Landmasse exportiert, was zu einergroßen Anzahl von Polygonen führt. Daher wurde das exportierte Objekt zunächst in denLightwave-Modeller importiert, und dort überflüssige und nicht benötigte Teile – indiesem Fall alles unterhalb der Meereslinie, da diese Teile im Endprodukt vom Oceanverdeckt werden - vom Objekt entfernt (siehe Abb.9)

Durch diesen Eingriff konnte die Polygonanzahl der Insel auf weniger als ein sechstel der

Abbildung 8 - Bearbeitete Insel in TerraGen

Abbildung 9 - Wegschneiden überflüssiger Teile der Insel

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 10 von 30

ursprünglichen Größe reduziert werden.

Das Resultat dieser Vorgehensweise ist eine realistisch aussehendes geographischesModell einer Insel, das – im Gegensatz zu den zuvor angewendeten Techniken – exaktnach den gewünschten Vorstellungen modelliert werden konnte. Ein weiterer Vorteil besteht in der Einsparung von Renderzeiten, da das Objekt bereits inseiner finalen Form vorliegt und kein Deformation-Vorgang berechnet werden muss.

2.3.3 Texturierung der Insel

Auf die Modellierung eines Objekts folgt gewöhnlich die Texturierung dessen; dies istselbstverständlich auch in unseremFall nicht anders. Ein wesentliches Problem in derTexturierung einer Insel ist dieschiere Größe des Objektes (ca. 1,6km²), welches durch geographischeEigenheiten weiter erschwert wird.Küstenstreifen sind anders zu textu-rieren als Berggebiete, und auchGebiete mit gleichen Eigenschaftensind zur Wahrung des Realismusmit ihnen eigenen Eigenschaftenauszustatten. Der Versuch einerprozedurale Texturierung über diegesamte Insel lieferte dahererwartungsgemäß eher bescheidene Ergebnisse (siehe Abb.10).

Hierbei versucht wurde die Steigung des Terrains mit der Dichte der Bewaldung zu ver-knüpfen, doch schon bei mittlerer Distanz war die Illusion einer realisistischen Vegetati-on/Felsstruktur nicht mehr aufrecht zu erhalten.Da zum Ende des Films auch Nahaufnahmen der Insel stattfinden sollten, schied dieseMöglichkeit aus.

Das oft verwendete Sasquatch Lite schied ebenfalls als Möglichkeit aus, da unterschiedli-che Vegetationstufen gewünscht waren und die Lite Version von Sasquatch dieseMöglichkeit nicht enthält – in der Lite Version sind nur gleichmässige Verteilungen derVegetation möglich.

Um einen möglichst realistischen Eindruck zu gewinnen, fiel die Entscheidung daher aufdie Texturierung mit einer Image-Map unter Verwendung realistischer Texturen.

Abbildung 10 - Versuch prozeduraler Texturierung der Insel

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 11 von 30

Zunächst wurde hierzu ein 2D-Ab-bild der Insel erstellt. Hierzu wurde auf die Top-Ansichtgewechselt und ein Screenshot dergesamten Inselfläche erstellt. DiePolygone der Inselfläche wurdenhierbei selektiert um den Kontrastzwischen Hintergrund und Inselflä-che zu erhöhen (siehe Abb.11).

Unter Verwendung dieses Screens-hots wurde in Adobe Photoshop dieUmrisse der Insel herausgestellt(siehe Abb.12). Die nicht zur Inselgehörige Fläche wurde hierbei mit einer Sandtextur aufgefüllt. Dieser Teil wird spätervom Ozean bedeckt werden.Anschließend wurde die kleine Vorinsel (rechts auf der 2D-Textur zu sehen) - auf der spä-ter der Leuchtturm stehen sollte - mit einer Probetexturierung versehen, und das Ergebnisin Lightwave überprüft. (siehe Abb.13).

Im nächsten Schritt wurden eine Grundtextur fürKüstenstreifen und Grünland aufgetragen (sieheAbb.15). Diese Texturierung ist noch sehr grob und besteht nur aus wenigen, übereinandergelegten Layern. Sie dient vor allem der Orientierungsfindung im Vorgang des 2D->3DMappings, d.h. auf diese Weise ist es recht einfach zu erlernen, welche Stellen der 2D-Textur welche Stellen des 3D-Modells am Ende bedecken werden. Dies ist wichtig, dadurch die geographischen Verzerrungen des 3D-Modells einige Teile der 2D-Textur feinertexturiert werden müssen, als andere. Auch sind geographische Grundmuster durch unter-schiedliche Texturierungen zu realisieren, wie z.B. Bergstrukturen.

Abbildung 11 - Erzeugung eines 2D Abbilds der Insel

Abbildung 12 - Umrisse der Textur inPhotoshop

Abbildung 13- Überprüfung des Ausschnitts

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 12 von 30

Die grob aufgetragene Grünland-Textur wurde zunächstdurch weitere Unreinheiten verfeinert (ebenfalls bereitsin Abb.15 zu erkennen), hier fand der Pattern Stampvon Adobe Photoshop in unterschiedlichen StärkenAnwendung. Hierzu wurde jeweils eine komplette Textur in Photoshop als Pattern (Muster) definiert.Der Pattern Stamp erlaubt anschließend, dieses Muster wie mit einem Stempel auf denvorhandenen Untergrund aufzudrucken. Verwendet man nun diesen Pattern Stamp mit un-terschiedlichen Mustern und in unterschiedlichen Stärken auf eine Stelle, lassen sich aufeffektive Art und Weise der Grundtextur Verunreinigungen hinzufügen.

Das Resultat der Grobtexturierung am 3D-Objekt in Lightwave ist in Abb.14 zu sehen.Deutlich zu erkennen ist die Unregelmässigkeit des Küstenstreifens trotz relativ regel-mässiger Dicke innerhalb der 2D-Textur. Hier hilft die Grobtexturierung schon frühzeitigsolche geographischen Besonderheiten zu erkennen und mit gezielter zu beheben.

Nun beginnt der aufwendigere Teil der Texturierung, die Feinarbeit. Im Weiteren wurde der Küstenstreifen zunächst um eine weiteren, grober strukturiertenÜbergangstreifen erweitert. Anschließend wurden vom gesamten Küstenstreifen abschnittsweise Renderbilder erzeugt,und der jeweilige Abschnitt im Detail nachbearbeitet. Jede dieser Abschnitte zu besprechen würde den Rahmen dieser Dokumentation sprengen,jedoch soll die generelle Vorgehensweise einmal an einem konkreten Beispiel erläutertwerden.

Abbildung 14 - Lightwave Rendering mit Grobtexturierung

Abbildung 15 - Grobtexturierung desKüstenstreifens und des Grünlands

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 13 von 30

Abbildung 16 zeigt einen solchenVorgang exemplarisch. Aufbauend auf dem ursprünglichenRenderabbild wird zunächst anhand der3D-Struktur des Küstenstreifens die wei-tere Texturierung entschieden. In diesemkonkreten Fall liegt eine Felsstruktur na-he. Der Übergangstreifen zwischen Strandund Grünland wird zunächst zur Küstehinab verlagert, um der Felsstruktur zumEnde hin ein realistischeren Eindruck zugeben (eine harte Felsstruktur folgtselten direkt einem Sandstrand ohneÜbergang). Anschließend wurde die Felsstrukturschrittweise mit Hilfe von weiteren Lay-ern innerhalb der 2D-Textur nachge-bildet, und weitere „Verunreinigungen“hinzugefügt. Dieser Prozeß muss mehrteilig mit stän-digen Kontrollrendern in Lightwave er-folgen, da anhand der 2D-Textur nichtdirekt der schlussendliche Effekt aufdem 3D-Objekt erkennbar ist.Dieser zeitaufwendige Vorgang wurdeüber den gesamten Küstenstreifen derInsel durchgeführt.

Im Anschluß an die Texturierung desKüstenstreifens wurde die Inselmitte um weitere geographisch orientierte Texturierungerweitert, so z.B. um eine Gebirgskette sowie weitere Felsenstrukturen. Hier wurde erneut die geo-graphische Struktur des 3D-Objek-tes herangezogen und gezielt höhereGebiete durch weitere Texturlayerin ihrer Struktur gestärkt.

Ein Beispiel hierzu ist in Abb. 17 zusehen - im oberen Teil des Bildesbefindet sich die zuvor angespro-chene Gebirgskette. Zur Realisierung dieser wurde eineVielzahl von einzelnen Texturlayernin Photoshop übereinander gelegtund mit gradienten Masken belegt, Abbildung 17 - Sicht von oben auf die Insel

Abbildung 16 - Feintexturierung eines Küstenabschnitts

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 14 von 30

um eine realistische Schattierung zu erreichen. Gradiente Masken erlauben es dem Photoshop-Nutzer, eine Texturstärke gradient abfallenzu lassen, z.B. konnte so die graue Grundtexturierung der Gebirgskette zu den Seiten hingleichmässig abgeschwächt werden.

Im unteren Teil von Abbildung 17 sind weitere Texturlayer zu erkennen, beginnend mitseichter bewachsenen, trockeren Gebieten (Bräunliche Färbung) hin zu festen, vulkanischerscheinenden und unbewachsenen Felsenformationen.

2.3.4 Aufgetretene Probleme, Lösungen und abschließende Bemerkungen

Die geographische Formung der Insel mit TerraGen verlief ohne Probleme – jedem, der inZukunft vor einer ähnlichen Aufgabe steht würde ich dieses Programm ans Herz legen.

Die in TerraGen erstellte Struktur ist na-türlich auch auf dem beigelegten Datenträ-ger zu finden. (siehe Anhang)

Wie schon zu Anfang des vorherigen Ka-pitels erwähnt, besteht eines der Hauptpro-bleme in der Texturierung einer Insel inder schieren Größe des Objektes. Diesspiegelt sich selbstverständlich auch in derbenötigten Größe der Textur wieder.

Zunächst wurde versucht im Hinblick aufdie verfügbare Hardware, insbesondereden verfügbaren Hauptspeicher (512MB)eine kleine Textur zu verwenden. Dies führte allerdings zu wenig zufrieden-stellenden Ergebnissen, sprich einem sehrverschwommenen Eindruck bei Nahauf-nahmen.

Die Texturgröße wurde daher den Bedürf-nissen angepasst und auf 3041x5000 Pixelvergrößert. Dies führte zu konstanten Pro-blemen bei der Bearbeitung, die erst durcheine Speicherverdoppelung einigermassenbehoben werden konnten. Der Einsatz voneinfachsten Werkzeugen in Photoshop be-nötigten teilweise Minuten, um dasResultat begutachten zu können. Dies zeigt einmal mehr, wie abhängig derBereich der Computergrafik von der

Abbildung 18 - final Version der Inseltextur (starkverkleinert)

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 15 von 30

verwendeten Hardware ist.

Die finale Version der Inseltextur (in Abb. 18 stark verkleinert zu sehen) besteht aus mehrals 70 Layern und belegt im Ursprungsformat PSD mehr als 220MB Speicherplatz (45MBals auf einen Layer reduziertes TGA). Selbstverständlich finden Sie beide Versionen aufdem beigelegten Datenträger (siehe Anhang). Aus Platzgründen ist jedoch nur die finaleVersion der Textur beigelegt, sollten sie weitere Versionen aus früheren Entwicklungs-stadien der Textur wünschen lassen Sie es mich bitte wissen.

Wie schon zuvor beschrieben besteht die Gesamttextur aus einer Vielzahl von geschicktmiteinander kombinierten Einzeltexturen. Diese Texturen entstammen aus Photographienund wurden aus [Texture1] entnommen.

Zum Abschluss noch ein Hinweis: Einen interessanten Artikel zur automatischen Gene-rierung einfacher Landschaftstexturen auf Basis einer Heightmap findet sich unter [Flipcode1] – aus Zeitgründen konnte dieser Aspekt allerdings nicht weiter verfolgtwerden. Dieser Ansatz ist zwar in der Qualität dem angewendeten Verfahren unterlegen,aber eine interessante Idee zur Texturierung von weitaus größeren Gebieten.

2.4 Erstellung und Animation eines Ozeans

2.4.1 Beschreibung der Aufgabe

Da der Grossteil der Filmszenen über offenem Wasser stattfinden sollte, war es wichtigdie Umgebung mit einem realistisch aussehenden und animierten Ozean auszustatten. Dieses Kapitel beschreibt im folgenden die Erstellung und anschließende Animationdieses Ozeans.

2.4.2 Erstellung des Ozeans

Zunächst galt es, den Ozean als solchenzu erstellen. Hierzu wurde eine 2-dimensionale Plane(2 x 2 km) erstellt und so oft unterteilt,bis die benötigte Anzahl Subpatcheserreicht wurde (in diesem Fall 4096).

Anschließend wurde eine DisplacementMap (Abb. 20) erstellt um dem Oceanseine natürliche Wellenstruktur zuverleihen. Hierzu eignet sich am besteneine Prozedurale Textur vom Typ„Turbulence“ um die Wellenstruktur an sich nachzubilden, und eine additive „dented“Textur um die einem Ozean eigenen Unregelmässigkeiten einzufügen.

Abbildung 19 - 2D Plane bildet die Basis des Ozeans

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 16 von 30

Der RenderSubPatch Level wurde auf3 gesetzt, dies stellt einen gutenKompromiss zwischenRenderzeiten/Speicherbedarf undoptischem Erscheinungsbild dar.

Die Wellenform an sich ist natürlichnicht ausreichend – ein Ozean wirdvor allem durch seine Lichtreflektionund die seine Farbgebung bestimmt.Daher wurde nun im Surface Editoran der optischen Erscheinung des Ozeans gearbeitet.

Ein dunkles Grün-Blau (RGB 16/31/28) bildet hierbeidie Grundfarbe des Ozeans (Abb. 21). Ein zusätzlicher Turbulence TextureLayer wirdverwendet, um Lichtreflektionen zu simulieren. Hierbeiwerden wenige kleine weisse Punkte auf der Oberflächedes Wassers platziert. In der späteren Animation verschwinden diese je nachPosition des zuständigen Null-Objektes und tauchen ananderer Stelle wieder auf (siehe Kapitel 2.4.3), für den Betrachter entsteht die Illusioneines „Glitzerns“ auf dem Wasser, ohne die Renderzeit unnötig zu erhöhen.

Ein weiterer Bump-Layer sorgt für eine weitere Detailierung der Wasseroberfläche, eindarauf angewendeter Gradient-Layer sorgt für einen seichten Schaum auf derWasseroberfläche. Ein Reflektionsgrad von 5% erzeugt eine angenehme Lichtreflektion.

2.4.3 Animation des Ozeans

Wie zuvor erwähnt besteht dieWellenform des Ozeans aus 2Deformation-Layern. Für jeden dieserLayer wurde nun ein Null-Objekterzeugt. Diese Null-Objekte wurdemit dem jeweiligen Deformation-Layer als Referenzobjekt verknüpft(Abb. 23).

Durch Bewegung der Referenzobjekte über den Zeitverlauf konnte nun eineWellenbewegung erzeugt werden (da mit deren Bewegung auch der Ozeanunterschiedlich deformiert wird). Die Kunst besteht darin, die richtigen Werte für die Bewegung des zugehörigen Ozeans zufinden – Ist ein grober Wert am Anfang noch durch schnelle Previews in Lightwave selbst

Abbildung 20 - Displacement Map Einstellungen desOzeans

Abbildung 21 - Surface Preview

Abbildung 23 - Zuweisung Referenzobjekt Abbildung 22 - Surface Einstellungen des Ozeans

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 17 von 30

zu ermitteln, sind für die Feinabstimmung ausgedehnte Testrenderings notwenig.

Hinzu kommt, dass bei einer Änderung derWellenhöhe (Einstellbar z.B. durchErhöhung des Texture Value in denDeformation-Layers), auch die Parameter derNull-Objekte erneut abgestimmt werdenmüssen.

Um den schon im vorigen Kapielangesprochenen Glitzereffekt zu erzielen, istes notwendig auch den Turbulence-Layer imSurface des Ozeans mit einem der Null-Objekte zu verknüpfen.

2.4.4 Aufgetretene Probleme und Lösungen

Eines der kompliziertesten Probleme war die exakte Abstimmung der Wellenbewegungauf die Wellenhöhe, die meiste Zeit erschien die Bewegung zu hektisch und zu schnell,oder es bewegte sich gar nichts. Da leider keinerlei Referenzinformationen zu solch einerAbstimmung vorlagen blieb nichts anderes übrig als den exakten Wert durch ausgedehnteTests zu ermitteln.

Ein weiteres Problem war die Größe desOzeans, sowohl dessen Ausmaße als auchder Speicherbedarf. Um den Speicherbedarf zu reduzierenwurde der Ozean auf eine Größe von2x2km begrenzt, was in der praktischenAnwendung oft Probleme mit der Sichtwei-te mit sich brachte. Insbesondere bei hohenFlugszenen stieß man schnell an die Gren-zen des Ozeans, der schlicht und einfach zuklein war (exemplarisch in Abbildung dargestellt).

Zur Lösung dieses Problems wurde kurzerhand eine zweite Version des Ozeans erstelltwelche identisch mit dem ursprünglichen Ozean ist, bis auf eine Ausnahme: Er wurde inBreite und Länge um das 5-fache gedehnt (auf 10x10km). Da in den Szenen, in denen dieser Ozean Anwendung fand, die Flughöhe sehr hoch ist,war diese Verringerung des Detailgrades nicht sichtbar. Hierdurch bleiben Speicherbedarf und Renderzeiten konstant trotz größerem Ozean; le-diglich die Null-Objekte für die Bewegung mussten entsprechend (um den Faktor 5) ange-passt werden.

Abbildung 24 - Renderbild des finalen Ozeans

Abbildung 25 - - Ein zu kurzer Ozean stört dasGesamtbild

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 18 von 30

2.5 Wolken und Nebeleinsatz

2.5.1 Beschreibung der Aufgabe

Nachdem die geographische Umgebung an sich – Himmel, Ozean und Insel – erstelltwurde, galt es der Umgebung den gewünschten, vernebelten und bewölkten Eindruck zugeben. Da der Himmel wie in Kapitel 2.2 bereits erläutert nur sehr wenig Wolken enthielt,war es nötig weitere Wolken einzuzufügen. Auch sollte es den Flugzeugen möglich sein,durch Wolken und Nebelbänke hindurchzufliegen. Um die Dynamik der Szenen zu erhöhen sollten diese Wolken auch animierbar sein undsich mit dem Verlauf der Szene bewegen. Gleichzeitig wurde Nebel gezielt eingesetzt umzum einen den begrenzten Horizont zu verdecken, zum anderen die Szenerie glaubhafterdarzustellen.

2.5.2 Erstellung der Wolken

Die Erzeugung von 3D-Wolken ist eine der wenigen Dinge, über die ausreichendeLiteratur über die möglichen Vorgehensweisen vorlagen. Pate für die im folgenden erläuterte Vorgehensweise war das Tutorial [LWGTut1],Kapitel 7.7 – Hypervoxel Clouds. Dies gilt jedoch nur für die Modellierung der 3D-Wolken, alle weiteren Schritte musstenin Eigenarbeit entwickelt werden, da hierzu wiederum keine fundierten Erkenntnisse inder Literatur zu finden waren.

Um einen realistischeren Eindruck als mit Hypervoxeln zu erzielen wurde jedoch zuerstversucht, Wolken mit dem Plugin OGOTaiki [OGOTaiki] zu erzeugen. Dies führte jedochnur zu marginal besseren Ergebnissen bei weitaus höheren Renderzeiten. Zudem lag zudiesem Plugin nur eine japanische und unvollständige Kurzdokumentation vor, wasweitere Versuche erheblich erschwerte. Daher wurde diese Möglichkeit im weiterenVerlauf nicht weiter verfolgt.

Da selbst Sprite-Wolken mit Hypervoxels in Lightwave extrem hohe Renderzeitenverursachen können, war das Ziel wo immer möglich „2D-Attrapen“ anstatt der 3D-Wolken einzusetzen. Mehr zu dieser Verfahrensweise im Folgenden.

Zunächst wurden 2 Grundmodelle vonWolken erstellt. Hierzu wurde imLightwave Modeller eine Grundmenge anPunkten für die spätere Wolke erzeugt, inunserem Fall unter Verwendung derLightwave eigene Funktion RandomPoints („RandPoints“ unter Create). Da wir eine sehr detailierte Wolkenbildung wünschten, und auch nur von einer einmaligenRenderzeit ausgehen konnten (für nachfolgende Bilder wird das 2D-Abbild verwendet),wurde hier die eher unnüblich hohe Menge von 2800 bzw. 9200 Punkten (siehe Abb. 26)genommen.

Abbildung 26 - Zufällige Erzeugung einerPunktmenge

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 19 von 30

Auf diese Grundmenge wurden nun die Funktionen „Twist“, „Stretch“ sowie dieEinzelverschiebung „Drag“ so oft angewendet, bis eine wolkenähnliche Form entstand(Abb. 27).

Das Objekt wurde anschließend in den Lightwave Layouter übertragen, dort wurde dasObjekt in einer neuen, leeren Szene plaziert, sowie das Licht entsprechend positioniert.Anschließend wurden Hypervoxel für das Objekt aktiviert und entsprechend – je nachgewünschten Ergebnissen (ob dunkle Volumenwolke, oder seichte Nebelbank) diezugehörigen Parameter justiert (Abb. 28).

Nach zufriedenstellendem Ergebnis wurde nun dieKamera so positioniert, dass das Blickfeldmöglichst exakt der Größe der Wolke entspricht(Abb. 29). Anschließend wurde die Wolke mit einerAuflösung von bis zu 1280x1024 gerendert.Dadurch wurde ein 2D-Abbild erstellt, welches inPhotoshop noch einmal leicht nachbearbeitetwurde.

Abbildung 27 - Umwandlung in Wolkenform mit Twist,Stretch & Drag

Abbildung 28 - Hypervoxeleinstellungen für eine Volumenwolke

Abbildung 29 - Positionierung der Kamera

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 20 von 30

Die Renderzeiten lagen hierbei im Bereich von mehreren Stunden, was allerdingsaufgrund der Tatsache das dieser Vorgang nur einmal pro Wolke, und nicht pro Framedurchgeführt werden musste nicht weiter in Gewicht fiel. Ein Beispiel für ein solches 2D-Abbild ist in Abbildung 30 zu sehen.

Wichtig ist, hierbei einen 32-Bit Datentyp wie z.B. das TARGA-Format (.tga) zuverwenden, um den vollen Alpha-Kanal (inkl. Teiltransparenzen) zu behalten.

Die so erzeugte 2D-Wolkentextur wurde nun –ähnlich wie Werbung auf eine Plakatwand – auf eineBox gespannt, welche als Objekt gespeichert wurde(Abb. 31). Der Alpha-Kanal diente hierbei als Maskeim Surface der Textur, um den Hintergrund sichtbarzu halten.

Insgesamt wurden auf diese Art und Weise 5verschiedene Wolken des Typs „Sprite“ sowie 2verschiedene volumetrische Wolken erzeugt. Dies mag sich zunächst als nicht viel anhören, hatsich allerdings im Laufe des Projektes und unterVerwendung unterschiedlicher Parameter für Größe,Blickwinkel und Farbgebung als ausreichendbewiesen. So konnte mehr Zeit auf den weitaus aufwendigeren Teil, die korrektePositionierung der Wolken, gelegt werden.

2.5.3 Positionierung von Wolken und Nebel

Da die Wolken nun nur als 2D-Plane zur Verfügung standen, war es notwendig diese fürjede Szene bzw. für jede unterschiedliche Kameraposition neu zu positionieren. Dietexturierte Seite der Wolken wurde hierbei stets zur Kamera hin ausgerichtet.

Zunächst wurden hierbei die Volumenwolken im Hintergrund der Szene plaziert. Diesebilden mit ihrer besonderen Form und dunklen Colorierung den Grundcharakter der

Abbildung 30 - Gerenderte Volumenwolke (Typ1)

Abbildung 31 - Aufbringung der 2D-Wolkentextur auf eine Box

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 21 von 30

Wolkenlandschaft. Nachfolgend wurden zwischen Kamera und Volumenwolken Wolkendes Typs „Sprite“ platziert. Diese dienen als eine Art „Nebelwolken“ zur weiterenAustaffierung der Szenerie.Je nach Szene und Kamerafahrt wurden diese Nebelwolken auch zwischen Akteuren undKamera platziert, um diese in seichten, sich bewegenden Nebel zu tauchen. Dies führtejedoch zu einer Reihe von Problemen (siehe Kapitel 2.5.4).

Im Anschluß wurden hinter den Volumenwolken noch weitere Sprite-Wolken platziert,um den Horizont zu verdecken und damit einen „endlosen“ Horizont vorzutäuschen. Um diesen Eindruck zu verstärken, wurdeauch der in Lightwave bereits integrierteNebel eingesetzt. Als Nebelart wurde„Linear“ gewählt (siehe Abb. 32), die Minimal- und Maximaldistanz wurde je nachBedürfnissen angepasst. Als Farbgebung wurde ein nebeltypischen „Hellgrau“ gewählt.

Ein Beispiel für eine fertige Wolkenszenerie ist in Abbildung 33 zu sehen, Abbildung 34zeigt das Ergebnis nach dem Rendervorgang.

Diese Verfahrensweise gilt grundsätzlich für jede Szene, eine Besonderheit stellt jedochSzene 8 dar, in welcher das feindliche Flugzeug im Sinkflug durch den Nebel fliegt.

Zunächst wurden hier wie gehabt mehrere 2D-Wolken so positioniert, dass das Flugzeugdurch diese hindurchfliegt. Jedoch geschah dieses Durchfliegen zu schnell, und da die 2D-Wolken nunmal nicht über die benötigte Tiefe verfügten sah es stattdessen so aus, alswürde das Bild kurz „aufblitzen“, also Bildfehler enthalten. Die Lösung bestand letzten Endes darin, eine Anzahl von Wolken an den Animationspfadder Kamera zu binden, jedoch aus größerer und je nach Wolke unterschiedlicher Distanzvon der Kamera starten zu lassen. Die Wolken bewegten sich hierbei langsamer als dieKamera, und bewegten sich dadurch aus der Sicht des Zuschauers auf die Kamera

Abbildung 32 - Aktivierung des Nebels in LW

Abbildung 33 - Wolkenszenerie in Szene 10

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 22 von 30

zu. Durch Einsatz eines Distance Dissolve (Abb. 35)war es möglich, die Wolken erst ab einer bestimmtenNähe einzublenden – in unserem Fall 50 Meter – undso einen zu starken Nebeldunst zu Beginn zuverhindern. Durch die Koppelung an die Kamerabewegung war es möglich, die 2D-Wolken nur sehrlangsam an der Kamera vorbeifliegen zu lassen, und so die Illusion eines „Eintauchens“ inden Nebel zu erzeugen.

Für ein optimales Ergebnis sind hier jedoch weiterhin Hypervoxel Wolken mit Tiefeempfehlenswert. Aufgrund des sehr begrenzten Zeitrahmens waren die dafür benötigtenRenderzeiten jedoch nicht akzeptabel – Die Renderzeiten für Hypervoxel Wolken steigenimmens mit der Nähe dieser Wolken zur Kamera, bis hin zum Stundenbereich. Und dahier multiple Wolken in direkter Nähe benötigt worden wären, schied diese Möglichkeitaus.

Um den Eindruck eines realistischen Nebels weiter zu verstärken, wurden die einzelnenWolken im Zeitverlauf animiert. Hierdurch entstanden schöne Effekte wie dasVorbeiziehen des Nebels in einer der Anfangszenen mit der Flugzeugformation.

2.5.4 Auftretende Probleme und Lösungen

So schön die Renderersparnis bei der Verwendung von 2D-Wolken auch ist, führt dieserAnsatz doch zu einer Reihe von Problemen.

Abbildung 34 - Fertiger Render mit Wolkenszenerie aus Szene10 (noch ohne Propeller)

Abbildung 35 - Distance Dissolve

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 23 von 30

Zunächst ist festzuhalten, das die fertigen 2D-Wolken weder von Rays noch Nebel beinflusstwerden dürfen, da ansonsten Verfärbungen desHintergrunds und unschöne Ränder um dieWolken auftreten. Die Suche nach dieserUrsache kann – sofern man nicht schon einmalvorher auf derartige Probleme gestoßen ist –durchaus wie in meinem Fall mehrere Stundenbenötigen. Durch Aktivierung der Felder „Unseen by Rays“ und „Unaffected by Fog“ im Rendertabder Objekteinstellungen lassen sich diese Nebenerscheinungen entfernen (siehe Abb. 36).

Desweiteren erlauben die Wolken nur ein geringes Maß an Farbgebungen; umgebendeSchatten und Lichtverhältnisse können nur ungenügend berücksichtigt werden.

Ein weiteres, bereits im vorigen Kapitel angesprochenes und bis heute ungelöstes Problembesteht in der Lichtdurchlässigkeit der Wolken. Ungeklärterweise kommt es immerwieder vor, dass Teile einer Szene, vor allem Propeller und Schusswechsel, durch eineteiltransparente Wolke komplett verdeckt werden, obwohl diese sichtbar sein sollten.Dieses Problem trat besonders gehäuft in Szene 7 auf, in welcher sowohl Propeller alsauch Schusswechsel in der fertigen Renderszene komplett fehlten.Die einzige Lösung bestand darin, diese Teile jeweils einzeln ohne vordere Wolken zurendern und später im Compositing wieder zusammenzufügen und farblich an dieUmgebung anzupassen (siehe Kapitel 4).

Schlussendlich existierte im Hinblick auf die enormen Renderzeiten von 3D-Wolkenjedoch keine andere, im Zeitrahmen umsetzbare Lösung; zumal das angewendeteVerfahren insgesamt zu zufriedenstellenden Ergebnissen führte.

3. Soundeffekte und Soundtrack

3.1 Beschreibung des Aufgabenbereichs

Eine Himmelsschlacht bzw. ein „Dogfight“ lebt neben der visuellen Umsetzung vor allemdurch seine Soundeffekte, wie das Dröhnen der Motoren oder geräuschvolleSchusswechsel. Hier galt es mit den zur Verfügung stehenden Mitteln einen speziell andas Geschehen angepassten Soundtrack zu mixen.

3.2 Herangehensweise und Durchführung

Zunächst galt es die für den Soundtrack benötigten Soundeffekte zu recherchieren, dieseherauszufiltern und falls notwendig zu überarbeiten. Erschwerend war hier vor allem dassdas Gesamtprojekt unter der GPL-License veröffentlicht werden muss, so dass nurausschließlich für diese Lizenz freigegebene Soundeffekte verwendet werden konnte.Jegliche Art kommerzieller und auch der größte Teil kostenloser Soundeffekte schied hiervon vorneherein aus, da diese nicht die äußert restrikten Anforderungen der GPL-Licenseerfüllen konnten (Hier würde ein Wechsel hin zu einer Lizenzform des CreativeCommons [CreatCom] Abhilfe schaffen).

Abbildung 36 - Wichtige Wolkeneinstellungen

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 24 von 30

Glücklicherweise existiert mit den PrelingerArchiven [Preling] ein öffentliches Internet-Archivmit u.A. auch Filmen aus der Zeit des 2.Weltkriegs, welche nicht nur für weitereBearbeitung freigegeben sind, sondern derenLizenz ausdrücklich auch die Weitergabe derresultierenden Werke erlaubt.Aus diesem Archiv wurden insgesamt 15 Filme imMPEG-4 Format heruntergeladen. Durch dasProgramm Foobar 2000 [Foobar] wurden derAudio-Teil dieser Filme anschließend in ein Wave-Format umgewandelt, und in Steinberg Nuendoimportiert. Dort wurde der gesamte Audiotrack nachverwerdbarem Material durchsucht, entsprechendeStellen herausgeschnitten und in eineAudiobibliothek einsortiert (in Abb. 37auschnittsweise zu sehen). Leider waren diemeisten der Filme mit einem musikalischenSoundtrack unterlegt, so dass nur sehr wenigeTeile verwendet werden konnten (schliesslichsollten die Soundelemente so rein wie möglich vorliegen).

Diese Audio-Bibliothek bildete den Grundstock des späteren Soundtracks.Nach abgeschlossenem Filmschnitt (siehe Kapitel 4) wurde das Video in Nuendoimportiert und schrittweise mit Sound versehen. Hierbei wurde auch darauf geachtet dasssich die Motorgeräusche von Feind und Verfolger unterscheiden, soweit dies aufgrund dervorhandenen Soundelemente möglich war. Zugleich wurden auch erweiterte Stereoeffekte angewendet, um z.B. beim erstenAuftreten des Feindes den Rechts->Links Flug zu simulieren. Fade-In und Fade-Out wurden verwendet um die Flugbahn – z.B. bei einem Wegfliegen

Abbildung 37 - SFX-Bibliothek, Ausschnitt

Abbildung 38 - Komposition des Soundtracks (Ausschnitt)

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 25 von 30

von der Kamera – anzuzeigen, zeitweise Überlagerungen von Soundeffekten sorgten fürderen Verstärkung, falls nötig. Abbildung 38 zeigt einen kurzen Ausschnitt desSoundmixes.

Um die Original-Soundtracks der Kriegsberichterstattung der 40er/50er Jahre zusimulieren und den Authentizitätsgrad zu erhöhen, wurden „Knackser“ und kurzeAussetzer zwischen den Szenen bewusst so belassen bzw. in manchen Fällen zusätzlicheingefügt.

Zu Anfang und zum Abspann kommt das Lied der Song „I'm in the Mood for Love“ vonVera Lynn zum Einsatz [VeraLynn01].

4. Filmschnitt, Compositing4.1 Beschreibung des Aufgabenbereichs

Nach abgeschlossenem Rendervorgang galt es die einzelnen Szenen zu einem Gesamtwerkzusammenzufügen (Filmschnitt). Da die Propeller aufgrund des Motion-Blurs getrenntgerendert wurde, mussten diese zunächst wieder hinzugefügt werden (Compositing).

4.2 Herangehensweise und Durchführung

Das Compositing wurde ausschließlich mit Adobe After Effects durchgeführt, undgestaltete sich als relativ unkompliziert. In der Regel müssten nur beide Teile einer Szeneals Einzelbildsequenz (24 Bit BMP für die Szene und 32 Bit TGA für die Propeller,zwecks Transparenz) importiert und übereinandergelegt werden. Der einzige Unterschiedhierbei war Szene7. In dieser Szene war es aufgrund von Problemen mit den 2D-Wolkennotwendig 4 verschiedene Ebenen zu rendern und anschließend farblich anzupassen.Propeller des Feindes, der Verfolger, die Schüsse sowie der Rest der Szene bildetenhierbei jeweils eine Ebene. Die Farbkorrektur wurde hier durch einfache Erhöhung derHelligkeiten der einzelnen Teile bewerkstelligt (siehe Abb. 39).

Abbildung 39 - Compositing von Szene 7 in After Effects

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 26 von 30

Im anschließenden Filmschnitt ging es nun darum die einzelnen Szenen zu einemGesamtwerk hinzuzufügen. Hierbei wurde Adobe Premiere eingesetzt.

Zunächst wurden die Szenen in ihre korrekte Reihenfolge gebracht und mit Übergangenversehen, wo benötigt. Hierbei findet neben direkten Schnitten ausschließlich einCrossover Blending Einsatz – die Limitierung auf nur wenige Techniken soll wie schonbeim Soundtrackmixing die schlechten Schnittbedingungen der 40er/50er Jahrewiederspiegeln. Anschließend wurde der Film um eine Anfangszene mit Titeleinblendung undTextscroller erweitert, um den Authentizitätsgrad zu erhöhen - hierzu wurdeOriginalmaterial aus [Preling01] verwendet, welches leicht nachbearbeitet wurde. Zuletzt wurde ein textueller Abspann („End Credits“) an das Ende eingefügt.

Da die Szenen bereits vor dem Rendern aufeinander abgestimmt wurden, gestaltete sichder Filmschnitt insgesamt als wenig aufwendig.

Abbildung 40 zeigt den Filmschnitt, Stand 05.01.2004 – da noch nicht alle Szenen zudiesem Zeitpunkt in fertig gerenderter Form vorlagen ist der Filmschnitt jedoch nur zu ca.90% vollständig.

5. Abschliessende Bemerkungen

5.1 Geschätzter Zeitaufwand

Projektteil Geschätzter Arbeitsaufwandin Stunden

Erstellung eines Himmels 25Erstellung einer realistischen Landschaftsumgebung 55Erstellung und Animation eines Ozeans 25Wolken und Nebeleinsatz 45Soundeffekte und Soundtrack 15Filmschnitt, Compositing 10

Abbildung 40 - Filmschnitt in Adobe Premiere

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 27 von 30

Projektteil Geschätzter Arbeitsaufwandin Stunden

Geschätzer Gesamtaufwand 175

5.2 Datenmenge, Renderzeiten

Die Renderzeiten des Projektes lagen je nach zu rendernder Szene zwischen sehr gering(Szene1, 6secs/Frame) und tagelangem Rendereinsatz (Ende von Szene 10, 1,5h/Frame).Im Durchschnitt lagen die Renderzeiten bei 10-20 Minuten pro Frame.

Hierzu stand folgende Hardware zur Verfügung:CPU RAM HDD OS

Athlon XP2400+ 768 MB 80GB Windows 2000Athlon XP1800+ 1024 MB 460GB Festplattenplatz (davon

240GB als RAID-0 für Video-bearbeitung)

Windows XP

Der Film mit Stand vom 05.01.2004 hat eine Gesamtgröße von 1,65GB Huffyuv-komprimiert (Lossless), dies entspricht einer unkomprimierten Menge von ca. 3,2GB.Insgesamt belegt das Projekt 20GB Speicherplatz, hiervon entfallen 3,2GB auf gerenderteFilmschnitte, 700MB auf Soundmixing sowie 2GB an Quellmaterial für Soundeffekte,3,3GB auf gerenderte Szenen (Einzelbilder & Avi), 2GB an Inseltexturen (inkl.Zwischenversionen) und der Rest auf Backups älterer Renderszenen.

Das Gesamtprojekt ist aktuell zu ca. 98% vollständig und wird aller Voraussicht nach inKürze fertiggestellt.

Während des gesamten Projektes wurde ausschließlich auf Basis verlustfreier Formategearbeitet – BMP, Targa, PNG oder Huffyuv zur Videokompression. Das Format Huffyuvermöglicht bei nur 4-facher Größe des Intel Indeo kodierten Videos eine verlustfreieKompression und als RGB-Abgespeichert eine problemlose Weiterverarbeitung mitzahlreichen Programmen (inkl. Adobe Premiere, After Effects)

6. Anhang

6.1 Abbildungsverzeichnis

Abbildung 1 - Testrender mit SkyTracer2..................................................................................4Abbildung 2 - TerraGen Testrender............................................................................................5Abbildung 3 - Parametereinstellung SkyGen..............................................................................5Abbildung 4 - Render mit SkyGen Plugin..................................................................................6Abbildung 5 - Gebirgsstruktur mit SDTS-Daten, prozedurale Texturierung..............................7Abbildung 6 - Verfeinerte Inselstrukturen auf SDTS-Basis, prozedurale Texturierung.............8Abbildung 7 - Erstellung einer Grundlandschaft mit TerraGen..................................................8Abbildung 8 - Bearbeitete Insel in TerraGen..............................................................................9

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 28 von 30

Abbildung 9 - Wegschneiden überflüssiger Teile der Insel........................................................9Abbildung 10 - Versuch prozeduraler Texturierung der Insel..................................................10Abbildung 11 - Erzeugung eines 2D Abbilds der Insel.............................................................11Abbildung 12 - Umrisse der Textur in Photoshop....................................................................11Abbildung 13- Überprüfung des Ausschnitts............................................................................11Abbildung 14 - Lightwave Rendering mit Grobtexturierung....................................................12Abbildung 15 - Grobtexturierung des Küstenstreifens und des Grünlands..............................12Abbildung 16 - Feintexturierung eines Küstenabschnitts.........................................................13Abbildung 17 - Sicht von oben auf die Insel.............................................................................13Abbildung 18 - final Version der Inseltextur (stark verkleinert)...............................................14Abbildung 19 - 2D Plane bildet die Basis des Ozeans..............................................................15Abbildung 20 - Displacement Map Einstellungen des Ozeans.................................................16Abbildung 21 - Surface Preview...............................................................................................16Abbildung 22 - Surface Einstellungen des Ozeans...................................................................16Abbildung 23 - Zuweisung Referenzobjekt..............................................................................16Abbildung 24 - Renderbild des finalen Ozeans........................................................................17Abbildung 25 - - Ein zu kurzer Ozean stört das Gesamtbild....................................................17Abbildung 26 - Zufällige Erzeugung einer Punktmenge...........................................................18Abbildung 27 - Umwandlung in Wolkenform mit Twist,Stretch & Drag................................19Abbildung 28 - Hypervoxeleinstellungen für eine Volumenwolke..........................................19Abbildung 29 - Positionierung der Kamera..............................................................................19Abbildung 30 - Gerenderte Volumenwolke (Typ1)..................................................................20Abbildung 31 - Aufbringung der 2D-Wolkentextur auf eine Box............................................20Abbildung 32 - Aktivierung des Nebels in LW........................................................................21Abbildung 33 - Wolkenszenerie in Szene 10............................................................................21Abbildung 34 - Fertiger Render mit Wolkenszenerie aus Szene10 (noch ohne Propeller)......22Abbildung 35 - Distance Dissolve............................................................................................22Abbildung 36 - Wichtige Wolkeneinstellungen........................................................................23Abbildung 37 - SFX-Bibliothek, Ausschnitt.............................................................................24Abbildung 38 - Komposition des Soundtracks (Ausschnitt).....................................................24Abbildung 39 - Compositing von Szene 7 in After Effects......................................................25Abbildung 40 - Filmschnitt in Adobe Premiere........................................................................26

6.2 Literaturverzeichnis

Kürzel Beschreibung, URL[TerraGen] TerraGen, Software zur Erstellung von Szenerien (Himmel, Geographische

Strukturen)URL: http://www.planetside.co.uk/terragen/

[SoPack] SOPack Plugin für TerraGen, dient der Erzeugung von Texturen im HDRFormatURL: http://www.geocities.com/ffrog.geo/sopack.html

[HDRTut] Tutorial zur Erstellung von HDR Texturen unter Verwendung vonTerraGen, SOPack und LightwaveURL: http://www.rna.hr/tutorial01/default.htm

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 29 von 30

Kürzel Beschreibung, URL[SkyGen] SkyGen – Plugin zur Erzeugung von künstlichem Himmel in Echtzeit;

Bestandteil des EKI Plugin Pak 2.0URL: http://www.kolumbus.fi/erkki.halkka/plugpak/

[NewTek1] Tutorial zur Erstellung von Landschaften auf Basis von SDTS DatenURL:http://www.newtek.com/products/lightwave/tutorials/surface/texturing/texturing_landscape.html

[SDTS] Auflistung verschiedener Quellen für SDTS DatenURL: http://amber.rc.arizona.edu/lw/SDTS.html

[Texture1] Verschiedene Landschafttexturen, wurden bei der Texturierung der Inselverwendet.URL: http://www.firedragon.com/~flashfire/files/landscapes/c5-textures.zip

[Flipcode1] Artikel über die programmtechnische Erstellung von Landschaftstexturenauf Basis einer HeightmapURL: http://www.flipcode.com/tutorials/tut_proctext.shtml

[OGOTaiki] Kostenloses Plugin zur Erstellung von Wolkenformationen in LightwaveURL: http://www.asahi-net.or.jp/%7Epq1a-ogs/taiki.html

[LWGTut1] Tutorial zur Erstellung/Modellierung von 3D-Wolken in Lightwave:URL: http://www.firedragon.com/~flashfire/html/landscapes/c07/c07h.html

[CreatCom] Vereinigung zur Entwicklung von Lizenzen und Rechtsgrundlagen fürVideo und MusikherstellerURL: http://www.creativecommons.org

[Preling] Filmarchiv mit über 48,000 Filmen, teilweise über Internet abrufbarURL: http://www.archive.org/movies/prelinger.php

[Foobar] Umfangreicher Audio-Player mit erweiteren Funktionen, wie z.B.Audiokonvertierung inkl. MPEG-4URL: http://www.foobar2000.org

[Preling01] „Special Delivery“, Teil des Prelinger Archivs [Preling].

„Airplanes and missions of the U.S. Army Air Forces, emphasizingOperation Crossroads (the Bikini Island atomic bomb tests).“URL: http://www.archive.org/movies/details-db.php?id=1028

[VeraLynn01] Vera Lynn w. The Casini Club Orchestra-I'm In The Mood For Love,Originalaufnahme Oktober 1935. Open Source Audio.URL: http://www.archive.org/audio/audio-details-db.php?collection=opensource_audio&collectionid=Mood

Graphikprogrammierung - Markus Geilfuß – Matr. XXXXXX – WS 2003/2004 Seite 30 von 30

6.3 Inhalt der beigelegten CD-ROM

Verzeichnis Beschreibung/Dokumentation Diese Dokumentation in den Formaten OpenOffice und Adobe

PDF./Dokumentation/images Die in dieser Dokumentation verwendeten Bilder in

Originalgröße/Insel-Rundflug Ein virtueller Rundflug um die fertig texturierte Insel, in den

Formaten Intel Indeo und Huffyuv (Codec befindet sich in /Software)

/Software Zur Erstellung des Projektes verwendete Software, sofernFreeware/Shareware und nicht in der FH-Fulda direkt verfügbar.

/TerraGen Enthält die geometrische Struktur der verwendet Insel imTerraGen Format sowie als exportiertes Lightwave-Objekt

/Texturen Die erstellten Texturen; zum einen die Inseltextur in vollerAuflösung im original Photoshop-Format sowie als Targa-Format, zum anderen die Textur des Oceans als Lightwave-Surface-Einstellungen (ocean7.srf)