MorphOS SDL – OpenGL support

Az első direkt OpenGL támogatással rendelkező SDL (Simple Directmedia Layer) port-ot készítettem, a továbbiakban PowerSDL néven fut…

Short:        SDL audio and video library for MorphOS
Author:       Ilkka Lehtoranta (ilkleht@isoveli.org), Nicolas Sallin,
Gabriele Greco, Lajos Nagy, the SDL team
Uploader:     Ilkka Lehtoranta (ilkleht@isoveli.org)
Version:      11.11
Type:         util/libsArchitecture: ppc-morphos

This is the port of 1.2.9 version of SDL for MorphOS. It is based onAmiga SDL
from Gabriele Greco. OpenGL code written by Lajos Nagy.

CHIP – Warp3D v2.0 avagy DirectX Amigára?

Régebben – az Amiga igazi hőskorában – a videó-kártyák elsősorban a valós idejű videóműveletek elvégzésére, feliratozásra, illetve a 24 bites grafikai alkalmazások számára készültek. Az Amigák, az úgynevezett Custom Chip-ekkel – a 2D-s grafikát, és a hangot támogató célprocesszorok – felszerelkezve körülbelül úgy viszonyultak a többi személyi számítógéphez, mint manapság egy Trident VGA kártyával felszerelt PC, egy Riva TNT-vel felszerelt másikhoz! A hardware-ből rajzolt vonalak, területek fill-ezése, sprite-ok, bob-ok, sprite-collision ellenőrzés, hardware-scroll, illetve egyidejűleg többféle felbontású és színmélységű képernyő megjelenítése elsősorban az akkori számítógépes játékok igényeit fedezte, és csak nagyon kevés felhasználó program – a feliratozó és multimédiás software-ektől eltekintve – használta ki ezeket a lehetőségeket. Manapság a számítógépes grafika kinőtte a 2D-s világot, és szinte minden alkalmazás igényli a 3. dimenziót is. Ugyan a processzorok sebessége is folyamatosan nő, de egy kimondottan 3D-s grafikára készült grafikai chip nélkül manapság már szinte elképzelhetetlenek a játékok, a komolyabb raytracer-ek, és a multimédiás/feliratozó programok is.

Szerencsére az Amigás világban is megjelentek az első 3D-s grafikus kártyák, és mostanában kezdenek előkerülni az ezeket igazán támogató/kihasználó API-k is. A Phase5 CyberVision64/3D fantázianevű grafikus kártyája volt az első 3D tulajdonságokat is tartalmazó hardware Amigára. Ebben egy Virge chip van, ami PC-n is igen népszerű az S3 kártyákban. A CyberVisionPPC, és a BVisionPPC kártyák tavalyi megjelenésével a Permedia2-es chip is csatlakozott ezen 3D gyorsítós videó-kártyák sorába, illetve remélhetőleg még 1999 folyamán a Village Tronic is piacra dobja a PicassoIV-hez a Voodoo modult.

Jelenleg is 20-30 féle 3D grafikus rendszer létezik AmigaOS-re, ezek kivétel nélkül elszeparált fejlesztők művei, illetve egyes forrásukkal megjelenő programok portjai. Elsőként a Haage & Partner kezdett komolyabban – cég szinten – foglalkozni a 3D grafikával, és decemberben meg is jelentették a Warp3D első verzióját, amely a Virge és a Permedia2 (a későbbiekben a Voodoo is) processzorok közvetlen támogatását biztosítja, illetve azok 3D-s tulajdonságaihoz API szintű fejlesztői hozzáférést tesznek lehetővé. A Warp3D – és a hozzá hasonló API-k – legnagyobb előnye, hogy hardware és processzor független felületet kap a programozó, így nem kell minden egyes hardware-re külön-külön elkészíteni/lefordítani a programját.

A Warp3D használatához a 3D-s grafikus kártyán kívül szükség van egy működő FPU-t (Floating Point Unit) tartalmazó processzorra (68040/68060/PPC). A rendszer fejlesztése során el fog készülni egy olyan verzió is, amely úgynevezett CPU-only driver-t használ, vagyis az Amiga natív grafikus chip-jein (AGA/ECS) is képes lesz futtatni azokat az alkalmazásokat, amelyek a Warp3D-t használják. Ebben az esetben viszont egy nagyon gyors PowerPC processzor ajánlatos a 3D grafikus chip szerepének az átvételére.  A közhiedelemmel ellentétbe az Warp3D-hez nem kell PowerPC processzor, viszont egy gyors 68k-s mindenképpen kell, már csak azért is, hogy megfelelő sebességgel el tudja juttatni a grafikus chip-nek a megjelenítendő információt.

A Warp3D installációja igen egyszerű, a ‘Warp3D.library’-t, illetve a megfelelő hardware driver-t kell elhelyezni a LIBS: könyvtárban, vagy elindítani a mellékelt installer script-et. Ha használni szeretnénk a Warp3D PowerPC-s részeit is, szükségünk lesz
a WarpOS-re is.

Demóként két egyszerű programot tartalmaz a Warp3D v2.0 csomag, az egyik (Engine) egy Doom szerű folyosó egy részletén belül forgathatjuk a fejünket minden irányba. Ebben a szobában van egy villogó lámpa (dynamic light), és helyenként áttetsző anyagok is (transparency), és a tesztelés során nem hittünk a szemünknek, mikor egy 40 MHz-es 68040-es processzoron Permedia2-es grafikus kártyával (CyberVisionPPC) 1024×768-as képernyőn 20-30 kép/másodperc volt az engine sebessége! A másik demó (WarpTest) igyekszik bemutatni a Warp3D által elérhető funkciókat, mint Fogging, Texture Mapping, Gouraud/Flat Shading, Blend Mode, Linear/Perspective Mapping, Alpha Blending (transparency), és négy féle filter mód (none, bilinear, mipmap, trilinear). Nagyon látványos a pixel elmosás, illetve érdemes kipróbálni az effektek sebességét saját textúrával is, ami lehetőleg ne legyen nagyobb 512×512 pixelnél.

A Warp3D-t illetve a Haage & Partner OpenGL implementációját, a StormMesa-t is érdemes együtt megnézni. A 68k-s processzorra lefordított GL demók ugyan nem lesznek igazán gyorsak, viszont a PPC-s verziók nagyon látványosak. Az összes közül kiemelkedik az ‘Ideas’ című program, amely 1024×768-as felbontásban, 24 biten is legalább 16 kép/másodperces sebességgel fut. A Warp3D használata során nagyon szembetűnő, hogy a 15 bitnél kisebb színmélységű képernyőkön akár egyötödére is lelassul a grafika, ezért nagyon kicsi a valószínűsége, hogy a fentebb említett natív grafikus chip-eken is elfogadható sebességűek legyenek az egyes alkalmazások.

A Warp3D-nek illetve a hozzá hasonló grafikus rendszereknek igen fontos szerepük lesz a közeljövőben, mert a Phase5 által megteremtett korszerű hardware környezet (PowerPC processzorkártyák, Permedia2 grafikus kártyák) lehetőséget ad az Amigák számára a korszerű (3D alapú) játékok és alkalmazások futtatására, illetve olyan emulátorok elkészítésére, amelyek más platformokon egyre népszerűbbek. Ilyenek a Sony Playstation (PSX), vagy Ninedo64 emulátorok, amelyek PC-n (PSEmu), vagy Macintoson (VGS) – megfelelő hardware megléte esetén – szinte tökéletes konzolt varázsolnak a számítógépből. Remélhetőleg a következő generációs Macintosh emulátorok (FusionPPC, ShapeShifterPPC) emulálni fogják akár egy ilyen API-n keresztül a Mac 3D-s grafikus kártyáját is.

A Warp3D ingyenes program, bárki által letölthető a Haage & Partner Internetes oldalairól, illetve mi is közzétesszük a CHIP CD-n. A fejlesztők számára szintén minden kötelezettség, és ellenszolgáltatás nélkül elérhető a Developer Kit is.

Lapzártakor jelentek meg az első hírek egy másik 3D-s API-ról, amelyet a CyberGFX rendszer fejlesztői készítenek (Vision Factory), és hamarosan látható lesz működés közben is a Tornado3D v2.1 grafikus rendszereként, illetve beépített Permedia2 támogatásként.

Egy tipp a Warp3D-hez

A PowerPC-s demók megtekintéséhez ajánlatos a következő környezeti változókat beállítani CyberVisionPPC/BVision kártyák és CyberGFX v3/v4 használatakor:

Setenv PowerPC/force 0
Setenv PowerPC/gfxaddr $e0000000
Setenv CyberGraphX/UseSemaphores 1
és a monitordriver tooltype-jában: BITMAPCACHE=YES

warptest.jpg