FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...

Slides:



Advertisements
Ähnliche Präsentationen
Inhalt Bildparameter Bildquellen Bildgröße/Bildformat Bildauflösung Farbtiefe Farbmodus Scannen Monitor Dateiformat Bildausschnitt Tonwertkorrektur.
Advertisements

Computer Graphics Shader
Einführung in die Bildverarbeitung
Systemprogrammierung > Projektgruppe: Alexander Schesler, Hristo Matev.
Java3D Einfacher scene graph View branch graph BG Shape3D Knoten S
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.
FH-Hof Einbindung von JavaScript Anweisungen
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.
Sortierverfahren Richard Göbel.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Listen Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Indirekte Adressierung
Licht und Schatten Richard Göbel.
FH-Hof Automatisches Erzeugen von Geometrie Richard Göbel.
Motivation Richard Göbel.
FH-Hof Animation - Teil 1 Richard Göbel. FH-Hof Themen Darstellung der Geometrie ändern (Transformation, Appearance, etc.) Geometrie ändern (Morphing)
Einfache Komponenten in SWING
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.
GridBagLayout Richard Göbel.
FH-Hof Java3D - Grundlagen Richard Göbel. FH-Hof Java3D Konzept Erzeugung eines Szenengraphen als virtuelle Welt Darstellung der virtuellen Welt mit Hilfe.
Bildverarbeitung Richard Göbel.
FH-Hof Konturen in Rasterdaten Richard Göbel. FH-Hof Idee Identifiziere Konturen (Linien als Grenzen) zwischen verschiedenen Bereichen Kontur ist durch.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
FH-Hof Java 2D - Kontext für Zeichenoperationen Richard Göbel.
Bilder und Rasterdaten
FH-Hof Analyse des R-Baums Richard Göbel. FH-Hof Ansatz Annahme: Die Bearbeitungszeit für eine Anfrage wird dominiert von der Ladezeit der Knoten von.
FH-Hof Georeferenzieren Richard Göbel. FH-Hof Geographische Positionen in Bilddaten Bilddaten werden von Kameras (Sensoren): auf Flugzeugen oder auf Satelliten.
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.
Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung.
Processing: Arrays & Laden von Dateien Aufbauend auf dem Beispiel: File I/O LoadFile1.
Java 3D Carina Fleck Licht und Material.
Java3d „Licht und Material“
Diskrete Mathematik I Vorlesung Arrays-
Java-Kurs Grafik Julian Drerup.
1 Animation (Doublepuffering) Vorlesung: Datenverarbeitung Grundlagen 3 Fachbereich II - Mathematik Rolf Heitzenröder.
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Displacement Mapping Dynamische Generierung detaillierter Geometrien
FH-Hof Konfiguration eines Universums Richard Göbel.
Rekursion Richard Göbel.
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
Template Pattern Richard Göbel.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
FH-Hof Sound Richard Göbel. FH-Hof Geräusche in Java3D Klasse MediaContainer als Datenlieferant MediaContainer(java.io.InputStream stream). MediaContainer(java.lang.String.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
FHP - Fachbereich Bauingenieurwesen
3D- Spieleprogrammierung
Verhalten von Objekten in der Szene
Theorie Praktische Beispiele
Theorie Praktische Beispiele
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Theorie Praktische Beispiele
Sammlungsklassen Array.
Diskrete Mathematik I Vorlesung 2 Arrays.
Einführung in die Programmierung mit Java
JAVA lernen: Methoden.
Arrays of Objects, a 3 part process
 Präsentation transkript:

FH-Hof Texturen Richard Göbel

FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...

FH-Hof Zuordnung von Punkten der Textur zu Punkten der Geometrie (-0.4,0.6,0.2) (-0.4,-0.6,0.2)(0.4,-0.6,0.2) (0.4,0.6,0.2) Geometrie-KoordinatenTextur-Koordinaten (0,1) (0,0) (1,1) (1,0) (0,0.5)(1,0.5) (0.5,1) (0.5,0)

FH-Hof Schritte für die Einbindung einer Textur Laden eines Bildes als Textur Die Anzahl der Pixel muss in jeder Dimension eine Potenz von zwei sein (z.B , ,... ) Bildformate: GIF und JPEG weitere Bildformate mit Java Advanced Imaging Vorbereitung der Geometrie durch Definition von Texturkoordinaten für jeden Punkt der Geometrie Übergabe des Bildes an das Appearance-Objekt für eine Geometrie

FH-Hof Programmcode für das Laden eines Bildes Zunächst Loader erzeugen: TextureLoader loader = new TextureLoader("earth.jpg", this); Entweder direkt Textur abfragen... Texture tex = loader.getTexture();... oder Textur selbst erzeugen: Texture tex = new Texture2D(... ); ImageComponent im = loader.getImage(); tex.setImage(0,im); Größe des Bildes anpassen: im = loader.getScaledImage(, );

FH-Hof Texturkoordinaten für die Geometrie - Option I QuadArray qa = new QuadArray (4,QuadArray.COORDINATES | QuadArray.TEXTURE_COORDINATE_2 ); Point3f coords[] = new Point3f[4]; TexCoord2f texCoords[] = new TexCoord2f[4]; float h = 0.6f, w = 0.4f, d = 0.2f; coords[0] = new Point3f(-w,h,d); coords[1] = new Point3f(-w,-h,d); coords[2] = new Point3f(w,-h,d); coords[3] = new Point3f(w,h,d); texCoords[0] = new TexCoord2f(0f,1f); texCoords[1] = new TexCoord2f(0f,0f); texCoords[2] = new TexCoord2f(1f,0f); texCoords[3] = new TexCoord2f(1f,1f); qa = qa.setCoordinates(0, coords); qa.setTextureCoordinates(0, 0, texCoords);

FH-Hof Texturkoordinaten für die Geometrie - Option II Sphere sphere = new Sphere( 0.6f, Primitive.GENERATE_TEXTURE_COORDS, 20, );

FH-Hof Textur dem Appearance-Objekt übergeben Texture tex =... ;... Appearance ap = new Appearance(); ap.setTexture(tex); TextureAttributes ta = new TextureAttributes(); ta.setTextureMode(ta.MODULATE); oder ta.setTextureMode(ta.DECAL); oder ta.setTextureMode(ta.BLEND); oder ta.setTextureMode(ta.REPLACE); ap.setTextureAttributes(ta);

FH-Hof Texturen und Beleuchtung Geometrien mit Texturkoordinaten und Normalen erzeugen Material-Objekt erzeugen und im Appearance-Objekt registrieren Farben des Material-Objekts werden mit den Farben der Textur kombiniert Geeignete Farben für das Material-Objekt wählen! Als Texture Mode die Option MODULATE wählen.

FH-Hof Normale für eigene Geometrie erzeugen GeometryInfo gi = new GeometryInfo(GeometryInfo.QUAD_ARRAY); coords[0] = new Point3f(-w,h,d);... gi.setCoordinates(coords); NormalGenerator ng = new NormalGenerator(); ng.generateNormals(gi); Vector3f[] normals = gi.getNormals(); QuadArray qa = new QuadArray(... ); qa.setCoordinates(0,coords); qa.setNormals(0,normals); texCoords[0] = new TexCoord2f(0f,1f);... qa.setTextureCoordinates(0,0,texCoords);

FH-Hof Normale für geometrische Primitive erzeugen Sphere sphere = new Sphere( 0.6f, Primitive.GENERATE_NORMALS | Primitive.GENERATE_TEXTURE_COORDS, 20, );

FH-Hof MipMap - Konzept Bereitstellung einer Textur in unterschiedlichen Auflösungen (Ebenen, Level) Anforderungen: Die Anzahl der Ebenen beträgt log 2 (max(w,h)) (w Breite & h Höhe der Textur) Für zwei aufeinanderfolgende Ebene wird die Auflösung in mindestens einer Dimension um den Faktor zwei verringert Die letzte Ebene besteht nur noch aus einem Pixel

FH-Hof MipMap - Parameter der Klasse Texture Magnification filter: Pixel Texel: BASE_LEVEL_POINT: Texel mit geringstem Abstand BASE_LEVEL_LINEAR - bilineare Interpolation der vier Texel mit dem geringsten Abstand Minification filter: Pixel > Texel BASE_LEVEL_POINT: Texel mit geringstem Abstand aus Ebene 0 BASE_LEVEL_LINEAR: bilineare Interpolation der Texel mit geringstem Abstand aus Ebene 0 MULTI_LEVEL_POINT: Texel mit geringstem Abstand aus geeigneter Ebene (MipMap) MULTI_LEVEL_LINEAR: trilineare interpolation der Texel mit geringsten Abständen aus zwei Ebenen.

FH-Hof MipMap - Erzeugung der Ebenen Texture tex = new Texture2D(Texture.MULTI_LEVEL_MIPMAP, Texture.RGB, 256,256); ImageComponent im =...; int w = im.getWidth(), h = im.getHeight(); tex.setImage(0,im); for (int i = 1; w > 1 || h > 1; i++) { if (w > 1) w /= 2; if (h > 1) w /= 2; im = loader.getScaledImage(w,h); tex.setImage(i,im); } tex.setMinFilter(Texture.MULTI_LEVEL_POINT);