13
FH-Hof Licht Richard Göbel

FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

Embed Size (px)

Citation preview

Page 1: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Licht

Richard Göbel

Page 2: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Licht in Java3D - Basisideen

Bereitstellung unterschiedlicher Lichtquellen

Definition der Wirkung einer Beleuchtung auf Objekte durch Material-Objekte für Appearances

Berechnung der wahrgenommenen Farbe in Abhängigkeit von:

der Farbe der Oberfläche

der Farbe des Lichts

Positionen von Lichtquelle, Objekt und

Beobachter

Page 3: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Vereinfachungen

Eine Lichtquelle enthält nur bis zu drei Farben (RGB) und kein kontinuierliches Spektrum

Material-Objekte modellieren nur einige Aspekte der Lichtreflektion:

keine Rauheit

keine spiegelnden Flächen

Nur direkte Beleuchtung wird berücksichtigt:

kein Schatten

keine Abbildung von Objekten auf anderen

Objekten

Page 4: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Typen von Lichtquellen

Szene ohne Licht AmbientLight DirectionalLight

PointLight SpotLight

Page 5: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Ambient & Directional Light - Programmcode

AmbientLight ambLight = new AmbientLight(true,new Color3f(1f,1f,1f));

ambLight.setInfluencingBounds(new BoundingSphere(new Point3d(0,0,0),10));

objRoot.addChild(ambLight);

DirectionalLight dirLight = new DirectionalLight(new Color3f(1,0,0),

new Vector3f(-1,0,0));

dirLight.setInfluencingBounds(new BoundingSphere(new Point3d(0,0,0),10));

objRoot.addChild(dirLight);

Page 6: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

PointLight - Programmcode

Argumente Licht Position Abnahme

PointLight poiLight = new PointLight(new Color3f(0f, 1f, 0f), new Point3f(-1f,0,0), new Point3f(0f,0f,1f));

poiLight.setInfluencingBounds(new BoundingSphere(new Point3d(0,0,0),10));

objRoot.addChild(poiLight);

Page 7: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

SpotLight - Programmcode

Argumente: Farbe Position Abnahme Richtung Öffnungswinkel Abnahme zum Rand des Kegels

SpotLight spoLight = new SpotLight(new Color3f(0f,0f,1f), new Point3f(0f,1f,0f), new Point3f(0f,0f,1f), new Vector3f(0f,-1f,0f), (float) (Math.PI/8),

0f);

spoLight.setInfluencingBounds(new BoundingSphere(new Point3d(0,0,0),10));

Page 8: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Beispiel für eine Szene mit Lichtquellen

Page 9: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Material-Objekt - Beleuchtungsbereiche

Ambient ColorDiffuse Color

Specular Color

Page 10: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Material-Objekt - Parameter „Shininess“

Wert: 1

Wert: 64

Wert: 128

Page 11: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Material-Objekt - Programmcode

Appearance ap = new Appearance();

Material ma = new Material();

ma.setShininess(16f);

ma.setAmbientColor(0.2f, 0.2f, 0f);

ma.setDiffuseColor(1f, 1f, 0f);

ma.setEmissiveColor(0f, 0f, 0f);

ma.setSpecularColor(1f, 1f, 0.8f);

ap.setMaterial(ma);

Sphere sphere = new Sphere(0.4f,ap);

Page 12: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Registrieren von Objekten - Idee

Für eine Lichtquelle lassen sich die zu beleuchtenden Objekte einzeln registrieren

Andere Objekte werden dann nicht mehr beleuchtet!

Anwendungen:

Lichtquellen in unterschiedlichen Räumen

Schatten

Besondere Lichteffekte

. . .

Page 13: FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung

FH-Hof

Registrieren von Objekten - Code

DirectionalLight dirLight = new DirectionalLight( . . . );

. . .

dirLight.addScope( . . .);