fh-hof licht... und schatten richard göbel. fh-hof licht in java3d - basisideen bereitstellung...

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

Post on 05-Apr-2015

108 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • Folie 1
  • FH-Hof Licht... und Schatten Richard Gbel
  • Folie 2
  • FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung auf Objekte durch Material-Objekte fr Appearances Berechnung der wahrgenommenen Farbe in Abhngigkeit von: der Farbe der Oberflche der Farbe des Lichts Positionen von Lichtquelle, Objekt und Beobachter
  • Folie 3
  • FH-Hof Vereinfachungen Eine Lichtquelle enthlt nur bis zu drei Farben (RGB) und kein kontinuierliches Spektrum Material-Objekte modellieren nur einige Aspekte der Lichtreflektion: keine Rauheit keine spiegelnden Flchen Nur direkte Beleuchtung wird bercksichtigt: kein Schatten keine Abbildung von Objekten auf anderen Objekten
  • Folie 4
  • FH-Hof Typen von Lichtquellen
  • Folie 5
  • 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);
  • Folie 6
  • FH-Hof 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);
  • Folie 7
  • 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));
  • Folie 8
  • FH-Hof Beispiel fr eine Szene mit Lichtquellen
  • Folie 9
  • FH-Hof Material-Objekt - Beleuchtungsbereiche
  • Folie 10
  • FH-Hof Material-Objekt - Parameter Shininess Wert: 1 Wert: 64 Wert: 128
  • Folie 11
  • 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);
  • Folie 12
  • FH-Hof Simulation eines Schatten - Darstellung
  • Folie 13
  • FH-Hof 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);

Recommended

View more >