Virtuelle Darstellung eines 3D-Modells in VRML · GYMNASIUM OTTOBRUNN Kollegstufe 2006/2008...
Transcript of Virtuelle Darstellung eines 3D-Modells in VRML · GYMNASIUM OTTOBRUNN Kollegstufe 2006/2008...
GYMNASIUM OTTOBRUNN
Kollegstufe 2006/2008
Seminarfach Informatik
Facharbeit
Virtuelle Darstellung eines 3D-Modellsin VRML
Erstellung eines Hubschraubers mit „Blender“ undBeschreibung des VRML-Skriptes
Verfasserin: Angela GrünewaldKursleiter: StR. Peter Brichzin
Bewertung: _____Punkte
Unterschrift des Kursleiters: _____________________
Inhaltsverzeichnis
I. Einleitung------------------------------------------------------------- 3
II. Die Beschreibungssprache VRML--------------------------------- 4
1.1 Grundlagen-------------------------------------------------------41.2 Beispiel -----------------------------------------------------------51.3 VRML-Header-----------------------------------------------------71.4 Kommentare -----------------------------------------------------71.5 Module -----------------------------------------------------------71.6 Szenengestaltung ------------------------------------------------81.7 Gestaltungsknoten -----------------------------------------------8
1.7.1 Geometrieknoten -------------------------------------------------------- 81.7.2 Appearance-Knoten---------------------------------------------------12
1.8 Objektransformation ------------------------------------------- 141.9 Beleuchtung---------------------------------------------------- 151.10 Hintergrund ----------------------------------------------------- 16
III. Grundlegende Funktionen von Blender ------------------------ 17
IV. Darstellung des Hubschraubers---------------------------------- 18
4.1 Allgemeines ---------------------------------------------------- 184.2 Umsetzung der graphischen Vorlage ------------------------- 19
4.3 Aufteilung des Hubschraubers--------------------------------- 194.4 Bau des Hubschraubers---------------------------------------- 20
4.4.1 Verbindung Fenestron-Rumpf ---------------------------------------204.4.2 Die Stabilisatoren --------------------------------------------------------214.4.3 Lattice-----------------------------------------------------------------------214.4.4 Aufsatz des Rumpfes----------------------------------------------------224.4.5 Der Rotorkopf-------------------------------------------------------------224.4.6 Die Rotorblätter ----------------------------------------------------------224.4.7 „Warp-Werkzeug“ -------------------------------------------------------234.4.8 Die Kufen-------------------------------------------------------------------24
4.4.9 Der Fenestron I------------------------------------------------------------244.4.10 Boolsche Operationen-------------------------------------------------254.4.11 Der Fenestron II -----------------------------------------------------------264.4.12 Der Rumpf -----------------------------------------------------------------274.4.13 Die Fenster-----------------------------------------------------------------284.4.14 Die Textur-------------------------------------------------------------------294.4.15 Materialeigenschaften Chrom --------------------------------------31
V. Schlussbemerkungen --------------------------------------------- 32
VI. Danksagungen----------------------------------------------------- 34
VII. Anhang-------------------------------------------------------------- 35
VIII.Literaturverzeichnis ------------------------------------------------ 46
IX. Erklärung ------------------------------------------------------------ 49
3
I. Einleitung
„Wo immer er auftaucht sorgt er für Schlagzeilen. Auch bei dem ersten Besuch
des Airbus A380 in der nordrhein-westfälischen Landeshauptstadt hat er am
12. November mehr als 100.000 Menschen am Flughafen Düsseldorf begeis-
tert und beherrscht die Berichterstattung in allen Medien.“1
Doch nicht nur in Nordrhein-Westfalen sondern auch in weiteren Bundeslän-
dern und Staaten beherrschte der „Riesenvogel“2 tagelang die Schlagzeilen.
Doch bevor solch ein Flugzeug Schlagzeilen dieser Art auslösen kann, verge-
hen jahrelange Planungs- und Bauzeiten. Ein Schritt auf dem Weg zum Airbus
A380 ist die Visualisierung des Flugzeuges in 3D am Computer, um es zum
Beispiel Kunden vorstellen zu können oder um Verbesserungen in der Technik
zu ermöglichen. Ein solches 3D-Modell, zwar nicht des Airbus A380, jedoch
des Hubschraubers EC135 von Eurocopter wurde im Rahmen dieser Facharbeit
erstellt. Die Bedeutung solcher 3D-Modelle ist sehr groß in der Entwicklungs-
phase und wird bei Unternehmen wie der EADS, bei denen die Entwickler an
verschiedenen Standorten zusammenarbeiten, zunehmend eingesetzt.
Diese Facharbeit behandelt nicht nur das Erstellen eines 3D-Modells, sondern
beschreibt auch die wichtigsten Funktionen des Grafikprogramms „Blender“,
mit welchem der Hubschrauber modelliert wurde. Auch die Sprache VRML,
die eine dreidimensionale Szene im Textformat beschreibt („Beschreibungs-
sprache“), wird erläutert. Die Arbeit entstand in Kooperation mit der EADS
Ottobrunn, Abteilung „Advanced Concepts and Systems Engineering“. Die
Ansprechpartner waren Herr Holger Schmidt und Herr Daniel Dreyer.
1 Siehe Literaturverzeichnis Nr. 5
http://a380.lufthansa.com/de/html/presse/n061112/index.php, Z. 3-6
2 Siehe Literaturverzeichnis Nr. 3
http://www.faz.net/s/Rub8D05117E1AC946F5BB438374CCC294CC/Doc~EBB9E05FF557D
40C69E22D2352017CAE0~ATpl~Ecommon~Sspezial.html, Schlagzeile
4
II. Die Beschreibungssprache VRML
1.1 Grundlagen
VRML (Virtual Reality Modeling Language) beschreibt virtuelle, dreidimen-
sionale Welten. Man kann mit VRML Objekte, deren Erscheinung, Anordnung
oder die wechselseitige Verknüpfungen zwischen mehreren Objekten darstel-
len. Neben der räumlichen Anordnung, ist es mit dieser Sprache möglich Ob-
jekte zu animieren. Man stellt in VRML Objekte und deren Eigenschaften
durch Knoten dar, die man mit einem Objekt in Java vergleichen kann, welches
Attribute besitzt. Ein Knoten besteht aus einem bezeichnenden Wort und ge-
schweiften Klammern, in welche die Attribute und Attributwerte geschrieben
werden. Zum Beispiel beschreibt der Knoten:
Sphere { radius 5.0 }
eine Kugel (englisch: sphere), mit dem Attribut „radius“ und dem Attributwert
„5.0“. Diese Zuweisung erzeugt eine Kugel mit dem Radius 5 Einheiten. Die
Definitionen mit Attributen und Attributwerten, wie sie in Java vorkommen,
bezeichnet man in VRML allerdings als Felder und Feldwerte. Knotennamen
werden groß und Felder werden klein geschrieben. Es sind jedoch auch Anga-
ben ohne Felder und Feldwerte möglich, denn jedes Feld besitzt in VRML eine
Voreinstellung (Defaulteinstellung), die dann abgerufen wird. Gibt man zum
Beispiel nur folgendes an:
Sphere { }
so beschreibt dies eine Kugel mit dem Standardwert 1.0 für den Radius.
Weitere Feldwerte sind unter anderem Größe, Farbe und Position, wobei diese
nicht im Knoten „Sphere“ direkt beschrieben werden, sondern in dem überge-
ordneten Transform-Knoten, der im Folgenden noch erklärt wird. Pro Feldwert
existieren Vorschriften, welche Werte eingesetzt werden dürfen. Es gibt vier
verschiedene Möglichkeiten, das Einsetzen von ganzen Zahlen, von reellen
Zahlen, von Zeichenketten oder von „logischen Werten“ (z.B. TRUE, FALSE)
Diese Vorschriften sind vergleichbar mit Definitionsmengen in der Mathema-
tik.
Weitere Regeln, die eingehalten werden müssen, betreffen zum Beispiel die
Vergabe von Knotennamen. Diese dürfen nur aus Buchstaben, Ziffern und Un-
5
terstrichen bestehen. Es darf nicht mit einer Ziffer begonnen werden und es
dürfen bestimmte Ausdrücke nicht verwendet werden.3 Allgemein werden Ko-
ordinaten immer durch ein Leerzeichen getrennt, eine Liste von Parametern
wird in eckigen Klammern geschrieben und einzelne Werte in dieser werden
durch Kommata getrennt. Dies kann man an dem folgenden Beispiel erkennen.
Die Koordinaten der ersten Zeilen, 9, 10, 8, -1, sind nur durch ein Leerzeichen
getrennt. Nach der Definition dieser ersten Zeile folgt ein Komma, wonach die
Liste dann mit weiteren Parametern vervollständigt werden kann. Die ersten
beiden Zeilen entsprechend dieser Festlegung sind in dem folgenden Beispiel
grün markiert.
Farben werden in VRML in der RGB-Darstellung (Rot, Grün, Blau) definiert
und durch diese drei Basisfarben beschrieben. Normalerweise besitzt jede Far-
be Werte von 0 bis 255, in VRML existieren jedoch nur Werte von 0 bis 1.0,
wodurch die Farbwerte auf diesen Zahlenbereich abgebildet werden. Man ver-
liert hierdurch keine Information, sondern kann damit eher im Gegenteil mehr
als 255 Werte darstellen. Die Standardbasisfarben sind im Anhang angegeben.4
1.2 Beispiel
Ein vollständiges VRML-Skript besteht immer aus einem Header - im folgen-
den Beispiel blau markiert - einem oder mehreren Knoten und eventuell mehre-
ren Kommentaren - im Beispiel gelb markiert. Den kompletten Aufbau findet
man im Anhang.5
# VRML V2.0 utf8
# This file was authored with Blender (http://www.blender.org/)# Blender version 244# Blender file Beispiel Kugel.blend# Exported using VRML97 exporter v1.55 (2006/01/17)
NavigationInfo {headlight FALSEvisibilityLimit 100.0type ["EXAMINE", "ANY"]avatarSize [0.25, 1.75, 0.75]
}
Background {
3 Tabelle siehe Anhang Nr. 64 Tabelle siehe Anhang Nr. 35 Übersicht siehe Anhang Nr. 1
6
groundColor 0.0565629 0.2208154 0.4skyColor 0.0565629 0.2208154 0.4
}
DEF OB_Lamp Transform {translation 0.000000 3.485873 -2.720681rotation -0.409051 0.818779 -0.402838 1.810099scale 1.000000 1.000000 1.000000children [
DEF Lamp DirectionalLight {ambientIntensity 0.0color 1.0 1.0 1.0intensity 0.5714286direction 0.0 -1.0 0.0
}
]}DEF OB_rsvd_Sphere Transform {
translation 0.000000 0.000000 0.000000rotation 1.000000 0.000000 0.000000 0.000000scale 1.000000 1.000000 1.000000children [
DEF ME_rsvd_Sphere Group {children [
Shape {appearance Appearance {
material DEF MA_Material_001Material {
diffuseColor 0.8 0.8 0.8ambientIntensity 0.1666667specularColor 0.4012008
0.4012008 0.4012008emissiveColor 0.0 0.0 0.0shininess 0.0976563transparency 0.0}
}geometry IndexedFaceSet {
solid TRUEcoord DEF coord_rsvd_Sphere
Coordinate {point [
0.309017002583 0.951056540012 0.00.587785243988 0.809017002583 0.00.809017002583 0.587785243988 0.00.951056540012 0.30901697278 0.0
…
0.475528538227 0.809017002583 0.3454914689060.250000119209 0.951056540012 0.181635588408
]}
coordIndex [9 10 8 -1,8 10 11 7 -1,7 11 12 6 -1,
…
7
83 8 7 84 -1,9 8 83 -1,
]}
}]
}]
}DEF OB_Camera Transform {
translation 7.481132 5.343665 6.507640rotation 0.772239 0.535848 -0.341341 1.347139scale 1.000000 1.000000 1.000000children [
DEF Camera Viewpoint {description "Camera"position 0.0 0.0 0.0orientation 1.0 0.0 0.0 -1.570796fieldOfView 0.661
}
]}
1.3 VRML-Header
Der Header wird benötigt, um den Quelltext identifizieren zu können. Er be-
steht aus der VRML-Version und der Angabe des Standardzeichensatzes und
befindet sich in der ersten Zeile des Skriptes beginnend mit einem „#“.
1.4 Kommentare
Kommentare werden zur Dokumentation des Quelltextes verwendet. Dies ist
vor allem nützlich bei der Zusammenarbeit mit mehreren Programmierern oder
Benutzern. Die Kommentare beginnen mit einem „#“ und enden am Ende einer
Zeile ohne spezielles Zeichen.
1.5 Module
Selbst definierte Objekte einer Szene bezeichnet man als Module. Sind sie
einmal definiert, so kann man sie im Programm immer wieder verwenden. Man
kann ein einzelnes Modul abspeichern und durch den Befehl „Inline“ ist es
möglich, dieses wieder aufzurufen. Zum Beispiel:
# VRML V2.0 utf8Shape {
8
appearance Appearance {material Material { }
}geometry Sphere { radius 2.0 }}
#VRML V2.0 utf8Inline { url „shape.wrl“ }
Ist die Datei allerdings nicht im selben Verzeichnispfad abgespeichert, so muss
man die ganze URL angeben.
Für die folgenden Definitionen ist wichtig:
VRML verwendet ein rechtshändiges kartesisches Koordinatensystem.
1.6 Szenengestaltung
Eine Szene in VRML besteht aus verschiedenen Knoten, welche wiederum aus
Knoten bestehen. Dabei gibt es „Gruppenknoten“ und „Kindknoten“, die somit
eine Hierarchie beschreiben. Die sich ergebende baumartige Knotenstruktur
wird häufig als Szenengraph bezeichnet. Es können mehrere Knoten zu einem
Gruppenknoten zusammengefügt werden:
Group {
children [ ]
}
In den eckigen Klammern werden mit Komma getrennt die Kindknoten aufge-
zählt. In dem oben aufgeführten Beispiel sind die Kindknoten türkis markiert.
1.7 Gestaltungsknoten
Der Gestaltungsknoten „shape“ besteht aus zwei Feldern, „geometry“ (Geo-
metrie) und „appearance“ (Erscheinung).
1.7.1 Geometrieknoten
Das Feld geometry des Gestaltungsknotens besteht wiederum aus einem Kno-
ten, dem Geometrieknoten. VRML hat einige geometrische Objekte schon vor-
definiert.
Quader (box)
9
Bei einem Quader kann man mit dem Feld „size“ die Größe des Objek-
tes ändern. Hierfür gibt man drei Werte nacheinander in folgender Rei-
henfolge an: Breite, Höhe und Tiefe.
Kegel (cone)
Der Kegel besitzt zwei Felder, „bottomRadius“ (Radius der Grundflä-
che) und „height“ (Höhe).
Zylinder (cylinder)
Auch der Zylinder besitzt zwei Felder, „radius“ (Radius) und „height“
(Höhe).
Kugel (sphere)
Die Kugel dagegen hat nur ein Feld, „radius“ (Radius).
Diese vordefinierten Objekte reichen jedoch nicht aus um alle gewünschten
dreidimensionalen Strukturen darzustellen.
Um die Position und Lage von Punkten, Linien und Flächen festzulegen wer-
den Raumkoordinaten des Koordinatensystems benötigt.
Zur Definition von Punkten, gibt es den Knoten „Coordinate“. Als Feld besitzt
dieser „point“ und danach folgen in eckigen Klammern die x-, y-, z-
Koordinaten, wobei hier die Definitionsmenge auch negative ganze Zahlen
beinhaltet. Möchte man mehrere Punkte definieren, so benutzt man als Geo-
metrie den Knoten „PointSet“. Dieser besitzt genau denselben Knoten „Coor-
dinate“, welcher vorher erläutert wurde, wobei man nun als Feldwerte von
„point“ mehrere Koordinaten angeben kann und somit mehrere Punkte erhält.
In dem folgenden Beispiel sieht man die Definition eines Quaders mithilfe des
Knotens IndexedFaceSet (grün markiert).
DEF OB_Cube Transform {translation 0.0 0.0 0.0rotation 1.0 0.0 0.0 0.0scale 1.0 1.0 1.0children [
DEF ME_Cube_001 Group {children [
Shape {appearance Appearance {}geometry IndexedFaceSet {
solid TRUEcoord DEF coord_Cube_001
Coordinate {point [
1.0 -1.0 -0.9999999403951.0 -1.0 1.0-1.00000011921 -1.0 0.999999821186-0.999999642372 -1.0 -1.000000357631.00000047684 1.0 -0.9999994635580.999999344349 1.0 1.00000059605-1.00000035763 1.0 0.999999642372-0.999999940395 1.0 -1.0
]}
Zur Definition von Linien und Flächen benötigt man den
Koordinatenindex. Bei diesem bekommt jeder Punkt
eine Zahl zugewiesen, wie im Schulfach Geometrie jeder
Punkt eines Objektes einen Buchstaben bekommt. Da-
durch kann man Verbindungsstrecken eindeutig definie-
fa
str
de
üb
M
Li
(B
m
Fl
sc
Sc
da
de
D
w
Be
na
se
w
fü
10
ren z.B. BA . Bei der Nummerierung wird bei „0“ ange-
ngen zu zählen. Mithilfe des Koordinatenindexes kann man Verbindungs-
ecken erzeugen, wobei diese als Vektoren betrachtet werden. Zum Beispiel
r Koordinatenindex [0, 1, 2] beschreibt den Vektor vom Punkt 0 zu Punkt 2
er den Punkt 1 (siehe Abbildung 1).
it dem Knoten „IndexedLineSet“ als Geometrie werden die Punkte durch
nien verbunden. Ersetzt man diesen durch den Knoten „IndexedFaceSet“
eispiel 1.2), so lassen sich Flächen definieren. Bei dieser Definition benötigt
an ebenfalls den Koordinatenindex. Zum Beispiel [0, 1, 2, 0] definiert die
äche, die von den Punkten 0, 1, 2 und deren Verbindungsstrecken einge-
hlossen ist.
haut man sich einen solchen Koordinatenindex einer Szene an, so fällt auf,
ss am Ende jeder Zeile eine „-1“ steht (Beispiel 1.2, grün markiert). Dies ist
r sogenannte Trennwert, der die Definition einer Linie oder Fläche beendet.
anach kann mit einer weiteren Linien- oder Flächendefinition fortgefahren
erden.
trachtet man ein Objekt, bei welchem Flächen definiert sind, so steht direkt
ch geometry IndexedFaceSet, die Boolean Definition „solid TRUE“. Ist die-
auf TRUE eingestellt, so lässt VRML die verdeckten Flächen eines Objektes
eg, was allerdings bei einer Drehung des Objektes zu fehlenden Flächen
hrt. Bei der Einstellung FALSE werden alle Flächen des Objektes angezeigt.
Abbildung 1
11
Diese Definition kann man an folgendem Beispiel sehen, welches einen Qua-
der beschreibt. Der Koordinatenindex und die Boolean Definition „solid
TRUE“ sind grün markiert.
DEF OB_Cube Transform {translation 0.0 0.0 0.0rotation 1.0 0.0 0.0 0.0scale 1.0 1.0 1.0children [
DEF ME_Cube_001 Group {children [
Shape {appearance Appearance {}geometry IndexedFaceSet {
solid TRUEcoord DEF coord_Cube_001
Coordinate {point [
1.0 -1.0 -0.9999999403951.0 -1.0 1.0-1.00000011921 -1.0 0.999999821186-0.999999642372 -1.0 -1.000000357631.00000047684 1.0 -0.9999994635580.999999344349 1.0 1.00000059605-1.00000035763 1.0 0.999999642372-0.999999940395 1.0 -1.0
]}
coordIndex [0 1 2 3 -1,4 7 6 5 -1,0 4 5 1 -1,1 5 6 2 -1,2 6 7 3 -1,4 0 3 7 -1,
]}
}]
}]
Ein weiterer Geometrieknoten ist der Text-Knoten („geometryText“), mit wel-
chem man Texte in eine dreidimensionale Welt einfügen kann. Dieser ist aller-
dings für diese Facharbeit nicht von Bedeutung, da keine Texte als Objekte
verwendet werden.
Mit Hilfe dieser Definitionen kann man so gut wie jede Oberfläche darstellen,
was jedoch sehr aufwendig wird, wenn man jeden Punkt und jede Fläche ein-
zeln definieren muss.
Da VRML auch sehr viel im Bereich der Geovisualisierung verwendet wird,
hat man um die Beschreibung zu vereinfachen, noch einen weiteren Geomet-
rieknoten definiert, den ElevationGrid-Knoten, für welchen ein Punkte-Raster
definiert wird, das an jedem Knotenpunkt Höhenwerte erhält. Der Name des
Knotens ist zusammengesetzt aus, „grid“ (Gitter) und „elevation“ (Höhe). Der
Knoten besitzt folgende Felder (Attribute):
- xDimension (Anzahl der Punkte des Gitters in x-Richtung)
- zDimension (Anzahl der Punkte des Gitters in z-Richtung)
- xSpacing (Abstand der Punkte in x-Richtung)
- zSpacing (Abstand der Punkte in z-Richtung)
- height (Auch negative Werte möglich)
nach „height“ folgen wie bei dem Koordinatenindex eckige Klammern.
Die Zahlen werden durch Kommata getrennt und
werden nach dem Schema in Abbildung 26 angeord-
net.
Nachdem erläutert wurd
werden können, wird im
erklärt, wodurch ein Obj
1.7.2 Appearance-K
Der Shape-Knoten beste
rance“. Das Attribut „ap
Objekte, nämlich „mater
1.7.2.1 Material-K
Dieser Knoten besitzt d
"Emissive" kommt von
tet. Wird ein Objekt du
kommt es das Feld „dif
Hubschraubers die Sche
6 Literaturverzeichnis Nr. 8
12
e, wie Formen und Positionen von Objekten definiert
Folgenden die Materialbeschreibung eines Körpers
ekt meist erst plastisch erscheint.
noten
ht aus den beiden Attributen „geometry“ und „appea-
pearance“ ist noch einmal aufgeteilt in zwei weitere
ial“ und „texture“.
noten
ie beiden Felder „diffuseColor“ und „emissiveColor“.
emittieren und bedeutet, dass das Objekt selbst leuch-
rch eines oder mehrere andere angeleuchtet, so be-
fuseColor“. Strahlende Objekte sind, am Beispiel des
inwerfer, während der Rest der Flächen von diesen
S. 116
Abbildung 2
13
oder der Sonne beleuchtet wird. Selbstleuchtende Objekte besitzen keinen
Schatten, so dass man deren Konturen kaum erkennen kann.
1.7.2.2 Texture-Knoten
Auch bei dem Texture-Knoten hat man zwei Wahlmöglichkeiten. Zum einen
ist dies der Knoten „ImageTexture“, mit welchem Bilder auf Objekte gelegt
werden können und zum anderen „MovieTexture“, mit welchem Videos auf
Objekte gelegt werden. Hierbei werden von VRML nur bestimmte Dateiforma-
te unterstützt. Bei Bildern sind dies GIF, JPEG und PNG und bei Videos
MPEG. Die Textur wird, wenn man diese ausgewählt hat, automatisch auf die
Flächen der Objekte gelegt.7 Man fügt diese mit einer URL ein.
Bei diesem Verfahren erhält der gewählte Korpus im Ganzen eine Textur.
Es gibt jedoch auch die Möglichkeit einzelnen Punkten bestimmte Farbwerte
zu geben und somit ganze Objekte einzufärben. Dieses Verfahren nennt man
„color per vertex“
Das Feld „color“ ist ein Listenfeld des Knotens Color. In diesem Listenfeld
kann man einzelne Farben definieren. Fügt man das Feld color in den Knoten
„PointSet“ ein, so kann man diesen Punkten bestimmte Farben zuordnen. Zur
Einfärbung von Flächen wird der Farbenindex gebraucht. Dabei wird jedem
Farbwert eine Zahl zugeordnet, bei 0 beginnend. Besitzt ein Objekt zum Bei-
spiel 4 Flächen und fügt man in „IndexedFaceSet“ einen Farbindex ein z.B. [ 0,
0, 0, 0 ], so erhält jede Fläche die Farbe, die vorher mit „0“ definiert wurde.
Schaut man sich eine Farbeinstellung im Texteditor an, so findet man die Zeile
„colorPerVertex“, welche „Boolean“ ist. Ist diese auf TRUE gestellt, so wer-
den Farbübergänge dargestellt. Stellt man diese auf FALSE, so wird das Objekt
gleichmäßig eingefärbt.
Im Allgemeinen benötigt man bei der Einstellung TRUE mehrere Farbwerte,
um realistische Übergänge zu erreichen. Da man pro Vertex nur eine Farbe
angeben kann, definiert sich die Qualität des Farbübergangs durch die Anzahl
der Vertices.
Bei dem Knoten „ElevationGrid“ kann man ebenfalls Farben einfügen, indem
man das Feld color (mit dem Knoten Color) einfügt und daraufhin das Listen-
7 Siehe Anhang Nr. 5
14
feld color angibt, innerhalb dessen eckigen Klammern, man jedem Punkt einen
bestimmten Farbwert zuordnen kann.
1.8 Objektransformation
Schaut man sich die Beschreibung eines Objekts in einem Texteditor an, so
fällt auf, dass immer am Anfang der Knoten „Transform“ steht. Hierbei handelt
es sich um einen sogenannten Gruppenknoten, der mehrere Knoten zusam-
menfasst. Die zusammengefassten, untergeordneten Knoten sind „Kindknoten“
(children). Die Felder „translation“ (Verschiebung), „rotation“ (Rotation) und
„scale“ (Skalierung) gehören zu dem Gruppenknoten und sind für jedes Objekt
(children) des Gruppenknotens zugängig. Dies ist vergleichbar mit Attributen
in Java, die auch für jedes untergeordnete Objekt gelten.
Das folgende Beispiel zeigt die Definition des Transform-Knotens.
DEF OB_SurfSphere_013 Transform {translation 0.928 -2.075 0.446rotation 1.0 0.0 0.0 0.0scale 1.0 1.0 1.0children [
]
Der Transform-Knoten erstellt jeweils ein neues Koordinatensystem mit neuen
Größen (je nach Skalierung). Somit muss man immer genau beachten, auf wel-
ches Koordinatensystem sich die Änderung einer Einstellung auswirkt. In der
Praxis sollte man deshalb individuelle Einstellungen eines Objektes am besten
durch die Geometrie ändern um somit zusammenhängende Änderungen durch
den Gruppenknoten zu verhindern.
Bei einer Translation wird das Objekt um einen bestimmten Vektor verscho-
ben. Zum Beispiel verschiebt translation 4.0 -3.0 5.0 das Objekt um 4 Einhei-
ten in x-Richtung um -3 in y-Richtung und um 5 in z-Richtung.
Bei der Rotation im dreidimensionalen Koordinatensystem, gibt es verschiede-
ne Möglichkeiten, die Drehung um die x-, y-, und z-Achse. Die Drehung um x-
Achse bezeichnet man im Englischen als pitch die Drehung um die y-Achse als
yaw und die Drehung um die z-Achse als roll. Die Darstellung besteht aus vier
Werten. Die ersten drei Werte beschreiben die Achse in Koordinatenschreib-
weise, um welche gedreht werden soll. Es bedeutet rotation 1.0 0.0 0.0 1.571,
dass der Körper um die x-Achse gedreht wird. Der dritte Wert beschreibt den
15
Drehwinkel in Radiant. In dem obigen Beispiel wird somit ein Körper um 90°
um die x-Achse gedreht. Die Objekte werden immer um ihren Schwerpunkt,
um den sogenannten Euler Winkel gedreht.
Möchte man um einen anderen Punkt drehen, so legt man ein individuelles
Rotationszentrum fest. Hierfür gibt es das Feld „center“ welches die Verschie-
bung des Rotationspunktes vom Schwerpunkt angibt. Zum Beispiel center
5.0 0.0 0.0.
Bei der Skalierung gibt es zwei Varianten. Entweder behält man die Abbil-
dungsverhältnisse bei oder man ändert diese mit und erreicht somit eine De-
formierung des zuvor in der Geometrie definierten Objektes. Ändert man jeden
Wert gleichmäßig durch die Skalierung scale 2.0 2.0 2.0 , so wird jede
Kantenlänge verdoppelt. Die Zahlenwerte sind jeweils Faktoren, um die sich
der Körper in jede Richtung der Achsen ändert.
1.9 Beleuchtung
Es existieren in VRML drei verschiedene Lichtquellen:
- Parallel gerichtetes Licht (DirectionalLight) z.B. Sonne
- Punktlichtquelle (PointLight) z.B. Glühlampe
- Spotlichtquelle (SpotLight) z.B. Taschenlampe
In dem Knoten „DirectionalLight“ gibt es verschiedene Felder:
„Color“ gibt die Farbe des Lichtes als RGB Farbwert an, „ambientIntensity“
definiert, welchen Einfluss die Beleuchtung auf die Schattierung von Oberflä-
chen haben soll. Hier kann man eine positive reale Zahl von 0 bis 1.0 angeben.
„intensity“ beschreibt allgemein die Intensität des Lichtes, „location“ den Ort
der Lichtquelle und „radius“ den Radius, den das Licht bestrahlt. In dem
VRML-Skript sieht die Definition einer Lichtquelle dann wie folgt aus:
DEF OB_Lamp Transform {translation 4.076 5.904 -1.005rotation 0.206 0.921 -0.332 1.926scale 1.0 1.0 1.0children [
DEF Lamp PointLight {ambientIntensity 0.0color 1.0 1.0 1.0intensity 0.571location 0.0 0.0 0.0radius 29.9999828339
16
}
]}
Schatten muss man in VRML manuell berechnen, indem man flache, graue
oder auch schwarze Objekte zusätzlich zu den beleuchteten Objekten einfügt.
1.10 Hintergrund
Der Hintergrund, der in VRML eine Szene komplett umgibt, kann unterschied-
lich gewählt werden. Er besteht aus einer großen Kugel. Ein einfarbiger Hin-
tergrund lässt sich mit geringem Aufwand einstellen. In dem Knoten „Back-
ground“ legt man die Farbwerte des Feldes „skyColor“ fest. Zum Beispiel für
einen weißen Hintergrund:
Background { skyColor [ 1.0 1.0 1.0 ] }
Abbildung 3
Mit den beiden folgenden Feldern werden Farbübergänge des Hintergrundes
beschrieben. „skyAngle“ gibt die Winkel an, in denen die Farbwerte der „Sky“
zueinander stehen. In Abbildung 38 liegen diese bei 45° und 90°. „groun-
dAngle“ besitzt dieselbe Funktion, nur für den „Ground“. In dem obigen Bild
liegen die Winkel ebenfalls bei 45° und 90°. Bei „skyColor“ und „groundco-
lor“, gibt es jeweils 3 Farbwerte, da die Pole automatisch einen Wert erhalten,
ohne bei der Winkeldefinition mit 0° angegeben zu werden. Der VRML-
Browser führt automatisch eine Interpolation durch, die einen weichen Über-
gang zwischen den Farben erzeugt, was einer Verwischung ähnelt.
Mit diesen Informationen kann man, nur durch einen Text in der Beschrei-
bungssprache VRML, eine virtuelle, dreidimensionale Welt erstellen. Es gibt
jedoch auch Programme, bei denen man die virtuelle Szene als Graphik in ei-
8 Literaturverzeichnis Nr. 8 Seite 178
17
nem Fenster sehen und ändern kann. Diese kann dann nach dem Fertigstellen
in VRML umgeschrieben werden. 9
III. Grundlegende Funktionen von Blender
Im Rahmen dieser Facharbeit wurde mit dem Freeware-Programm Blender10
gearbeitet. Die Benutzeroberfläche ist in zwei Bereiche aufgeteilt. Das 3D-
Fenster und das sogenannte Buttons-Window, welches sich im unteren Ab-
schnitt der Benutzeroberfläche befindet. In dem 3D Fenster, mit eingeblende-
tem Koordinatensystem werden die Objekte, die bearbeitet werden, im Raum
sichtbar. Um diese von mehreren Betrachtungswinkeln anschauen zu können,
stehen verschiedene Optionen zur Verfügung. Die Objekte lassen sich von vor-
ne, von der Seite von oben und mit Hilfe einer verschiebbaren Kamera betrach-
ten. Man kann praktisch virtuell um die Objekte herumgehen, indem man die
Kamera um diese herum bewegt. Zusätzlich kann man in diesem Fenster noch
die Beleuchtung definieren. Vorgegeben ist zu Beginn ein Licht, dessen Positi-
on als ein schwarzer Kreis zu erkennen ist.
Das Buttons-Window dient hauptsächlich der Definition der Materialeigen-
schaften eines Körpers. Dort lassen sich Farben, Texturen, Hintergründe, Ani-
mationen einstellen und auch verschiedene Beleuchtungsarten einfügen.
Blender hat verschiedene Objekte vordefiniert, die man mit „drag and drop“
einfügen kann. Dies sind zum einen zweidimensionale Objekte wie Kreise,
Kurven und Vierecke aber auch dreidimensionale Objekte wie Quader, Kugeln,
Röhren und Zylinder.
Die Objekte sind in Blender durch Punkte und Verbindungsstrecken darge-
stellt, welche man wiederum mit Flächen verbinden kann. Besteht ein Körper
schon aus Flächen, so hat man die Möglichkeit diese auszublenden und somit
nur ein Gitter des Körpers darzustellen.
Man kann die Objekte mithilfe der Maus platzieren. Jedes Objekt kann skaliert
werden, das heißt größer und kleiner dargestellt werden. Außerdem lässt sich
jedes Objekt in Bezug auf jede der drei Achsen rotieren.
9 Abschnitt II. Literaturverzeichnis Nr. 1,210 www.blender.org
18
Das Koordinatensystem ist wie folgt definiert: die x-Achse befindet sich in der
Waagerechten, die z-Achse in der Senkrechten und die y-Achse verläuft in die
zweidimensionale Oberfläche des Bildschirmes senkrecht hinein.
Die grundlegenden Informationen stammen aus den Internet-Tutorials, da für
das Open-Source-Programm Blender dort die aktuellste Dokumentation be-
steht. Künftig ist wahrscheinlich das neue Buch von C. Wartmann, welches im
August 2007 erscheinen soll eine gute Referenz. 11
IV. Darstellung des Hubschraubers
4.1 Allgemeines
Der praktische Teil der Facharbeit besteht aus der Aufgabe einen Hubschrauber
in Blender zu erstellen. Als Vorlage wurde der Hubschrauber EC-135 von Eu-
rocopter gewählt, dessen Original in Abbildung 412 zu sehen ist.
Dieser Hubschrauber wird häufig als Rettungshubschrauber verwendet, da er
als einer der wenigen Hubschrauber am hinteren Ende Flügeltüren besitzt.
Durch diese kann man Patienten auf Tragen in den Innenraum verladen. Am
besten bekannt ist dieser Hubschrauber aber wahrscheinlich dadurch, dass er
vom ADAC verwendet wird. Die Flotte des ADAC besteht aus insgesamt 38
Hubschraubern, von denen 21 vom Typ EC-135 sind.13
11 Literaturverzeichnis Nr. 712 Literaturverzeichnis Nr. 913 Literaturverzeichnis Nr. 4
Abbildung 4
19
4.2 Umsetzung der graphischen Vorlage
Um diesen Hubschrauber möglichst de-
tailgetreu nachbauen zu können, wurde
ein Hintergrundbild (siehe Abbildung 5
14) in Blender verwendet, welches die
Maße der EC-135 beinhaltet um damit
die richtigen Größenverhältnisse einhal-
ten zu können. Hiermit konnten die drei
Ansichten, von vorne, von hinten und
von der Seite der verschiedenen Objekt-
teile exakt nachgebaut werden.
4.3 Aufteilung des Hubschraubers
Bei der Erstellung des Hubschraubers wurde dieser in kleinere Bereiche aufge-
teilt, welche dann nacheinander einzeln modelliert und anschließend zusam-
mengesetzt wurden. In Abbildung 6 ist markiert, welche Teile separat model-
liert wurden.
Abbildung 6
Bei den Objektteilen handelt es sich um:
- die Verbindung Fenestron-Rumpf (grün)
- die Stabilisatoren (lila)
- den Aufsatz auf dem Rumpf (gelb)
- den Rotorkopf (orange)
14 Literaturverzeichnis Nr. 9
Abbildung 5
20
- die Rotorblätter (rot)
- die Kufen (schwarz)
- den Fenstron (hellblau)
- den Rumpf (dunkelblau)
- die Fenster und die Abgasöffnung (rosa)
4.4 Bau des Hubschraubers
4.4.1 Verbindung Fenestron-Rumpf
Es wurde mit der Verbindung
von Fenstron und dem Rumpf
des Hubschraubers begonnen.
Diese besteht aus zwei Röhren
von unterschiedlichen Durch-
messern die waagerecht auf-
einander liegen. Zuerst wurde
eine Röhre eingefügt und die
richtige Größe eingestellt
(siehe Abbildung 7). Das erfolgt durch Skalierung des Durchmessers und Ver-
schieben der Endpunkte um die richtige Länge der Verbindung zu erreichen.
Daraufhin wurde die zweite Röhre eingefügt, welche die gleiche Länge besitzt,
jedoch vom Durchmesser wesentlich kleiner ist. Diese ist so auf die erste auf-
gesetzt, dass sie bis über die Hälfte in dieser verschwindet. Die fertige Verbin-
dung der beiden Röhren sieht man in Abbildung 8.
Abbildung 7
Abbildung 8
21
4.4.2 Die Stabilisatoren
Das zweite Objekt sind die Flügel, die sich vor dem Fenestron befinden (Stabi-
lisatoren). Diese wurden wiederum aus zwei Teilen erstellt: die zwei Sechsecke
der Flügelflächen und das Verbindungsrohr zwischen diesen beiden. Bei den
Flügelflächen wurde mit einem Sechseck begonnen, wobei mit Hilfe des Hin-
tergrundbildes die Eckpunkte des Sechseckes genau auf die Eckpunkte des
Bildes gelegt wurden, um eine genaue Übereinstimmung zu erhalten. Darauf-
hin wurde das Objekt von vorne angepasst und die Fläche des Sechseckes ex-
trudiert, wozu alle Punkte markiert wurden. Beim Extrudieren werden die mar-
kierten Punkte, Verbindungslinien und Flächen verdoppelt. Man kann dann die
verdoppelten Punkte praktisch aus den ursprünglichen Punkten „herausziehen“,
wobei die beiden Punktanordnungen verbunden bleiben. Danach wurden nun
die entstandenen Flächen geschlossen. Das somit dreidimensionale Objekt wird
noch dupliziert, da das Sechseck auf beiden Seiten des Hubschraubers existiert.
4.4.3 Lattice
Die Grundstruktur der Verbindung zwischen den Stabilisatoren ist ebenfalls
eine Röhre. Diese wird deformiert um die richtige Form zu erhalten, denn an-
ders wie die vorher beschriebene Verbindung liegt diese nicht in Windrichtung
sondern senkrecht dazu. Die Verformung von vorgegebenen Grundkörpern in
die erforderliche Geometrie erfolgt mit der Funktion „lattice“ (auf Deutsch
Gitter), welche den Objekten ein „Lattice“ zugeordnet wird. Durch Verschie-
ben der Punkte des Lattice werden mehrere Punkte des Objekts mit bewegt und
es muss nicht jeder Punkt einzeln verändert werden. Das Rohr, um das das Git-
ter gelegt wurde, sieht nun
wie in der Abbildung 10
aus. Die rosa gefärbte El-
lipse ist das deformierte
Rohr und das schwarze Objekt das „Lattice“.
Hierbei kann man auch den stromlinienförmigen
Aufbau des Verbindungsstückes e kennen. Das
fertige Objekt ist in Abbildung 9 dargestellt.
Abbildung 10
Abbildung 9
22
4.4.4 Aufsatz des Rumpfes
Bei dem Aufsatz auf dem Rumpf wurde dasselbe Prinzip verwendet. Zuerst
wurde eine Kugel eingefügt und die Hälfte von dieser abgeschnitten, die Halb-
kugel auf die richtige Größe gebracht und diese durch ein Lattice mithilfe des
Hintergrundbildes angepasst. Die fertige Halbkugel sieht man in Abbildung 11.
4.4.5 Der Rotorkopf
Der Rotorkopf besteht aus einer Halbkugel und einem Rohr. Es wurde eine
Kugel eingefügt, bei welcher eine Hälfte entfernt wurde. Danach wurde der
untere Kreis, also die Basis der Halbkugel extra betrachtet. Um das Rohr exakt
in der Mitte der Halbkugel anschließen zu lassen, werden die Punkte des Ba-
siskreises dupliziert und skaliert. Dadurch bleibt der neue in diesem Fall klei-
nere Kreis mit dem alten Basiskreis verbunden. Der nun genau in der Mitte
gelegene kleine Kreis wurde in z-Richtung extrudiert und die äußeren Flächen
geschlossen.
4.4.6 Die Rotorblätter
Das nächste modellierte Objekt sind die Rotorblätter. Diese bestehen aus einem
Viertel einer Kugel, welche in einer Richtung extrudiert wurden (siehe Abbil-
dung 12).
Abbildung 11
Abbildung 12
23
Danach wurden die noch offenen Flächen geschlossen und das Rotorblatt mit
einem Lattice deformiert. Dadurch erreicht man
die geringe Dicke der Rotorblätter und auch die
Rundung entsprechend der Stromlinienform. Das
fertige Rotorblatt wurde kopiert, so dass sich vier
Blätter ergeben und diese wurden jeweils um 90°
gedreht angeordnet (Abbildung 13). Zuletzt wur-
den dann mithilfe des Hintergrundes die Rotor-
blätter via Rotation schräg gestellt, da diese nicht parallel zur Grundebene lie-
gen, was man in Abbildung 14 erkennen kann.
4.4.7 „Warp-Werkzeug“
Um die Modellierung der Kufen beschreiben zu können wird das sogenannte
„Warp-Werkzeug“ erläutert. Blender bietet damit die Möglichkeit zum Bei-
spiel Rohre mit einer bestimmten Krümmung zu erzeugen, in dem sie um eine
Kugel gebogen werden. Der Nachteil dabei ist, dass man bei diesem Verfahren
sehr viele Punkte in dem zu verbiegenden Objekt benötigt, wie man in Abbil-
dung 15 erkennen kann.
Abbildung 13
Abbildung 14
Abbildung 15
24
4.4.8 Die Kufen
Der Vorteil des Warp Werkzeuges für diese Anwendung ist, dass man die Stär-
ke der Biegung durch die Anpassung der Kugel an das Hintergrundbild exakt
einstellen kann. Die verschiedenen gebogenen Rohre werden entsprechend
kopiert und miteinander verbunden, so dass man ein genaues Modell der Kufen
erhält (Abbildung 16).
Bei den unteren Rohren werden Halbkugeln, mit dem Durchmesser der Rohre
aufgesetzt um die reale Form zu erlangen.
4.4.9 Der Fenestron I
Beim nächsten Objektteil handelt es sich um den Fenestron. Dieser kann nicht
aus einem Quader mit Kanten von jeweils 90° gebaut werden, da der Fenstron
entlang der Kante, die zum Hubschrauberrumpf zeigt, stark abgerundet ist. Der
Fenestron wurde somit ebenfalls in mehrere kleinere
Bereiche aufgeteilt.
Der in Abbildung 17 gelb markierte Bereich besteht aus
einem Quader, der in der Tiefe schmäler ist und bei
welchem die Kanten verschoben wurden, wodurch man
diesen Teil in den hier rot markierten Bereich hineinste-
cken kann.
Um darzustellen, wie man aus einer Kugel den roten
Bereich erstellt hat, muss man erst eine weitere Funktion von Blender erklären,
die Boolschen Operationen.
Abbildung 16
Abbildung 17
25
4.4.10 Boolsche Operationen
Diese Funktion wird anhand eines Objektes
erklärt, welches aus einer blauen und einer
roten Halbkugel besteht (Abbildung 1815). Die
beiden Halbkugeln liegen so, dass sie sich
überschneiden. Mit dieser Anordnung lassen
sich nun drei Funktionen durchführen, „Inter-
sect“, „Union“ und „Difference“.
In Abbildung 19 kann man das Ergebnis der
Funktion „Intersect“ sehen. Hierbei wird die
Schnittmenge der beiden Halbkugeln darge-
stellt, also die Fläche welche beiden Kugel
gemein ist.
Bei der Funktion „Union“ werden die Flächen
der beiden Halbkugeln verknüpft und die ge-
meinsame Fläche herausgeschnitten (Abbil-
dung 20).
Bei der Operation „Difference“ wird von der
blauen Halbkugel die Fläche der roten abge-
zogen (Abbildung 21).
15 Literaturverzeichnis Nr. 10 ebenfalls die Abbildungen 19, 20, 21
Abbildung 18
Abbildung 19 - Intersect
Abbildung 20 - Union
Abbildung 21 - Difference
26
4.4.11 Der Fenestron II
Der Aufbau des Fenestron beginnt mit dem roten Bereich ohne die Öffnung in
der Mitte. Dieses Element wurde aus einer Kugel erstellt, welche mithilfe des
Lattice in die richtige Form gebracht wurde. Danach wurde eine Röhre in das
Objekt gesteckt, siehe Abbildung 23 und diese mit „Difference“ von der de-
formierten Kugel abgezogen. Das fertige Objekt sieht man auf Abbildung 22.
Als nächstes wurde der blau markierte Bereich erstellt. Dieser wurde aus den
Punkten des oben erstellten Objektes extrudiert und die äußeren Flächen ge-
schlossen. Der grün markierte Teil besteht aus einer flachen Röhre, deren
Durchmesser an das Hintergrundbild angepasst wurde. Die Streben, die diese
Röhre mit dem Rest des Fenestron verbinden, bestehen aus flachen und schma-
len Quadraten, die kopiert wurden und durch Rotationen um die flache Röhre
gelegt wurden. Den fertigen Fenestron sieht man in Abbildung 24.
Abbildung 22 Abbildung 23
Abbildung 24
27
4.4.12 Der Rumpf
Der Rumpf des Hubschraubers wurde ebenfalls aus einer Kugel, mithilfe des
Gitters (Lattice), erstellt, siehe Abbildung 25.
Zur Erstellung des detailgetreuen Aufbaus des Rumpfes wurde hauptsächlich
die Boolean Operationen verwendet. Damit wurden die Triebwerksauslässe
erstellt, wobei erst zwei Röhren gebildet wurden, die an den richtigen Platz
mithilfe des Hintergrundbildes gebracht wurden und dann mit dem Aufruf
„Difference“ aus dem Objekt herausgeschnitten wurden. Als Nächstes wurde
der obere Teil des Rumpfes, ein fast ellipsenförmiges Objekt, definiert. Mit
dem Modell in Abbildung 26 wurde dieses Teil auch mit
Difference herausgeschnitten. Der hier dunkelgrau ge-
färbte ellipsenförmige Bereich ist hohl und wurde aus
dem Quadrat herausgeschnitten. Dies ist nötig, da bei
dem neuen Objekt dieser Teil die Originalform des
Rumpfes behält. Setzt man das Objekt, hier auf dem lin-
ken Bild zu sehen, auf den Hubschrauber, so entsteht die
charakteristische Form des Rumpfes. Die genaue Anpas-
sung des ausgehöhlten Quaders auf den Rumpf, kann
man in Abbildung 27 erkennen.
Abbildung 25
Abbildung 26
28
Abbildung 27
4.4.13 Die Fenster
Der nächste Schritt zur Erstellung des realistischen Rumpfes ist die Anbrin-
gung der Fenster. Diese wurden ebenfalls mit Hilfe der Boolean Operationen
erstellt. Zuerst wurden die Fenster in der Seitenansicht aus einer Röhre mit
dem „Lattice“ modelliert. Diese wurden daraufhin seitlich in den Rumpf ge-
steckt, siehe Abbildung 28.
Man nutzt bei diesen Verfahren zwei Boolsche Operationen. Zum einen wur-
den die Fensterscheiben mithilfe von „Intersect“ herausgeschnitten und zum
anderen wurden die Löcher für die Fenster mit „Difference“ erstellt. Dies ist
nötig, da Blender bei einer Boolsche Operation das Originalobjekt beibehält
und nur das erstellt, was man durch einen Boolschen Aufruf modellieren möch-
te. Somit entstehen nach dem ersten Schritt (Intersect) nur die Fensterscheiben,
Abbildung 28
29
ohne dass in den Rumpf die Löcher für diese Fenster erstellt werden. Den
Fensterscheiben werden, vor dem Einsetzen die Materialeigenschaften für Glas
gegeben16. Es wird dabei die Stärke der Lichtbrechung eingestellt und die Flä-
chen, die das Licht durchstrahlt definiert, außerdem werden noch Einstellungen
vorgenommen, welche die Leuchtkraft des Glases angeben.
Nach Festlegen dieser Einzelheiten des Rumpfes wurde diesem eine Tiefe ge-
geben, also ein doppelwandiger Hubschrauber erstellt. Hierfür wurde eine
Duplikation des Rumpfes kleiner skaliert und in den äußeren Rumpf gesetzt.
Beim Betrachten des fertigen Objektes sieht man, dass Blender automatisch
Schatten einfügt. Die Schattierung ist somit nicht so aufwändig, wie zuvor bei
dem VRML-Skript beschrieben wurde. Blender arbeitet in diesem Fall nicht
mit flachen, grauen Objekten, sondern erstellt die Schatten über die Textur
eines Objektes.
4.4.14 Die Textur
Für ein realistisches Aussehen fehlt noch die Textur des Hubschraubers. Hier-
bei werden dem zu texturierenden Objekt UV-Koordinaten gegeben. Das heißt,
dass jede Fläche des Objekts eigene Koordinaten erhält, die sogenannten UV-
Koordinaten, wodurch man jeder einzelnen Fläche eine eigene Textur zuordnen
kann.
Das Bild, welches man auf das Objekt legen möchte, wird auch in UV-
Koordinaten dargestellt. Hierfür muss in einem 3D-Fenster das Bild eingefügt
werden, wobei diesem automatisch die benötigten Koordinaten zugewiesen
werden. Man erreicht dadurch, dass das Objekt welches auf der Basis der UV-
Koordinaten arbeitet, dass Bild überhaupt richtig zuordnet und dass man das
Bild beliebig auf dem Objekt versetzen kann.
Es muss beachtet werden, dass bei der Einstellung der UV-Koordinaten der
Alpha-Kanal eingestellt ist. Dieser bewirkt, dass beim Aufbringen des Bildes
nicht der Hintergrund des Bildes als Hintergrund für das ganze Objekt verwen-
det wird, sondern die Hintergrundfarbe noch frei wählbar ist. Bei einer Hub-
schrauberdarstellung17 wurde das Logo des Gymnasiums Ottobrunn verwendet.
Man sieht an dem fertigen Hubschrauber, dass nur die Konturen, ohne den Hin-
tergrund angezeigt werden und der Rumpf im Ganzen seine rote Farbe behält.
16 Siehe Anhang Nr. 1517 Siehe Anhang Nr. 17,18
30
Die nächste verwendete Funktion ist „Unwrap“. Bei dieser wird das zu textu-
rierende 3D-Modell „abgerollt“ und somit zusätzlich als 2D-Objekt darge-
stellt. Dies muss bei jeder Texturierung neu erstellt werden, da hierbei beein-
flusst wird, wo die Textur auf dem Objekt erscheint. Man stellt zu Beginn die
Sicht auf das Objekt ein, mit der man am besten auf die Position der späteren
Textur blickt. Danach benutzt man die Funktion „Unwrap Project from View“
um das Objekt aus der einstellten Sicht „abzurollen“. Bei dem Hubschrauber
sieht Das abgerollte Objekt des Hubschraubers, der Rumpf, ist in Abbildung 29
zu sehen.
Abbildung 29
Das Bild aus Abbildung 29 wurde mithilfe eines Screenshots in Photoshop
eingefügt. Nun muss man dort auch den Alpha-Kanal einstellen und man kann
somit später diesen lila Korpus ausblenden, da man diese Ansicht nur benötigt
um die Textur richtig auf dem Objekt platzieren zu können. Es können mit die-
sem Verfahren verschiedene Bilder eingefügt werden und auf dem Objekt ver-
teilt werden (siehe Abbildung 30).
Das fertige Bild wird abgespeichert, nachdem man das abgerollte Gitter ver-
borgen hat. Danach kann in Blender dieses Bild geladen und ihm die UV-
Abbildung 30
31
Koordinaten gegeben werden. Dieses Bild muss zum einen in ein Fenster gela-
den werden, um die UV-Koordinaten zu erhalten und zum anderen in ein zwei-
tes Fenster, um das Bild dem Objekt als Textur zuzuordnen.
Durch die Einstellung des Alpha Kanals hat das Objekt bisher noch keine Hin-
tergrundfarbe. Diese stellt man in dem „Buttons-Window“ ein, in welchem die
Materialeigenschaften verwaltet werden, wobei mithilfe der RGB-Farben der
Hintergrund farbig gestaltet wird.
Mit dem Texturierungsverfahren wurden mehrere unterschiedliche Hubschrau-
ber erstellt. 18 Hierbei gibt es zwei verschiedene Arten der Darstellung. Zum
einen wurden einzelne Motive, wie Bälle, Blumen, Logos und Texte auf dem
Hubschrauber angebracht, wobei dieser zuvor mit einer Grundfarbe belegt
wurde. Die weiteren Teile des Hubschraubers wurden noch je nach Bauteil
passend einfarbig eingefärbt. Zum anderen wurde ein Hubschrauber („Fuß-
ball2“) ohne Hintergrundfarbe komplett mit einer Textur versehen.
4.4.15 Materialeigenschaften Chrom
Es wurde eine weitere Einstellung untersucht um das Objekt realistischer er-
scheinen zu lassen, denn bisher ist ja nur der Rumpf des Hubschraubers textu-
riert. Es wurden noch zusätzlich dem Fenestron und der Verbindung zum Fe-
nestron die Materialeigenschaften19 von Chrom gegeben. Zuerst stellt man da-
für eine dunkelgraue Farbe ein und ändert daraufhin die Lichtbrechung an die-
sem Objekt.
Es fällt bei dem Hubschraubermodell „Chrom“ auf, dass die Komplexität der
mehrfachen Reflexion am Rumpf durch das Programm Blender nicht mehr
richtig wiedergegeben werden kann.
18 Siehe Anhang Nr. 17,1819 Siehe Anhang Nr. 14
32
V. Schlussbemerkungen
Zum Abschluss möchte ich noch eine Bewertung des Projektes „Seminarfach
Informatik“ vornehmen. Die für uns neue Arbeitsweise bei der Durchführung
der Facharbeit von den Beiträgen zur Definition des Themas, der selbständigen
Erarbeitung der notwendigen grundlegenden Kenntnisse, der praktischen Um-
setzung der Aufgabenstellung, den erforderlichen Gesprächen mit externen
Betreuern, den verschiedenen Präsentationen bis zur schriftlichen Darstellung
des Projektes, ermöglichte uns viele neue wichtige Erfahrungen zu sammeln.
Besonders hervorzuheben ist die Zusammenarbeit mit externen Kooperations-
partnern aus Universitäten oder der Industrie, welche sowohl Anregungen zu
der Themenstellung geben konnten, als auch eine sehr große Hilfe bei fachli-
chen Fragestellungen waren. Die Zusammenarbeit mit den Betreuern war sehr
effektiv, da die Kooperationspartner die Themen entweder selbst gestellt oder
zumindest mit beeinflusst hatten. Damit kam eine große Themenvielfalt mit
sehr praxisnahen Anwendungen zu Stande. Im Gegensatz dazu steht die nor-
male Facharbeit, bei der die Betreuung ausschließlich durch die LK-Lehrer
geleistet werden muss, die der einzelnen Arbeit weniger Zeit widmen können,
als die Betreuer, die meist nur für eine Facharbeit zuständig sind. Durch die
Zusammenarbeit mit Externen ergibt sich als sehr positiv die Aktualität der
Themen, da diese sich meistens auf laufende Arbeiten der Firmen oder Univer-
sitäten beziehen und somit Aufgabenstellung und Ergebnis auch für die Koope-
rationspartner interessant sind. Des Weiteren bekam man durch die Zusam-
menarbeit vor Ort auch einen kleinen Einblick in die Berufswelt und das Ar-
beitsumfeld der Betreuer, was so kurz vor dem Abitur und somit vor der Be-
rufsentscheidung sehr hilfreich ist. Das Erlernen der systematischen Arbeits-
weise im Rahmen der Facharbeit, das Umgehen mit einer wissenschaftlichen
Problemstellung und das selbständige Arbeiten und Lösen der Fragestellung ist
eine gute Vorbereitung auf das spätere Studium und den Berufsalltag. Als wei-
terer positiver Aspekt ergibt sich auch die fachliche Vertiefung im Fach Infor-
matik, welche die intensive Beschäftigung mit den gestellten Themen mit sich
brachte.
33
Die hier eingeführte Arbeitsweise brachte jedoch als einen Nachteil den sehr
großen zeitlichen Aufwand mit sich. Durch die Definition der praktischen Auf-
gaben mit Externen, die Betreuung durch ausgewiesene Fachleute, denen die
begrenzten Grundkenntnisse der Schüler unbekannt sind und die drei Präsenta-
tionsrunden, ist diese Facharbeit wesentlich zeitaufwendiger als die normale
Facharbeit, was im Zusammenspiel mit den Anforderungen anderer Fächer
nicht immer problemlos zu bewältigen war. Hier haben es Schüler in anderen
Leistungskursen mit deutlich geringerem zeitlichem Aufwand erheblich einfa-
cher.
Insgesamt gesehen war die Durchführung der Facharbeit mit externen Koope-
rationspartnern eine positive und gelungene Sache die meistens auch Spaß ge-
macht hat.
34
VI. Danksagungen
Zu dem reibungslosen Ablauf der Facharbeit haben mehrere Personen beige-
tragen, bei denen ich mich ganz herzlich bedanken möchte.
Vielen Dank an Herrn Brichzin, der uns eine sehr gute Einführung, vor
der Erstellung der Facharbeit, in die Themen gegeben hat und auch im
Verlauf der Arbeit bei auftretenden Fragen und Problemen immer hilf-
reich war.
Ein großes Dankeschön an Herrn Dr. H. Lobentanzer, der mir es über-
haupt erst möglich gemacht hat, diese Facharbeit bei der EADS durch-
führen zu können und der mir meine Betreuer perfekt ausgesucht hat.
Vielen Dank!
Ein herzliches Dankeschön an meine beiden Betreuer von der EADS,
Holger Schmidt und Daniel Dreyer, die mir unglaublich viel geholfen
haben und bei denen ich so manchen langen Nachmittag mit Blender
verbracht habe. Ihr wusstet immer eine Lösung für meine zahlreichen
Fragen.
35
VII. Anhang
Schriftlich:
1. Beispiel VRML
2. Hubschrauber als JPEG
3. Standardbasisfarben VRML
4. Übersicht VRML
5. Tabelle Textur-Mapping
6. Tabelle „reservierte“ Worte
Auf Daten CD:
siehe Quellenangaben
7. Debacher Uwe, VRML, April 2006
8. FAZ.NET, Airbus A380 - Rummel um den Riesenvogel
9. Hafensteiner, Christian (Leitung) ADAC Online
10. Lufthansa, NRW begeistert von Airbus A380
11. Warp-Werkzeug, Blender Dokumentation, Wikibooks
12. Eurocopter, EC 135, Technical Data
13. Boolsche Operationen, Blender Dokumentation, Wikibooks
14. Materialeigenschaften Chrom
15. Materialeigenschaften Glas
16. Blender Version 2.44
17. Hubschrauber in Blender Dateiformat
18. Hubschrauber als JPEG
19. Hubschrauber in VRML
36
Anhang Nr. 1 – Beispiel VRML
#VRML V2.0 utf8
# This file was authored with Blender (http://www.blender.org/)# Blender version 244# Blender file Beispiel Kugel.blend# Exported using VRML97 exporter v1.55 (2006/01/17)
NavigationInfo {headlight FALSEvisibilityLimit 100.0type ["EXAMINE", "ANY"]avatarSize [0.25, 1.75, 0.75]
}
Background {groundColor 0.0565629 0.2208154 0.4skyColor 0.0565629 0.2208154 0.4
}
DEF OB_Lamp Transform {translation 0.000000 3.485873 -2.720681rotation -0.409051 0.818779 -0.402838 1.810099scale 1.000000 1.000000 1.000000children [
DEF Lamp DirectionalLight {ambientIntensity 0.0color 1.0 1.0 1.0intensity 0.5714286direction 0.0 -1.0 0.0
}
]}DEF OB_rsvd_Sphere Transform {
translation 0.000000 0.000000 0.000000rotation 1.000000 0.000000 0.000000 0.000000scale 1.000000 1.000000 1.000000children [
DEF ME_rsvd_Sphere Group {children [
Shape {appearance Appearance {
material DEF MA_Material_001Material {
diffuseColor 0.8 0.80.8
ambientIntensity0.1666667
specularColor0.4012008 0.4012008 0.4012008
emissiveColor 0.0 0.00.0
shininess 0.0976563transparency 0.0
}}geometry IndexedFaceSet {
solid TRUE
37
coord DEF coord_rsvd_SphereCoordinate {
point [0.309017002583 0.951056540012 0.00.587785243988 0.809017002583 0.00.809017002583 0.587785243988 0.00.951056540012 0.30901697278 0.01.0 -4.37113882867e-008 0.00.951056480408 -0.309017032385 0.00.809017002583 -0.587785184383 0.00.587785184383 -0.809017062187 0.00.309016793966 -0.951056599617 0.0-2.63611212858e-007 -1.0 1.91524762272e-0070.249999836087 -0.951056599617 -0.1816355288030.475528210402 -0.809017062187 -0.3454914987090.654508531094 -0.587785243988 -0.4755282998090.769420862198 -0.309017062187 -0.5590170025830.809017002583 0.0 -0.5877853035930.769420921803 0.309016942978 -0.5590170621870.654508531094 0.587785243988 -0.4755282998090.475528270006 0.809017002583 -0.3454915285110.25 0.951056540012 -0.1816356480120.0954914838076 0.951056540012 -0.2938926517960.18163561821 0.809017002583 -0.5590170621870.249999985099 0.587785243988 -0.7694209814070.293892592192 0.309016942978 -0.9045085906980.309016942978 0.0 -0.9510565996170.293892592192 -0.309017062187 -0.9045085310940.249999985099 -0.587785243988 -0.7694209814070.181635588408 -0.809017062187 -0.5590170025830.0954914242029 -0.951056599617 -0.293892472982-0.0954914912581 -0.951056599617 -0.293892472982-0.181635692716 -0.809017062187 -0.559017002583-0.250000119209 -0.587785243988 -0.769420981407-0.293892711401 -0.309017062187 -0.904508531094-0.309017121792 0.0 -0.951056599617-0.293892741203 0.309016942978 -0.904508590698-0.250000119209 0.587785243988 -0.769420981407-0.181635707617 0.809017002583 -0.559017062187-0.0954915508628 0.951056540012 -0.293892651796-0.250000059605 0.951056540012 -0.18163561821-0.475528389215 0.809017002583 -0.345491498709-0.654508709908 0.587785243988 -0.475528270006-0.769421100616 0.309016942978 -0.559017002583-0.809017181396 0.0 -0.587785243988-0.769421041012 -0.309017062187 -0.559016942978-0.654508709908 -0.587785243988 -0.475528270006-0.475528329611 -0.809017062187 -0.345491468906-0.249999910593 -0.951056599617 -0.181635513902-0.309016853571 -0.951056599617 5.43267653086e-008-0.587785303593 -0.809017062187 9.09947175387e-008-0.809017181396 -0.587785243988 1.45113389749e-007-0.951056659222 -0.309017062187 1.68580882587e-007-1.00000023842 0.0 1.53325373731e-007-0.951056718826 0.309016942978 1.55394445756e-007-0.809017181396 0.587785243988 1.45113389749e-007-0.587785363197 0.809017002583 1.01918871565e-007-0.309017032385 0.951056540012 5.75265524105e-008-0.25 0.951056540012 0.181635722518-0.475528299809 0.809017002583 0.345491677523-0.654508590698 0.587785243988 0.475528538227-0.769420981407 0.309016942978 0.559017300606
38
-0.809017121792 0.0 0.587785542011-0.769420921803 -0.309017062187 0.559017241001-0.654508590698 -0.587785243988 0.475528538227-0.475528240204 -0.809017062187 0.34549164772-0.249999850988 -0.951056599617 0.181635603309-0.0954913944006 -0.951056599617 0.293892532587-0.181635513902 -0.809017062187 0.559017121792-0.249999895692 -0.587785243988 0.769421219826-0.293892502785 -0.309017062187 0.904508769512-0.309016913176 0.0 0.95105689764-0.293892502785 0.309016942978 0.904508829117-0.249999895692 0.587785243988 0.769421219826-0.181635543704 0.809017002583 0.559017181396-0.0954914391041 0.951056540012 0.2938927114010.0 1.0 0.00.095491617918 0.951056540012 0.2938926517960.181635841727 0.809017002583 0.5590171217920.250000327826 0.587785243988 0.7694211006160.293892979622 0.309016942978 0.9045087099080.309017330408 0.0 0.9510567784310.293892920017 -0.309017062187 0.9045086503030.250000327826 -0.587785243988 0.7694211006160.181635826826 -0.809017062187 0.5590170621870.0954915508628 -0.951056599617 0.2938925027850.249999985099 -0.951056599617 0.1816354990010.475528478622 -0.809017062187 0.3454914391040.654508948326 -0.587785243988 0.4755282402040.76942127943 -0.309017062187 0.5590169429780.80901747942 0.0 0.5877852439880.769421339035 0.309016942978 0.5590169429780.654508948326 0.587785243988 0.4755282402040.475528538227 0.809017002583 0.3454914689060.250000119209 0.951056540012 0.181635588408
]}
coordIndex [9 10 8 -1,8 10 11 7 -1,7 11 12 6 -1,6 12 13 5 -1,5 13 14 4 -1,4 14 15 3 -1,3 15 16 2 -1,2 16 17 1 -1,18 0 1 17 -1,0 18 73 -1,18 19 73 -1,17 20 19 18 -1,16 21 20 17 -1,15 22 21 16 -1,14 23 22 15 -1,13 24 23 14 -1,12 25 24 13 -1,11 26 25 12 -1,10 27 26 11 -1,9 27 10 -1,9 28 27 -1,27 28 29 26 -1,26 29 30 25 -1,25 30 31 24 -1,24 31 32 23 -1,
39
23 32 33 22 -1,22 33 34 21 -1,21 34 35 20 -1,20 35 36 19 -1,19 36 73 -1,36 37 73 -1,35 38 37 36 -1,34 39 38 35 -1,33 40 39 34 -1,32 41 40 33 -1,31 42 41 32 -1,30 43 42 31 -1,29 44 43 30 -1,28 45 44 29 -1,9 45 28 -1,9 46 45 -1,45 46 47 44 -1,44 47 48 43 -1,43 48 49 42 -1,42 49 50 41 -1,41 50 51 40 -1,40 51 52 39 -1,39 52 53 38 -1,38 53 54 37 -1,37 54 73 -1,54 55 73 -1,53 56 55 54 -1,52 57 56 53 -1,51 58 57 52 -1,50 59 58 51 -1,49 60 59 50 -1,48 61 60 49 -1,47 62 61 48 -1,46 63 62 47 -1,9 63 46 -1,9 64 63 -1,63 64 65 62 -1,62 65 66 61 -1,61 66 67 60 -1,60 67 68 59 -1,59 68 69 58 -1,58 69 70 57 -1,57 70 71 56 -1,56 71 72 55 -1,55 72 73 -1,72 74 73 -1,71 75 74 72 -1,70 76 75 71 -1,69 77 76 70 -1,68 78 77 69 -1,67 79 78 68 -1,66 80 79 67 -1,65 81 80 66 -1,64 82 81 65 -1,9 82 64 -1,9 83 82 -1,82 83 84 81 -1,81 84 85 80 -1,80 85 86 79 -1,79 86 87 78 -1,78 87 88 77 -1,77 88 89 76 -1,
40
76 89 90 75 -1,75 90 91 74 -1,74 91 73 -1,91 0 73 -1,0 91 90 1 -1,89 2 1 90 -1,88 3 2 89 -1,87 4 3 88 -1,86 5 4 87 -1,85 6 5 86 -1,84 7 6 85 -1,83 8 7 84 -1,9 8 83 -1,
]}
}]
}]
}DEF OB_Camera Transform {
translation 7.481132 5.343665 6.507640rotation 0.772239 0.535848 -0.341341 1.347139scale 1.000000 1.000000 1.000000children [
DEF Camera Viewpoint {description "Camera"position 0.0 0.0 0.0orientation 1.0 0.0 0.0 -1.570796fieldOfView 0.661
}
]}
Quelle:Persönlich erstellt.
41
Anhang Nr. 2 – Hubschrauber (JPEG)
Quelle: Persönlich erstellt.
42
Anhang Nr. 3 – Standardbasisfarben VRML
Quelle:
Literaturverzeichnis Nr. 1, Seite 396
43
Anhang Nr. 4 – Übersicht VRML
VRML Header
Background
Transform1. translation2. rotation3. scale
ShapeAppearance
1. Material2. Texture
ImageTexture MovieTexture
Geometry Box Cone Cylinder Sphere Coordinate PointSet IndexedLineSet GeometryText ElevationGrid
Lamp DirectionalLight PointLight SpotLight
Camera
Quelle:Persönlich erstellt
44
Anhang Nr. 5 – Tabelle Textur-Mapping
Quelle:Literaturverzeichnis Nr. 1, Seite 125
45
Anhang Nr. 6 – „reservierte Worte“
- DEF- EXTERNPROTO- FALSE- IS- NULL- PROTO- ROUTE- TO- TRUE- USE- eventIn- eventOut- exposedField- field
Quelle:Literaturverzeichnis Nr. 1, Seite 75
46
VIII.Literaturverzeichnis
Primärliteratur:
1. Däßler, Rolf
Das Einsteigerseminar VRML (der methodische und ausführliche Ein-
stieg; über 400 Seiten Einsteiger-Know-How)
Erschienen im bhv-Verlag 1999 1. Auflage
ISBN 3-8287-1082-4
2. Debacher, Uwe, VRML, April 2006
Heruntergeladen von http://www.debacher.de/vrml/vrml-2006.pdf,
4.3.2007
PDF-Dokument siehe Daten CD
3. FAZ.NET, Airbus A380 - Rummel um den Riesenvogel
21.7.07
Text: FAZ.NET mit Material von dpa
Bildmaterial: AP, ddp, dpa/dpaweb, REUTERS
http://www.faz.net/s/Rub8D05117E1AC946F5BB438374CCC294CC/
Doc~EBB9E05FF557D40C69E22D2352017CAE0~ATpl~Ecommon~
Sspezial.html
vollständiger Artikel siehe Daten CD
4. Hafensteiner, Christian, ADAC Online
2.4.2007,
http://www.adac.de/mitgliedschaft_leistungen/Luftrettung/Die_Flotte/d
efault.asp?ComponentID=2176&SourcePageID=7684
Vollständiger Artikel siehe Daten CD
5. Lufthansa, NRW begeistert von Airbus A380
21.7.07, Artikel vom 12.11.06
Lufthansa, © Deutsche Lufthansa AG, 2007
http://a380.lufthansa.com/de/html/presse/n061112/index.php
47
vollständiger Artikel siehe Daten CD
6. Warp-Werkzeug, Blender Dokumentation, Wikibooks
5.4.2007
http://de.wikibooks.org/wiki/Blender_Dokumentation:_Warp-
Werkzeug
vollständiger Artikel siehe Daten CD
7. Wartmann, Carsten
Das Blender-Buch
Erscheint im Dpunkt-Verlag im August 2007
ISBN 3898644669
Sekundärliteratur:
8. Däßler, Rolf
Das Einsteigerseminar VRML (der methodische und ausführliche Ein-
stieg; über 400 Seiten Einsteiger-Know-How)
Erschienen im bhv-Verlag 1999 1. Auflage
ISBN 3-8287-1082-4
9. Eurocopter, EC 135, Technical Data
PDF-Dokument von der Seite:
http://www.eurocopter.com/site/FO/scripts/siteFO_contenu.php?lang=E
N&noeu_id=37#EC135T2
2.4.2007
PDF Dokument siehe Daten CD
10. Boolsche Operationen, Blender Dokumentation, Wikibooks
12.5.07
http://de.wikibooks.org/wiki/Blender_Dokumentation:_Boolsche_Oper
ationen
vollständiger Artikel siehe Daten CD
Die restlichen Abbildungen wurden persönlich erstellt.
48
Abbildungsverzeichnis
Abbildung 3 --------------------------16
Abbildung 6-------------------------------------------------------------------------------19
Abbildung 27 -----------------------------------------------------------------------------28
Abbildung 29 -----------------------------------------------------------------------------30
IX. Erklärung
Ich erkläre hiermit, dass ich die Facharbeit ohne fremde Hilfe angefertigt und
nur die im Literaturverzeichnis angeführten Quellen und Hilfsmittel benützt
habe.
____________________, den_________ _____________________________Ort Datum Angela Grünewald