A GPU csomag egy egyedi tervezésű chip volt, amit Holly-nak hívtak, és 100 MHz-en futott. A VideoLogic tervezte (amit ma már Imagination Technologies-nek hívnak), és az NEC gyártotta. A Holly 3D része teljes egészében a VideoLogic PowerVR2 volt (amit 'PowerVR Series2'-nek és 'CLX2'-nek is neveztek).
A VideoLogic a 3D motorjuk fejlesztésénél egy alternatív megközelítést alkalmazott, amit Tile-Based Deferred Rendering (Csempe Alapú Összefűzött Renderelés) -nek (TBDR) neveztek.
Ahelyett, hogy az egész képet egyben renderelték volna (ahogy azt a hagyományos Immediate Mode Render (Azonnali Renderelő)-k vagy 'IMR'-ek csinálják ), a TBDR felosztotta a renderelendő képet több, 'csempének' nevezett részletre. Ezután az egyes csempéket külön-külön renderelte le, majd az eredményeket összefűzte a végső képpé .
Ez az előremutató fejlesztés érdekes előnyökkel járt:
- Nagyszerűen párhuzamosítható volt, ami jelentősen csökkentette a sávszélesség- és a teljesítményigényt.
- Egy nagyon okos megoldást alkalmazott a láthatósági probléma megoldására: automatikusan sorbarendezte a poligonokatelőről hátrafelé és már a futószalag első állomásain végrehajtotta a z-teszteket. Ezeknek a feladatoknak a kombinálása nem csak az eredeti problémát oldotta meg, de megelőzte a felülrajzolást is (amikor egyébként más által takart poligonokat kell raszterizálni) - ami szimplán erőforrás-pazarlás volt és csökkentette a teljesítményt.
Nem meglepő, hogy az Imagination ezt a hatékony technológiát alkalmazta a következő tervezése során, és a Series 4 PowerVR magok elképesztő mennyiségű eszközben voltak megtalálhatóak, beleértve az iPhone első generációját, az iPhone 3G-t, a Nokia N95-t, és a Dell Axim x51-et is.
Felépítés
Vessünk egy pillantást a Dreamcast GPU-jának két fő komponensére :
Csempe-gyorsító

A Tile Accelerator (Csempegyorsító) felépítése.
Mielőtt elkezdődik a renderelés, a Tile Accelerator (Csempe gyorsító)-nak nevezett részegység hajtja végre az előfeldolgozási feladatokat. Először is lefoglal több 32x32-es csempekockát, amelyekbe a geometria renderelésre kerül.
Ezután a csempe-gyorsító:
- Átveszi a CPU által kiadott geometriai adatokat és rajzparancsokat (DMA vagy hagyományos adatátvitel segítségével).
- Ezeket az adatok egy belső formátumra alakítja át.
- A koordináták alapján szétosztja a geometriai adatokat a csempekockák között. A levágott geometriai adatokat eldobja.
- Legenerálja az eredményül kapott Display List (Megjelenítési listák)-at.
Ezeket a megjelenítési listákat végül a PowerVR2 3D motor dolgozza fel.
A PowerVR2 mag
Ez az a rész, ahol a grafika "életre kel": a csempe-gyorsítótól kapott megjelenítési listák alapján a grafikus mag rendereli le egyetlen csempe geometriáját a belső képkocka puffer használatával. A folyamat a következő:
- A Image Synthesis Processor vagy "ISP" lekérdezi a primitíveket (háromszögeket vagy négyszögeket), és elvégzi a Hidden-Surface Removal műveletet a nem látható sokszögek eltávolítására. Miután megtörtént a Z-pufferek és a sablonpufferek kiszámolása, az adatok átmennek a Depth Testing (Mélység Teszt)-en, hogy elkerüljék az olyan sokszögek renderelését, amelyek más sokszögek mögött jelennének meg, valamint a Stencil Tests (Sablon teszt)-en, ami azokat a geometriai adatokat szűri ki, amelyek nem lennének láthatóak, ha egy 2D-s sokszög mögött helyezkednek el (ezt maszkolásnak is hívják).
- Figyeljük meg, hogy ezeket a teszteket már a futószalag első állomásán elvégzik. Ezzel ellentétben a korábbi játékkonzolok késői z-bufferelést alkalmaztak, és a futószalag végén dobták el a geometriai adatokat. Az ISP által biztosított módszer megelőzi az olyan geometriai adatok feldolgozását, amelyek végül eldobásra kerülnének , így takarékoskodik az erőforrásokkal.
- A Texture and Shading Processor (Textúrázó és árnyékoló processzor) vagy 'TSP' végzi el a színezést, árnyékolást és más effekteket a csempekockákon.
- A textúrák egészen az exportálásig nem kerülnek a csempekockára, így az esetleges túlrajzolás nem csökkenti a kitöltési teljesítményt.
Miután a műveletet befejeződik, a renderelt csempe a fő képpufferbe íródik a VRAM-ban. Ez a folyamat addig ismétlődik, amíg az összes csempe el nem készül. Ha ez megtörtént, a kapott képpuffert a Videókódoló felolvassa, és megjeleníti a videókimeneten keresztül.
A nagy kép
Eltekintve a nyilvánvaló felépítésbeli különbségektől is, a TSP sok olyan képességgel rendelkezett, amelyekből kiderül, hogy mennyire távol állt ez a játékkonzol a régi Saturn-tól. Íme néhány figyelemre méltó példa:
- Alpha blending (Alfa keverés): Az egymást fedő rétegek színeinek keverése, hogy átlátszó hatást keltsen.
- Ebben a rendszerben az átlátszóság alkalmazására használt eljárást sorrendtől független átlátszóságnak nevezik. Az algoritmus automatikusan sorbarendezi a primitíveket a színek keverése előtt, és bár ez lelassítja a renderelési folyamatot, elkerülhető, hogy a játéknak magának kelljen elvégeznie a rendezést. Pontosan emiatt a Dreamcast játékok remekeltek az átlátszó objektumok megjelenítésében.
- A csempe alapú rendszer, kombinálva a sorrendfüggetlen átlátszósággal teljes megszüntette a korábbi hibákat.
- Mip-Mapping: A kívánt részletességtől függően automatikusan kiválasztja a textúra lekicsinyített verzióját. Ezt azért csinálja, hogy elkerülje a feleslegesen nagyméretű textúrák feldolgozását, amelyek a kamerától amúgy is távolabb lennének csak láthatóak (ami így teljesítménypazarlás lenne, és a textúrák szélén látható aliasinget, fűrészfogazást eredményezne).
- Environment mapping: Tükröződéseket hoz létre a textúrákon.
- Bilinear, Trilinear és anisotropic szűről: Ezek különböző algoritmusok, amelyeket a textúrák simítására és a pixelesedés megakadályozására használnak. Ez a sorrend a 'legrosszabbtól' a 'legjobbig', és a kapott eredmény arányos a szükséges számítási teljesítménnyel.
- Ez hatalmas előrelépés a Saturnhoz képest, ami egyáltalán nem tudott semmilyen textúra szűrőt használni!
- Bump mapping: Fényekkel és árnyékokkal szimulálja a felületek hibáit (bemélyedések, stb.), anélkül, hogy további sokszögeket kellene alkalmazni a formák megváltoztatására.
Egyre több részlet
A Holly így már közel tízszer több sokszöget tudott kirajzolni, mint az elődje. Itt van egy gyors előtte - utána összehasonlítás, ami bemutatja, hogy a modellterveknek már nem kellett olyan korlátozottaknak lennie, mint előtte. Nézd meg alaposabban minden oldalról!

Interaktív modell elérhető a modern kiadásban
Sonic R (1997) a Saturnon:
286 háromszög (vagy 185 négyszög).

Interaktív modell elérhető a modern kiadásban
Sonic Adventure (1999) a Dreamcasten:
1001 hármszög.
Videó módok
A videórendszert úgy tervezték, hogy többféle képernyőtípust és formátumot támogasson, ezért a videókódoló a kimeneti jelet egy egységes aljzatra küldte ki, az alábbi jeltípusokkal:
- Kompozit: A videójel megjelenítéséhez szükséges három jelet (chroma, luma és szinkron) kombinálja egyetlen jelbe, így csak egy egyszerű, egypólusú kábel szükséges hozzá.
- Ezeket a régi PAL és NTSC TV-ken használták RCA kábellel.
- S-Video: A luma és a szinkron jeleket kombinálta, és megtartotta a chroma jelet külön (így két vezeték kellett összesen).
- RGB: Külön piros-zöld-kék színcsatorna jeleket használt, és különböző szinkronizálási típusok közül lehetett választani (kompozit szinkronizálás vagy a kompozit vagy S-Video videójelből használt szinkronizálás).
- A SCART kábel használja ezt a jeltípust.
- VGA: az RGB jelet két szinkronjellel (víszintes és függőleges) kombinálja, így összesen öt vezeték kell hozzá összesen. Ez tette lehetőve a legmagasabb felbontást (720x480) progresszív módban (emiatt ezt a videómódot gyakran nevezték 480p-nek is). Ekkora a VGA igazából a számítógépes monitorok szabványos formátumat volt már egy ideje.
- Ennek a videójel formátumnak a használatához a Sega egy VGA adaptert is árult kiegészítőként.
A Dreamcast nem tudja ezeket egyszerre kódolni, ezért a GPU és az audioprocesszor tartalmaz egy Image Mode (Kép Mód) nevű regisztert, amely koordinálja, hogy melyik videó/audió busz lesz aktiválva a kért jel létrehozásához. A CPU érzékeli a csatlakoztatott kábel típusát (a videócsatlakozó aktív "kiválasztó bitjeinek" ellenőrzésével), és a GPU-ba írja a szükséges értékeket. Legvégül a GPU a szükséges beállításokat továbbítja az audióprocesszornak.
Mivel a VGA szigorúan progresszív típusú jel (szemben a hagyományos váltottsoros jelekkel), néhány kompatibilitási felmerül olyan játékoknál, amelyeket csak interlaced videóhoz terveztek. Ezek kódjában direkt szerepel, hogy a játék nem működik VGA-n, így a CPU blokkolja a játékot, amíg a felhasználó ki nem cseréli a VGA-kábelt egy másik típusra.

