15
Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI 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 die Y-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-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

Embed Size (px)

Citation preview

Page 1: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 2: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 3: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 4: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 5: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

Java3D-5

Java3D-Einführung

Computergrafik - SS 2004

Texturen

Texture Mapping

+ =

Page 6: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 7: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 8: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 9: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 10: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

=

Page 11: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 12: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 13: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 14: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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

Page 15: Java3D-1 Java3D-Einführung Computergrafik - SS 2004 T RI Verhalten von Objekten in der Szene Bsp.: RotationInterpolator - Spezieller Interpolator - Enthält

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