Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Sascha Stigler Geändert vor über 11 Jahren
1
Licht und Schatten Richard Göbel
2
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
3
Material-Objekte modellieren nur einige Aspekte der Lichtreflektion:
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
4
Typen von Lichtquellen
5
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);
6
PointLight - Programmcode
Argumente Farbe 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);
7
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));
8
Beispiel für eine Szene mit Lichtquellen
9
Material-Objekt - Beleuchtungsbereiche
10
Material-Objekt - Parameter „Shininess“
Wert: 1 Wert: 64 Wert: 128
11
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);
12
Simulation eines Schatten - Darstellung
13
Simulation eines Schatten - Programmcode
TransformGroup transShadow = new TransformGroup(); trans.addChild(transShadow); Transform3D matrixShadow = new Transform3D(); matrixShadow.setTranslation(new Vector3f(0f,height+0.01f,0f)); transShadow.setTransform(matrixShadow); Cylinder shadow= new Cylinder(radius,0,ap1); transShadow.addChild(shadow); DirectionalLight dirLight = new DirectionalLight(new Color3f(1,1,1), new Vector3f(0,-1,-1)); dirLight.setInfluencingBounds(new BoundingSphere(new Point3d(0,0,0),10)); objRoot.addChild(dirLight); dirLight.addScope(box); dirLight.addScope(sphere);
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.