Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2006  »  10  »  Im Rampenlicht  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Textur mit Zusatz

Neben der darzustellenden Bitmap enthalten Texturobjekte weitere Informationen wie Höhe, Breite und Typ. In Zeile 32 verbindet »glTexImage2D« diese Daten mit dem Bild aus dem vorher erzeugten OpenGL-Vektor. Texturobjekte liegen üblicherweise im Speicher der Grafikkarte, folglich kann die Karte sie ohne Zugriff auf den Hauptspeicher verwenden und auf der Geometrie anbringen. Der Code in Zeile 35 löscht daher den OpenGL-Vektor, der das Bild enthält.

Anders als zum Beispiel Objekte in Java mit dessen Garbage Collection, verschwinden bei OpenGL einmal angelegte Variablen nicht von selbst. Es empfiehlt sich daher, für Zwischenschritte angelegte Variablen wie den vorliegenden Vektor explizit zu löschen. Andernfalls müllen sie den Haupt- oder (schlimmer) den Grafikkartenspeicher voll und bremsen die Anzeige.

Als Nächstes erzeugt das Programm die Geometrie und dekoriert sie mit der Textur (Zeilen 38 bis 42). Für eine saubere Fläche mit Textur benötigt OpenGL die Knotenpunkte der Dreiecke, den Normalenvektor an den Knotenpunkten und die Position in der Bitmap. Der Normalenvektor ist ein Vektor der Länge 1. Er steht senkrecht zur Oberfläche und definiert damit deren Lage. OpenGL braucht ihn, um die Beleuchtung und Spiegelung zu berechnen.

Im Beispiel baut die Funktion »renderSphere« ab Zeile 46 eine Kugel aus mehreren Dreiecksstreifen auf (Abbildung 1a), die Anzahl der Streifen bleibt dabei beliebig wählbar. Die vollständige Version findet sich auf dem FTP-Server [3], in Listing 1 ist nur der Ausschnitt für die Texturbehandlung zu sehen.

Der Winkel »theta2« entspricht dem Höhengrad, »theta3« dem Längengrad (Zeilen 49 bis 51). Zuerst berechnet das Skript den Normalenvektor. Bei einer Kugel ist das denkbar einfach. Danach definiert »glTexCoord2f« (Zeile 55), welcher Punkt aus der Textur auf welche Stelle der Geometrie kommt. Die Kugel erfordert eine Projektion, um die ebene Textur auf die gebogene Oberfläche zu legen. Das Beispiel setzt auf eine einfache Zylinderprojektion.

Steiniges Muster

Das Ergebnis ist in Abbildung 1c zu bewundern. Das rechteckige Gitter aus der Bitmap (Abbildung 1d) ist an den Polen zu Dreiecken verzerrt. Zum Schluss gibt »glVertex3f« die Koordinate eines Gitterpunkts auf der Kugel an, damit ist die Definition eines Punktes komplett.


Abbildung 1d: Die Oberflächenstruktur eines Steins ist unabhängig von dessen Form. Ein zweidimensionales Foto der Oberfläche genügt daher als Textur.

Der weitere Quelltext definiert mit diesen Punkten Dreiecke und stellt damit die Kugeloberfläche zusammen. In Abbildung 1a sind als Demonstration nur die Kanten dargestellt. Die Textur (Abbildung 1d) gibt der sehr einfachen Geometrie ein recht realistisches Aussehen (Abbildung 1c).

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Virtueller Bühnenbildner Dreidimensionale Modelle in eigenen Skripten mit Tcl3D
Künstlicher Horizont 3D-Engine Ogre
Virtuelle Welt Interaktive 3D-Welten mit Coin und Qt
Glänzende Effekte 3D-Grafiken verbessern durch Shader
Schnellzeichner Nvidia-Grafikkarten im Vergleich
Effektvolle Evolution Composite-Desktop mit AIGLX
Whitepaper
Usage Landscape Enterprise Open Source Data Integration

Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.

Download PDF (Registrierung erforderlich)
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Kommentare (0)