Einführung in Java3D. Dipl.-Inform. Inform.. Paul Grimm Professur Graphische Datenverarbeitung

Größe: px
Ab Seite anzeigen:

Download "Einführung in Java3D. Dipl.-Inform. Inform.. Paul Grimm Professur Graphische Datenverarbeitung"

Transkript

1 Einführung in Java3D Dipl.-Inform Inform.. Paul Grimm Professur Graphische Datenverarbeitung

2 Ziele des Seminars Wie kann ich Java3D benutzen? Wo kann ich Informationen finden? Wo finde ich Beispiele? Welche Konzepte setzt Java3D um? April 2002 Einführung in Java3D, Paul Grimm, 2/93

3 Überblick Einführung in Java 3D Benutzung Dokumentation Aufbau Szenengraph Animationen Interaktion Ausblick April 2002 Einführung in Java3D, Paul Grimm, 3/93

4 Einführung - Was ist Java3D? Java Package für interaktive 3D Graphik High-level 3D Graphik API Programmieren von interaktiven Anwendungen mit 3D Inhalten Nahtlose Integration in Java Kein Browser nötig und Applet-fähig April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 4/93

5 Was macht Java3D? Übernahme der Bilderzeugung: Szenenmanagement Verdeckungsrechnung Übernahme der Benutzerinteraktion Plattformunabhängiges API Implementierung für verschiedene Low-Level Level APIs (Open GL, Direct3D) April 2002 Einführung in Java3D, Paul Grimm, 5/93

6 Was macht Java3D? Durchführung von Optimierungen Paralleles Rendern Nutzung von Hardwarebeschleunigung Reorganisation des Szenengraphen (=> Zusatzinformationen können angegeben werden, die bei der Optimierung ausgewertet werden) April 2002 Einführung in Java3D, Paul Grimm, 6/93

7 Was macht Java3D? Bereitstellung einer Klassenbibliothek Beschreibung des attributierten Szenengraphen Animation Virtuelle Kamera Benutzerinteraktion... April 2002 Einführung in Java3D, Paul Grimm, 7/93

8 Anwendungsbeispiele April 2002 Einführung in Java3D, Paul Grimm, 8/93

9 Anwendungsbeispiele April 2002 Einführung in Java3D, Paul Grimm, 9/93

10 Anwendungsbeispiele April 2002 Einführung in Java3D, Paul Grimm, 10/93

11 Anwendungsbeispiele April 2002 Einführung in Java3D, Paul Grimm, 11/93

12 Starten einer Java3D Anwendung? Standalone Starten wie jede andere Java Applikation Applet Java Plugin wird benötigt, dies installiert ggf. auch Java3D Applet in eine WWW-Seite einbinden April 2002 Einführung in Java3D, Paul Grimm, 12/93

13 Nutzung von Java Nutzung des Java-Interpreters java myprogram Nutzung des Java-Appletviewers appletviewer myprog.html Nutzung des Java-Compilers: javac myprogram.java April 2002 Einführung in Java3D, Paul Grimm, 13/93

14 Beispielanwendungen Mitgelieferte Demo sind im Verzeichnis / jdk1.2/demos demos/java3d Beispiele: AppearanceTest FourByFour April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 14/93

15 Java3D in Web und Literatur SUNs Java3D Homepage java.sun.com/products/java-media/3d Download Java3D Tutorial Java3D API Spezifikation April 2002 Einführung in Java3D, Paul Grimm, 15/93

16 Java3D in Web und Literatur J3D.org FAQs Loader für f unterschiedliche 3D-Formate Tutorial April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 16/93

17 Java3D VRML Viewer VRML Library for Java3D VRML Viewer VRML Loader Entstanden durch X3D Workinggroup April 2002 Einführung in Java3D, Paul Grimm, 17/93

18 Java Resourcen Offizielle Java Homepage Downloads unter Java Tutorial developer.java.sun.com/developer/infodocs/ April 2002 Einführung in Java3D, Paul Grimm, 18/93

19 Fragen und Anmerkungen April 2002 Einführung in Java3D, Paul Grimm, 19/93

20 Grundlagen Graphiksysteme Koordinatensystem Szenengraph April 2002 Einführung in Java3D, Paul Grimm, 20/93

21 Graphiksysteme April 2002 Einführung in Java3D, Paul Grimm, 21/93

22 Versionen 1998: Java3D Version : Java3D Version : Java3D Version : Java3D Version April 2002 Einführung in Java3D, Paul Grimm, 22/93

23 Das Koordinatensystem Java3D benutzt ein rechthändiges Koordinatensystem y x z 3D - Koordinaten,, z.b. (2.0, 1.5, 7.21) April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 23/93

24 Globale und lokale Koordinatensysteme Hierarchie von Koordinatensystemen Bsp.. Gabel eines Gabelstaplers» Koordinaten der Gabel bzgl.. Stapler» Koordinaten des Staplers bzgl. der Welt Spitze der Hierarchie: Weltkoordinaten April 2002 Einführung in Java3D, Paul Grimm, 24/93

25 Der Szenengraph Struktur der Szenenhierarchie Kanten: Abhängigkeitsrelation Knoten ( engl. Nodes ): Geometrien Transformationen Materialeigenschaften... April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 25/93

26 Szenengraphen in Java3D (1) Java3D wertet Szenengraph Beschreibung in separaten, asynchronen Threads aus Rendering von Graphik Rendering von Sound Animation Management der Eingabegeräte Event Erzeugung (z.b. bei Kollisionen) April 2002 Einführung in Java3D, Paul Grimm, 26/93

27 Roadmap Aufbau einer einfachen Java3D- Anwendung mit einzelnen Objekten Gruppierung und Transformation Aufbau einer komplexen Szene mit mehreren Objekten und mit Animationen April 2002 Einführung in Java3D, Paul Grimm, 27/93

28 Eine Applikation in Kürze Konstruktion einer virtuellen Welt, in der alle 3D Daten enthalten sind Auswahl einer Kamera, um die 3D Daten zu betrachten Einfügen der 3D Inhalte in die Szene Hierarchische Anordnung der Objekte in einem Szenengraphen Beschreibung der Interaktionen Einbetten in eine Java - Anwendung April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 28/93

29 Aufbau eines Szenengraphen Erzeugen von Knoten Shape3D myshape1 = new Box(); Shape3D myshape2 = new Cone(); Gruppieren von Knoten BranchGroup mygroup = new BranchGroup( ( ); mygroup.addchild addchild( myshape ); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 29/93

30 Utility Klassen Utilitity Klassen bauen auf Java3D auf Vereinfachen oft auftretende Operationen: Aufbau einer virtuellen Welt Setzen der Kamera SimpleUniverse mysimple = new SimpleUniverse( mycanvas ); mysimple.addbranchgraph addbranchgraph(mybranch); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 30/93

31 Simple Universe April 2002 Einführung in Java3D, Paul Grimm, 31/93

32 Viewing-Modell in Java3D Die meisten APIs transformieren die Szene Java3D transformiert das Auge Der Inhalts Zweig der Szene wird nicht verändert wenn sich der Betrachter bewegt Saubere Trennung von physikalischer und virtueller Welt April 2002 Einführung in Java3D, Paul Grimm, 32/93

33 Virtual universe Terminologie (1) Menge von Szenengraphen Ein Universum pro Applikation Locale Position im Universum, an der Szenengraph eingefügt wird Branchgraph Ein Szenengraph im Locale April 2002 Einführung in Java3D, Paul Grimm, 33/93

34 Terminologie (2) Branchgraph wird unterteilt in Content branch z.b. Geometrien, Beleuchtung,... View branch virtuelle Kamera, i.d.r. eine Kamera pro Universum April 2002 Einführung in Java3D, Paul Grimm, 34/93

35 Eine Applikation in Kürze II Konstruiere ein Virtual Universe,, das alle 3D Daten enthalten wird Wähle ein View,, um zu beschreiben wie die 3D Daten betrachtet werden Konstruiere einen Content Branch um die 3D Inhalte der Szene zu beschreiben Plaziere diesen Zweig an ein Locale Mehrere Zweige an verschiedenen Locales sind möglich April 2002 Einführung in Java3D, Paul Grimm, 35/93

36 Einbetten in eine Java Anwendung I Folgende Schritte sind notwendig: 1. Erzeugen eines Java AWT Frames 2. Setzen eine Java AWT Layouts 3. Erzeugen eines Canvas3D 4. Einfügen des Canvas3D April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 36/93

37 Einbetten in eine Java Anwendung public static void main( ( String[] args ) { Frame frame = new Frame( ); frame.setsize setsize( ( 640, 480 ); frame.setlayout setlayout( new BorderLayout( ( ) ); Canvas3D canvas = new Canvas3D( null ); frame.add add( ( "Center", canvas ); SimpleUniverse univ = new SimpleUniverse( canvas ); BranchGroup scene = createscenegraph(); scene.compile compile( ( ); univ.addbranchgraph addbranchgraph( scene ); } frame.show show( ( ); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 37/93

38 Benötigte Java Packages Java Packages import java.awt awt.*; Java3D Packages import javax.media.j3d.*; import javax.vecmath vecmath.*; Java3D Utility Packages import com.sun sun.j3d..j3d.utils.universe.*; import com.sun sun.j3d..j3d.utils.geometry.*; April 2002 Einführung in Java3D, Paul Grimm, 38/93

39 Rückblick Darstellung von Graphik Primitiven Beispiel 1: Box Beispiel 2: Cone Einbettung in eine Java-Applikation April 2002 Einführung in Java3D, Paul Grimm, 39/93

40 3D-Modelle Modelle sind Beschreibungen von Objekten Ein Shape3D - Knoten besteht aus Geometrie Appearance (Erscheinen) Shape3D( Geometry geometry, Appearance appearance ) Geometrie kann aus mehreren Teilen bestehen Appearance enthält verschiedene Attribute, die beschreiben wie die Geometrie gezeichnet wird April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 40/93

41 Elemente einer Geometrie Koordinaten: Position der Knoten im Raum Normalen: Nach außen orientierte Normale pro Knoten Farben: Farbe pro Knoten Textur-Koordinaten Koordinaten: Texel Position im Knoten April 2002 Einführung in Java3D, Paul Grimm, 41/93

42 GeometryArray GeometryArray erbt von Geometry Ein GeometryArray Objekt hat vier Basistypen Punkte Linien Dreiecke Vierecke GeometryArray bietet set und get Methoden Es gibt Index- und Strip -Versionen April 2002 Einführung in Java3D, Paul Grimm, 42/93

43 GeometryArray GeometryArray ist eine Basisklasse, konkrete Ausführungen LineArray, PointArray, QuadArray, TriangleArray GeometryStripArray (mit Erben TriangleStripArray,, etc.) IndexedGeometryArray (mit Erben IndexedTriangleArray,, etc.) April 2002 Einführung in Java3D, Paul Grimm, 43/93

44 Modelle sind facettiert Ideale Dreiecke und Vierecke Einseitige Primitive Reihenfolge der Eckpunkte bestimmt die Flächennormale Gegen den Uhrzeigersinn => nach außen gerichtet (Beachtung der rechten Hand) April 2002 Einführung in Java3D, Paul Grimm, 44/93

45 Beispiel eines Würfels class mycube extends QuadArray { private float[] verts = {... }; private float[] normals = {... }; private float[] colors = {... }; mycube() { super( 24,QuadArray QuadArray.COORDINATES QuadArray.NORMALS QuadArray.COLOR_3); setcoordinates(0, verts); setnormals Normals(0, verts); setcolors(0, colors); } April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 45/93

46 Beispiel eines Wüfels private float[] verts = { } // front face 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f,... April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 46/93

47 Normalen eines Würfels private float[] normals = { } // Front Face 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, f, April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 47/93

48 Beispiel eines Würfels class mycube extends QuadArray { private float[] verts = {... }; private float[] normals = {... }; private float[] colors = {... }; mycube() { super( 24,QuadArray QuadArray.COORDINATES QuadArray.NORMALS QuadArray.COLOR_3); setcoordinates(0, verts); setnormals Normals(0, verts); setcolors(0, colors); } April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 48/93

49 Appearance Kontrolle über den Rendering-Prozeß Farbe Transparenz Beleuchtungsmodell Linieneigenschaften Und viele andere! Alle Eigenschaften sind in der Appearance-Klasse und ihren Komponenten enthalten April 2002 Einführung in Java3D, Paul Grimm, 49/93

50 Beispiel für verschiedene Appearance April 2002 Einführung in Java3D, Paul Grimm, 50/93

51 Farbattribute Ein ColoringAttribut node component Objekt regelt Farbe (wenn kein Beleuchtungsmodell verwendet wird) Beleuchtungsmodell Farbattribute werden verwendet wenn kein Beleuchtungsmodell verwendet wird Emittierende Punkte, Linien, Polygone, etc. April 2002 Einführung in Java3D, Paul Grimm, 51/93

52 Farbattribute Konstruktor der Klasse public ColoringAttributes( float red, float green, float blue, int shademodel) Über setcoloringattributes und getcoloringattributes der Klasse Appearance werden die Farbattribute gesetzt. April 2002 Einführung in Java3D, Paul Grimm, 52/93

53 Materialeigenschaften Ein Material node component Objekt regelt Ambiente, emittierte, diffuse und spekuläre Farben Glanzlicht-Faktor Materialeigenschaften werden verwendet, wenn das Modell beleuchtet ist Die meisten Szenen-Modelle Gilt vor den Farbattributen April 2002 Einführung in Java3D, Paul Grimm, 53/93

54 Material Konstruktor der Klasse Material: Material( Color3f ambientcolor, Color3f emissivecolor, Color3f diffusecolor, Color3f specularcolor, float shininess) Über die Methoden setmaterial und getmaterial der Appearance werden die Materialeigenschaften gesetzt April 2002 Einführung in Java3D, Paul Grimm, 54/93

55 Andere Eigenschaften Das TransparencyAttributes Objekt steuert die Tranzparenz ( ) PointAttributes und LineAttributes enthalten Punktgröße und Liniendicke PolygonAttributes regeln culling culling und Fülleigenschaften (Punkt, Linien, Fläche) RenderingAttributes steuern im Depth- und Alpha-Buffer April 2002 Einführung in Java3D, Paul Grimm, 55/93

56 Texturen Java 3D hat zwei Typen von Texturen Texture2D für Bilder Texture3D für Volumentexturen Beide Typen beinhalten Texturdaten Filtermodi Wrappingmodi Berandungsfarbe April 2002 Einführung in Java3D, Paul Grimm, 56/93

57 Texturen TextureLoader loader = new TextureLoader("stripe. ("stripe.jpg", this); ImageComponent2D image = loader.getimage getimage(); Texture2D texture = new Texture2D(); texture.setimage setimage(0, image); Appearance appear = new Appearance(); appear.settexture settexture(texture); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 57/93

58 Weiteres Vorgehen Bis jetzt:aufbau einzelner 3D Objekte Ab jetzt:integration mehrerer 3D Objekte Gruppierung von Objekten Transformation von Objekten Bewegung von Objekten Lichtquellen April 2002 Einführung in Java3D, Paul Grimm, 58/93

59 Live Nodes Branch graph,, der einem Locale hinzugefügt wird heißt live,, d.h. er kann dargestellt werden BranchGroup mybranch = new BranchGroup( ( ); mybranch.addchild addchild( myshape ); mylocale.addbranchgraph addbranchgraph( mybranch ); boolean islive() April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 59/93

60 Compiled Nodes BranchGroup kann kompiliert werden void compile(); Beachte: compile bevor live Capabilities geben an, was in einem Szenengraph noch gelesen und verändert werden darf, nachdem der Szenengraph compiled oder live ist Capabilities wirken auf Optimierung April 2002 Einführung in Java3D, Paul Grimm, 60/93

61 Capabilities (1) Methoden für SceneGraphObject void setcapability( int bit ) void clearcapability( int bit ) boolean getcapability( int bit ) Capabilities gibt es für jeden Knoten In jedem Knoten gibt es Capabilities für die Attribute Knoten erben die Capabilities der Vaterklasse April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 61/93

62 Capabilities (2) Beispiele von Shape3D: ALLOW_APPEARANCE_READ ALLOW_APPEARANCE_WRITE ALLOW_GEOMETRY_READ ALLOW_GEOMETRY_WRITE myshape.setcapability setcapability( Shape3D.ALLOW_APPEARANCE_WRITE ); April 2002 Einführung in Java3D, Paul Grimm, 62/93

63 Gruppen in Java 3D Unterschiedliche Typen Group BranchGroup OrderedGroup / DecalGroup SharedGroup Switch TransformGroup Alle Gruppen haben Kinder Modelle, Lichtquellen, Geräusche, Verhalten April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 63/93

64 Group Die Group Klasse ist der allgemeinste der Gruppen Knoten Hat Genau einen Vater Beliebig viele Kinder Man Kinder anfügen, einfügen, löschen und auslesen Die Rendering-Reihenfolge Reihenfolge wird normalerweise von Java3D bestimmt April 2002 Einführung in Java3D, Paul Grimm, 64/93

65 BranchGroup Ein BranchGroup Objekt ist ein Teilbaum des Szenengraphen Kann an ein Locale angehängt werden Kann compiled werden Kann als Kind einer anderen Gruppe verwendet werden Kann zur Laufzeit verschoben oder gelöscht werden April 2002 Einführung in Java3D, Paul Grimm, 65/93

66 Ordered / DecalGroup Ein OrderedGroup Objekt garantiert, daß die Kinder in der vorgegebenen Reihenfolge bearbeitet werden Ein DecalGroup Objekt ist für den speziellen Fall von Objekten auf einem Hintergrund gedacht Das Hintergrund-Objekt ist vorgeschrieben April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 66/93

67 Switch Ein Switch Objekt erlaubt die Auswahl der zu bearbeitenden Kinder Es wird keine Reihenfolge vorgegeben April 2002 Einführung in Java3D, Paul Grimm, 67/93

68 Transformation Alle Modelle werden bezüglich der Weltkoordinaten plaziert Ein TransformGroup Objekt erlaubt die Verwendung eines neuen Koordinaten-systems relativ zum Vater Verändert man die TransformGroup,, so bewegen sich auch die Modelle in der Gruppe April 2002 Einführung in Java3D, Paul Grimm, 68/93

69 TransformGroup Transformationen sind Translation, Rotation und Skalierung Transformationen akkumulieren sich bei der Traversierung des Szenengraphen Das ergibt die Composite Modelling Transform (CMT) Die Transformationen tiefer im Graph werden zuerst ausgeführt April 2002 Einführung in Java3D, Paul Grimm, 69/93

70 Transform3D Ein Transform3D Objekt beschreibt die Transformation einer TransformGroup Dargestellt als 4x4 Double Matrix Muß allerdings affin sein (keine perspektivischen Transformationen) Beispiel: Transform3D t = new Transform3D(); t.set set(scale, new Vector3d(xpos xpos, ypos, 0.0)); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 70/93

71 SharedGroups Ein SharedGroup Objekt dient zur Wiederverwendung von Teilen des Szenengraphen an mehreren Stellen Wird nie direkt in den Szenengraph eingefügt Wird über den Link Knoten referenziert Veränderungen der SharedGroup verändern alle Referenzen Kann compiled werden April 2002 Einführung in Java3D, Paul Grimm, 71/93

72 Beispiel eines Szenengraph April 2002 Einführung in Java3D, Paul Grimm, 72/93

73 Verhalten Programmierbarkeit Verhalten sind Java-Methoden Effizienz Java 3D führt Verhalten nur aus wenn nötig Komposition Verhalten werden mir Objekten verbunden Verhalten können nebeneinander existieren und dynamisch verändert werden April 2002 Einführung in Java3D, Paul Grimm, 73/93

74 Verhalten Jedes Verhalten enthält: Code zur Ausführung in einer processstimulus Methode Wakeup Bedingungen, um zu steuern wann der Code durchgeführt wird Bounding Information für die Ausführung April 2002 Einführung in Java3D, Paul Grimm, 74/93

75 Verhalten - Bounds Verhalten werden nur durchgeführt, wenn sich Sichtradius vom Betrachter und Bounding-Objekt des Verhaltens schneiden Bounding-Objekt Kugel, Würfel, Polyeder,, etc Default: Kein Bounding Objekt (deswegen auch keine Durchführung des Verhaltens) Die Position des Verhaltens im Szenengraph bestimmt den Ursprung des Bounding-Objekts April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 75/93

76 Verhalten - Wakeup Ein Verhalten wird nur durchgeführt, wenn die Wakeup-Kriterien erfüllt sind Ein gewisse Zeit ist verstrichen Ein Event wird generiert Transformation wird durchgeführt Kollision oder Nähe Kriterien können durch logische Operationen verbunden werden April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 76/93

77 Beispiel eines Behaviors public class MorphingBehavior extends Behavior { WakeupOnElapsedFrames w = new WakeupOnElapsedFrames(0); public void initialize() { alpha.setstarttime setstarttime( System.currentTimeMillis currenttimemillis()); wakeupon(w); } } public void processstimulus(enumeration criteria) {} public MorphingBehavior(Alpha a, Morph m) {} April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 77/93

78 Rotation Interpolator Alpha spinalpha = new Alpha( -1,4000 ); RotationInterpolator spinner = new RotationInterpolator( spinalpha, trans ); spinner.setschedulingbounds setschedulingbounds( new BoundingSphere( new Point3d( ), ) ); trans.addchild addchild( spinner ); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 78/93

79 Vorgefertigte Verhalten Interpolatoren Alpha Rotation Position Pfad Billboards Level of Detail Knoten Mousebehavior April 2002 Einführung in Java3D, Paul Grimm, 79/93

80 MouseBehavior TransformGroup objtrans = new TransformGroup(); MouseRotate behavior = new MouseRotate(); behavior.settransformgroup settransformgroup(objtrans); objtrans.addchild addchild(behavior); behavior.setschedulingbounds setschedulingbounds(bounds); MouseZoom behavior2 = new MouseZoom(); MouseTranslate behavior3 = new MouseTranslate(); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 80/93

81 Lichtquellen Java3D bietet folgenden Typen Ambientes Licht: Gerichtetes Licht: Punktlichtquelle: Spot AmbientLight DirectionalLight PointLight Attribute von allen Lichtquellen Status (aus/an) Farbe Bounding-Volumen April 2002 Einführung in Java3D, Paul Grimm, 81/93

82 Definition von Lichtquellen Ambientes Licht: AmbientLight( Color3f color ) Gerichtetes Licht: DirectionalLight(boolean lighton, Color3f color,, Vector3f direction) Punktlichtquelle: PointLight(Color3f color,, Point3f position, Point3f attenuation) April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 82/93

83 Weitere Java3D Features Eingabegeräte und Picking Einsatz von unterschiedlicher Loader Einsatz von 3D Sound April 2002 Einführung in Java3D, Paul Grimm, 83/93

84 Eingabegeräte Zugriff auf Echtzeit-Eingabegeräte Eingabegeräte Joystick, 6DOF Geräte, Knöpfe und Regler Einfache Integration in bestehende Applikationen Eingabegeräte können virtuell sein Alle Eingabegeräte sind Sensoren (für physikalische oder virtuelle Größen) April 2002 Einführung in Java3D, Paul Grimm, 84/93

85 Picking Java3D bietet Möglichkeiten zur Auswahl von Objekten des Szenegraphen Ein PickShape wird mit BranchGroups geschnitten BranchGroups enthalten Methoden zur Auswertung des Picking Verschiedene Kriterien bei der Auswahl April 2002 Einführung in Java3D, Paul Grimm, 85/93

86 Picking April 2002 Einführung in Java3D, Paul Grimm, 86/93

87 April 2002 Einführung in Java3D, Paul Grimm, 87/93

88 Hintergrund Der Background Knoten bestimmt den Hintergrund der Szene und besteht aus Konstanter Farbe Bild Geometrie Bounding-Informationen April 2002 Einführung in Java3D, Paul Grimm, 88/93

89 Beispiel eines Hintergrunds April 2002 Einführung in Java3D, Paul Grimm, 89/93

90 Hintergrund import com.sun sun.j3d..j3d.utils.image.textureloader; BoundingSphere bounds = new BoundingSphere(new new Point3d(0.0,0.0,0.0), 100.0); // Set up the background TextureLoader bgtexture = new TextureLoader(bgImage bgimage, this); Background bg = new Background(bgTexture bgtexture.getimage()); bg.setapplicationbounds setapplicationbounds(bounds); objroot.addchild addchild(bg); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 90/93

91 3D Sound und Geräusche Java3D unterstützt Audio (Capabilities beachten!) BackgroundSound sound1 = new BackgroundSound(); PointSound sound2 = new PointSound(); BoundingSphere soundbounds = new BoundingSphere( new Point3d(0.0,0.0,0.0), 100.0); sound1.setschedulingbounds setschedulingbounds(soundbounds); objtrans.addchild addchild(sound1); April 2002 Einführung in Java3D, Paul Grimm, grimm@agc.fhg.de 91/93

92 Zusammenfassung Grundlagen Virtuelle Welt und Physikalische Welt Modelle Gruppierung und Transformation Verhalten Lichtquellen April 2002 Einführung in Java3D, Paul Grimm, 92/93

93 Ausblick Neue Features von Java3D Version 1.2 Offscreen Rendering Model clipping plane OrientedShape3D-Node Multiple Geometries in einem Shape3D Node Multitexture und Textur Farbtabellen Neue Picking Mechanismen April 2002 Einführung in Java3D, Paul Grimm, 93/93

Einführung in Java3D

Einführung in Java3D Einführung in Java3D Dipl.-Inform. Paul Grimm Professur Graphische Datenverarbeitung Ziele des Seminars Wie kann ich Java3D benutzen? Wo kann ich Informationen finden? Wo finde ich Beispiele? Welche Konzepte

Mehr

Einführung - Was ist Java3D?

Einführung - Was ist Java3D? Einführung - Was ist Java3D? - Java Package für interaktive 3D Grafik - High-level 3D Grafik API - Programmieren von interaktiven Anwendungen mit dreidimensionalen Inhalten - Nahtlose Integration in Java

Mehr

3D Programmierung mit Java

3D Programmierung mit Java 3D Programmierung mit Java Daniel F. Abawi Professur für Graphische Datenverarbeitung J. W. Goethe-Universität Fachbereich 12 Danksagung / Quellenangabe Die Basis für diesen Foliensatz wurde von Dr. Paul

Mehr

Einführung - Was ist Java3D?

Einführung - Was ist Java3D? Einführung - Was ist Java3D? - Java Package für interaktive 3D Grafik - High-level 3D Grafik API - Programmieren von interaktiven Anwendungen mit dreidimensionalen Inhalten - Nahtlose Integration in Java

Mehr

Der Szenegraph. Im Folgenden eine kurze Beschreibung der wichtigsten Knoten des Szenegraphen:

Der Szenegraph. Im Folgenden eine kurze Beschreibung der wichtigsten Knoten des Szenegraphen: Java 3d Java3D ist eine Bibliothek von Java Klassen zur Darstellung dreidimensionaler Graphik innerhalb von Java Applikationen und Applets. Die Struktur der darzustellenden Szene wird durch das Aufbauen

Mehr

Java 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002

Java 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002 Java 3D Linien, Flächen und Objekte Axel Bartsch, Okt. 2002 Virtual World Koordinaten System Grundlagen zur Definition visueller Objekte Shape3D Unterklasse der Leaf-Klasse Eigenschaften des visuellen

Mehr

Einführung in Java3D

Einführung in Java3D Einführung in Java3D SS05 Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de Varrentrappstr. 40-42 60486 Frankfurt am Main Raum 218 Java 3D ist eine high level Interaktive 3D Graphik-API (Application Programming

Mehr

Java 3D Einstiegs-Tutorial Teil 3

Java 3D Einstiegs-Tutorial Teil 3 Navigation mit der Maus Java 3D Einstiegs-Tutorial Teil 3 Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 Java 3D eröffnet mehrere Möglichkeiten, sich mittels Maus- Eingaben im virtuellen Raum zu

Mehr

Einige weitere Fähigkeiten und Anwendungsbeispiele

Einige weitere Fähigkeiten und Anwendungsbeispiele Java3D Eine Einführung Was ist Java3D Ansicht (Viewing Model) Sichtbare Objekte Animationen und Interaktionen Einfaches Beispielprogram Einige weitere Fähigkeiten und Anwendungsbeispiele Was ist Java3D?

Mehr

Java 3D Einstiegs-Tutorial Teil 1

Java 3D Einstiegs-Tutorial Teil 1 Java 3D Einstiegs-Tutorial Teil 1 Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 Java 3D: Application Programming Interface (API) für Java Erweiterung von Java um Klassenbibliotheken, die als Interface

Mehr

Szenengraphen. Codruţa Cosma. Universität Ulm Sommersemester 2005

Szenengraphen. Codruţa Cosma. Universität Ulm Sommersemester 2005 Szenengraphen Codruţa Cosma Universität Ulm Sommersemester 2005 Übersicht Einführung VRML OpenSceneGraph Java3D vs. VRML OpenGL vs. Java3D und VRML Zusammenfassung 2/26 Was sind Szenengraphen? Datenstruktur

Mehr

Java3D - Teil 6. Michael Haller

Java3D - Teil 6. Michael Haller Java3D - eil 6 Michael Haller Inhalt der Vorlesung Interaktion 2: astaturgesteuerte Navigation Mausinteraktion Mausgesteuerte Navigation Animation Picking 2 Wir erinnern uns... public void initialize(){

Mehr

3D-Grafik und -Animation: Java3D

3D-Grafik und -Animation: Java3D 3D-Grafik und -Animation: Java3D Hauptseminar Virtuelle Präsenz Wintersemester 2003/2004 Marco Jahn Inhaltsverzeichnis 1 Einleitung... 3 2 Java3D Grundlagen... 3 2.1 Die Java3D API... 3 2.2 Aufbau eines

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

9. Digitale Verarbeitung 3-dimensionaler Darstellungen

9. Digitale Verarbeitung 3-dimensionaler Darstellungen 9. Digitale Verarbeitung 3-dimensionaler Darstellungen 9.1 Grundlagen der 3D-Computergrafik 9.2 3D-Modellierung am Beispiel VRML 9.3 Interaktion in 3-dimensionalen Darstellungen 9.4 3D-Grafik-Programmierung

Mehr

Zellaufbau Java 3D Verteilungsalgorithmus

Zellaufbau Java 3D Verteilungsalgorithmus Zellaufbau Java 3D Verteilungsalgorithmus Christina Ander & Regina Bisdorf Universität Bielefeld 06.12.2007 C. Ander & R. Bisdorf (Universität Bielefeld) Zellaufbau Java 3D Verteilungsalgorithmus 06.12.2007

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik (teilweise Wiederholung zu Vorlesung Digitale Medien) B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung

Mehr

Aktuelle Binaries: Version 1.5.2; download: https://java3d.dev.java.net/binary-builds.html. + Visual Toolkit (VTK -> KITWARE)

Aktuelle Binaries: Version 1.5.2; download: https://java3d.dev.java.net/binary-builds.html. + Visual Toolkit (VTK -> KITWARE) 3. Java 3D 3.1 Grundlagen - Hierarchie von Java-Klassen, die eine Schnittstelle zur Darstellung und Interaktion von dreidimensionalen grafischen Szenen bilden. - Die geometrischen Objekte werdenin einem

Mehr

Die Klassenbibliothek Java 3D am Beispiel eines einfachen Planetensystems

Die Klassenbibliothek Java 3D am Beispiel eines einfachen Planetensystems Goerdeler-Gymnasium Paderborn Facharbeit 1 Thema: Die Klassenbibliothek Java 3D am Beispiel eines einfachen Planetensystems Fach: Kurs: Fachlehrer: Informatik GK Herr Hilwerling Autor: Daniel Dreibrodt

Mehr

3D-Formate im Web. Teil 1: VRML. Von Lars Hillebrandt,

3D-Formate im Web. Teil 1: VRML. Von Lars Hillebrandt, 3D-Formate im Web Teil 1: VRML Von Lars Hillebrandt, wtell@upb.de Was ist VRML Virtual Reality Modeling Language VRML ist die am häufigsten verwendete Sprache für 3D-Grafik im Web. Seit 1997 ISO-Standard

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche

Mehr

Vor-Geschichte von VRML

Vor-Geschichte von VRML Einführung in VRML VRML heisst Virtual Reality Modeling Language, ein Teil von Web3D / X3D. VRML ist einfach ein 3D Datenaustausch- Format: Es besitzt Sprachelemente für die heute in 3D-Applikationen üblichen

Mehr

Java3D. Beleuchtung und Material

Java3D. Beleuchtung und Material Java3D Seminar WS 02/03 Beleuchtung und Material Presman Julia (145185) Presman Alexander (155298) FH-Fulda Inhaltsverzeichnis 1.Beleuchtungsmodell...2 2.Schattierungsmodell...3 2.1.Flat-Schattierung...3

Mehr

Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D

Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D Grafisch-Interaktive Systeme Prof. Dr. Heinzel Vertiefungsgebiet Embedded Systems Bachelor WS 2007 / 2008 Hochschule Fulda Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D Markus

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik (teilweise Wiederholung zu Vorlesung Digitale Medien) B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung

Mehr

Java 3D Einstiegs-Tutorial Teil 2 Steuerung des Erscheinungsbildes (Appearance):

Java 3D Einstiegs-Tutorial Teil 2 Steuerung des Erscheinungsbildes (Appearance): Java 3D Einstiegs-Tutorial Teil 2 Steuerung des Erscheinungsbildes (Appearance): Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 wie in VRML können Materialeigenschaften (optische Eigenschaften)

Mehr

Grundlagen der Java 3D- Programmierung

Grundlagen der Java 3D- Programmierung Grundlagen der Java 3D- Programmierung und deren exemplarische Umsetzung Verfasser: MATSE-Auszubildender am Institut für Leichtbau der RWTH Aachen, angehender Bachelor of Science Die vorliegende Arbeit

Mehr

Kapitel 4: Schattenberechnung

Kapitel 4: Schattenberechnung Kapitel 4: Schattenberechnung 1 Überblick: Schattenberechnung Motivation Schattenvolumen Shadow Maps Projektive Schatten 2 Motivation Wesentlich für die Wahrnehmung einer 3D-Szene Eigentlich ein globaler

Mehr

Die Elemente einer Szene werden in einer Graphstruktur gespeichert

Die Elemente einer Szene werden in einer Graphstruktur gespeichert SZENEGRAPHEN Szenegraphen Allgemeines Szenegraphen dienen zum Verwalten von 3D-Szenen Die Elemente einer Szene werden in einer Graphstruktur gespeichert Jede reale Implementierung eines Szenegraphen ist

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

3.5 Implizite Beschreibungen

3.5 Implizite Beschreibungen 3.5 Implizite Beschreibungen 3 Repräsentation und Modellierung von Objekten Idee: Beschreibung von Objekt-Flächen bzw. -Volumina als Isoflächen in Skalarfeldern. Die Skalarfelder ihrerseits entstehen kontrolliert

Mehr

JavaFX Koordinaten und Transformationen

JavaFX Koordinaten und Transformationen JavaFX Koordinaten und Transformationen Koordinaten Jedes Node-Objekt hat sein eigenes Koordinatensystem. In Container-Nodes beziehen sich Position und Größe der Kinder immer auf das Koordinatensystem

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

Mehr

ProPra WS 2008/09: LEGO-Sculptor

ProPra WS 2008/09: LEGO-Sculptor ProPra WS 2008/09: LEGO-Sculptor Dipl.-Inform. Christian Düntgen Lehrgebiet Datenbanksysteme für neue Anwendungen Worum geht es? 1. Einlesen einer Formbeschreibung aus VRML-Datei (ggf. Visualisierung der

Mehr

XML-basierte 3D-Komponenten

XML-basierte 3D-Komponenten XML-basierte 3D-Komponenten Diplomarbeit, Wintersemester 2000/2001 Daniel F. Abawi Silvan Reinhold Betreuer: Dipl.-Inform. Ralf Dörner Dipl.-Inform. Paul Grimm Technische Universität Darmstadt Vorgehensweise

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

Transformationen in Java 3D

Transformationen in Java 3D Transformationen in Java 3D Eine Ausarbeitung von Florian Hüter im Rahmen des Seminars Java3D von Prof. Dr. W. Heinzel an der FH Fulda im WS 2002/03. Inhaltsverzeichnis: Seite 1. Allgemeines zu Java3D...3

Mehr

Koordinatensystemorientierung. -Drehung. Mittelfinger als -Achse ergibt sich das entsprechende. -Achse, den Zeigefinger als -Achse und den

Koordinatensystemorientierung. -Drehung. Mittelfinger als -Achse ergibt sich das entsprechende. -Achse, den Zeigefinger als -Achse und den Koordinatensystemorientierung -Drehung rechtshändiges Koordinatensystem: eine gegen den Uhrzeigersinn überführt die positiven Achsen ineinander. y x z Verwendet man den Daumen der rechten Hand als -Achse,

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

VRML + HTML + Scripting/Java

VRML + HTML + Scripting/Java Einführung in VRML VRML heisst Virtual Reality Modeling Language, ein Teil von Web3D / X3D. VRML ist einfach ein 3D Datenaustausch- Format: Es besitzt Sprachelemente für die heute in 3D-Applikationen üblichen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert.

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert. 3.1 Motivation Wichtige Grundlage der Bildwiedergabe auf dem Bildschirm oder anderen Ausgabegeräten sind Koordinatensysteme und Koordinatentransformationen im IR 2 und IR 3. Im allgemeinen unterscheidet

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Inhalt. Grundlagen - Licht und visuelle Wahrnehmung 1. Grundlagen - 2D-Grafik (Teil 1) 43. Grundlagen - 2D-Grafik (Teil 2) 67

Inhalt. Grundlagen - Licht und visuelle Wahrnehmung 1. Grundlagen - 2D-Grafik (Teil 1) 43. Grundlagen - 2D-Grafik (Teil 2) 67 Grundlagen - Licht und visuelle Wahrnehmung 1 Physikalische Grundlagen 2 Licht 2 Fotometrie 6 Geometrische Optik 9 Schatten 13 Farben 15 Visuelle Wahrnehmung - vom Reiz zum Sehen und Erkennen 17 Das Auge

Mehr

Shader. Computer Graphics: Shader

Shader. Computer Graphics: Shader Computer Graphics Computer Graphics Shader Computer Graphics: Shader Inhalt Pipeline Memory Resources Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger

Mehr

A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes

A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes Ingo Wald Carsten Benthin Philipp Slusallek Marco Lang Bisher Ray Tracing erstmals von Appel benutzt dutzende Algorithmen vor

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Konzepte objektorientierter Programmierung

Konzepte objektorientierter Programmierung Konzepte objektorientierter Programmierung Objekte Klassen Nachrichten Kapselung Einführung Vererbung heute! Konzepte objektorientierter Programmierung Was ist ein Objekt? Was ist eine Klasse? Was sind

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering Probelektion zum Thema Shadow Rendering Shadow Maps Shadow Filtering Renderman, 2006 CityEngine 2011 Viewport Real reconstruction in Windisch, 2013 Schatten bringen viel Realismus in eine Szene Schatten

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Dreidimensionales Höhleninformationssystem

Dreidimensionales Höhleninformationssystem Dreidimensionales Höhleninformationssystem Entwicklung eines webbasierten Prototyps unter Verwendung von HTML, Javascript, SVG und VRML 2.2.2005 Vertiefungsblock Kartografie Severin Hohl Inhalt 3D-Formate

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Organisatorisches Das Konzept der Szenegraphen Grundlagen Beispiel eines Szenegraphen Transformationen

Mehr

Michael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER

Michael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER Michael Bender Martin Brill Computergrafik Ein anwendungsorientiertes Lehrbuch 2., überarbeitete Auflage HANSER Inhaltsverzeichnis Vorwort XI 1 Einleitung 1 1.1 Die Entwicklung der Computergrafik 1 1.2

Mehr

Testen nebenläufiger Objekte

Testen nebenläufiger Objekte Testen nebenläufiger Objekte Threads in Java Julian Lambertz Seminar Tests in Informatik und Statistik im SS 2004 Universität Ulm J.L., Juni 2004 1 Themenüberblick Einleitung Begriff der Nebenläufigkeit

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Zeichnen 5 Layout Manager 6 Komplexere Swing Komponenten

Mehr

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017

Mehr

Grafik - wozu? GUI Grafische Benutzungsschnittstellen. Gehört zum Standardumfang des JDK. 2 Varianten: AWT und Swing

Grafik - wozu? GUI Grafische Benutzungsschnittstellen. Gehört zum Standardumfang des JDK. 2 Varianten: AWT und Swing Grafik - wozu? Grafik - wozu? GUI Grafische Benutzungsschnittstellen Gehört zum Standardumfang des JDK 2 Varianten: AWT und Swing Konzeptuell sind beide Varianten gleich Heute: Beispiel für AWT Zeichnen,

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Entwurfsmuster (Design Patterns)

Entwurfsmuster (Design Patterns) Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder

Mehr

3D Modellierung. Masterstudium Informatik Vertiefungsrichtung Computer Graphics Sommersemester 2008. 3D Modellierung. Prof. Dr.-Ing. H.-P.

3D Modellierung. Masterstudium Informatik Vertiefungsrichtung Computer Graphics Sommersemester 2008. 3D Modellierung. Prof. Dr.-Ing. H.-P. Masterstudium Informatik Vertiefungsrichtung Computer Graphics Sommersemester 2008 1 Bild aus der Abhandlung "Underweysung der Messung" von Albrecht Dürer, 1525 2 ... knapp 500 Jahre später beschäftigt

Mehr

Aufbau interaktiver 3D-Engines

Aufbau interaktiver 3D-Engines Aufbau interaktiver 3D-Engines ActorComponents Im Folgenden findet sich eine Übersicht über alle bereits implementierten Actorcomponents der Engine. Dabei werden XML-Elemente, die die Komponente beschreiben

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU (7) Normal Mapping Vorlesung Computergraphik II S. Müller Dank an Stefan Rilling Einleitung Die Welt ist voller Details Viele Details treten in Form von Oberflächendetails auf S. Müller - 3 - Darstellung

Mehr

Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.06.07 G. Bohlender (IANM UNI Karlsruhe) Swing 27.06.07 1 / 10 Übersicht 1 Einführendes

Mehr

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Szenengraph-Architekturen - 1 Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Hauptseminar Medieninformatik Christina Eicher 10. Mai 2004 Inhalt Szenengraph-Architekturen - 2 Teil 1: Szenengraphen

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Prof. Andreas Butz Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Organisatorisches Das Konzept der Szenegraphen Grundlagen Beispiel eines

Mehr

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis Computergrafik Michael Bender, Manfred Brill Ein anwendungsorientiertes Lehrbuch ISBN 3-446-40434-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40434-1 sowie

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel X Zeichnen mit Java2D SWT I Sommersemester 2009 Prof. Walter F. Tichy David Meder Literatur Informationen zu Java2D finden Sie in

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Übungsblatt 2: Einstieg in JOGL

Übungsblatt 2: Einstieg in JOGL : Einstieg in JOGL Abgabe: Dieses Übungsblatt ist einzeln zu lösen. Die Lösung ist bis Montag, den 7. Mai 2012, 12:00 Uhr s.t. über UniWorx (https://uniworx.ifi.lmu.de/) abzugeben. Es werden nur die Formate

Mehr

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI Java-Applets Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI Java-Applets V3.0 2011 by WBR1&MOU2/BFH- TI Lernziele Die Kursteilnehmer sind in der Lage: Möglichkeiten und

Mehr

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Computer Graphics Shader

Computer Graphics Shader Computer Graphics Shader Sven Janusch Inhalt Fixed Function Pipeline Programmable Pipeline Implementierung Applikation Beispiel Sven Janusch 2 Fixed Function Pipeline T&L Pipeline (Transformation and Lighting)

Mehr