Texturieren für Echtzeitanwendungen

Page 1

tExturiErung fร r 3D-EchtZEitAnwEnDungEn

uVw rgb xyZ kรถln international school of Design

wintersemester 2007/2008 lehrgebiet: Dfm - Design for manufacturing lehrender: michael Eichhorn studierende: claus Daniel herrmann, Enrichetta minuzzi


EinlEitung


Einleitung An der Fachhochschule Köln wurde 2006 das ambitionierte Projekt »CCAA« initiiert. CCAA steht für Colonia Claudia Ara Agrippinensium. Dies ist der Name einer römischen Kolonie im Rheinland, aus der sich die heutige Stadt Köln entwickelt hat. Bis heute kann man Spuren römischer Architektur im Stadtbild Kölns entdecken. Allerdings bestehen nur noch Fragmente und Fundament-Reste. Um einen vollständigeren Eindruck der CCAA zu gewinnen, hat sich das Projekt zumZiel gemacht, ein 3D-Modell des römischen Kölns zu konstruieren. Das Modell entstand in Zusammenarbeit mit qualifizierten wissenschaftlichen Mitarbeitern, und befindet sich somit auf einem aktuellen Stand der Archäologie. Die Projektarbeit basiert auf der Kooperation der KISD (FH Köln) mit dem archäologischen Instituts der Universität zu Köln und dem Hasso-Plattner Institut in Potsdam. Während die KISD das 3D-Modell umsetzt, erarbeitet das archäologische Institut die Basis-Daten und betreut das Projekt auf wissenschaftlicher Seite. Das Hasso-Plattner Institut bindet das Modell in eine Software ein, die es nicht nur ermöglicht das Modell in Echtzeit zu betrachten, sondern auch Objektbezogene Daten zu integrieren, wie beispielsweise Literaturangaben oder Daten zu Fundstücken. Es soll unter anderem in einer Anwendung zum Einsatz kommen, die es erlaubt, das Modell in Echtzeit zu betrachten – also sich (in bestimmten Grenzen) frei in dem Modell des römischen Köln zu bewegen.

Die Umsetzung des 3D-Modells besteht grob aus drei Schritten: Modellierung, Texturierung und Aufbereitung für die Ansicht in Echtzeit. In dieser Dokumentation soll auf die Texturierung und auf die weitere Aufbereitung eingegangen werden. Die Texturen zeigen die farbenreiche Bemalung der damaligen Kölner Gebäude, so wie sie ausgesehen haben könnten. Das klassische Bild von römischen Gebäuden ist geprägt von weißem Stein. Doch tatsächlich weiß man, dass die römischen Gebäude bunt bemalt waren. Es ist also wichtig, das Modell des römischen Kölns nicht schwarz-weiß, sondern farbig zu präsentieren, um dem Betrachter einen vollständigen Eindruck des damaligen Stadtbildes zu vermitteln. Die Farbgebung beeinflusst das Stadtbild im Modell stark.

Köln International School of Design

Die teilnehmenden Institutionen des Projektes: Köln International School of Design, Uni Köln, HPI

3 Einleitung


ArbEitsschrittE


Arbeitsschritte Planung Plant man eine Produkion eines Echtzeit 3d Modells sollte man im Vorfeld einige Dinge wissen. Bei einem 3d Echtzeitmodell sind nämlich andere Dinge zu beachten als bei Modellen die nicht in einer Echtzeitsimulation eingesetzt werden sollen. Die Planung und Durchführung unterscheidet sich enorm und es kommen einige Arbeitsschritte hinzu, die sonst nicht vonnöten sind.

Pläne Archeologe

modellieren

Abwickeln UV1

Texturieren

Designer

Dieser Bereich entspricht dem reinen Erstellen der 3D-Modelle. Nach dem Texturieren sind die Modelle inhaltlich gesehen komplett und könnten zum Beispiel für Renderings für die Ausgabe in Printpublikationen oder für Bewegtbild verwendet werden.

5 Arbeitsschritte

Zusammenfassen

uv2

Backen

anwendung Informatiker

Die Notwendigkeit dieser Arbeitsschritte ergibt sich direkt aus dem späteren Einsatz der Modelle in einer 3d-Echtzeitanwendung. Im Grunde werden hier die Daten auf ein minimal nötiges Maß reduziert und einige Berechnungen (Backen von Licht und Schatten) vorgelagert, damit diese nicht die Performance der Echtzeitanwendung belasten.


Echtzeit – Was bedeutet das überhaupt? Der Begriff »Echtzeit« bezeichnet ein System das bei einer bestimmten Eingabe innerhalb einer gewissen Zeitspanne reagiert. Im den meisten Fällen wird eine unmittelbare unverzögerte Reaktion gewünscht, so auch bei dem CCAA Projekt. Das bedeutet, das 3dModell wurde so geplant, dass der Benutzer später mit einem Eingfabegerät das fertig Texturierte und beleuchtete 3d Modell von unterschiedlichen Seiten in einem gewissen festgelegten Rahmen betrachten kann ohne dass es grosse Verzögerungen durch Berechnung des Systems gibt.

Echtzeitanwendung mit Touchscreen

6 Glossar

Rekonstruktion Die Modelle die im CCAA–Projekt entstanden sind, basieren alle auf zuvor gefertigten Rekonstruktionsplänen qualifizierter Archäologen. Die Pläne, wie zum Beispiel Grundrisspläne oder Fassadenaufrisse, sind mit dem Programm Vektorworx erstellt worden. Diese lassen sich in 3dStudio max importieren und als Richtlinien zur 3d Modellierung verwenden. Jedes modellierte Objekt wurde in seiner Form und Position von Archäologen überprüft und abgenommen, die Konstruktionen die ohne Befund hergestellt werden mussten, sind ebenfalls in Zusammenarbeit mit Archäologen entstanden.

2D-Cad Zeichnung von Johannes


Modellierung Bei der 3d Modellierung wird jedes Teil durch Polygone (Vielecke) zusammengesetzt. Vielecke werden durch ihre Eckpunkte charakterisiert. Der Computer verbindet diese Eckpunkte so miteinander, daß dabei Dreiecke entstehen, die somit die kleinste Einheit der Polygone bilden und wesentlicheinfacher zu bestimmen sind. Dieser Vorgang wird als Tesselation bezeichnet. Ein Dreieck besteht aus genau drei Eckpunkten, denen bestimmte Werte zugewiesen werden: eine x-Koordinate für die horizontale Position, eine y-Koordinate für die vertikale Position und eine z-Koordinate, die den Tiefenwert angibt. Mit Hilfe dieser Daten berechnet der Computer ein sogenanntes dreidimensionales Drahtgittermodell. Es entsteht eine Figur, die sich ausschließlich aus Dreiecken zusammensetzt und das Grundgerüst des 3D Gegenstandes bildet.1

7 Glossar

Da jedes einzelne Dreieck berechnet werden muss gilt: Je weniger Polygone das Objekt hat, desto schneller ist es zu berechnen und umso besser ist es auch für eine Echtzeitanwednung geeignet. Jedoch ist dies nur ein rein technischer Apekt, im Endeffekt muss bestmöglich abgewogen werden wann man ein feineres Drahtgittermodell baut mit entsprechend mehr Polygonen, dass dafür sehr gut aussieht, und wann man soviele Polygone wie möglich entfernt um Rechenleistung einzusparen. Wichtig ist letztendlich ein bewusstes Modellieren, bei dem immer darauf geachtet wird unnötige Polygone zu vermeiden und das bestmögliche Verhältnis zwischen feiner Polygonstruktur und schneller Berechenbarkeit zu erreichen.

1 vgl. Script Franz Widrich »3D-Modellierung« http://www.artikelpedia.com/artikel/informatik/1/dmodellierung56.php

Kapitell low und high mit polygon-count


fArbEn unD licht


fArbEn unD licht festlegung der farbpalette Die Farbgebung der Gebäude wird im Projekt von mehreren Personen übernommen. Damit die Arbeitsergebnisse der verschiedenen Einzelpersonen farblich zusammenpassen, wie »aus einem Guss«, gibt es eine Farbpalette, in der alle häufig verwendeten Farben festgelegt sind. Diese Standartpalette wurde in einem iterativen Prozess diskutiert, festgelegt und erweitert. Grundsätzlich entsprechen die Farben nicht einer exakten digitalen Konservierung. Das Rot der Ziegel in dem CCAA-Modell beispielsweise ist keine Übertragung eines Standart-Ziegel-Rots in das Modell, sondern wurde unter den Prämissen gewählt, im Modell den Eindruck eines Ziegel-Rots zu erwecken, zu den anderen Farben im Modell zu passen und sich ausreichend von den anderen Farben zu unterscheiden. Die Farben werden in Eingabe-Texturen verwendet, die als Grundlage für die spätere Berechnung der Ausgabe-Texturen für das finale 3D-Modell dienen. Die festgelegte Palettenfarben und die letztendlich wahrgenommenen Farben unterscheiden sich. Die Beleuchtung, die in die Ausgabe-Texturen eingerechnet wird, bewirkt leichte Veränderungen an der Intensität in Sättigung und Helligkeit. Dem entsprechend hat die Farbpalette einige Tests durchlaufen und wurde durch wiederholte Korrekturen an die geplante Beleuchtung der Modelle angepasst.

9 farben und licht

Anhand der Testergebnisse wurde die Palette darauf ausgerichtet im fertigen Bild nicht zu bunt, sondern eher zurückhaltend zu sein. Es werden nur wenige gut unterscheidbare Farben eingesetzt um den Modellcharakter zu unterstreichen. Von einer naturalistischen Oberflächendarstellung wird in diesem Modell bewusst Abstand genommen. Es soll möglichst nicht der Eindruck von Fotorealismus entstehen um den Betrachter daran zu erinnern, dass er ein Modell vor sich hat.


uV-mAPPing


UV-Mapping Was ist eine UV-Map? Um Unwrap UVW zu erklären muss zunächst kurz auf UVW mapping im Allgemeinen eingegangen werden. UVW mapping ist eine Technik um zweidimendionale Bilder, im weiteren Texturen genannt, auf einen dreidimensionalen geometrischen Körper zu übertragen. Jede Vertex eines Polygons bekommt so zweidimensionale Koordinaten zugewiesen, die bestimmen, welcher Teil des Bildes für das Polygon verwendet wird, jeder Punkt in der UVW map entspricht also einem Punkt der Objektoberfläche. Diese zweidimensionalen Koordinaten heißen UV-Vertices, oder kurz UVs (sie entsprechen den XYZ Koordinaten in 3D). Der Vorgang zum Erstellen der UV-Map heißt “unwrap” (auseinanderfalten), da es einem Auseinanderfalten des Meshes auf eine zweidimensionale Fläche entspricht. Wie genau die Punkte einander entsprechen ist genau das Thema um das es in diesem Text geht. Je besser das Objekt abgewickelt ist, desto exakter stimmen die Punkte überein und desto einfacher und schöner ist das Objekt am Ende texturierbar. Man kann sich die UVW map also als eine Art Hülle vorstellen, die exakt wie eine Haut um das 3d Objekt liegt. Um das Objekt also Abzuwickeln, sprich die “Hülle” vom Objekt zu lösen, muss man die vorhandenen Unwrap tool zu nutzen wissen um das 3d Objekt geschickt aus seiner Hülle zu schälen, sodass die Abwicklung die optimale Grundlage zur Texturierung bietet.

11 UV-Mapping > Was ist eine UV-Map

Zusammenfassend kann man sagen dass die UVW map eine Art Schablone ist, die der 3d Software genau vorschreibt wo die später zugewiesene Textur map geschnitten werden soll und wie sie auf das 3d Objekt platziert werden muss. Um einen Körper abzuwickeln muss man dessen UV-Mesh (die Gitterstruktur der Texturkoordinaten) in Einzelteile zerlegen oder zumindest an einigen Stellen auftrennen. Nur so kann man die Oberfläche eines geschlossenen Körpers in eine Ebene legen, und vermeiden, dass sich Teilflächen überlappen. An einem Cylinder würde man zum Beispiel die beiden Deckflächen von der Mantelfläche trennen. Die Mantelfläche muss außerdem einmal längs geschnitten werden, um danach abgerollt werden zu können. Beim Cylinder entstehen so drei Einzelflächen, die zwei Deckflächen und die einmal geschnittene Mantelfläche. Diese Einzelflächen werden beim UVW-Mapping »Cluster« oder »Inseln« genannt. Die Kanten dieser Inseln verhalten sich wie Schnittkanten und werden daher gerne »seams« genannt.

coloriertes Modell UV-Map Farbtextur


Was macht eine gute UV-Map aus? Beim Texturieren eines 3d Objekts mit Zuhilfenahme von UVW maps stellt sich sehr schnell heraus, wo die Mängel einer UVW map liegen. Wenn man Pech hat, wird das Texturieren so zu einer richtigen Quälerei. Besser ist es dann das Objekt nochmal neu abzuwickeln, oder aber der Idealfall: Man macht es gleich von Anfang an richtig. Es gibt ein paar Punkte bezüglich der Herstellung von UVW map Koordinaten die es im Hinterkopf zu behalten gilt, auch wenn man zunächst die Grundlagen lernt. Es ist sehr förderlich wenn man gute UVW maps machen möchte, wenn man vorher weiss, wie das Objekt später texturiert werden soll. Belegt man ein Gebäude beispielsweise später mit einem kontinuierlichen Streifen auf der Textur der um das ganze Gebäude verlaufen soll So weiss man, dass in der UVW map möglichst keine Verzerrung sein darf, da sonst die verzerrte UVW map einen unregelmässigen, verschwommen oder sogar geknickten Streifen auf die glatte Fläche des Gebäude projiizieren würde. Je nachdem wie die Texturierung später werden soll, ist es wichtig die UVW maps dementsprechend anzulegen. Dies bedeutet dass ein Gesicht, welches mit einer farblich fein abgestuften Textur belegt werden soll möglichst eine UVW map aus einem Stück haben sollte damit man später beim Herstellen der Textur diese komfortabel bearbeiten kann.Wenn beispielsweise die Nase weit entfernt 12 UV-Mapping > Was macht eine gute UV-Map aus?

von der Wangen und Stirnpartie zu “bemalen” wäre könnte man die Elemente schlecht aufeinander abstimmen und sich das Endergebnis auch schlecht vorstellen. Es kann aber auch genau umgekehrt sein, dass zusätzliche Unterteilungen in der UVW map das Texturieren einfacher machen. Es können so manchmal durch geschickte Abwicklung Arbeitsschritte wie, die Drehung und Positionierung in Photoshop überflüssig gemacht werden. Das mag zunächst vielleicht nicht nach viel Arbeitsersparnis klingen, bedenkt man jedoch die ungeheure Vielzahl an Objekten die es in diesem Projekt abzuwickeln und zu texturieren gilt, erkennt man, dass jeder ersparte Arbeitsschritt relevant ist. Das ebengenannte Beispiel führt zu dem nächsten wichtigen Punkt: Die Positionierung der UVW map Elemente. Es kann einem eine Vielzahl Arbeitsschritte ersparen, wenn man die Abwicklung der Geometrie bündig zueinander im UVW Editor anlegt. Das bedeutet im Klartext, das man Elemente der UVW map, die gleich “angemalt” werden sollen zueinander stellt und zwar so, dass man später in der Bildbearbeitunssoftware (in diesem Projekt Adobe Photoshop) die Farbfelder an einer Position anlegen muss und sie so in einem Arbeitsschritt über mehrer Elemente der UVW map ziehen kann. Diese Art der Texturierung geht schnell und ist effektiv – funktioniert allerdings nur, wenn die UVW map in sich proportional abgewickelt ist. Das bedeutet dass die UVW map eines Fensterelements beispielsweise nicht gleich gross sein darf wie die Tür, sondern dass alle Elemente der UVW map zueinader

die gleichen Proportionen bewahren wie im Original. Wie man dies erreicht, wird später noch gezeigt.

Farbstreifen (am Ara) entsprechende UV-Map


Abwicklung UV1 Auf den Vorgang des Abwickelns eines 3d Objekts, das sogenannte unwrap UVW, wird im Folgenden detailliert eingegangen. Es handelt sich bei der Abwicklung um das Anlegen von dreidimensionalen Texturkoordinaten anhand derer das entsprechende Programm berechnen kann, wie es eine zweidimensionale Bildtextur auf das Objekt projiizieren muss. Zu diesem Zweck wird in einem UVW Editor bestimmt wie die UVW Koordinaten angelegt werden. Man kann sich UVW maps wie die auf eine Fläche flach ausgebreitete Schale eines Objekts vorstellen. DIe Bilder sollen das Abwicklungsprinzip und die verschiedenen Möglichkeiten einer Abwickling verdeutlichen. Das letze Bild wäre wohl die beste Art der Abwicklung für eine 3d-Orange.

Vorbereitung und Überprüfung der Geometrie Während dem Prozess des Abwickelns, der je nach Komplexität des Objektes einige Zeit in Anspruch nimmt, sollte man die Geometrie auf Fehler hin überprüfen. • Überflüssige Punkte • Doppelte Kanten • nichtverschweisste Objekte • unsichtbare Polygone (unsichtbar und unnötig) • Überschüssige Polygone (sichtbar bringen aber keine optische Verbesserung) sollten korrigiert werden. Es sollte ausserdem darauf geachtet werden, dass die Instanzierung der modellierten Objekte solange wie möglich erhalten bleibt, da dies einen grossen Vorteil bei der Abwicklung gleichartiger Objekte bringt. Beispielsweise bei einer Säulenreihe oder den Zahnschnitten entlang der Profile.

13 UV-Mapping > Vorbereitung der Geometrie


Abwickeln Schritt für Schritt Die Arbeit des Abwickelns findet mittels des UVW unwrap modifiers statt. Wir werden nun ein relativ einfaches Objekt abwickeln Zu Anfang sollte man den Ansichtsmodus einstellen. Wenn F2 gedrückt wird, schaltet sich der »Shade Selected Faces« modus ein. Dieser ist sehr praktisch – besonders beim Abwickeln zeigt er seine Vorzüge, Im Viewport werden nämlich die Polygone die man im UVW Editor bearbeitet, rot hervorgehoben, wodurch man sie sofort von den anderen, in der anfangs unordentlichen default UVW map, unterscheiden kann.

14 UV-Mapping > Abwickeln Schritt für Schritt

Zunächst wählt man entsprechendes Objekt aus und begibt sich in die modifier list. Dort wählt man dann aus der langen Liste »Unwrap UVW«.

Mit Drücken der Taste »U« erspart man sich das Suchen in der Liste. Daraufhin wählt man den unwrap uvw modifier aus,scrollt rechts herunter und klickt auf »edit«


Nun erscheint das Edit UVW Fenster. Auf den folgenden Seite wird auf die einzelnen Elemente des Interface eingegangen. Öffnet man das Fenster zum ersten Mal sieht man vermutlich nur ein sehr wirres Muster. Davon darf man sich nicht irritieren lassen, es handelt sich hier nur um die automatisch generierte Standard UVW map.

Die Hauptfunktionen findet man in der Ecke oben links. Der Reihe nach ruft man mit den Buttons die Werkzeuge Verschieben, Rotieren, Skalieren, Frei transformieren, und Spiegeln auf.

15 UV-Mapping > Abwickeln Schritt für Schritt

UVW-Editor in 3DsMax

Im Feld »Selection Modes« kann man wählen, ob man die UVW Map anhand Veränderung der Punkte, der Kanten oder der Polygone bearbeiten will. Die + und - buttons erlauben eine Erweiterung bzw. Verkleinerung der Auswahl. Die Checkbox »Select Element« ist dafür da, die Option auszuwählen die Auswahl auf ganze Elemente auszuweiten. Dies wird aber erst später relevant, wenn wir die UVW map überhaupt erst in Elemente aufteilen.

In der rechten Ecke unten findet man Das panning- und das zoomtool, darunter die einfachen aber sehr wichtigen Befehle + und - 90 Grad drehen.


An dieser Stelle kann man eine Textur hinter die UVW map laden. Das ist sehr nützlich um Feinkorrekturen an der UVW map zu machen, oder um eine Checkermap einzuladen. Welche zur Überprüfung der UVW map dient.

UVW-Editor in 3DsMax

Der blaue Rahmen ist die Begrenzung der UVW map. Wenn man fertig ist muss alles in diesem Rahmen sein. Hier kann man die Auswahl sperren, bzw sehen ob die Auswahl gesperrt wurde. Der Shortkey für »Auswahl sperren« ist die Leertaste. Mit dem Dreieckssymbol kann man mittels des Flyout fensters bestimmte Faces ein- oder ausblenden.

An dieser Stelle kann man ausgewählte UVW Koordinaten sehr fein in die drei Richtingen justieren. Eine manuelle Zahleneingabe ist hier möglich.

Hier kann man die Textur Größe und Kachelung im Editorfenster einstellen

16 UV-Mapping > Abwickeln Schritt für Schritt

Ist diese Funktion aktiviert, sieht man Veränderungen an der UVW map sofort am 3d Objekt weil die Ansicht konstant aktualisiert wird.


Die Checkermap Nachdem man sich ein wenig mit dem Interface vertraut gemacht hat, kann man mit dem Mapping beginnen. Zunächst belegt man das Objekt mit einer Testtextur dessen Struktur schachbrettartig sein sollte. Dies dient dazu, die produzierte UVW map zu überprüfen. Man sieht dann, ob die UVW map die Schachbretttextur in richtiger Proportion auf das Objekt projiziert oder ob es Verzerrungen gibt. In dem Bild rechts sieht man zwei solcher Verzerrungen. Sollte es Verzerrungen geben, kann man den entsprechenden Bereich erneut in dem Editor auswählen und korrigieren. Das Anlegen einer Checkermap verläuft in 3D-Max auf diese Weise: Man öffnet den Materialeditor, am einfachsten mit dem Shortkey “M” und wählt ein unbenutztes Material aus und klickt auf das Untermenu “Maps”, dort wiederum klickt man bei dem Button “Diffuse Color” auf “None”. In dem Fenster das nun erscheint, doppelklickt man auf “Bitmap” und kann so aus seinen Dateien eine Checkermap auswählen. Checkermaps finden sich viele verschiedene im Internet, oder man legt sich einfach selbst ein Schachbrettmuster in Photoshop an. Hier rechts ist ein gutfunktionierendes Beispiel abgebildet. Empfehlenswert ist hier auch Zahlen oder Buchstaben in die Schachbretttextur einzubetten, da man so auch sofort gespiegelte Faces identifizieren und korrigieren kann. Zuletzt klickt man auf den Button “Show map in Viewport”, damit die Testtextur auch wirklich im Viewport sichtbar ist und weist das Material dem abzuwickelnden Objekt zu. Zwei Checkermap-Varianten. Die obere Variante überlagert zwei Checkermaps unterschiedlicher Größenordnung. Die Untere Variante erleichtert die Zuordnung durch Farben. 17 UV-Mapping > Checkermap

brauchbare Abwicklung

verzerrte Abwicklung

gespiegelte Abwicklung

Das UV-Mapping der grünen Fläche ist in Ordnung. Auf der Grauen Fläche erscheinen die Zahlen spiegelverkehrt, was auf eine Spiegelung der UV-Koordinaten hinweist. Die Verzerrung der eigentlich quadratischen Felder der Checkermap in der gelben Fläche zeigt an, dass das Seitenverhältnis der entsprechenden Fläche der UV-Map unproportional skaliert wurde.


Automatische mapping-Funktionen Flatten mapping Die erste automatische mapping Methode ist »Flatten mapping« Klickt man im »mapping« Menü auf »Flatten Mapping«, erscheinen drei Checkboxen die man zunächst alle aktivieren sollte. Klickt man daraufhin auf OK sieht man, dass die UVW map sich automatsich in verschiedene Stücke abgewickelt hat. Das Aussehen erinnert an lose Puzzleteile. Diese Teile repräsentieren jeweils ein Stück der Objekoberfläche.

Eine automatische Abwicklung mit »Flatten Mapping«. Das Ergebnis ist schon fast brauchbar, nur die kleinen Stücke müssen manuell nachbearbeitet werden.

Unfold mapping

Da wir nur die Standardeinstellungen ausprobiert haben, sollte man als nächstes ein wenig mit den Parametern des »Flatten mapping« herumexperimentieren.

Die letzte automatische mapping Methode ist »unfold mapping«. Klickt man im »Mapping« Menü auf »Unfold Mapping«, erscheinen die Optionen »Walk to closest face« und »Walk to farthest face«.

Besonders die »Face Angle Threshold« Option sollte man mit einer anderen Einstellung versuchen. Eine grössere Zahl wird grössere Stücke produzieren und eine kleinere wird kleinere Stücke produzieren, allerdings sind es dann auch mehr, der Vorteil ist aber dass es auch weniger Verzerrungen gibt. Welche Einstellungen die besten sind, ist vom abzuwickelnden Objekt abhängig.

Die beiden Methoden des Unfold beschreiben die Art wie sich die UVW map »entfaltet«. Entweder die Entfaltung verläuft im Winkel des nächstgelegenen Polygons, oder des letzen Polygons in der Reihe. Klickt man daraufhin auf OK sieht man, dass die UVW map sich automatisch in verschiedene Richtungen entfaltet hat. Meist ist diese Methode nicht zu empfehlen, da es oft zu Überlappungen kommt die man daraufhin korrigieren muss. Empfehlenswert ist Unfold mapping aber dann, wenn man manuell Faces auswählt deren Abwicklung mit einer Entfaltung in eine Richtung getan ist und die in auch nur in eine Richtung verläuft.Extrem einfache Geometrie, wie Boxen oder Zylinder lassen sich ebenfalls mit Unfold abwickeln. Auch bei dieser Methode gilt es mit verschiedenen Einstellungen zu experimentieren.

Normal mapping Eine andere automatische Mapping Methode ist »Normal Mapping.« Man kann sie ebenfalls unter dem mapping Menü anwählen. In dem ersten dropdown menu oben, kann man verschiedene mapping Methoden auswählen. Die beste Möglichkeit ist einige

18 UV-Mapping > automatische Mapping-Funktionen

auszuprobieren und OK zu klicken. Da es sich hier um einen automatisierten Prozess handelt lassen sich die Ergebnisse stets nur erahnen und eine allgemeingültige Empfehlung kann nicht gegeben werden. Das Beste ist es verschieden Methoden auszuprobieren und so Erfahrungswerte zu sammeln. Wenn keine Einstellung zu einem akzeptablen Ergebnis führt, und das wird bei komplexen Objekten selten der Fall sein, muss man manuelle mapping Methoden verwenden de im folgenden erläutert werden.


manuelle Mapping-Funktionen Planar und Quickplanar Um mit manuellen mapping zu beginnen ist es oft ratsam vorher flatten mapping zu benutzen. Man hat so einen besseren Überblick über die Stücke und muss nur noch die Teile “aufräumen” die nicht gut durch das automatische feature abgewickelt wurden. Das Planare mapping, mappt wie der Name schon sagt, planar auf das Objekt, beziehunsweise die ausgewählten Faces. Die Faces die erneut abgewickelt werden sollen, müssen also zunächst ausgewählt werden, dann klickt man bei den Abwicklungsoptionen die zu sehen sind wenn man sich in dem Menu des Unwrap modifiers befindet, auf “Planar”. Der Winkel wie die map projiziert werden

soll ist nun einstellbar mit dem ganz normalen Rotationswerkzeug in 3ds max. Hat man den Winkel festgelegt, klickt man erneut auf planar um die Einstellung zu bestätigen ( sonst geht gar nichts mehr).Sehr hilfreich beim Einstellen des richtigen Winkels sind die Align Optionen, die unter den verschiedenen manuellen Abwicklingsoptionen stehen.Falls das Fenster nicht sowieso schon geöffnet ist kann man sich nach der Bestätigung das Ergebnis im UVW Editor anschauen indem man erneut auf “Edit” klickt. Hat man mehrere Faces ausgewählt, die in verschiedenen Winkeln zueinander stehen und auch nicht nebeneinander angeordnet sind, wird das Ergebnis nicht brauchbar sein, da so einige Flächen ganz schmale Streifen als UVW map bekommen oder aber übereinanderliegen. Man sollte nur ausgewählte Faces mit Planar belegen. Sinnvoll wäre dies beispielsweise bei einer leicht gekrümmten Fläche, hier würde man dann den Winkel bestmöglich einstellen, sodass jedes Polygon ein Stück UVW map “abbekommt” siehe Bild. Sehr wichtig zum schnellen Abwickeln von Gebäuden ist die kleine Checkbox unter “Selection Parameters” die besagt “Planar Angle” ist diese aktiviert, wählt 3ds max alle umliegenden Polygone mit dem gleichen Winkel aus. Ein Toleranzwert (Standardwert 15 Grad) ist ebenfall bestimmbar. Dieses Feature ist unverzichtbar bei der schnellen Selektion von Faces und somit zur Abwicklung. Quickplanar ist das selbe wie Planar, allerdings muss man den Winkel nicht bestätigen, es wird automatisch der wahrscheinlichste Winkel ausgewählt und sofort gemappt. Für die meisten Fälle reicht Quickplanar völlig aus und ist, wie der Name schon sagt, viel schneller.

19 UV-Mapping > manuelle Mapping-Funktionen


cylindrical mapping Eine weitere manuelle mapping Methode, die näher beschrieben werden sollte ist das Cylindrical mapping. Die Anwendung erfolgt ebenso wie bereits bei Planar mapping beschrieben. Das Objekt wird hierbei allerdings nicht einseitig abgewickelt sondern rundum. Die UVW map wird wie ein Zylinder um das Objekt projiziert. Diese Methode ist besonders praktisch, wenn man Teile hat die in einem Stück bleiben sollen, aber nicht mit Planarem mapping abgewickelt werden können. Das beste Beispiel sind für das CCAA Projekt wohl Türen und Fensterrahmen. Am schnellsten funktioniert an solchen Stellen die Abwicklung folgendermassen: Man selektiert die betreffenden Flächen, entfernt den Haken in der Checkbox »Normalize map« ( Sonst wird das kleine Stück automatisch auf die Größe des blauen Begrenzungsrahmens verzerrt),klickt auf Cylindrical mapping, benutzt zusätzlich die align Funktionen bis der UVW Projektionszylinder mittig sitzt und bestätigt daraufhin das mapping indem man erneut auf »Cylindrical« klickt. Im UVW Editor sollte nun die Fensterinnenfläche in einem geraden Stück abgewickelt sein. Vermutlich wurde die Rahmeninnenseite überdimendional gross abgewickelt, und ist erst dann sichtbar, wenn man weit in dem UVW Editor zurückzoomt. Dies liegt daran, dass das Objekt nun in Original Proportionen des 3d Objekt abgewickelt wurde. Das ist nicht weiter bedenklich, es sollte nur darauf geachtet werden, das am Ende, wenn alles proportional korrekt, ohne normalize map abgewickelt wurde, der Befehl »Pack UVW«, (aufzufinden unter »tools«) benutzt wird. Mit diesem Befehl räumt 3ds max alle UVW 20 uV-mapping > manuelle mapping-funktionen

Stücke in den blauen Begrenzungsrahmen, ohne die Proportionen zueinander zu zerstören. Wichtig ist, dass man diesen Befehl vor der finalen Anordnung ausführt, da durch die Ausführung dieses Befehls manuell positionierte UVW Stücke ihre Position wieder verlieren und stattdessen nach Gutdünken des Programms angeordnet werden.


Feintuning der UVW map

Diese vier Außenwände können zusammenge-»stitcht« werden.

Die rote Kante wurde selektiert, die blaue Kante passt dazu.

Durch den Befehl »stitch selected« werden die Kanten verbunden.

Nicht immer ist es mit den einfachen bisher beschriebenen Funktionen möglich alle Fehler in der UVW map zu vermeiden, bzw zu korrigieren. Es gibt einige Funktionen die erläutert werden müssen um die UVW map »feinzutunen«.

Im ersten Bild sieht man die 4 Seiten der Aussenwand eines Gebäudes. Das Gebäude soll am Ende einen durchgehenden farbigen Sockel bekommen. In diesem Fall ist es also viel praktischer bei der Texturierung die gesamte Aussenwand in einem unverzerrten Stück zuhaben, damit man beim Texturieren nur einen Streifen aufmalen muss.

Bild, erkennt 3ds max automatisch welche Kante der ausgewählten zugehörig ist. Im Bild sieht man die ausgewählte Kante rot und die automatisch Erkannte in blau.

Zu diesem Zweck kamm man beispielsweise das Stitch selected tool, im UVW Editor unter »tools« aufgelistet, benutzen. Wählt man eine Kante aus, wie auf dem zweiten

21 UV-Mapping > manuelle Mapping-Funktionen

Wählt man nun unter tools stitch »selected«, fügen sich die zwei Stücke an diesen Kanten zusammen wie man in Bild drei sieht.


Um die Punkte zu verbinden bietet sich »Target Weld« an.

Um die Punkte zu verbinden bietet sich »Target Weld« an.

Diese Punkte können mit dem UV-Aligner begradigt werden.

Kleine Fehler kann man mit dem »Target weld« oder »weld selected« oder auch hier wieder mit »stitch selected« korrigieren. Auf Bild 4 beispielsweise eine aufgesprungene Kante, der rote Punkt ist dem blauen zugehörig. Mit Benutzung einer dieser Tools ist der Fehler behoben.

overlapped Faces« und »Select inverted faces«. So kann man sehen, wie in Bild 5, ob es in dem UVW map noch überlappende oder gespiegelte Flächen gibt. Überlappende Flächen gilt es wie bei Bild 4 zu korrigieren oder aber einfach etwaig darunterliegende anders zu positionieren. Gespiegelte Flächen muss man entweder mit dem Spiegeltool umkehren, oder aber wenn es sich um in der Geometrie gespiegelte Flächen handelt, unter dem ganz normalen Polygonbearbeitungsmodus auswählen und danach mit dem Befehl »Flip« umdrehen. Polygone mit ungewöhnlicher konkaver Form, wie die Form links, werden vom Programm oft als gespiegelt fehlinterpretiert. Dem muss keine weitere Beachtung geschenkt werden.

Im letzen Bild sieht man ein äussert nützliches Script, dass sich UV Align nennt. Es ist sehr empfehlenswert um Punkte oder Kanten, wie auf dem Bild zu sehen, geradezurücken. So kann man Verzerrungen vermeiden oder diese korrigieren.

Zuletzt muss man seine map unbedingt auf weitere Fehler hin überprüfen. Am einfachsten geschieht dies indem man die Funktionen unter »Select« wählt: »Select

22 UV-Mapping > manuelle Mapping-Funktionen

Solche konkaven Polygone werden häufig als überlappend fehlinterpretiert.


UV-Edit Checklist Ein paar Punkte, die man sich vor Schliessen des UVW map Editors angewöhnen sollte. • Wenn man meint fertig mit dem Abwicklungsprozess zu sein, sollte man darauf achten, dass alle UV-Cluster mit genügend Abstand zueinander im blauen Rahmen sind. • Nacheinander Anwählen »Select overlapped faces« und »Select inverted faces«. Hier sieht man sofort ob es noch überlappende oder gespiegelte Flächen gibt. Diese sollten unbedingt sofort korrigiert werden, da diese Objekte Fehler beim Rendern verursachen. • Ausserdem sollte man überprüfen ob sich die UVW map nicht zufällig aus irgendeinem Grund in Richtung Z -Achse verschoben hat. Diese Verschiebung ist nicht sichtbar, man sieht sie nur anhand der Werte im Z - Koordinaten feld. Sollte der Wert nicht auf 0 stehen, muss man den Wert wieder auf Null setzen.

23


tExturiErung


Texturierung Vom Entwurf zur Textur Die Texturen dienen grob gesagt zur Gestaltung der GeometrieOberflächen des 3D-Modells. Es gibt einige Anwendungsarten, denen sich die Oberflächen (des 3D-Modell des Römischen Köln) zuordnen lassen: Gebäudebemalung, Ornamentwiedergabe (Friese und Reliefe), Strukturwiedergabe (Bodenkacheln, Dachschindeln), Wiedergabe von natürlichen Oberflächen (Landschaftsdarstellung, Hecken) und die Darstellung von eingesparter Geometrie (z.B. Kaneluren an Säulen). Bei der Strukturwiedergabe und bei der Darstellung von eingesparter Geometrie werden Normalmaps verwendet. Näheres zum diesem Thema im nächsten Kapitel und im Glossar.

Gebäudebemalung Die Texturen finden in der Darstellung von Gebäudebemalung ihren häufigste Anwendung. Viele Fenster, beispielsweise am Ara Ubiorum oder am Prätorium sind mit pompejanisch Rot gefasst. Rote Linien finden sich an den entsprechenden Gebäudekanten. Die Profile und Zahnschnitte sind farblich vom Untergrund abgesetzt. Beide Gebäude werden, wie auch das Dyonisos-Haus, von einem roten Band am unteren Gebäuderand optisch gestützt. Die Innenwände der beiden Ara-Hallen sind durch farbige Rahmen in Abschnitte unterteilt. Gleiches trifft auf den Rundportikus am Marktplatz zu. Die Kapitelle bestehen aus diversen floralen Einzelteilen, die sich farbig von dem Korb absetzen und auch in sich farbig gestaltet sind.

25 Texturierung > vom Entwurf zu Textur

Die Farbskizze für den Architraph an den Ara-Hallen und das Energebniss in 3D.

Die Pläne für die Gebäudebemalung sind zum Teil auf der Grundlage derselben CAD-Zeichnungen angefertigt worden, die auch für die 3D-Rekonstruktion zum Einsatz kamen; zum größeren Teil aber wurden sie auf der Basis von Renderings der untexturierten 3D-Modelle angefertigt. Die farbliche Gestaltung eines Gebäudes wurde also erst geplant, nachdem das Modellieren des Gebäudes abgeschlossen war. Das Gebäude wurde dann mit einem neutralen Grau gefärbt und mit ebenso neutralem licht gerendert. So hatten wir gute Vorlagen, die wir in direkter Zusammenarbeit im Gespräch vor Ort mit den Archeologen einfärben konnten. Zum Einsatz kam hier Adobe Photoshop. Mit der Software und einem Grafiktablett wurden die Gebäudeteile, aufgeteilt in einige Bildebenen, farbig ge-

fasst. Viele Gebäudeteile treten in Serie auf, zum Beispiel Säulen, Profile oder Zahnschnitte. Bei diesen reichte es ein Gebäudeteil einzufärben und dieses Muster auf alle anderen Teile zu übertragen. Ähnlich verhält es sich mit den Bemalungen von Fenstern oder Wänden.


Strukturwiedergabe Die Kachelstrukturen von Bodenkacheln oder Dachschindeln legen es nahe, eine Grundkachel zu gestalten, die dann durch Wiederholung auf die jeweilige Gesamtfläche übertragen wird. Die Grundkacheln wurden auf Grund von Zeichnungen oder der Kombination von Fotos mit Maßangaben gestaltet. Die Kachelung wurde aber nicht im 3D-Programm automatisch vorgenommen, sondern schon in Photoshop direkt in der Textur passend zur UV-Map angelegt. Ein Beispiel: Der Platz, auf dem der Kapitol-Tempel steht, ist mit Bodenkacheln bedeckt. Diese Kacheln sind rechteckig, der Platz hingegen ist leicht Trapez-förmig. Außerdem läuft ein Wasserabfluss rund um den Platz, im Abstand einiger Dezimeter von den Begrenzungsmauern. Es war also notwendig, diesen Abfluss in der Textur anzulegen und die Kachelverteilung an den Verlauf anzupassen.

CAD-Zeichnung vom Tempelplatz in der Aufsicht.

In diesem Fall lag eine exakte CAD-Zeichnung als Grundlage vor. In anderen Fällen, zum Beispiel beim Marktplatz, gab es nur Größenangaben. Um bei der Kachelung solcher Flächen den richtigen Maßstab zu treffen, also die Größe der einzelnen Kachel korrekt wiederzugeben, haben wir einen Würfel als temporäres zentrales Bauelement in unserer Bauteilbibliothek abgelegt. Dieser Würfel war mit der entsprechenden Kachelstruktur texturiert und hatte die exakt passenden Ausmaße, gemessen an der Größe einer Kachel. Mit diesem Würfel kann man also gut überprüfen, ob die Textur korrekt angelegt wurde.

Ausschnitt des Tempelplatzes als Textur und im finalen Rendering. 26 Texturierung > vom Entwurf zu Textur


Natürliche Oberflächen Die Geländetextur unterscheidet sich von den anderen Texturen im Modell, weil hier im Grunde alle wahrgenommenen Details ausschließlich über die Textur transportiert werden. Während der Detailgrad der Gebäude stellenweise kaum durch die Texturierung gesteigert wurde – ein großer Teil der Texturen hebt bereits in der Geometrie vorhandene Details nur farblich von einander ab – übernimmt die Geländetextur die Darstellung der Details von Grund auf. Es kam darauf an, Straßen, Wiesen, Nuzflächen, Gräben und Schotterflächen von einander zu unterscheiden und die Plastizität der einzelnen Flächen wiederzugeben. Zum Beispiel sind die befestigten Straßen von einem Abfluss und einem Viehtrieb gesäumt. Dieses Detail musste ausschließlich über die Geländetextur sichtbar gemacht werden. In der vorgegebenen Auflösung der Geländetextur (in der Arbeitsdatei 8192px im Quadrat) waren die Straßenabflüsse nur zwei bis vier Pixel breit. Hier ging es also auch um eine effiziente Darstellung der Oberflächenbeschaffenheiten. Die grobe Struktur – also das Straßennetz, Graben- und Flussverläufe und Ufergrenzen – war durch einen Vektorplan der Archeologen vorgegeben. Trotzdem musste die Arbeitsdatei flexibel angelegt erden, weil nicht jedes Detail von Anfang an festgelegt werden konnte, sondern die Textur in der Diskussion einige Male überarbeitet werden musste. Daher wurden alle möglichen Detailebenen in Bildebenen unterschieden. Jeder Bereich des Geländes besteht also aus mehreren getrennt bearbeitbaren Ebenen. Die

27 Texturierung > vom Entwurf zu Textur

befestigten Straßen zum Beispiel bestehen aus einer Grundebene, die nur die Straßenfläche definiert und die Grundfarbe festlegt, einer zweiten Schicht zur Darstellung der Pflasterstruktur und einer dritten zur Darstellung von Volumen mithilfe von Lichtverläufen. Gerade bei der Darstellung von Gräben oder Wagenspuren hatte die Aufteilung in Ebenen auch den Vorteil, dass wir durch den Einsatz von Ebeneneffekten (Schlagschatten, Emboss) schon durch wenige Pinselstriche komplexe Strukturen wiedergeben konnten. Bei der Darstellung der Profile von Wiesenrändern oder den Gräben innerhalb der Nutzflächen wurden massiv auf die Kombination von Ebenenmasken und Custom Brushes (siehe Glossar) von Photoshop gesetzt. Eine Pinselspitze aus wenigen nebeneinander gesetzten Punkten ergibt zum Beispiel einen Pinselstrich, der aussieht, wie viele nebeneinander gesetzte Striche uns sich gut für die Darstellung der Nutzflächen eignet. Die Wiesenkanten wurden mit einigen anderen Custom Brushes gestaltet, die kurze Blätter und Grashalme zu Pinselspitzen verbinden, die automatisch und zufällig gedreht und verteil werden, und so mit jedem Pinselstrich eine große Bandbreite an Profilstrukturen liefert. In der Kombination mit durch Ebeneneffekte erzeugte Schlagschatten lassen sich so in kurzer Zeit plastische und detaillierte Wiesengrenzen erzeugen.


Geometrie wo keine ist Einige Oberflächen mit Reliefstrukturen, beispielsweise die mit Schindeln gedeckten Dächer, oder die kanenulierten Säulen, erzeugen eine hohe Polygonlast, wenn man sie ausmodelliert. Dennoch kann es sich lohnen, wenigstens exemplarisch ein Dach oder eine Säule mit allen Details zu modellieren, da sich anschließend eine Normalmap aus der Geometrie gewinnen lässt (siehe Glossar »Bump- Normal-Mapping). Ein Kriterium dafür, ob man ein Relief über Bump- oder Normalmaps darstellt ist, wie stark das Relief profilbildend ist. Die Kaneluren einer Säule, die aus der Säulentrommel herausgeschnitten erscheinen, sieht man nicht, wenn man seitlich auf die Säulenoberläche schaut. Das heißt, sie ändern das Profil der Säule nicht. Die Kacheln auf den Dächern hingegen sind leicht profilbildend. Wenn man frontal von unten auf ein Dach schaut bilden die Dachrippen ein deutliches Profil. Schaut man von der Seite entlang des Giebels, sieht man, wie sich die Kacheln überlappen und ein Treppen-ähnliches Profil bilden. Der Fall der Dächer ist ein Grenzfall, weil sich hier auf der einen Seite eine große Polygonlast einsparen lässt und die Profile schon mit geringem Abstand zum Gebäude kaum sichtbar sind. Zum anderen sind gerade die Dachrippen ein charakteristischer Eindruck von Ziegeldächern. In unserem Modell haben wir bei den wichtigsten Gebäuden die Rippen des Daches erhalten und nur das Treppenprofil eingespart. Bei weniger wichtigen Gebäuden, wie den Türmen, aber auch beim Prätorium, das eine sehr große Dachfläche hat, sind die Dächer komplett per Normalmap dargestellt.

28 Texturierung > vom Entwurf zu Textur

Aktuell finden Normalmaps in 3D-Spielen den häufigsten Einsatz, wo sie dazu verwendet werden, komplexe Oberflächen unter sich ändernden Lichtbedingungen, also mit dynamischem Licht, zu beschreiben. Unsere aktuelle 3d-Echtzeit-Anwendung beinhaltet aber keine Echtzeit-Lichtberechnung. Wir haben das Licht fest in die Texturen gebacken (siehe »Zusammenfassen UV2 backen«). Das bedeutet zwar, dass wir nur eine einzige vorberechnete Lichtsituation darstellen können, dafür ist die Performance bzw. die Bildrate in der Anwendung deutlich höher. Obwohl die Anwendung keine Normalmaps direkt verwendet, haben wir einige Normalmaps beim Texturieren verwendet. Die reduzierte Polygonlast macht sich nämlich auch schon beim Backen und beim Dateihandling bemerkbar. Weniger Polygone bedeutet weniger komplexe Geometrie, was beim Backen zu weniger komplexen Berechnungen führt. Außerdem bearbeitet man weniger komplexe UV-Layouts, was zu schnelleren und übersichtlichen Prozessen führt.

Die gleiche Säule mit hochdetailierter Geometrie, mit Normal-Mapping und die enstprechende Normal-Map.


Rekonstruktion der Ornamentik Zur Rekonstruktion der Ornamentik liegen als Vorlagen meistens schwarzweiße Fotos von realen Fundstücken vor. Diese Fotos zeigen stark korrodierte Reliefe, deren Details stellenweise schwer zu erkennen sind. Glücklicherweise handelt es sich bei den meisten der rekonstruierten Ornamenten um Stäbe oder Friese, die sich durch die Wiederholung weniger meist floraler Elemente ergeben. Je größer das Fundstück, desto wahrscheinlicher also ein kompletter Satz an Elementen. Die meisten Ornamente sind im Modell durch eine Textur dargestellt. Nur solche Details, die Profil bilden, wie zum Beispiel die Details an den Kapitellen oder Zahnschnitte an vielen Dachkanten,

Dieses Foto eines Originalfundes diente als Vorlage für die Gestaltung einiger Rankenfriese in unserem 3D-Modell. 29 Texturierung > Rekonstruktion der Ornamentik

wurden modelliert. Ornamente, die aus wiederholten Elementen bestehen, wurden durch das Nachbilden eines Abschnitts und anschließende Kachellung erzeugt. Die Zuweisung der Ornamente an ihre entsprechende Gebäudeelemente wurde in Absprache mit dem wissenschaftlichen Mitarbeiter der Archäologen vorgenommen. Die Ornamente ordnen sich der Farbgebung des Gebäudes unter. Es gibt also keine grundsätzliche Übereinstimmung von Ornament und Farbe.

Die Reliefe der Ornamente bestehen immer aus einer Grundfläche und aus einem davor erhabenen Objekt. In unserer Rekonstruktion ist der Grund in der Regel farbig und das Objekt setzt sich weiß davon ab. Dadurch scheint das Relief vor dem Grund zu schweben. Die Ornamente befanden sich immer an den Profilbändern, die zur Gliederung der Gebäude verwendet wurden. Zum Beispiel besteht der Architrav eines Stockwerks in der Regel aus solchen übereinander angeordneten Profilen. Diese Profile wurden farblich gefasst und durch die verschiedenen Ornamente gegliedert.

Das Rankenfries am Architraph einer der Ara-Hallen.


ZusAmmEnfAssEn uV2 bAckEn


ZusAmmEnfAssEn uV2 bAckEn licht backen

instanzierung

Durch das Backen von Texturen ist man in der Lage, die komplexen Berechnungen der Beleuchtung, Lichtbrechung, Reflexion, Bumpmapping etc. in einer Textur abzulegen. Das hat den Vorteil, dass auch aufwendigere Lichtverhältnisse dargestellt werden können, die in Echtzeit nicht zu erreichen wären, oder mit hohem Performance-Verlust verbunden wären. Statt dessen speichert man die Informationen, darüber, wo Licht auf ein Objekt trifft direkt zusammen mit den Farbinformationen in der Farb-Textur ab und muss nur noch diese eine Textur darstellen lassen. Es ist, als würde man die Szene Rendern, nur eben nicht als Bild aus Sicht einer Kamera, sondern als Bild aus Sicht der Oberflächen. Anschließend legt man das Bild auf die Oberflächen. Das Ergebnis ist eine eindrucksvolle Darstellung mit hoher Performance.

In der römische Architektur gibt es einige Bauelemente, die häufig wiederkehren. Gerade detailreiche Zierelemente, wie Säulen und deren Kapitelle kommen mehrfach vor. Der Kapitoltempel zum Beispiel und der Platz auf dem er steht beinhalten über 130 Säulen und Kapitelle. Gerade diese Zierelemente sind es, die die höchsten Anforderungen an die Geometrie und die Textur des Models stellen, da sie die kleinteiligsten Details der Gebäude darstellen.

Die Instanzierung muss aber noch aus einem weiteren Grund aufgelöst werden. Erstmal wird sie von der Darstellungs-Software gar nicht unterstützt – sie würde spätestens beim Export auf-

Glücklicherweise muss nicht jede Säule einzeln gebaut und texturiert werden. Die Säulen werden durch Instanzen dargestellt. Dadurch teilen sich die Säulen die selben Geometrie-Daten und Textur-Layouts (UV-Mesh), und können so mit der selben Textur belegt werden. Instanzen unterscheiden sich von einfachen Kopien darin, dass sie nicht nur die gleichen Daten enthalten, sondern auch Änderungen an der Geometrie oder an dem UV-Mesh an alle anderen Instanzen übertragen. Es kann beim Texturieren durchaus vorkommen, dass der Designer Änderungen an dem UV-Mesh machen muss – sei es um Elemente platzsparender anzuordnen, oder ihre Ausrichtung zu korrigieren. Bei der Verwendung von Instanzen sind alle Objekte immer auf dem neuesten Stand. Für den Aufbau und die Texturierung stellt die Instanzierung also einen großen Vorteil dar. Beim Backen der Beleuchtung verlieren Instanzen ihren Nutzen. Für die Beleuchtung muss nämlich jede Säule getrennte Texturkoordinaten bekommen. Sonst würden sich alle Säulen im finalen 3D-Modell nicht nur die Farbgebung sondern auch exakt die selbe

31 Zusammenfassen uV2 backen

Lichtverteilung teilen. Da einige Säulen direkt im Licht, andere aber im Schatten stehen, ist das keine Option. Daher löst man die Instanzierungen auf. Alle Instanzen werden zu unabhängigen Einzelobjekten.

Die Säulen im Vordergrund erhalten direktes Sonnenlicht. Die Säulen dhinter liegen im Schatten. Unter anderem deswegen muss die Instanzierung vor dem Backen aufgelöst werden.


Standardmaterial Textur

UV1

Einzelobjekt

Standardmaterial Textur

UV1

Instanz 1

gebackene Textur

Multi-ID-Material UV1 UV1 UV1

UV2

UV2

gebackenes objekt

zusammengefasstes Objekt

Standardmaterial Textur

UV1

Instanz 2 Auflösen der Instanzen Zusammenfassen der Geometrie gelöst und in Einzelgeometrie umgewandelt werden. Für die 3D-Engine ist es günstiger einige wenige 3D-Objekte darzustellen, im Gegensatz zu den zahlreichen Einzel-Objekten, die nach der Konstruktion vorliegen. Ein Beispiel: Um das Tempel-Modell für die 3D-Engine vorzubereiten, wurde es zu vier großen 3D-Objekten zusammengefügt. Ursprünglich lagen mehrere hundert Einzelobjekte vor, viele davon instanziert. Durch die geringe Objektanzahl wird die Darstellungs-Performance weiter optimiert.

32 Zusammenfassen UV2 Backen

Textur backen Objekt exportieren

Durch das Zusammenfassen der Einzelobjekte entstehen vier große Tempel-Objekte. Ein Objekt beinhaltet die Geometrie der Säulen des Tempels und dessen Giebeldreiecks, eines fasst die restliche Tempelgeometrie zusammen. Der Platz um den Tempel herum ist in zwei Objekte aufgeteilt, eines enthält analog zum Tempel alle Säulen, das andere die restliche Geometrie. Jedes dieser vier Objekte soll von der Darstellungs-Engine mit je einer Textur belegt werden, die bereits die Lichtsituation enthält. Diese vier Texturen müssen gebacken werden. Sie werden von 3D-Studio MAX unter Verwendung der Funktion »Render To Texture« ausgegeben. Demnach dienen innerhalb von 3D-Studio MAX die vom Designer gezeichneten Texturen als Quell-Texturen und die gebackenen Texturen als Ziel-Texturen.

Sowohl die Quell- als auch Ziel-Texturen werden über UV-Projektion mit den Objekten verbunden. Dazu muss es zwei unterschiedliche UV-Layouts pro Objekt geben. In dem Layout für die QuellTexturen müssen die UV-Meshes erhalten bleiben, wie sie vor dem Zusammenfügen bestanden. In dem zweiten Layout, dass für die Ziel-Textur gilt, also zum Backen dient, müssen die UV-Meshes aller Einzelelemente nebeneinander liegen und dürfen sich nicht verdecken, damit jedes Element seinen eigenen Platz in der Textur hat, und getrennt von allen anderen Elementen beleuchtet und gebacken werden kann.


Mip-Mapping und Padding Die Texturen des 3D-Modells werden im Grafikspeicher in mehreren Auflösungen bereitgehalten, die in Abhängigkeit vom Abstand zum 3D-Objekt angezeigt werden. Befindet man sich die Kamera zum Beispiel so weit entfernt von dem 3D-Modell des Kapitoltempels, dass dieser nur einen Bruchteil des Bildschirms füllt, ist es nicht notwendig ihn mit einer voll aufgelösten Textur zu belegen. Die Details würden in den relativ wenigen Pixeln, auf denen der Tempel zu sehen wäre, einfach untergehen. Es kommt sogar oft zu unangenehmen Flimmern, wenn die Kamera sich bewegt und das Pixelraster der Textur sich mit dem Pixelraster der Anzeige überlagern. Stattdessen verwendet man mit steigendem Abstand Texturen mit niedrigerer Auflösung. Diese Technik nennt sich MipMapping. Beim Mip-Mapping können an den Schnittkanten des 3D-Modells schwarze Linien auftreten, die mit steigendem Abstand immer dicker werden. Diese entstehen dadurch, dass die Texturen grundsätzlich bilinear interpoliert werden um die Rasterung der Textur zu unterdrücken. Je niedriger die Auflösung der Textur durch das Mip-Mapping wird, desto stärker laufen die Pixelfarben auf der Modelloberfläche durch die Interpolation ineinander.

33 Zusammenfassen UV2 Backen

Beim Backen der Texturen wird die Fläche außerhalb zwischen den UVW-Cluster standardmäßig mit Schwarz gefüllt. Durch die Interpolation beim Mip-Mapping wird dieses Schwarz in die Clusterflächen hineingezogen und macht sich auf dem Modell an den Schnittkanten als schwarze Linie bemerkbar. Die meisten UVW-Maps des 3D-Models des römischen Kölns bestehen aus einer hohen Anzahl kleiner UVW-Cluster. Damit das Modell ab einem gewissen Betrachtungsabstand nicht mit schwarzen Linien überzogen wird, vergrößert man die Cluster in der Textur künstlich um einige Pixel durch Farbwiederholungen an den Schnittkanten. Dadurch wird kein Schwarz in die Cluster gezogen, sondern die wiederholten Farbwerte. Dieses »Farb-Polster« um die Cluster bezeichnet man als Padding. 3D-Studio Max kann schon beim Backvorgang ein Padding von beliebiger Breite erzeugen. In dem 3D-Modell des römischen Kölns kommt ein Padding mit 4 Pixeln Breite zum Einsatz, was relativ hoch angesetzt ist. Allerdings ist dieses breite Padding notwendig, da es im Modell möglich sein soll, sowohl die gesamte Stadt, als auch die kleinsten Details eines Gebäudes zu betrachten, ohne die Kamera zu wechseln.

Dach mit und ohne Mipmapping schwarze Linien durch Mipmapping und zu wenig Padding


Bilder neu!!!

Padding mit Photoshop einfügen Es gibt auch die Möglichkeit ein Padding nachträglich in Photoshop hinzuzufügen. Dazu benötigt man zusätzlich zur Textur eine passende Auswahlmaske, die es erlaubt die Cluster freizustellen. Unter dem Einsatz von Gaußschem Blur kann man dann in mehreren Schritten die Pixel am Cluster-Rand nach außen ziehen. Der von uns verwendete Algorithmus ist so aufgebaut:

8bit Farbtiefe und zu häufiges duplizieren der geblurten Ebene führt zu dunklen und falschen Pixeln.

16bit Farbtiefe und moderates Duplizieren lässt das Erzeugen von sehr breitem Padding zu.

Die Schritte 3 bis 5 können im Grunde beliebig wiederholt werden, bis man die benötigte Paddingbreite erreicht. Wenn man die Auswahl durchgehend bestehen lässt, kann man zwischen zwei Durchgängen anstelle von Schritt 3 einfach nur die Auswahl um einen Pixel erweitern.

Bilder neu!!!

Am besten legt man sich in Photoshop dazu eine Aktion an, die den Vorgang auf Knopfdruck einige Male wiederholt.

1) Cluster werden freigestellt, stehen auf transparentem Hintergrund 2) Bildebene wird dupliziert

34 Zusammenfassen UV2 Backen

3) Zwischenräume werden ausgewählt und die Auswahl um einige Pixel erweitert, sodass die Auswahl etwas in die Clusterflächen hineinragt

4) per Gaußschem Blur (1px) werden die Farbwerte über die ursprüngliche Clustergrenze hinaus verteilt (dabei entstehen im Paddingbereich Halbtransparenzen)

5) die entstandene Bildebene wird mehrfach dupliziert und das Duplikat mit der geblurten Ebene vereint, um die Deckkraft im Paddingbereich zu erhöhen (zwei Duplikate reichen aus)

Vor dem Erweitern des Paddings sollte man das Bild in 16bit umwandeln, um von der höheren Farbtiefe beim Weichzeichnen zu profitieren. Außerdem sollten pro Druchgang beim Erhöhen der Deckkraft am Clusterrand nicht zu viele Duplikate erstellt werden, weil sonst Falschfarben und eine Abdunklung zum Rand hin entstehen, die vermutlich auf Photoshop und ungenaue Berechnungen zurückzuführen ist. Mit 16bit und moderatem Vorgehen erzielt man aber sehr gute Ergebnisse.


glossAr


Glossar Polygon

Textur

Ein Polygon besteht aus drei oder vier Punkten (Vertices) im Raum, die durch Kanten (Edges) miteinander verbunden sind und dadurch eine Fläche (Face) einschließen. Polygone mit vier Punkten (Quads) werden Programmintern intern in zwei Polygone mit drei Punkten (Tris) unterteilt. Moderne Programme beherrschen auch die Verwaltung von Polygonen mit mehr als vier Punkten. Diese werden n-gons genannt (n steht für eine beliebige Anzahl). Auch diese werden intern in Dreiecke unterteilt, bieten aber einen größeren Komfort beim Modellieren, weil die Verwaltung der Kanten, die beim Unterteilen entstehen komplett von der Software übernommen wird. So kann man sich auf die Kanten konzentrieren, die formgebend sind.

Polygon mit drei Ecken.

36 Glossar

N-gon mit fünf Ecken.

Bump- und Normalmap

Mit »Textur« ist ein Bild (abgelegt als Bilddatei auf der Festplatte des Rechners) gemeint, dass die Oberflächeninformationen bereit hält, die nicht direkt in der Objekt-Geometrie enthalten sind, sondern zusätzlich darauf projiziert werden. Klassischerweise liegen in Texturen Farbinformationen, moderne 3D-Software kann aber auch zusätzlich Geometrie-Informationen (Displacement-Mapping) oder zumindest Ausrichtungsinformationen (Normal-Mapping) in Texturen speichern und auslesen. Mit Texturen kann man zum Beispiel eine rechteckige Fläche aussehen lassen wie ein Stück Mauer, indem man ein Foto einer Mauer als Farbinformationen verwendet.

Mithilfe von Bump-Mapping kann per Textur der Eindruck eines Reliefs erzeugt werden. Dazu werden Graustufenbilder verwendet, deren Grauwerte als Höheninformation interpretiert werden. Beim Rendern wird die entsprechende Fläche so beleuchtet, als würde sie das den Grauwerten entsprechende Relief aufweisen. Bumpmapping erzeugt aber keine echte Verformung des Objektes, sondern erzeugt nur eine geänderte Beleuchtung. Daher ist Bumpmapping nicht profilbildend. Das heißt, dass der Tiefeneindruck verloren geht, wenn man die gemappte Fläche in einem flachen Winkel stark von der Seite betrachtet. Im Profil verrät die Fläche ihre tatsächliche Form. Eine Normalmap funktioniert ähnlich, wie eine Bumpmap, enthält aber keine Höheninformationen, sondern speichert die Ausrichtungen der Flächennormalen als Vektoren in den Farbkanälen Rot, Grün und Blau.

Würfel ohne Textur.

Würfel mit Mauertextur.

Würfel ohne Textur.

Würfel mit Mauertextur als Bumpmap.


UV-Mapping

Custom-Brush

UV-Mapping oder UVW-Mapping ist eine Textur-Projektionsart, die es erlaubt Bilddaten gezielt auf bestimmte Geometrieteile zu legen. Jedes Polygon erhält seine eigene Position im Textur-Raum, dem UVW-Raum. Den Prozess der Anordnung der Polygone nennt man Abwicklung, weil hier die Hülle des 3D-Körpers in einem zweidimensionalen flachen Raum abgewickelt wird. Die Qualität der Anordnung kann man zum einen daran messen, wie viel der Texturfläche von den Polygonen eingenommen wird (je mehr desto besser, denn sonst wird Texturspeicher belegt, aber nicht zur Färbung der Oberflächen verwendet), zum anderen daran, wie sinnvoll die Einzelteile gruppiert sind (also ob sie sich überlagern und ob die Zuordnung der Flächen am Objekt beim Texturieren im Zeichenprogramm leicht ist).

»Custom-Brush« ist eine Photoshop-Funktion, mit der man das Pinselwerkzeug mit selbstgestalteten Pinselspitzen ausstatten kann. Damit lassen sich Strukturen aus Fotos oder Grafiken abgreifen und als Pinselspitze verwenden. Das Verhalten des Pinsels, also dessen Größe, Reaktion auf Stiftdruck, Deckkraft etc. kann detailliert kontrolliert werden.

37 Glossar

Custom-Brush-Settings sind für alle Pinsel-ähnlichen Tools verfügbar, also für den Pinsel, den Radiergummie, den Wischfinger, den Healbrush und andere. In unserer Arbeit wurde der Custom-Brush vor allem beim Anlegen der Geländertextur verwendet, beispielsweise für die Strukturierung von Wiesenbegrenzungen.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.