1 / 30

Licht und Material

Java 3D. Carina Fleck. Licht und Material. Gliederung. Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis. Einordnung in Objekthierarchie. Lighting Modell. Versucht die Gegebenheiten der Natur nachzubilden.

asta
Download Presentation

Licht und Material

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java 3D Carina Fleck Licht und Material

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

  3. Einordnung in Objekthierarchie

  4. Lighting Modell Versucht die Gegebenheiten der Natur nachzubilden. • Vektoren des Lighting Modell • Reflektionstypen

  5. Vektoren des Lighting Modell Normalen-Vektor (N), Lichtrichtung (L) und Benutzerblickrichtung (E)

  6. Vektoren des Lighting Modell • Vorteile von Gerichtetem Licht (Directional Light) Infinite Eye Local Eye <->

  7. Vektoren des Lighting Modell • Oberflächen Normale (Surface Normals) • Primitive • Geometry-Objekt • GeometryInfo-Objekt • Back Face Normal • Problem bei variierenden Oberflächen

  8. Reflektionstypen Ambiente Reflektion Diffuse Reflektion Glanzpunkt

  9. Shading Modell • Flat Shading • Gouraud Shading

  10. Licht 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

  11. Licht Beispiel eines einfachen Programms: 1. Appearance createAppearance() { 2. Appearance appear = new Appearance(); 3. 4. //Material-Objekt instanziieren 5. Material material = new Material(); 6. 7. //Material-Eigenschaften der Appearance-Klasse zuweisen 8. appear.setMaterial(material); 9. 10. return appear; 11. }

  12. Licht 13. BranchGroup createScene (){ 14. BranchGroup scene = new BranchGroup(); 15. 16. //Normale wird bei Primitiven automatisch gesetzt 17. scene.addChild(new Sphere(0.5f, Sphere.GENERATE_NORMALS, 18. createAppearance())); 19. 20. //Ambiente Lichtquelle instanziieren 21. AmbientLight lightA = new AmbientLight(); 22. 23. //Einflußbereich des Lichts setzen 24. lightA.setInfluencingBounds(new BoundingSphere()); 25. 26. //Licht zur Szene hinzufügen 27. scene.addChild(lightA); 28. 29. return scene; }

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

  14. Oberklasse Light 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

  15. Ambientes Licht • Indirkte Beleuchtung der visuellen Objekte • Keine diffuse und specular Reflektion (Fehlen der Vektoren) • -> Geometrie wird nicht beachtet • Keine Richtung und keine Position

  16. Ambientes Licht Konstruktoren: • AmbientLight() Konstruktor, der die Default-Wert für Color und den Enable-Status festlegt • AmbientLight(Color3f color) • AmbientLight(boolean lightOn, Color3f color)

  17. Gerichtetes Licht • 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

  18. Gerichtetes Licht 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)

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

  20. Punktlicht 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)

  21. Spotlight • 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

  22. Spotlight • 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)

  23. Vergleich der Lichttypen • 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

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

  25. Material • 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

  26. Material 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)

  27. Farbmodell in Java 3D • Orientiert sich nicht an Realität • RGB -> additives Farbsystem Farben: • ColoringAttributs von Appearance-Klasse • Farben der Material-Klasse • Per-vertex color der Geometry-Klasse

  28. Einflussbereich von Licht • Bounds-Objekt • Dem Licht-Objekt hinzugefügt • BoundingLeaf-Objekt: • dem Szenengraph hinzugefügt • Scoping • Einflussbereich des Lichts nur auf Teil des Szenengraphen

  29. Schatten • 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

  30. 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

More Related