MesaGL ist eine 3D-Grafik-Bibliothek die erst vor kurzem
für den Amiga neu umgesetzt wurde, doch bevor wir uns
näher damit befassen, schauen wir uns erstmal die
Geschichte der OpenGL Library an. Auf dieser basiert
nämlich MesaGL und auch viele anderen Bibliotheken.
3D Grafik ist eine eigene Wissenschaft für sich. Nur die
wenigsten Menschen sind überhaupt in der Lage komplexe 3D
Engines zu programmieren, viele befassen sich nichtmal
damit weil es einfach an den Programmierer hohe
Anforderungen stellt.
Aus genau dem Grund gab es eine lange Zeit kaum ein gutes
3D Spiel für den Amiga. Die meisten von denen waren
teilweise miserabel. Wie schlecht oder auch primitiv die
Spiele waren können wir Heute anhand von Spielen wie Doom
oder Quake sehen. Auf anderen Platformen ging die
Entwicklung von 3D Spielen dagegen viel schneller voran
und viele haben sich oft gewundert wieso das so ist.
Natürlich hat auch vieles damit zu tun, das dort
Massenweise Entwickler daran beteiligt sind neue Spiele
und 3D Werkzeuge zu entwickeln, doch das war nicht gerade
das Entscheidende. Die PC Platform hatte was anderes in
der Hand und das nennt sich OpenGL oder auch das
konkurrenzprodukt von Microsoft Direct3D.
Die beiden bekanntesten Bibliotheken ersparen dem
Programmierer eine ganze Menge Arbeit. Dieser kann
nämlich die Funktionen der Librarys nutzen und muß nicht
mehr für jede Grafikkarte die entsprechenden Treiber
schreiben. Weiterhin wird Ihm auch sehr viel Mathematik
dadurch erspart.
Die Grafikbibliothek Direct3D können wir schon jetzt
getrost vergessen. Wie schon gesagt handelt es sich hier
um ein Microsoft Produkt und es müßte schon ein Wunder
geschehen damit das Produkt auch auf den Amiga portiert
wird.
Für uns ist da schon OpenGL interessanter. Hier handelt
es sich um ein Produkt von SGI (Silicon Graphics). Es ist
auch eine der am weitesten verbreiteten 3D Librarys so das
man entsprechende Versionen für fast alle Platformen
erhält. OpenGL heißt natürlich die offizielle Library,
doch hier beginnt das Problem.
Nicht jede 3D "OpenGL" Library darf sich auch so nennen.
Bevor eine GL Library sich offiziell OpenGL nennen darf,
muß diese von einem entsprechendem Gremium ausführlich
getestet werden. Der eigentliche Test wäre ja nicht das
Problem, da unsere Amiga Programmierer in solchen Sachen
sehr gut sind. Da gibt es schon ein anderes Problem. Für
eine offizielle OpenGL muß man natürlich Lizenzgebühren
bezahlen. Das fängt mit einer einmalliger Zahlung von
etwa 100 000 Dollar und geht dann weiter pro verkaufte
Kopie bis zu 5$. Sowas kann sich natürlich keine Amiga
Firma leisten und Amiga Int. ist sich wohl zu schade
etwas Geld für die Amiga Zukunft auszugeben.
Das wir trotzdem in den Genuß der OpenGL Library kommen
dürfen, liegt wohl an der Großzügigkeit des Komitee. Man
kann nämlich eine OpenGL Implementation veröffentlichen
solange sich diese nicht OpenGL nennt. Natürlich zahlt
man auch für so eine Library keine Lizenzen und getestet
wird diese ebenfalls nicht. Zu einer der ersten
Implementation für den Amiga gehört CyberGL. Leider
unterstützt CyberGL erst einen Bruchteil der OpenGL
Library so das diese Bibliothek teiweise nur bei einfachen
Tools Verwendung fand.
Seit neustem haben wir allerdings MesaGL. MesaGL gehört
nicht zu den ersten Anwendungen die den Weg von der Unix
Welt zum Amiga geschaft haben. Entwickelt wurde diese
Bibliothek von Brian Paul und ist fast vollständig
kompatibel zu OpenGL. Für die erste Amiga Version war
Stefan Zivkovic verantwortlich, doch davon haben die
wenigsten was gewußt.
Doch jetzt hat sich Haage&Partner an die Arbeit gemacht
und kümmert sich seit neustem um die MesaGL Library. Das
Projekt wird von Sam Jordan betreut, der schon durch das
WarpOS System den meisten bekannt sein sollte (siehe auch
Interview).
Was haben wir User aber von MesaGL? Erstmal und das mu
man ganz klar sagen rein garnichts. Das einzige Programm
welches mit MesaGL Unterstützung erstmal kommen wird heißt
RayStorm. Jetzt sind natürlich wieder vorallem
Spielentwickler aufgefordert MesaGL zu unterstützen.
Weiterhin hat die 3D Bibliothek einen weiteren
gravierenden Nachteil. Fürs vernünftiges arbeiten bedarf
es nämlich spezieller Hardware. Hier reicht nichtmal ein
schneller PPC Prozessor. Selbst die einfachsten Demos
laufen damit sehr langsam. Was noch fehlt ist spezielle
Hardware Unterstützung von Grafikkarten wie Cybervision3D
oder auch der angekündigten BVision. Diese Grafikkarten
kommen nämlich mit speziellen Chips wie dem Virage oder
Permedia2. Die nehmen einfach die ganze Berechnung von
Primitives wie Linien, Punkte, Rechtecke und Polygone auf
sich. Nur aus dem Grund laufen viele Spiele auf dem PC
schneller mit einer 3D-Beschleuniger-Karte als mit dem
schnellsten Pentium Prozessor.
Desweiteren kommt noch ein anderes Problem dazu. Leider
weiß man noch nicht wie die Treiber zu den neuen
Grafikkarten von phase5 aussehen werden. Aus Erfahrung
wissen wir das phase5 es nicht gerne sehen wenn man für
deren Produkte spezielle Treiber schreibt. MesaGL läuft
aber nur mit WarpOS, abgesehen von der 68k Version. Wird
aber eine WarpOS Applikation gestartet so läuft die
ppc.library nicht mehr. Die BVision Treiber müßten
deswegen entweder in einer nicht PPC Version vorliegen
oder aber in einer PPC Version für WarpOS. Beides wird
wahrscheinlich nicht passieren und darunter leiden
natürlich nur wir und die Entwickler. Wollen wir aber
hoffen das sich beide Firmen endlich auf ein Kompromi
einlassen, ein Druck von der Softwareindustrie wäre hier
sehr sinnvoll.
Kommen wir aber zu MesaGL zurück. Die Version 2.0
verlangt mindestens einen 040er Prozessor, doch wie gesagt
hier wird man ohne entsprechender Hardware mächtig
enttäuscht. Die PPC Version ist da schon teilweise etwas
schneller, allerdings kommt auch hier keine Freude auf.
Hier noch die wichtigsten Features von MesaGL
(Quelle - AmigaGuide zu MesaGL 2.0 - Haage&Partner)
- Nahezu komplett OpenGL-kompatibel. Die offiziellen
OpenGL-Tutorial-Demos
von SGI laufen alle problemlos.
- StormMESA V2.0 basiert auf der zur Zeit neuesten
MESA-Implementation (MESA V2.5)
- Es werden sowohl die Prozessoren 68040 und 68060 (mit
FPU), als auch alle
PowerPC-Prozessoren unterstuetzt.
- Laeuft sowohl mit AGA als auch auf Grafik-Karten. Unterstuetzt
Hi/True-Color-Modi.
- Die Farbumrechnung fuer die Ausgabe auf 8-Bit-Screens
wurde stark beschleunigt. Zusaetzlich wird die Grafik-Qualitaet
durch Dithering stark aufgewertet.
- Es wurden viele neue Grafik-Treiber geschrieben, um die verschiedenen
AMIGA-Systeme optimal zu unterstuetzen:
- Neuer Double-Buffering-Treiber
- Neuer Treiber, welcher den Grafik-Karten-Blitter moeglichst optimal
ausnuetzt. Dieser Modus kann nur dann verwendet werden, wenn die
Grafikkarten-Software neue Bitmaps in Grafikkarten-Speicher anlegt.
Dieser Modus kann nur bei Grafik-Karten-Betrieb verwendet werden
und kann einige Demos (vor allem in den Hi/True-Color-Modi) massiv
beschleunigen.
- Neuer Treiber fuer FullScreen-Modus. Es wird dabei, fuer den Entwickler
komplett transparent, das OS3.0-kompatible Multibuffering unterstuetzt.
Auch dieser Modus kann nur verwendet werden, wenn die Grafikkarten-
Software das OS3.0-Multibuffering unterstuetzt. Dieser Modus kann auch
im AGA-Modus benuetzt werden (dort wird eine Chunky-To-Planar-
Konvertierung vorgenommen)
- Die meisten Zeichenroutinen liegen sowohl in C als auch in Assembler
(68K und PowerPC) vor. Die vorliegenden Link-Libraries enthalten die
Assembler-Zeichenroutinen. Die neue StormMESA-Implementation ist generell
um einiges schneller geworden.
- Die Programmierschnittstelle (API) ist nahezu
vollstaendig abwaertskompatibel
zu den bisherigen StormMESA-Versionen.
- Eine flexiblere Steuerung der AUX-/TK-basierenden Demos
mittels Environment-Variablen. In den aelteren StormMESA-
Implementationen wurden viele Demos nur im Single-Buffered-Modus
dargestellt, was zu einer extrem langsamen Ausgabe fuehrte.
Jetzt kann man den Modus von aussen steuern.
Zurück zum Inhalt