Sie sind auf Seite 1von 16

Fakultät für Mathematik und Informatik

Institut für Informatik

Seminararbeit

Anwendung von Informations- und


Automatisierungssystemen
3D-Visualisierung und Simulation des BHKW-Labors der TUBAF

Ben Lorenz
Robert Schneider
9. September 2013
Inhaltsverzeichnis 2

Inhaltsverzeichnis

Abbildungsverzeichnis 2

1 Einleitung 4

2 3D-Computergrafik 4
2.1 Rendering-Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 3D-Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Darstellungsschemata . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Direkte Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.3 Indirekte Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Beleuchtungsmodelle und Shading . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Globale Beleuchtungsmodelle . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Lokale Beleuchtungsmodelle . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 Lokale Beleuchtungsmodelle - Phong-Modell . . . . . . . . . . . . . . 11
2.4 Shading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Workflow in Blender 13
3.1 Workflow in Blender - Modellierung . . . . . . . . . . . . . . . . . . . . . . . 13

4 Roberts Teil 15
4.1 Texturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2 UV-Unwrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3 Bump-Mapping, evtl andere Arten von Texturen ...SpecularMaps . . . . . . . . 15
4.4 BlenderGameEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5 Workflow in Blender - Simulation 15

Abbildungsverzeichnis
2.1 Rendering-Pipeline: Geometrieschritt [1] . . . . . . . . . . . . . . . . . . . . . 5
2.2 View-Frustum - Das Auge entspricht der virtuellen Kamera, der grau einge-
färbte Bereich dem View-Frustum. Die kleinere der parallelen Seiten des View-
Frustums wird als Near-Clipping-Plane bezeichnet, die größere als Far-Clipping-
Plane. Sie bilden gewissermaßen die kleinste und größte Entfernung ab, in der
die virtuelle Kamera Objekte in der Szene erkennt, welche letztendlich geren-
dert werden. Im 2D-Fall, wie hier zu sehen, entspricht das View-Frustum einem
gleichschenkligem, symmetrischem Trapez. Im 3D-Fall ist das View-Frustum
ein Pyramidenstumpf. [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Konstruktion eines CSG-Körpers, veranschaulicht an einem Baumschema. [3] 7
2.4 Darstellung einer Voxelgeometrie. [4] . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Darstellung eines Affenkopfes als polygonales Mesh (links) und als Drahtgitter
oder wire frame model (rechts). . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6 Darstellung einer mit Raytracing gerenderten Szene. [5] . . . . . . . . . . . . 10
2.7 Eine mit Radiosity gerenderte Szene. Gut zu erkennen sind die diffusen Reflexio-
nen der Kugelfarben auf den weißen Untergrund und die indirekte Beleuchtung
der Kugeln durch die weiße Wand. [6] . . . . . . . . . . . . . . . . . . . . . . 10

B. Lorenz, R. Schneider: 3D-BHKW


Abbildungsverzeichnis 3

2.8 Die Abbildung zeigt die einzelnen Komponenten der Beleuchtung im Phong-
Modell, sowie die Summe dieser. [8] . . . . . . . . . . . . . . . . . . . . . . . 11
2.9 Die Abbildung zeigt Beispiele für die drei vorgestellten Shading-Methoden.
Links: Flat Shading; Mitte: Gouraud Shading; Rechts: Phong Shading . . . . . 13
3.1 Die Abbildung zeigt einen frühen Stand der 3D-Szene des BHKW-Labors. Die
Geometrie der meisten Objekte ist bereits vorhanden, allerdings verwenden
alle Oberflächen nur ein graues Grundmaterial. . . . . . . . . . . . . . . . . 14
3.2 Die Abbildung zeigt die 3D-Szene mit teilweise texturierten Objekten. . . . . . 15

B. Lorenz, R. Schneider: 3D-BHKW


1 Einleitung 4

1 Einleitung
Das Ziel einer Visualisierung ist die einfach visuell erfassbare Darstellung abstrakter Daten
oder Zusammenhänge. In der Automatisierungstechnik findet insbesondere die Prozessvisua-
lisierung Anwendung. Sie dient der dynamischen Darstellung eines Prozesses und der phy-
sikalischen Größen, die während des Prozesses gemessen, berechnet und verändert werden
können. Eine häufig verwendete Form der Prozessvisualisierung ist beispielsweise das Fluss-
diagramm. Es gibt jedoch auch andere piktogrammbasierte Darstellungsformen. Alle diese
Darstellungen haben miteinander gemein, dass sie den eigentlichen Prozess mit einem hohen
Abstraktionsgrad abbilden.
Mit Hilfe der 3D-Computergrafik (3DCG) ist es jedoch möglich einen Prozess auch weni-
ger abstrakt zu visualisieren. Es können die verwendeten Maschinen und deren mechanische
Funktionalität mit einem animierten 3D-Modell dargestellt werden. Physikalische Größen las-
sen sich, eventuell auf Kosten der Genauigkeit, ebenfalls einfach visuell erfassbar machen.
Bei Temperaturen bietet sich beispielsweise eine farbliche Kodierung an. Ebenso können Strö-
mungen durch Pfeile oder andere animierte Objekte dargestellt werden.
Diese visuelle Repräsentation der Wirklichkeit, angereichert mit zusätzlichen, in der echten
Welt nicht sichtbaren Informationen, kann das Begreifen eines Prozesses vereinfachen. Zu-
sätzlich erlaubt die 3DCG das interaktive Explorieren der virtuellen Umgebung, sowie die
gefahrlose Manipulation des Prozesses. Die virtuellen Maschinen können bedienbar gemacht
werden und der Nutzer kann Einfluss auf den Prozess nehmen. Anders als in der Wirklich-
keit, kann die virtuelle Maschine jedoch keinen echten Schaden nehmen. Der Nutzer kann
aber auf Fehlverhalten oder falsche Eingaben hingewiesen werden. Somit eignet sich eine
3D-Visualisierung gut zum gefahrlosen Ausprobieren und Lernen. Des Weiteren fällt dabei
ein großer Teil der Abstraktion einer klassischen Prozessvisualisierung weg. Ein Nutzer, der in
der Lage ist ein originalgetreues Modell zu bedienen, sollte auch in der Lage sein eine echte
Maschine bedienen.
Es ist auch denkbar eine 3D-Visualisierung als Interface für Maschinen zu verwenden. Ein
Arbeiter, der in der Lage ist eine Maschine zu bedienen, aber mit der Abstraktion einer her-
kömmlichen grafischen Nutzerschnittstelle (GUI) überfordert ist, kann die 3D-Visualisierung
zur Bedienung der Maschine benutzen, ohne sich um zu gewöhnen.

2 3D-Computergrafik
Das nachfolgende Kapitel soll einen kurzen Überlick über einige Aspekte der 3D-Computer-
grafik geben. Anspruch auf Vollständigkeit besteht dabei jedoch nicht, da eine umfassende
Aufbereitung dieser Themen den Rahmen der Ausarbeitung bei Weitem sprengen würde.

2.1 Rendering-Pipeline
Die klassische Rendering-Pipeline ist ein Modell, das die Schritte zum Erzeugen einer 3D-
Szene auf dem Bildschirm (insbesondere bei der Echtzeitdarstellung) beschreibt. Dabei gibt
es drei grundlegende Schritte: Anwendung, Geometrie und Rasterung.
Beim Anwendungsschritt findet die Manipulation der Szene statt. Position, Form und Erschei-
nung von geometrischen Objekten oder anderen Elementen (Lichtquellen, Kamera) können
dabei verändert werden. Dies kann durch Nutzereingabe, angenäherte physikalische Eigen-
schaften der Szene (Kollisionserkennung- und Antwort, simulierte Schwerkraft) oder vorge-
schriebene Animationen geschehen. Sind die Änderungen an der Szene vorgenommen, wird

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 5

der nächste Verarbeitungsschritt der Rendering-Pipeline eingeleitet.

Abb. 2.1: Rendering-Pipeline: Geometrieschritt [1]

Beim Geometrieschritt (siehe Abbildung 2.1) finden eine Reihe von Transformationen mit den
Eckpunkten (engl. Vertex, Mehrzahl: Vertices) der Objekte statt, welche die letztendliche Bil-
derzeugung vereinfachen sollen. Um die geometrischen Operationen bei den Transforma-
tionen zu vereinfachen, werden homogene Koordinaten verwendet. Homogene Koordinaten
bieten den Vorteil, dass affine Transformationen (Translation, Rotation, Skalierung, Scherung)
durch eine Multiplikation des Koordinatenvektors eines Vertex mit einer Transformationsma-
trix dargestellt werden können. Es lassen sich auch mehrere Transformationsmatrizen durch
Matrixmultiplikation zusammenfassen, um beispielsweise signifikant Rechenzeit einzusparen
und Rundungsfehler zu vermeiden. Hierbei muss alledings darauf geachtet werden, dass die
Matrixmultiplikation nicht kommutativ ist. Die Reihenfolge der Multiplikationen der einzelnen
Transformationsmatrizen spielt also eine Rolle.
Im folgenden Beispiel werden Translationsmatrix T und Skalierungsmatrix S zur Transforma-
tionsmatrix M zusammengefasst und anschließend mit dem Koordinatenvektor eines Vertex p
multipliziert.
     
1 0 0 tx sx 0 0 0 sx 0 0 tx
0 1 0 ty   0 sy 0 0   0 sy 0 ty 
T = 0 0 1 tz  , S =  0 0 sz 0 , M = T · S =  0 0 sz tz 
    

0 0 0 1 0 0 0 1 0 0 0 1

p = (x, y, z, 1)T
M · pT = ((x + tx ) · sx , (y + ty ) · sy , (z + tz ) · sz , 1)T
Wie oben angesprochen besteht der Geometrieschritt aus einigen Transformationen. Zu-
nächst werden die Objektkoordinaten in Weltkoordinaten umgerechnet. Im Weltkoordina-
tensystem ist die virtuelle Welt angelegt. Es ist ein kartesisches, uniformes Koordinatensystem,
das heißt es ist orthogonal und alle Achsen haben die gleiche Skalierung. Die Objekte, mit
denen die Szene (“Welt“) gefüllt werden soll, liegen zur einfacheren Modellierung meistens
in ihrem eigenen Objektkoordinatensystem vor. Mittels einer Transformationsmatrix, die aus
Translation, Rotation und Skalierung bestehen kann, werden die Objektkoordinaten in Welt-
koordinaten transformiert (vgl. Rechenbeispiel oben).
Es werden jedoch nicht nur geometrische Objekte in der Szene definiert, sondern auch ein
virtueller Betrachter oder virtuelle Kamera (siehe Abbildung 2.2). Aus ihrer Position und Blick-
richtung wird anschließend die Szene gerendert. Um nachfolgende Schritte zu vereinfachen
(eine Projektionstransformation und das sogenannte Clipping), wird die Szene so transfor-
miert, dass sich die Kamera im Koordinatenursprung befindet und die Blickrichtung entlang
der Z-Achse richtet. Die Szene liegt anschließend in Kamerakoordinaten (siehe Abbildung
2.1) vor.
Im Projektionsschritt wird das sichtbare Volumen (engl. View-Frustum, siehe Abbildung 2.2)

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 6

in einen Würfel mit den Eckpunkten (−1, −1, −1) und (1, 1, 1) transformiert. Im resultieren-
den “Volumen“ werden allerdings keine Z-Koordinaten gespeichert, weshalb es sich eigentlich
nicht um ein richtiges Volumen, sondern schon um ein Bild handelt. Die Tiefeninformationen
(Z-Koordinaten) werden jedoch im sogenannten Z-Buffer abgelegt und später im Rasterungs-
schritt verwendet.

Abb. 2.2: View-Frustum - Das Auge entspricht der virtuellen Kamera, der grau eingefärbte Bereich dem View-
Frustum. Die kleinere der parallelen Seiten des View-Frustums wird als Near-Clipping-Plane bezeichnet, die grö-
ßere als Far-Clipping-Plane. Sie bilden gewissermaßen die kleinste und größte Entfernung ab, in der die virtuelle
Kamera Objekte in der Szene erkennt, welche letztendlich gerendert werden. Im 2D-Fall, wie hier zu sehen, ent-
spricht das View-Frustum einem gleichschenkligem, symmetrischem Trapez. Im 3D-Fall ist das View-Frustum ein
Pyramidenstumpf. [2]

Anschließend findet das Clipping statt. Dabei werden Objekte, die sich außerhalb des View-
Frustum befinden verworfen. Objekte, die das Sichtfeld schneiden, werden hingegen geclippt,
das heißt sie werden am Rand des Sichtfeldes abgeschnitten. Dabei entstehen neue Vertices
und Flächen. Dieses Verwerfen und Schneiden von Objekten am View-Frustum wird Frustum-
Culling genannt. Ein weiterer Clipping-Schritt ist das Backface-Culling. Alle Objekte in der
Szene sind aus Grafik-Primitiven zusammengesetzt. Diese Primitiven können eine sichtbare
Vor- und unsichtbare Rückseite besitzen (siehe Kapitel 2.2.3-Oberflächendarstellung). Das
Backface-Culling findet und entfernt alle unsichtbaren Primitiven, wodurch die Darstellung
der Szene beschleunigt werden kann.
Im letzten Geometrieschritt wird das Bild an den gewünschten Zielbereich auf dem Bildschirm
angepasst (Fenster, voller Bildschirm, Auflösung). Diese Window-Viewport-Transformation be-
steht aus einer Verschiebung, gefolgt von einer Skalierung. Die resultierenden Koordinaten
werden als Gerätekoordinaten bezeichnet. Der überwiegende Teil der Geometrieschritte wird
auf der Hardware mit sogenannten Vertex-Shadern ausgeführt.
Im nachfolgenden Rasterungsschritt wird jeder Bildpunkt (engl. Pixel) eingefärbt. Um das ent-
sprechende Objekt in der Szene zu finden, welches zu einem Bildpunkt gehört, wird das
Z-Buffering verwendet. Z-Buffering ist ein einfaches Verfahren zur Verdeckungsberechnung.
Es wird zunächst für jeden Bildpunkt der z-Wert auf einen Wert gesetzt, der einer unendlichen
Entfernung entspricht. Pixel mit diesem z-Wert bekommen die vorher definierte Hintergrund-
farbe der Szene zugewiesen. Anschließend wird jedes Objekt in der Szene gerastert. Wenn
sich der gerasterte Punkt des Objektes nicht weiter weg vom Betrachter befindet als der aktuell
eingetragene z-Wert, wird die Entfernung des aktuellen Objektes in den Z-Buffer geschrieben.
Für jeden Bildpunkt ist also das Objekt bekannt, dessen Farbe er erhalten soll. Die Farbe
hängt von Beleuchtung (siehe Kapitel 2.3.2), Textur und anderen Materialeigenschaften des
Objektes ab.

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 7

2.2 3D-Modelle
Im vorherigen Kapitel wurde beschrieben, wie eine 3D-Szene grundsätzlich gerendert wer-
den kann. Objekte, also 3D-Modelle, die sich in einer solchen Szene befinden, können auf
verschiedene Arten dargestellt und gespeichert werden.

2.2.1 Darstellungsschemata
Wie angesprochen gibt es verschiedene Methoden zur Repräsentation von 3D-Modellen. Die-
se unterscheiden sich durch Speicheranforderung, numerische Präzision und Komplexität. Mit
einigen Methoden ist es auch möglich zu überprüfen, ob ein Modell korrekt ist, also ein ech-
tes, physikalische mögliches Objekt definiert wurde.
Es gibt dirkete Darstellungsschemata, die das Volumen eines Körpers beschreiben und indi-
rekte Schemata, die sich auf die Beschreibung von Kanten und Oberflächen beschränken.
Des Weiteren gibt es auch hybride Methoden, bei denen beide Schemata kombiniert werden.

2.2.2 Direkte Darstellung


Constructive Solid Geometry Constructive Solid Geometry (CSG) ist vor allem im CAD-
Bereich (Computer-Aided Design) weit verbreitet. Objekte werden dabei aus Grundkörpern,
wie Kugel, Zylinder oder Quader, sowie mit Hilfe boolescher Operatoren (Schnitt, Vereini-
gung, Differenz) definiert. Ein CSG-Körper lässt sich somit in einer Formel, die Grundobjekte
und Operatoren enthält, darstellen und effizient speichern. Die Formel kann auch als Baum
veranschaulicht werden (siehe Abbildung 2.3).

Abb. 2.3: Konstruktion eines CSG-Körpers, veranschaulicht an einem Baumschema. [3]

Generative Modellierung Bei der generativen Modellierung wird der Körper durch konti-
nuierliche Transformation einer Grundform (Generator) erzeugt. Zum Erstellen eines solchen
Modelles kann die Programmiersprache “Generative Modelling Language“ (GML) verwendet
werden. Ein großer Vorteil dieser Methode ist der extrem geringe Speicherbedarf eines vor-
nehmlich prozedural erzeugten Modelles, sowie der quasi stufenlos regelbare Detailgrad der
Darstellung. Es gibt Beispielsweise ein Grobmodell des Kölner Doms, welches aus nur 126 kB
GML-Code besteht. Andere Darstellungsformen würden ein Vielfaches dieses Speicherplatzes
benötigen. Der Nachteil der generativen Modellierung ist ihre Abstraktheit. Der Programmie-
rer muss die prozedurale Struktur eines Objektes erkennen und in eine Bildungsvorschrift
umsetzen. Das ist häufig weit weniger intuitiv, als andere Modellierungsarten.

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 8

Eine weitere Form der generativen Modellierung sind Sweeps. Diese sind Verschiebegeometri-
en, die durch Verschiebung einer Kurve, Fläche oder Volumens entlang einer weiteren Kurve
gebildet werden. Ein Sonderfall der Sweeps sind Rotationsflächen. Diese erzeugen einen Kör-
per, indem eine Kurve, Fläche oder Volumen um eine beliebige Achse rotiert wird.

Voxel Bei der Darstellung als Voxel wird ein Körper durch Werte in einem dreidimensio-
nalen Gitter definiert (siehe Abbildung 2.4). Der Begriff Voxel setzt sich aus “Volume“ und
“Pixel“ zusammen. Ein Voxel ist gewissermaßen die dreidimensionale Analogie zum Bild-
punkt (engl. Pixel). Häufig enthält ein Voxel jedoch nicht nur einen Farbwert, sondern kann
mit physikalischen Eigenschaften, wie Temperatur, Dichte oder beispielsweise auch Geschwin-
digkeitsvektoren versehen werden. Die Voxeldarstellung findet deshalb häufig bei der wissen-
schaftlichen Visualisierung in der Medizin oder der Strömungsmechanik Anwendung. Auch
boolesche Operationen, wie bei den CSG, lassen sich leicht realisieren. Ein Nachteil der Vo-
xeldarstellung ist der enorme Speicherbedarf, welcher sich jedoch manchmal durch bestimmte
Datenstrukturen (Octree) reduzieren lässt.

Abb. 2.4: Darstellung einer Voxelgeometrie. [4]

2.2.3 Indirekte Darstellung


Oberflächendarstellung Die Oberflächendarstellung, häufig auch Boundary Representati-
on oder B-Rep genannt, beschränkt sich auf die Beschreibung der Oberfläche, um einen
Körper zu definieren. B-Reps können effizient gerendert werden und lassen die Darstellung
allgemeiner Oberflächen zu. Zudem erlauben sie lokale Änderungen an Modellen. Ein Nach-
teil ist der hohe Speicherbedarf und Schwierigkeiten bei der Überprüfung auf Korrektheit. Mit
B-Reps ist es recht einfach möglich “unmögliche“ Körper zu erschaffen. Eine Methode zur
teilweisen Überprüfung auf Korrektheit bietet der eulersche Polyedersatz oder dessen Verall-
gemeinerung, die Euler-Poincaré-Charakteristik. Mit dieser lässt sich herausfinden, ob ein
B-Rep “Löscher“ hat.
Wenn V die Anzahl der Eckpunkte (vertices), E die Anzahl der Kanten (edges) und F die
Anzahl der Flächen (faces) ist und es gilt:

V − E + F = 2,

dann besitzt ein B-Rep keine Löscher in seiner Oberfläche.


Eine häufig verwendete Form der B-Reps ist das Polygonnetz (polygonales Mesh). Dieses be-
steht aus Punkten, die durch Kanten verbunden sind und Flächen definieren. Aus zusam-
menhängenden Flächen werden letztendlich Polyeder, also Körper gebildet. Am häufigsten
werden Dreiecksnetze verwendet. Es sind jedoch auch Vierecksnetze oder Körper aus Flächen

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 9

mit mehr als vier Eckpunkten (n-gones) möglich. Polygone sind die Flächen aus denen ein
Körper aufgebaut ist. Sie besitzen einen Normalenvektor, welcher ihre Vorderseite definiert
und Einfluss auf ihre Beleuchtung hat.

Drahtgittermodell Ein Drahgittermodell (engl. wire frame model) wird ähnlich wie ein B-Rep
aus Punkten und Kanten aufgebaut, jedoch werden keine Flächen gezeichnet. Dies kann un-
ter Umständen zu Mehrdeutigkeiten führen, da nicht immer sofort ersichtlich ist, welche Kante
sich im Vordergrund befindet. Der große Vorteil dieser Darstellung ist die äußerst schnelle
Berechnung des Bildes, da keine Beleuchtung oder Texturen beachtet werden müssen. Sie fin-
det deshalb häufig bei der Erstellung großer Modelle Anwendung, deren Polygondarstellung
unter Umständen zu langsam für eine Echtzeitdarstellung werden kann. Zur Navigation und
Bearbeitung reicht häufig ein Drahtgittermodell aus. Beim eigentlichen Rendering kann dann
wieder eine detailliertere Darstellung gewählt werden.

Abb. 2.5: Darstellung eines Affenkopfes als polygonales Mesh (links) und als Drahtgitter oder wire frame model
(rechts).

2.3 Beleuchtungsmodelle und Shading


Dieses Kapitel behandelt die Beleuchtung und Zeichnung von Körpern in einer 3D-Szene.
Hierbei wird sich auf polygonale Darstellung beschränkt. Andere Darstellungsformen lassen
sich jedoch in eben diese Umwandeln und auf die gleiche Weise beleuchten. Grundsätzlich
gibt es zwei verschiedene Arten der Beleuchtung: Globale und lokale Beleuchtungsmodelle.

2.3.1 Globale Beleuchtungsmodelle


Bei globalen Beleuchtungsmodellen wird die Ausbreitung von Licht in einer Szene simuliert.
Diese Verfahren ergeben häufig einen realistischeren Eindruck als lokale Verfahren, sind je-
doch momentan nicht ohne Weiteres echtzeitfähig. Meistens sind mit globalen Beleuchtungs-
modellen Radiosity und Raytracing, oder Varianten dieser gemeint.

Raytracing Beim Raytracing-Algorithmus (dt. Strahlenverfolgung) werden typischerweise Strah-


len von jedem Bildpunkt der Bildebene ausgesandt. Diese Strahlen treffen in der Szene auf
Oberflächen, die bestimmte Eigenschaften haben können. Sie können den Strahl reflektieren,
brechen, streuen oder Kombinationen diesen Reaktionen bewirken. Beim Auftreffen auf eine
Oberfläche wird der Raytracing-Algorithmus wieder rekursiv aufgerufen. Da dieses Verfah-
ren theoretisch kein Ende finden könnte, ist es möglich eine Iterationstiefe anzugeben. Eine
sinnvolle Iterationstiefe hängt von der Szene ab. Zu viele Schritte können die Rechenzeit ex-
trem verlängern, zu wenige können zu Fehlern, wie fehlende Reflexionen, im Bild führen. Ist

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 10

die gewünschte Iterationstiefe erreicht erhält der Bildpunkt, aus dem ein Strahl losgeschickt
wurde, die Farbe, auf den der Strahl zuletzt getroffen ist, beziehungweise eine Mischung aus
verschiedenen Farben, wenn der Strahl sich aufgeteilt hat.
Raytracing eignet sich aufgrund seiner Funktionsweise besonders gut für stark spiegelnde,
glatte Oberflächen. Er ist jedoch nicht ohne Weiteres in der Lage diffuse Reflexionen darzustel-
len. Diese sind jedoch für einen realistischen Bildeindruck nötig, da auch diffuse Oberflächen
einen Teil des Lichtes abstrahlen können.

Abb. 2.6: Darstellung einer mit Raytracing gerenderten Szene. [5]

Radiosity Radiosity ist ein numerisches Verfahren zur Berechnung der Verteilung von Licht
in einer Szene. Es basiert auf dem Energieerhaltungssatz. Der Anteil von Licht, der auf eine
Oberfläche fällt und nicht absorbiert wird, wird in alle Richtungen gleichmäßig zurückgewor-
fen. Die Szene wird dazu in viele kleine Abschnitte (engl. patches) eingeteilt. Patches können
Licht emittieren und reflektieren. Es findet paarweise ein “Energie-“ oder Lichtaustausch zwi-
schen den patches statt. Für jeden patch i lässt sich ein Radiosity-Wert Bi berechnen, also die
gesamte von diesem patch abgegebene Energie:
n
X
Bi = Ei + ρi Bj Fij , 1 ≤ i ≤ n,
j=1

wobei Ei der Eigenabstrahlung und ρi dem Reflexionsfaktor des patches i entspricht. Fij
ist der sogenannte Formfaktor und gibt an, wie groß der Anteil der abgegebenen Energie
von patch j auf patch i ist. Er ergibt sich unter anderem aus Abstand und Ausrichtung der
beiden patches zueinander. Es ergibt sich somit ein lineares Gleichungssystem mit so vielen
Gleichungen und Unbekannten, wie es patches gibt. Nach dem lösen des Gleichungssystems
kann jeder patch entsprechend eingefärbt werden.

Abb. 2.7: Eine mit Radiosity gerenderte Szene. Gut zu erkennen sind die diffusen Reflexionen der Kugelfarben
auf den weißen Untergrund und die indirekte Beleuchtung der Kugeln durch die weiße Wand. [6]

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 11

Ein großer Vorteil von Radiosity ist seine Blickwinkelunabhängigkeit, da es für die gesamte
Szene berechnet wird. Bei statisch beleuchteten Szenen reicht also eine einmalige Berechnung
aus, danach kann die Szene in Echtzeit gerendert werden. Ein weiterer Vorteil ist eine realis-
tische Lichtstimmung im Bild, da diffuse Reflexionen auch eigentlich nicht direkt beleuchtete
Bereiche ausleuchten. Zudem werden auch Farbanteile von Oberflächen auf andere Ober-
flächen reflektiert (siehe Abbildung 2.7).
Nachteile von Radiosity sind Probleme bei der korrekten Darstellung von gekrümmten Flä-
chen und ein hoher Speicher- und Rechenbedarf. Des Weiteren sind nur diffuse Oberflächen
darstellbar. Es gibt weder Spiegelungen, noch spekulare Glanzlichter oder Transparenzen.
Aus diesem Grund werden Radiosity und Raytracing häufig zusammen eingesetzt.

2.3.2 Lokale Beleuchtungsmodelle


Bei lokalen Beleuchtungsmodellen wird das Verhalten von Licht auf der Oberfläche von Ob-
jekten simuliert. Es wird die Helligkeit beziehungsweise Farbe eines Punktes auf einer Oberflä-
che berechnet. Dabei fließen nur die Blickrichtung, Lichteinfallswinkel, Materialeigenschaften
und Eigenschaften der Lichtquelle ein. Eine indirekte Beleuchtung, wie bei Radiosity oder Ray-
tracing ist ohne Weiteres nicht möglich. Des Weiteren müssen für Transparenz, Brechung und
Spiegelung Methoden angewandt werden, die physikalisch nicht korrekt sind. Bekannte Be-
leuchtungsmodelle sind das Lambertsche oder das Phong-Beleuchtungsmodell.

2.3.3 Lokale Beleuchtungsmodelle - Phong-Modell


Das Phong-Beleuchtungsmodell [7] wurde 1975 vorgestellt und eignet sich besonders zur
Darstellung von glatten Oberflächen. Das Modell ist vollständig empirisch, basiert also auf
keinerlei physikalischer Grundlage (vgl. globale Beleuchtungsmodelle). Zur Vereinfachung
wird von einer punktförmigen Lichtquelle ausgegangen, die in alle Richtungen gleichmäßig
abstrahlt. Beim Phong-Modell besteht die Intensität I (Helligkeit beziehungsweise Farbe) einer
Reflexion aus der Kombination ambienter, diffuser und spekularer Reflexionen (siehe Abbil-
dung 2.8). Dabei werden diffuse und spekulare Reflexionen lokal und ambiente Reflexionen
global modelliert. Dies führt zur Beleuchtungsgleichung, welche für jedes Vertex in der Szene
gelöst werden kann:
I = Iambient + Idif f us + Ispecular

Abb. 2.8: Die Abbildung zeigt die einzelnen Komponenten der Beleuchtung im Phong-Modell, sowie die Summe
dieser. [8]

Ambiente Komponente Die ambiente Komponente des Lichtes ist gewissermaßen eine
Grundbeleuchtung überall in der Szene. Sie ist unabhängig vom Einfallswinkel des Licht-
strahls der Punktlichtquelle und vom Blickwinkels des Beobachters. Sie hängt ab von einem

B. Lorenz, R. Schneider: 3D-BHKW


2 3D-Computergrafik 12

konstanten Umgebungslicht Ia und einem Reflexionsfaktor kambient der Oberfläche, welcher


angibt, wie stark diese den ambienten Teil des Lichtes reflektiert.

Iambient = Ia kambient

Diffuse Komponente Die diffuse Komponente ist unabhängig vom Blickwinkel des Beob-
achters und wird nach dem lambertschen Gesetz in alle Richtungen gleichmäßig reflektiert.
Die Reflexion ist allerdings abhängig von der Oberflächennormale N ~ , dem Einheitsvektor
~
in Richtung des einfallenden Strahls der Punktlichtquelle L und der Intensität des von der
Punktlichtquelle abgegebenen Lichtes Iin . Des Weiteren fließt noch eine Oberflächenkon-
stante kdif f us ein, welche angibt, wie stark die Oberfläche den diffusen Anteil reflektiert.

~ ·N
Idif f us = Iin kdif f us (L ~)

Spekulare Komponente Diese Komponente ist kann spekulare Highlights (Glanzlichter) auf
Oberflächen erzeugen. Das Licht wird dabei in einer gewissen Umgebung der idealen Re-
flexionsrichtung reflektiert. Die größe dieser Umgebung hängt vom Exponenten n ab. Ein
kleines n (n<32) erzeugt eine raue, seidenmatt wirkende Oberfläche, ein großes n lässt die
Oberfläche stark glänzend wirken. Die spekulare Komponente hängt des Weiteren von der
~ (diese ist wiederum abhängig von
idealen Reflexionsrichtung des ausfallenden Lichtstrahls R
der Oberflächennormale und den Einfallswinkel des Lichtes), der Blickrichtung des Betrachters
~ und einer Oberflächenkonstante kspecular ab.
V

~ ·V
Ispecular = Iin kspecular (R ~ )n

Die Berechnung von R ~ ist der aufwendigste Teil dieses Beleuchtungsmodells. In der Praxis
(zum Beispiel in der Grafikbibliothek OpenGL) wird deshalb häufig das Blinn-Beleuchtungs-
modell genutzt. Dieses vermeidet die Berechnung von R ~ und nutzt stattdessen die schneller
zu berechnende Winkelhalbierende zwischen der Blickrichtung des Betrachters und dem Ein-
fallsvektor der Lichtquelle.
Die Beleuchtungsmodelle dienen zur Berechnung der Farbe in den Vertices von Objekten.
Wie die Flächen, also Polygone, gezeichnet werden, ist damit noch nicht gelöst. Hierfür ist
das sogenannte Shading verantwortlich.

2.4 Shading
Shading (dt. Schattierung) sind im allgemeinen Interpolationsverfahren, die zum Erzeugen
glatter Oberflächen genutzt werden.

Flat Shading Bei dieser Methode findet keine Interpolation statt. Jeder Punkt auf einem
Polygon bekommt einfach die Farbe eines angrenzenden Vertex.

Gouraud Shading Beim Gouraud-Shading wird die Beleuchtungsgleichung in jedem Vertex


berechnet und anschließend linear zwischen den Vertices interpoliert, um das Polygon zu
zeichnen.

B. Lorenz, R. Schneider: 3D-BHKW


3 Workflow in Blender 13

Phong Shading Das Phong Shading interpoliert für jeden Pixel des Polygons eine Normale
aus den Normalen aller benachbarten Vertices. Für jeden Pixel und die dazugehörige inter-
polierte Normale wird anschließend die Beleuchtungsgleichung gelöst.

Das Phong Shading ist das aufwendigste der drei Verfahren, liefert aber auch die besten
Ergebisse. Flat Shading eignet sich im Allgemeinen nur für die Darstellung ebener Flächen,
wird aufgrund seiner hohen Geschwindigkeit aber auch bei der Modellierung genutzt. Das
Gouraud Shading ist ebenfalls sehr schnell und liefert schon deutlich glattere Oberflächen.
Es hat jedoch Schwächen, wenn sich spekulare Reflexionen durch Verschieben des Betrach-
ters über große Polygone hinweg bewegen. Glanzlichter, die sich in der Mitte eines Polygons
befinden, können dann ganz verschwinden.

Abb. 2.9: Die Abbildung zeigt Beispiele für die drei vorgestellten Shading-Methoden. Links: Flat Shading; Mitte:
Gouraud Shading; Rechts: Phong Shading

3 Workflow in Blender
Ein Teil dieser Seminararbeit bestand in dem Entwurf und der Umsetzung einer 3D-Visualisie-
rung und Simulation des BHKW-Labors der TU Bergakademie Freiberg. Die Arbeit teilte sich,
nach anfänglicher Informations- und Materialbeschaffung und Analyse der grundsätzlichen
Abläufe im Labor, vor allem in die Modellierung der 3D-Umgebung und Bereitstellung einer
möglichst intuitiven Bedienung, sowie die Implementierung der eigentlichen Interaktionsmög-
lichkeiten und die daraus resultierende Simulation.
Zur Umsetzung wurde die freie 3D-Grafiksoftware Blender verwendet. Blender ist quelloffen
und für die meisten Betriebssysteme (u.a. Windows, Linux, Mac) verfügbar. Die Software bie-
tet Funktionen zur Modellierung dreidimensionaler Körper, Texturierung, Animation, verschie-
dene Render-Verfahren, Videoeditierung und Compositing, sowie eine echtzeitfähige Spiele-
Engine (Blender Game Engine). Diese Engine (dt. Motor) ist ein auf OpenGL basierendes
Framework zur Echtzeitdarstellung von 3D-Szenen und bietet darüber hinaus die Möglichkeit
auf einfache Weise eine Physik-Engine in eine Szene zu integrieren. Die Physik-Engine kann
die Glaubhaftigkeit der virtuellen Welt beispielsweise durch Kollisionserkennung, Kollisions-
antworten und simulierte Schwerkraft erhöhen. Des Weiteren lassen sich Abläufe und Logik in
der Blender Game Engine mit Hilfe von Netzwerken aus definierten Logik-Blöcken oder per
Python programmieren.

3.1 Workflow in Blender - Modellierung


Als Grundlage für die Modellierung des BHKW-Labors dienen Fotoaufnahmen der echten
Räumlichkeiten, sowie eine grobe Vermessung und Skizzierung des Labors und der wichtigs-
ten Gerätschaften. Basis der gesamten 3D-Szene ist der Grundriss des Raumes. Er verein-
facht die Positions- und Größenorientierung in der Szene erheblich. Alle weiteren Objekte

B. Lorenz, R. Schneider: 3D-BHKW


3 Workflow in Blender 14

werden seperat in einer eigenen Szene entworfen. Aus Grundobjekten wie Würfel, Zylinder
oder Ebenen, die Blender bereitstellt, wird mit Hilfe verschiedener Modellierungswerkzeuge
die gewünschte Form erzeugt. Objekte lassen sich durch Verschiebung, Rotation und Skalie-
rung von Polygonen, Flächen oder einzelnen Vertices verändern. Da dieser Vorgang häufig
zu aufwendig ist, kann er durch verschiedenste Modellierungswerkzeuge vereinfacht werden.
Es gibt beispielsweise ein Extrudieren-Werkzeug, ein Polygon-“Messer“ oder die Möglichkeit
der Vereinigung, des Schnitts oder einer Differenzbildung mehrerer Objekte mit booleschen
Operatoren.
Damit Objekte möglichst runde, glatte Flächen haben, wird des Weiteren die “Subdivision
Surface“ Methode verwendet. Dabei werden die Polygone von Objekten mehrfach unterteilt
und die Position und Ausrichtung der neu entstandenen Vertices so interpoliert, dass Run-
dungen entstehen. Die Anwendung dieser Methode findet häufig erst vor dem Rendern der
Szene statt. Das hat den Vorteil, dass der Modellierer mit einem Objekt mit wenigen Polygo-
nen (engl. low poly mesh) arbeiten kann, dieses zum Zeitpunkt des Renderns aber deutlich
detaillierter ist (engl. high poly mesh).
Ist ein Objekt fertig modelliert, kann es der 3D-Szene mit dem Grundriss hinzugefügt werden.
Nach Positionierung und Skalierung können durch Instanzierung, weitere Kopien des Objek-
tes in der Szene verteilt werden. Die Instanzen verhalten sich wie das Original. In einer Szene,
in der häufig das gleiche oder ähnliche Objekte vorkommen, muss dann nur das “Eltern“-
Objekt editiert werden.

Abb. 3.1: Die Abbildung zeigt einen frühen Stand der 3D-Szene des BHKW-Labors. Die Geometrie der meisten
Objekte ist bereits vorhanden, allerdings verwenden alle Oberflächen nur ein graues Grundmaterial.

Ist die Geometrie aller Objekte fertiggestellt, werden häufig die Oberflächenerscheinung die-
ser angepasst. Dazu werden Materialien und Texturen verwendet. Mit Materialien lassen sich
u.a. die in Kapitel 2.3.2 erwähnten Oberflächenkonstanten, aber auch diffuse und spekulare
Grundfarbe des Objektes festlegen. Des Weiteren bietet sich noch die Möglichkeit Oberflä-
chen transparent oder spiegelnd zu machen. Mit Texturen lassen sich Materialien noch weiter
verfeinern. Sie erlauben es beispielsweise statt einer diffusen Grundfarbe eines Objektes ein
beliebiges Bild zu wählen. Es lassen sich auch mehrere Materialien oder Texturen einer Ober-
fläche zuweisen.
Ein weiterer wichtiger Faktor ist die Beleuchtung. Dazu werden entsprechend Punktlichtquellen
in der Szene verteilt und deren Eigenschaften angepasst. Der Schattenwurf der Lichtquellen
hat großen Einfluss auf die Glaubwürdigkeit der Umgebung. Da Schattenberechnungen recht
aufwendig sind, werden die Schatteninformationen häufig einmalig berechnet und in die Tex-

B. Lorenz, R. Schneider: 3D-BHKW


4 Roberts Teil 15

turen der Objekte “gebacken“. Da die Lichtquellen in der Szene statisch sind fällt dies nicht
weiter auf, beschleunigt den Renderprozess aber enorm.
Der virtuelle Betrachter, der vom Nutzer gesteuert wird, kann mit den Wänden der Szene kol-
lidieren und dringt nicht durch sie hindurch. Dies ist der erwähnten Physik-Engine zu verdan-
ken. Da die Kollisionsberechnung mit steigender Komplexität der Objekte immer aufwendiger
wird, werden nur sehr einfache Geometrien dafür verwendet. Der virtuelle Betrachter besteht
aus einem unsichtbaren Würfel. Als Kollisionsobjekt für den Raum wurde nicht das Modell des
Grundrisses gewählt, sondern eine ebenfalls unsichtbare, sehr grobe Variante dessen.

Abb. 3.2: Die Abbildung zeigt die 3D-Szene mit teilweise texturierten Objekten.

4 Roberts Teil
4.1 Texturen
4.2 UV-Unwrapping
4.3 Bump-Mapping, evtl andere Arten von Texturen ...SpecularMaps
4.4 BlenderGameEngine

5 Workflow in Blender - Simulation

B. Lorenz, R. Schneider: 3D-BHKW


Literatur 16

Literatur
[1] Wikipedia, Hrsg. Grafikpipeline. 19.08.2013. URL: http : / / de . wikipedia . org / w /
index.php?oldid=121530445 (besucht am 09. 09. 2013).
[2] Wikipedia, Hrsg. Bildsynthese. 17.08.2013. URL: http://de.wikipedia.org/w/index.
php?oldid=115703458 (besucht am 09. 09. 2013).
[3] Wikipedia, Hrsg. Constructive solid geometry - Wikipedia, the free encyclopedia. 19.08.2013.
URL : http : / / en . wikipedia . org / w / index . php ? oldid = 569182796 (besucht am
09. 09. 2013).
[4] Wikipedia, Hrsg. Voxel - Wikipedia, the free encyclopedia. 31.08.2013. URL: http://
en.wikipedia.org/w/index.php?oldid=570929668 (besucht am 09. 09. 2013).
[5] Wikipedia, Hrsg. Ray tracing (graphics) - Wikipedia, the free encyclopedia. 9.09.2013.
URL : http : / / en . wikipedia . org / w / index . php ? oldid = 571321407 (besucht am
09. 09. 2013).
[6] Wikipedia, Hrsg. Radiosity (Computergrafik). 29.08.2013. URL: http://de.wikipedia.
org/w/index.php?oldid=122016616 (besucht am 09. 09. 2013).
[7] Phong, Bui Tuong. „Illumination for computer generated pictures“. In: Communications
of the ACM 18 (6 1975), S. 311–317. ISSN: 00010782. DOI: 10.1145/360825.360839.
[8] Wikipedia, Hrsg. Phong reflection model - Wikipedia, the free encyclopedia. 9.09.2013.
URL : http : / / en . wikipedia . org / w / index . php ? oldid = 572066279 (besucht am
09. 09. 2013).

B. Lorenz, R. Schneider: 3D-BHKW

Das könnte Ihnen auch gefallen