licht und material java 3d carina fleck. lighting modell shading modell licht material farbmodell...

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

Post on 05-Apr-2015

102 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Folie 1
  • Licht und Material Java 3D Carina Fleck
  • Folie 2
  • Lighting Modell Shading Modell Licht Material Farbmodell von Java 3D Einflussbereich von Licht. Schatten Literaturverzeichnis Gliederung
  • Folie 3
  • Einordnung in Objekthierarchie
  • Folie 4
  • Versucht die Gegebenheiten der Natur nachzubilden. Vektoren des Lighting Modell Reflektionstypen Lighting Modell
  • Folie 5
  • Normalen-Vektor (N), Lichtrichtung (L) und Benutzerblickrichtung (E) Vektoren des Lighting Modell
  • Folie 6
  • Vorteile von Gerichtetem Licht (Directional Light) Vektoren des Lighting Modell Infinite Eye Local Eye
  • Folie 7
  • Oberflchen Normale (Surface Normals) Primitive Geometry-Objekt GeometryInfo-Objekt Back Face Normal Problem bei variierenden Oberflchen Vektoren des Lighting Modell
  • Folie 8
  • Reflektionstypen Ambiente Reflektion Diffuse Reflektion Glanzpunkt
  • Folie 9
  • Flat Shading Gouraud Shading Shading Modell
  • Folie 10
  • Beleuchtung einer Szene: 1. Licht auswhlen Einflubereich der Lichtquelle festlegen (Bounds) Zum Szenengraph hinzufgen 2. visuelle Objekte Normale berechnen (Voder-/Rckseite) Materialeigenschaften zuweisen Licht
  • Folie 11
  • 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. } Licht
  • Folie 12
  • 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. //Einflubereich des Lichts setzen 24. lightA.setInfluencingBounds(new BoundingSphere()); 25. 26. //Licht zur Szene hinzufgen 27. scene.addChild(lightA); 28. 29. return scene; } Licht
  • Folie 13
  • Abstrakte Oberklasse Light Ambientes Licht (AmbientLight) Gerichtetes Licht (DirectionalLight) Punktlichtquelle (PointLight) SpotLight Vergleich der Licht-Typen Die Licht-Klassen
  • Folie 14
  • Alle Lichtarten von abstrakten Oberklasse "Light abgeleitet. Grundstzliche 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 Light
  • Folie 15
  • Indirkte Beleuchtung der visuellen Objekte Keine diffuse und specular Reflektion (Fehlen der Vektoren) -> Geometrie wird nicht beachtet Keine Richtung und keine Position Ambientes Licht
  • Folie 16
  • Konstruktoren: AmbientLight() Konstruktor, der die Default-Wert fr Color und den Enable-Status festlegt AmbientLight(Color3f color) AmbientLight(boolean lightOn, Color3f color) Ambientes Licht
  • Folie 17
  • Weit entfernte Lichtquelle (Sonne) konstanter Lichtrichtungsvektor(L) -> Lichtrichtung an allen Stellen der Objekte gleich. Fr diffuse und specular Reflektion genutzt -> Geometrie wird beachtet Keinen Ursprung -> keine Abschwchung Gerichtetes Licht
  • Folie 18
  • 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 Licht
  • Folie 19
  • Strahlt in alle Richtungen (Kerze, Glhbirne) Besitzt eine Position -> Lichtrichtungsvektor (L) nicht konstant Abschwchung: diffuse und specular Reflektion -> Geometrie Bewegung ndert Schattierung Punktlicht
  • Folie 20
  • 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) Punktlicht
  • Folie 21
  • Unterklasse von Punktlicht Strahlt in bestimmte Richtung (Linsen, etc.) Besitzt Position -> Abschwchung ffnungswinkel, Konzentration, Richtung Kann auch Teil von Objekt beleuchten diffuse und specular Reflektion -> Geometrie Bewegung ndert Schattierung Spotlight
  • Folie 22
  • 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: Zustzliche Methoden zu Punktlicht void setConcentration(float concentration) void setDirection(float x, float y, float z) void setDirection(Vector3f direction) void setSpreadAngle(float spreadAngle) Spotlight
  • Folie 23
  • Ambientes Licht: keine Geometrie, keine Abschwchung Gerichtetes Licht: Geometrie, keine Abschwchung Punktlicht: Geometrie, Abschwchung SpotLight: Geometrie, Abschwchung, ffnungswinkel... Ambientes Licht < Gerichtetes Licht < Punktlicht < Spotlight Vergleich der Lichttypen
  • Folie 24
  • Max. 8 Lichtquellen pro Objekt (OpenGL) So wenig Licht wie mglich Meist reichen 2 Lichtquellen Vorzugsweise ambient und directional Licht Licht
  • Folie 25
  • 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 Material
  • Folie 26
  • 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 Spekulre 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) Material
  • Folie 27
  • Orientiert sich nicht an Realitt RGB -> additives Farbsystem Farben: ColoringAttributs von Appearance-Klasse Farben der Material-Klasse Per-vertex color der Geometry-Klasse Farbmodell in Java 3D
  • Folie 28
  • Bounds-Objekt Dem Licht-Objekt hinzugefgt BoundingLeaf-Objekt: dem Szenengraph hinzugefgt Scoping Einflussbereich des Lichts nur auf Teil des Szenengraphen Einflussbereich von Licht
  • Folie 29
  • Wird nicht durch Lighting-Modell untersttzt Sehr komplex: Einfluss aller Objekte einer Szene zu beachten. Realisierung: Schatten-Polygone colored shadow polygon Shaded shadow polygon Schatten-Texturen Schatten
  • Folie 30
  • Java 3DTM API Tutorial http://webster.fhs- hagenberg.ac.at/staff/haller/mmp5_20012002/08java3d_1.pdfhttp://webster.fhs- hagenberg.ac.at/staff/haller/mmp5_20012002/08java3d_1.pdf http://www.mathematik.uni- muenchen.de/~vrmlsem/old/1999wi/Vortraege/Farbmodelle/Farbm odelle.htmlhttp://www.mathematik.uni- muenchen.de/~vrmlsem/old/1999wi/Vortraege/Farbmodelle/Farbm odelle.html http://multimedia.informatik.uni- augsburg.de/lehre/ss02/MMVL/Folien/Bild&Graphik-4-IV.pdfhttp://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.htmhttp://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.ht mlhttp://escience.anu.edu.au/lecture/cg/IlluminationJ3D/index.en.ht mlLiteraturverzeichnis