MesaGL

Amiga macht Fortschritte

             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