Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

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

Ähnliche Präsentationen


Präsentation zum Thema: "FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien..."—  Präsentation transkript:

1 FH-Hof Texturen Richard Göbel

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

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

4 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

5 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(, );

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

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

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

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

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

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

12 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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen