Upload
berend-mosser
View
105
Download
0
Embed Size (px)
Citation preview
Java3D-1
Java3D-Einführung
Computergrafik - SS 2004
TRI
Verhalten von Objekten in der Szene
Bsp.: RotationInterpolator
- Spezieller Interpolator
- Enthält eine Transform3D zur Beschrei-bung der Lage des lokalen Koordina-tensystems zum übergeordneten Koordinatensystem
- Interpoliert Rotationen um dieY-Achse des lokalen Koordinatensystems
- Entsprechend der Alpha-Werte wird zwischen minimalem und maximalem Winkel interpoliert, höchstens jedoch zwischen 0 und 2*
VirtualUniverse
Locale
BG BG
Sub-graph
Java3D-2
Java3D-Einführung
Computergrafik - SS 2004
Bsp.: RotPosPathInterpolator
- Spezieller PathInterpolator
- Interpoliert für eine Menge von Knoten parallel Position und Rotation
- Rotation wird als Quaternion dargestellt
TRPPI
Verhalten von Objekten in der Szene
VirtualUniverse
Locale
BG BG
Sub-graph
Java3D-3
Java3D-Einführung
Computergrafik - SS 2004
Quaternionen- Quadrupel (a; b; c; d), stellt hyperkomplexe Zahl (a+bi+cj+dk) mit
imaginären Zahlen i, j und k dar.Auf der Menge der Quaternionen sind Addition und Multiplikation auf bestimmte Weise definiert.
- Anwendung: Darstellung von Rotationen um eine beliebige Achse durch ein Quaternion des Betrags 1
- Betrag eines Quaternions ist definiert als √(a2+b2+c2+d2)
- Rotation um einen Winkel um eine Achse (x; y; z) wird dargestellt durch das Quaternion q = (cos( /2), x·sin( /2), y·sin( /2), z·sin( /2))
- Weitere Informationen z.B. unterhttp://www.iti.fh-flensburg.de/lang/algorithmen/grundlagen/quat.htm
Verhalten von Objekten in der Szene
Java3D-4
Java3D-Einführung
Computergrafik - SS 2004
Beschreibung einer Rotation durch Quaternionen (cont‘d)- Anwendung in Java3D in der Klasse Quat4f bzw. Quat4d- Vorsicht!
In Java3D wird die Rotation um einen Winkel um eine normalisierte Achse (a; b; c) durch eine Instanz von Quat4f oder Quat4d mit den Parametern x, y, z, w (in genau dieser Reihenfolge!) dargestellt mitx = a·sin( /2),y = b·sin( /2),z = c·sin( /2)undw = cos( /2)
Verhalten von Objekten in der Szene
Java3D-5
Java3D-Einführung
Computergrafik - SS 2004
Texturen
Texture Mapping
+ =
Java3D-6
Java3D-Einführung
Computergrafik - SS 2004
Texturen
Wiederholung: Shape3D
- Enthält Spezifikation für komplexe 3D Geometrie (z.B. TriangleStrip)
- Definiert zusätzlich das Erscheinungsbild der Geometrie
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
Appearance
Java3D-7
Java3D-Einführung
Computergrafik - SS 2004
Appearance
- Definiert das Aussehen eines Shape3D, z.B.
- Linien-, Punkt- und
Polygonattribute
- Material-, Darstellungs- und
Transparenzattribute
- Texturen und zugehörige
Attribute
Texturen
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
Appearance
Java3D-8
Java3D-Einführung
Computergrafik - SS 2004
Texture
- Abstrakte Klasse, die allgemeine Eigenschaften einer Textur definiert wie:
- Anpassung der Textur an die Oberfläche oder
- Kachelung
- Unterklassen:
- Texture2D
- Texture3D
- TextureCubeMap
- Auflösung der Textur muss in jeder Dimension immer Potenz von 2 sein!
Texturen
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
AppearanceTexture
Java3D-9
Java3D-Einführung
Computergrafik - SS 2004
MIP-Mapping
- Level-of-detail Methode für Texturen
- Für verschiedene Level werden Texturen unterschiedlicher Auflösung bereitgestellt, abhängig vom gewünschten Level-of Detail
- Auflösung je Dimension verdoppelt sich bei jedem Detailierungsschritt
Texturen
Java3D-10
Java3D-Einführung
Computergrafik - SS 2004
Texturen
Texture2D
- Zweidimensionale Textur
- Problematisch beim Mapping auf
dreidimensionale Objekte
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
AppearanceTexture
=
Java3D-11
Java3D-Einführung
Computergrafik - SS 2004
Texturen
TextureCubeMap
- Erlaubt ein würfelförmiges Mapping von zweidi-
mensionalen Texturen auf dreidimensionale
Objekte
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
AppearanceTexture
Java3D-12
Java3D-Einführung
Computergrafik - SS 2004
TextureLoader
- Lädt eine Textur aus
- java.awt.Image
- java.awt.image.BufferedImage
- einer Bilddatei
- Wird die Textur aus einer Bilddatei geladen, muß eine AWT-Komponente (z.B. ein JFrame) als „Image Observer“ angegeben werden
- Enthält Methoden, um auf das Bild oder die Textur zuzugreifen
Texturen
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
AppearanceTexture
TextureLoader
Java3D-13
Java3D-Einführung
Computergrafik - SS 2004
TexCoordGeneration
- Enthält alle Parameter zur automatischen Generierung von Texturkoordinaten
- Texturkoordinaten spezifizieren,
welche Texels den Punkten des
Polygonnetzes zugeordnet werden
- Zwischen den Punkten werden die
Texturkoordinaten interpoliert
- Erlaubt Definition der Ebene, in der die Textur auf das Objekt gemapped werden soll.
Texturen
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
AppearanceTexture
TexCoordGeneration
Java3D-14
Java3D-Einführung
Computergrafik - SS 2004
TexCoordGeneration
- Typische Anwendung:
TexCoordGeneration texCoordGeneration = new TexCoordGeneration(TexCoordGeneration.OBJECT_LINEAR, TexCoordGeneration.TEXTURE_COORDINATE_2, new Vector4f(0.0f, 0.0f, 1.0f, 0.0f), new Vector4f(1.0f, 0.0f, 0.0f, 0.0f));
Texturen
Java3D-15
Java3D-Einführung
Computergrafik - SS 2004
TextureAttributes
- Beschreibt, wie die Textur die Eigenschaften des darunter liegenden Materials modifizert.
Texturen
VirtualUniverse
Locale
BG BG
T
P
P S
Geometry
AppearanceTexture
TextureAttributes TexCoordGeneration