Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D"—  Präsentation transkript:

1 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?

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

3 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

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

5 Szenengraph: Aufbau

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

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

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

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

10 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)

11 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);

12 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);


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

Ähnliche Präsentationen


Google-Anzeigen