Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D

Slides:



Advertisements
Ähnliche Präsentationen
Konzeptioneller Vergleich von VRML, Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen von Christian Stein.
Advertisements

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
Animation in Java 3D Ausarbeitung im Seminar Java 3D
Eine Seminararbeit von Gerd Mühlinghaus
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Ein Beispiel in Java.
Application Programming Interface Graphische Datenverarbeitung
Geometrie Programmierung beginnend bei 0 ist
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Programmierung grafischer Oberflächen
Threads Richard Göbel.
Java: Objektorientierte Programmierung
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
Java2D 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.
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
Licht und Schatten Richard Göbel.
FH-Hof Automatisches Erzeugen von Geometrie Richard Göbel.
FH-Hof Animation - Teil 1 Richard Göbel. FH-Hof Themen Darstellung der Geometrie ändern (Transformation, Appearance, etc.) Geometrie ändern (Morphing)
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
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.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Programmieren mit JAVA
Abstrakter Datentyp in C++ I - Klasse -
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Abstrakte Klassen DVG
DVG Einführung in Java1 Einführung in JAVA.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
© Prof. Dr. H. Gläser, Graphische Datenverarbeitung Benutzer Interaktion Benutzer Interaktion (interaction): die virtuelle Welt reagiert auf Benutzer Eingaben.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
FH-Hof Konfiguration eines Universums Richard Göbel.
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Erste Schritte mit Eclipse Neues Projekt erstellen (1)
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Java: Programmierung grafischer Oberflächen
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Mahmoud Zoabi Khaled Isa
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
 Präsentation transkript:

Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D Ziel der Vorlesung Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D Relativ „einfache“ 3D-Programmierung Volle Programmkontrolle in der virtuellen Welt Wahl eines zentralen Themas für Beispiele: Virtuelles Haus? Raumschiffe im Weltraum? anderes Thema?

Inhalt der Vorlesung Grundlagen von Java3D Darstellung der Geometrie unterschiedlicher Formen Automatisches Erzeugen einer Geometrie Interaktion mit der virtuellen Welt Animation Licht Texturen

Material zur Vorlesung Unterlagen Java3D Tutorial Java3D API Dokumentation (Java Verzeichnis) Skript Folien Entwicklungsumgebung JDK 1.4: S:\Dozenten\GOEBEL\Programm\java Java3D: S:\Dozenten\GOEBEL\Programm\java\jre\lib\ext Wichtig: Benötigte Packages importieren

Erzeugung eines Szenengraphen als virtuelle Welt Java3D Konzept Erzeugung eines Szenengraphen als virtuelle Welt Darstellung der virtuellen Welt mit Hilfe eines Renderer Der Renderer: ist kein Java-Programm nutzt Hardware-Unterstützung für die effiziente Darstellung von 3D Grafiken Die Geschwindigkeit der Darstellung ist weitgehend unabhängig von der Effizienz des Benutzerprogramms.

Szenengraph: Aufbau

Szenengraph: Darstellung Die Klasse JFrame mit einem Objekt der Klasse Canvas3D stellt einen Szenengraph dar. Ein Objekt der Klasse SimpleUniverse enthält eine Objekt der Klasse Locale sowie ein Objekt der Klasse ViewingPlatform. Dem Objekt der Klasse SimpleUniverse wird das Canvas3D-Objekt als Darstellungsbereich übergeben. Gruppen und Formen lassen sich mit addChild zu dem Universum hinzufügen.

Szenengraph: Erzeugung des JFrame public class Cube extends Canvas3D { . . . public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(200,200); frame.getContentPane().add(new Cube()); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); }}); frame.setVisible(true); }

Szenengraph: Virtuelles Universum public class Cube extends Canvas3D { . . . public Cube() { super(SimpleUniverse.getPreferredConfiguration()); SimpleUniverse u = new SimpleUniverse(this); u.getViewingPlatform().setNominalViewingTransform( ); BranchGroup scene = createSceneGraph(); u.addBranchGraph(scene); }

Szenengraph: Erzeugung des JFrame public class Cube extends Canvas3D { . . . public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); objRoot.addChild(new ColorCube(0.2)); objRoot.compile(); return objRoot; }

Transformationen: Konzept TransformGroup enthält alle Objekte, auf die eine Transformation angewendet wird. Die Art der Transformation wird durch eine Matrix der Klasse Transform3D definiert Belegung der Matrix zum Beispiel mit den folgenden Methoden: void setRotation(AxisAngle4d a1) void setScale(double scale) void setTranslation(Vector3d trans)

Transformationen: Beispiel TransformGroup trans = new TransformGroup(); objRoot.addChild(trans); trans.addChild(new ColorCube(0.2)); Transform3D m1 = new Transform3D(); m1.setRotation(new AxisAngle4d(0,1,0,Math.PI / 4)); trans.setTransform(m1);

Mauskontrolle TransformGroup trans = new TransformGroup(); trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans.addChild( . . . ); MouseRotate mRot = new MouseRotate(trans); MouseTranslate mTrans = new MouseTranslate(trans); BoundingSphere bounds = new BoundingSphere(); mRot.setSchedulingBounds(bounds); mTrans.setSchedulingBounds(bounds); trans.addChild(mRot); trans.addChild(mTrans);