Viele Anwendungen und Spiele, die mit 3D-Grafik arbeiten, basieren heutzutage auf OpenGL.
Diese Spezifikation von SGI beschreibt
eine Vielzahl von Funktionen, mit deren Hilfe sich 3D-Grafik auf den Bildschirm bringen läßt.
Implementierungen gibt es für Windows, MacOS, Linux und andere Unix-Derivate.
Ziel dieses Projekts ist es, aus OpenGL-Anwendungen "3D-Screenshots" zu machen, d.h. auf
Tastendruck die aktuelle Szene (inkl. Texturen) in einem weit verbreiteten 3D-Format
abzuspeichern.
Die aktuelle Version des Grabbers ist als Windows-DLL realisiert. Sie bietet der jeweiligen
Anwendung einen kompletten Satz an OpenGL-Funktionen. Jeder Funktionsaufruf wird ausgewertet
und dann an die Original-OpenGL-DLL weitergeleitet. Auf Tastendruck wird die aktuelle Szene
(bzw. genauer: die direkt folgende Szene) im VRML-Format ausgegeben.
Bitte beachten: Der Grabber wurde seit 2001 nicht mehr weiter entwickelt und arbeitet
nicht mit modernen Betriebssystemen und Spielen zusammen! Diese Seite bleibt aber weiterhin
online, damit sich Interessierte die Arbeitsweise anschauen und den Sourcecode herunterladen
können.
Hinweis: Benutzen Sie den jeweils letzten Ansichtspunkt in jeder Szene, um einen ersten
Eindruck zu gewinnen. Eine "fit"-Funktion (wie z.B. in Cortona)
ist ebenfalls nützlich.
Zunächst einige Hinweise: Der Grabber ist noch im Alpha-Stadium, und eine ganze Reihe von Anwendungen
wird wahrscheinlich abstürzen oder fehlerhafte Darstellungen zeigen, wenn sie mit installiertem
Grabber gestartet werden. Außerdem können die entstehenden VRML-Dateien, Texturen und vor allem
Log-Dateien mehrere dutzend MB groß werden!
Prüfen Sie bitte vor der Installation, ob es auf Ihrem System die Datei "msvcrt.dll" gibt.
Wenn nicht, dann ist die Visual C++-Laufzeitumgebung nicht auf Ihrem System installiert,
und Sie müssen Sie zunächst in der passenden Sprache herunterladen
und installieren.
Zur Installation kopieren Sie die Datei "ogre.dll" ins Verzeichnis bzw.
die Verzeichnisse der Ziel-Anwendung(en) (z.B. "c:\spiele\homeworld") und benennen Sie sie in
"opengl32.dll" um.
Achtung: Überschreiben Sie auf keinen Fall die Datei "opengl32.dll" im
Windows-Systemverzeichnis!
In der laufenden Anwendung (z.B. "homeworld.exe") können Sie jetzt mit F11 die aktuelle Szene abspeichern. Den Pfad, in dem
sie abgelegt wird, können Sie über die Datei "ogre.ini" festlegen (siehe unten). In diesem Pfad wird für
jede gespeicherte Szene ein neues Verzeichnis nach dem Muster "grab????" angelegt, wobei "????" eine
fortlaufende Nummer ist. Auch wenn Sie die Ziel-Anwendung beenden und neu starten wird weiter
hochgezählt, so daß keine alten Dateien überschrieben werden. Um Ogre zu deinstallieren, löschen Sie
einfach die Datei "opengl32.dll" aus dem Anwendungsverzeichnis (z.B. "c:\spiele\homeworld"). Achten
Sie auch dieses Mal darauf, daß Sie nicht die Datei "opengl32.dll" aus dem Windows-Systemverzeichnis
löschen!
Zur Beeinflussung des Grabbers können Sie im Verzeichnis "c:\temp" eine Datei "ogre.ini" mit
folgendem Aufbau anlegen:
[Options]
noTextureAlpha=0
; 0: Texturen werden mit Alpha-Kanal gespeichert
; (sofern sie einen enthalten)
; 1: Texturen werden grundsätzlich ohne Alpha-Kanal
; gespeichert
noViewpointScale=0
; 0: Kamerapositionen können Skalierung enthalten
; (kann zu Verzerrungen führen)
; 1: Kamerapositionen enthalten keine Skalierung
; (kann zu fehlerhafter Darstellung führen)
noNormals=0
; 0: Geometriedaten werden inklusive Normalen gespeichert
; 1: Geometriedaten werden ohne Normalen gespeichert
basePath=c:\temp
; Pfad, in dem die gespeicherten Szenen abgelegt werden
logFile=c:\temp\ogre.log
; Log-Datei, die OpenGL-Aufrufe protokolliert
logLevel=0
; 0: kein Log schreiben
; (Log-Datei wird aber trotzdem mit 0 Bytes angelegt)
; 1: nur OpenGL-Aufrufe während gespeicherter Szenen schreiben
; 2: wie 1, aber zusätzlich alle Aufrufe vor der ersten Szene
; (ob gespeichert oder nicht) schreiben
; 3: alle Aufrufe protokollieren
; (Achtung: ergibt Dateien bis zu hunderten von MB!)
Eine Beispiel-Datei ist im Ogre-Archiv enthalten. Wenn Sie eine Zeile weglassen, wird
der jeweilige Vorgabewert genommen. Im Beispiel oben stehen alle Optionen auf den Vorgabewerten.
Der Einsatz des Grabbers erfolgt auf eigene Gefahr!
- Statt einer kombinierten Ansicht enthalten die extrahierten VRML-Dateien mehrere
Ansichtspunkte (prinzipielles OpenGL/VRML-Konvertierungsproblem).
- noch keine Unterstützung von Lightmaps
(Szene wird zwar extrahiert, aber Beleuchtung erscheint "voll aufgedreht")
- evtl. Probleme mit OpenGL-Extensions
- (noch) Beschränkung auf MS Windows
Letzte Änderung: 29.05.2005
|