30
Licht und Licht und Material Material Java 3D Java 3D Carina Carina Fleck Fleck

Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Embed Size (px)

Citation preview

Page 1: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Licht und Licht und MaterialMaterial

Java 3DJava 3DCarina Carina FleckFleck

Page 2: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Lighting Modell• Shading Modell• Licht• Material• Farbmodell von Java 3D• Einflussbereich von Licht.• Schatten• Literaturverzeichnis

GliederunGliederungg

Page 3: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Einordnung in Einordnung in ObjekthierarchieObjekthierarchie

Page 4: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Versucht die Gegebenheiten der Natur

nachzubilden.

• Vektoren des Lighting Modell

• Reflektionstypen

Lighting Lighting ModellModell

Page 5: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Normalen-Vektor (N), Lichtrichtung (L) und

Benutzerblickrichtung (E)

Vektoren des Lighting Vektoren des Lighting ModellModell

Page 6: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Vorteile von Gerichtetem Licht (Directional Light)

Vektoren des Lighting Vektoren des Lighting ModellModell

• Infinite Eye Local Eye

<->

Page 7: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Oberflächen Normale (Surface Normals)– Primitive– Geometry-Objekt– GeometryInfo-Objekt

• Back Face Normal• Problem bei variierenden Oberflächen

Vektoren des Lighting Vektoren des Lighting ModellModell

Page 8: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

ReflektionstReflektionstypenypen• Ambiente Reflektion

• Diffuse Reflektion

• Glanzpunkt

Page 9: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Flat Shading• Gouraud Shading

Shading Shading ModellModell

Page 10: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Beleuchtung einer Szene:• 1. Licht auswählen

– Einflußbereich der Lichtquelle festlegen (Bounds)

– Zum Szenengraph hinzufügen

• 2. visuelle Objekte– Normale berechnen (Voder-/Rückseite)– Materialeigenschaften zuweisen

LichtLicht

Page 11: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Beispiel eines einfachen Programms:

1. Appearance createAppearance() {2. Appearance appear = new Appearance();3.4. //Material-Objekt instanziieren5. Material material = new Material();6.7. //Material-Eigenschaften der Appearance-Klasse zuweisen8. appear.setMaterial(material);9.10. return appear;11. }

LichtLicht

Page 12: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

13. BranchGroup createScene (){14. BranchGroup scene = new BranchGroup();15.16. //Normale wird bei Primitiven automatisch gesetzt17. scene.addChild(new Sphere(0.5f, Sphere.GENERATE_NORMALS,18. createAppearance()));19.20. //Ambiente Lichtquelle instanziieren21. AmbientLight lightA = new AmbientLight();22.23. //Einflußbereich des Lichts setzen 24. lightA.setInfluencingBounds(new BoundingSphere());25.26. //Licht zur Szene hinzufügen27. scene.addChild(lightA);28.29. return scene; }

LichtLicht

Page 13: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Abstrakte Oberklasse “Light“• Ambientes Licht (AmbientLight)• Gerichtetes Licht (DirectionalLight)• Punktlichtquelle (PointLight)• SpotLight• Vergleich der Licht-Typen

Die Licht-Die Licht-KlassenKlassen

Page 14: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Alle Lichtarten von abstrakten Oberklasse "Light“ abgeleitet.

Grundsätzliche Eigenschaften von Lichtquellen sind:

• Der Ein/Aus Status einer Lichtquelle:void setEnable(boolean state); //Default: TRUE

• Die Farbe des Lichts:void setColor(Color3f color); //Default: (1,1,1)

• Die Einflussregion des Lichts: void setInfluencingBounds(Bounds bounds)//Default: null

Oberklasse Oberklasse LightLight

Page 15: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Indirkte Beleuchtung der visuellen Objekte• Keine diffuse und specular Reflektion (Fehlen der

Vektoren)• -> Geometrie wird nicht beachtet• Keine Richtung und keine Position

Ambientes Ambientes LichtLicht

Page 16: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Konstruktoren:

• AmbientLight()Konstruktor, der die Default-Wert für Color und den Enable-Status festlegt

• AmbientLight(Color3f color)

• AmbientLight(boolean lightOn, Color3f color)

Ambientes Ambientes LichtLicht

Page 17: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Weit entfernte Lichtquelle (Sonne)

• konstanter Lichtrichtungsvektor(L) -> Lichtrichtung an allen Stellen der Objekte gleich.

• Für diffuse und specular Reflektion genutzt-> Geometrie wird beachtet

• Keinen Ursprung -> keine Abschwächung

Gerichtetes Gerichtetes LichtLicht

Page 18: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Konstruktoren:

• DirectionalLight() // Default:Direction (0, 0, -1)• DirectionalLight(Color3f color, Vector3f

direction)• DirectionalLight(boolean lightOn, Color3f color,

Vector3f direction)

Metoden:

• void setDirection(Vector3f direction)• void setDirection(float x, float y, float z)

Gerichtetes Gerichtetes LichtLicht

Page 19: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Strahlt in alle Richtungen (Kerze, Glühbirne)• Besitzt eine Position • -> Lichtrichtungsvektor (L) nicht konstant• Abschwächung :• diffuse und specular Reflektion -> Geometrie• Bewegung ändert Schattierung

PunktlichtPunktlicht

2distance*quadraticdistance*linearconstant

1nattenuatio

Page 20: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Konstruktoren:

• PointLight() //Position (0,0,0), Attenuation (1,0,0)• PointLight(Color3f color, Point3f position, Point3f

attenuation)• PointLight(boolean lightOn, Color3f color, Point3f

position, Point3f• attenuation)

Methoden:

• void setAttenuation(Point3f attenuation)• void setAttenuation(float constant, float linear, float

quadratic)• void setPosition(Point3f position)• void setPosition(float x, float y, float z)

PunktlichtPunktlicht

Page 21: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Unterklasse von Punktlicht• Strahlt in bestimmte Richtung (Linsen, etc.)• Besitzt Position -> Abschwächung• Öffnungswinkel, Konzentration, Richtung• Kann auch Teil von Objekt beleuchten• diffuse und specular Reflektion -> Geometrie• Bewegung ändert Schattierung

SpotlightSpotlight

Page 22: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Konstruktoren:• SpotLight() //direction (0, 0, -1), concentration 0.0,

spreadAngle PI (180 degrees)• SpotLight(Color3f color, Point3f position, Point3f attenuation,

Vector3f• direction, float spreadAngle, float concentration)• SpotLight(boolean lightOn, Color3f color, Point3f position,

Point3f• attenuation, Vector3f direction, float spreadAngle, float

concentration)

• Methoden:• Zusätzliche Methoden zu Punktlicht • void setConcentration(float concentration)• void setDirection(float x, float y, float z)• void setDirection(Vector3f direction)• void setSpreadAngle(float spreadAngle)

SpotlightSpotlight

Page 23: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Ambientes Licht: keine Geometrie, keine Abschwächung

• Gerichtetes Licht: Geometrie, keine Abschwächung

• Punktlicht: Geometrie, Abschwächung• SpotLight: Geometrie, Abschwächung,

Öffnungswinkel ...

Ambientes Licht < Gerichtetes Licht < Punktlicht < Spotlight

Vergleich der Vergleich der LichttypenLichttypen

Page 24: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Max. 8 Lichtquellen pro Objekt (OpenGL)• So wenig Licht wie möglich• Meist reichen 2 Lichtquellen• Vorzugsweise ambient und directional

Licht

LichtLicht

Page 25: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Materialeigenschaften nur, wenn Objekt beleuchtet ist.

• Wird über eine Referenz in der Appearance-Klasse genutzt.

Attribute:• Ambiente Color• Diffuse Color• Specular Color• Emmisive color (“Glow in the dark“-Effekt)• Shininess

MateriMaterialal

Page 26: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

Ambiente Farbe(Ambient Color):• void setAmbientColor(Color3f color)• void setAmbientColor(float r, float g, float b)

Diffuse Farbe ( Diffuse Color) :• void setDiffuseColor(Color3f color)• void setDiffuseColor(float r, float g, float b)• void setDiffuseColor(float r, float g, float b, float a) //alpha

Spekuläre Farbe( Specular Color):• void setSpecularColor(Color3f color)• void setSpecularColor(float r, float g, float b)

Emittierte Farbe( Emissive Color):• void setEmissiveColor(Color3f color)• void setEmissiveColor(float r, float g, float b)

Glanz-Faktor (Shininess) :• void setShininess(float shininess)

MateriMaterialal

Page 27: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Orientiert sich nicht an Realität• RGB -> additives Farbsystem

Farben:• ColoringAttributs von Appearance-Klasse• Farben der Material-Klasse• Per-vertex color der Geometry-Klasse

Farbmodell in Java 3DFarbmodell in Java 3D

Page 28: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Bounds-Objekt– Dem Licht-Objekt hinzugefügt

• BoundingLeaf-Objekt:– dem Szenengraph hinzugefügt

• Scoping– Einflussbereich des Lichts nur auf Teil

des Szenengraphen

Einflussbereich von Einflussbereich von LichtLicht

Page 29: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Wird nicht durch Lighting-Modell unterstützt

• Sehr komplex: Einfluss aller Objekte einer Szene zu beachten.

• Realisierung:– Schatten-Polygone

• colored shadow polygon • Shaded shadow polygon

– Schatten-Texturen

SchattSchattenen

Page 30: Licht und Material Java 3D Carina Fleck. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis

• Java 3DTM API Tutorial

• http://webster.fhs-hagenberg.ac.at/staff/haller/mmp5_20012002/08java3d_1.pdf

• http://www.mathematik.uni-muenchen.de/~vrmlsem/old/1999wi/Vortraege/Farbmodelle/Farbmodelle.html

• http://multimedia.informatik.uni-augsburg.de/lehre/ss02/MMVL/Folien/Bild&Graphik-4-IV.pdf

• http://www.fh-wedel.de/~ko/Galerie/2000-WS-Seminar/Moeller/index.htm

• http://escience.anu.edu.au/lecture/cg/Illumination/index.en.html

• http://escience.anu.edu.au/lecture/cg/IlluminationJ3D/index.en.html

LiteraturverzeichnisLiteraturverzeichnis