Java 3D Carina Fleck Licht und Material.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Hauptseminar - Computer Graphics
On the Criteria to Be Used in Decomposing Systems into Modules
Java3D Einfacher scene graph View branch graph BG Shape3D Knoten S
Geometrie von Objektoberflächen
Linien, Flächen & geometrische Figuren von Mario Linge
Geometrie Programmierung beginnend bei 0 ist
Stefan Dubois WS 02/03 Texturen in Java 3D. Übersicht Was sind Texturen? Klassenhierarchie fünf-Schritt-Plan Optionen für Texturen (Auswahl) TextureAttributes.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Arbeitsbereich Technische Aspekte Multimodaler Systeme Universität Hamburg Fachbereich Informatik Oberseminar TAMS Grundlagen omnidirektionaler Sichtsysteme.
Anwendungssysteme SoSe Projekt Einführung in VRML (Teil 1) AWS SoSe2000Einführung in VRMLSeite 1.
Graphische Datenverarbeitung IV Dr. Markus Heitz.
Der Einstieg in das Programmieren
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Java: Objektorientierte Programmierung
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Licht und Schatten Richard Göbel.
FH-Hof Automatisches Erzeugen von Geometrie Richard Göbel.
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
FH-Hof Java3D - Grundlagen Richard Göbel. FH-Hof Java3D Konzept Erzeugung eines Szenengraphen als virtuelle Welt Darstellung der virtuellen Welt mit Hilfe.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
5.2 Schattierungsverfahren
5. Beleuchtung und Schattierung
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die OOP in Java
Java3d „Licht und Material“
Diskrete Mathematik I Vorlesung Arrays-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG Klassen und Objekte
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Special Effects Realistischeres Rendern einer Scene.
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Proseminar an der TU München Martin Levihn
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Java für Fortgeschrittene
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Auslegung eines Vorschubantriebes
4.3 Beleuchtung und Schattierung
Verhalten von Objekten in der Szene
Helwig Hauser Teil 12: Zusammenfassung All CGR4 revisited.
Beleuchtungsmodelle, Schattierungsmodelle
Beleuchtung, inkl. Schatten, Reflexionen
Analyseprodukte numerischer Modelle
Visualieren und Animieren
Programmiervorkurs WS 2014/15 Instanzmethoden
U N I V E R S I T Ä T KOBLENZ · LANDAU Arbeitsgruppe Computergrafik 4. Mai / 35 Projektpraktikum AR mit korrekter Beleuchtung Entwicklung einer.
Augmented Reality mit korrekter Beleuchtung Thorsten Grosch
Der Erotik Kalender 2005.
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
3 2 1 Rot:0; Grün: 128; Blau: 128 Schriftgröße: 32
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
Die Renderpipeline.
1 Acquiring the Reflectance Field of a Human Face Paul Debevec et al.
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Augmented Reality mit korrekter Beleuchtung - Beleuchtung der virtuellen Geometrie - Jens Anhenn Timo Wallrath Yonghui Wan CG Praktikum WS 05/06.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
 Präsentation transkript:

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. Vektoren des Lighting Modell Reflektionstypen

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

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

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

Reflektionstypen Ambiente Reflektion Diffuse Reflektion Glanzpunkt

Shading Modell Flat Shading Gouraud Shading

Licht Beleuchtung einer Szene: 1. Licht auswählen 2. visuelle Objekte Einflußbereich der Lichtquelle festlegen (Bounds) Zum Szenengraph hinzufügen 2. visuelle Objekte Normale berechnen (Voder-/Rückseite) Materialeigenschaften zuweisen

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

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; }

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

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

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

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)

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

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)

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

Punktlicht PointLight() //Position (0,0,0), Attenuation (1,0,0) 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)

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

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)

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

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

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

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)

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

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

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

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