Pracovní stanice, IBM PC, Silicon Graphics a začátky 3D (díl 1.)

Pro většinu lidí byl příchod 3D akcelerátorů až v polovině devadesátých let spolu s 3Dfx Voodoo Graphics, pro ty chudší s S3 Virge. Tou dobou už ovšem 3D nebylo v profi segmentu nic nového. 3D akcelerace do PC přišla v polovině 80. let a v případě jiných platforem dokonce ještě dříve. Tato část historie mě baví, takže jsem se k ní rozhodl vrátit i zde na blogu.

sun-vr-glove

První experimenty s počítačovou 3D grafikou se datují už do 60. let. V podstatě jakmile bylo možné rozumně zobrazovat ve 2D, automaticky přišla chuť zkoumat i 3D. Už v této době se objevují na špici jména, která později stála u zrodu společností jako Evans & Sutherland (E&S) a Silicon Graphics (SGI) – na dlouhou dobu tahounů ve světě počítačové 3D grafiky (spolu s Intergraph). V teoretické rovině se už v 70. letech mluvilo o texturování (aplikaci 2D obrázků na 3D modely pro zvýšení detailnosti), pokročilých modelech per-vertex a per-pixel osvětlení, Z-Bufferu (oblasti pro uchování třetího rozměru každého pixelu na obrazovce) a dokonce i bump mappingu (textuře přidávající detaily například v podobě zvrásnění povrchu).

Myšlenka počítačové 3D grafiky je tedy velmi stará – starší než já i většina čtenářů blogu. Problém pochopitelně byl, že v 60. a 70. letech je 3D zobrazení otázkou spíše laboratoří a strojů velikosti minimálně větší lednice.

První grafické pracovní stanice

Implementace některých ze zmíněných funkcí do plnohodnotného zařízení schopného interaktivního 3D zobrazení na sice sebe nechala místy dlouho čekat, ale první grafické pracovní stanice a terminály přišly už začátkem 80. let. Pokud jde o 2D, byla nejspíš prvním úspěšným hráčem firma Apollo, kterou pak ještě koncem dekády stihlo koupit HP, aby si zajistilo lepší pozici na trhu. Jejich stanice nabídla to, co pak i většina konkurentů – 16bitový procesor (s 32bitovými vnitřními registry) Motorola 68000, monochromatický displej s vysokým rozlišením a operační systém UNIXového typu.

Záhy poté přichází na řadu stanice a terminály, které k tomu všemu nabízejí také specializované čipy starající se o akceleraci 3D zobrazení. Konkrétně jde o produkty firem Intergraph a Silicon Graphics. Byť jde o poměrně úzce zaměřená zařízení pro malý trh, poměrně rychle se v dané oblasti hromadí hodně peněz a tyto firmy začínají rychle růst.

intergraph-iproGrafická stanice od Intergraphu (80. léta, zdroj: ohiostate.pressbooks.pub)

Hodí se dodat, že na to, abyste počítačem zpracovali a zobrazili 3D scénu včetně všech efektů, nepotřebujete žádné specializované obvody. Všechno můžete klidně nechat počítat hlavním procesorem. Problém je v tom, že procesor není pro takový typ činností nejefektivnější. Přidávání specializovaných obvodů má dvě výhody: operace typické pro 3D zobrazení (násobení matic, transformace, výpočty parametrů trojúhelníků, osvětlení…) lze provádět vhodně navrženým obvodem podstatně rychleji a ušetřený čas hlavního procesoru je možné věnovat jiným činnostem.

Zatímco mezi herními 3D akcelerátory jsme si na geometrickou jednotku počítající transformace a osvětlení museli počkat až do roku 2000 (NVIDIA GeForce 256), v případě UNIXových pracovních stanic se geometrické jednotky objevily hned na začátku. Aby také ne, když za jednu takovou průměrnou stanici jste museli ještě v roce 1985 zaplatit okolo 30 tisíc tehdejších dolarů (oficiální ceny byly téměř dvojnásobné) a grafická karta se rozkládala přes několik obřích desek posetých desítkami čipů. To si pak výrobce mohl dovolit ledacos.

Nečekejte systém, na kterém byste si zahráli Crysis nebo Zaklínače 3. Byť šlo o na svou dobu velmi pokročilé počítače, grafika byla jednoduchá, bez textur, bez efektu poloprůhlednosti a z málo polygonů (500-1000 polygonů na celou scénu). Byla ovšem ve vysokém rozlišení a přijatelně plynulá. Dobrou představu si můžete udělat z prezentačního videa pro SGI IRIS 2400 (10MHz 68010, jednotky MB RAM; rok 1985):

sgi-iris-1500-geometry-board

Geometrická deska zodpovědná za 3D transformace v demu. Každý z geometrických koprocesorů má výkon přes 5 MFLOPS. Grafická jednotka se skládá ještě ze tří dalších desek (zdroj: sgistuff.net).

Tohle byla technologie, kterou si vyvolení mohli dopřát v počítači někde pod stolem. Nešlo o to nejlepší, co bylo v té době možné. To předváděl spíše Evans & Sutherland, který se věnoval vojenským leteckým simulátorům s cenou ještě mnohem vyšší. Jeho grafické obvody pracovaly v mini-počítačích (tedy počítačích velikosti ledničky) napojených na reálný kokpit letadel. Tohle je simulátor z první poloviny 80. let. Ve hrách jste si na podobnou grafiku museli ještě 15 let počkat:

IBM Professional Graphics Controller (PGC, 1984)

IBM PC bylo v 80. letech primárně kancelářský počítač, takže 3D grafika u něj byla spíše v pozadí. Přesto i té se určité pozornosti dostalo. Výhodou IBM PC byla nízká cena v porovnání s UNIXovými stanicemi a v případě početných PC-kompatibilních klonů to platilo dvojnásob. Nízká cena byla pochopitelně také něčím vykoupena, a to nejen primitivním jednoúlohovým operačním systémem.

V případě výkonu samotného procesoru (integer performance) kupodivu Motorola 68000 nemusí být nutně na takt rychlejší než ubohý Intel 8088 (natož Intel 8086, který nemá datovou sběrnici zkrouhnutou na 8 bitů). Je to dáno tím, že té 68000 všechno dlouho trvá a v určitých případech lze na Intelu něco vyřešit jednou instrukcí, která nemá alternativu v instrukční sadě původního 68k. Tohle ovšem platí, pokud se při výpočtu vlezete se vstupními daty do 64 kB operační paměti (což ve spoustě situací skutečně může stačit). Intel 8086/8088 sice zvládne adresovat až 1 MB (20 bitů), jenže celou adresu musíte složit z výběru segmentu (64 kB) a offsetu uvnitř něj, protože se pracuje pouze s 16bitovými registry. Tohle čachrování s registry hodně zdržuje, takže pro větší data už tak efektivní program nenapíšete a snadno se to všechno několikanásobně zpomalí. Naproti tomu Motorola 68000 má možnost přímo adresovat 16 MB operační paměti (24 bitů) pomocí hodnoty uložené v jediném registru. U pracovních stanic se na rozdíl od kancelářských počítačů tak nějak očekává práce s velkými daty, takže architektura od Motoroly se v tu dobu jevila jako jasně lepší volba.

Ani jeden z těchto procesorů neuměl přímo počítat s čísly v plovoucí řádové čárce (floating-point). V návrhu Intelu ovšem existoval matematický koprocesor Intel 8087, který tento nedostatek suploval (s teoretickým výkonem asi 0,05 MFLOPS). Původní Motorola nic takového sama nenabízela, takže ty lepší stanice měly obvykle nějaká vlastní řešení.

V roce 1984 vychází IBM PC 5170 AT s procesorem Intel 80286, který je ve srovnání s Intel 8088 daleko výkonnější. Průšvih se segmenty a offsety však zůstal. Tohle všechno se vyřešilo až tak kolem roku 1986-1987, kdy se začaly objevovat počítače s prvními opravdu 32bitovými procesory od Intelu (386) i Motoroly (68020). Oba procesory měly velmi podobný reálný výkon na takt, zvládaly pracovat s velkými daty a i ty jejich koprocesory na tom byly co do rychlosti dost podobně (Motorola sice byla rychlejší, ale ne o moc).

Ale vraťme se zpět do poloviny roku 1984. Tou dobou vychází zmíněné nové IBM PC 5170 AT. V prvních měsících prodeje počítače ještě nebyla dostupná grafická karta EGA (Enhanced Graphics Adapter; 640×350 16 barev), takže na výběr měli zákazníci jen MDA (Monochrome Display Adapter; pouze text v matici 80×25) a CGA (Color Graphics Adapter; 640×200 2 barvy, nebo 320×200 4 barvy). Právě v této době jiný tým uvnitř IBM představuje novou kartu nazvanou IBM PGC (Professional Graphics Controller). Určena byla jak pro starší IBM PC XT, tak i pro nové IBM PC AT.

ibm-pgcVšechny tři karty IBM PGC (zdroj: seasip.info)

Svými možnostmi působí karta téměř nepatřičně v porovnání se zbytkem nabídky u IBM. Pracuje totiž v rozlišení 640×480 a umí současně zobrazit 256 barev (z palety 4096 barev). Tím to ovšem nekončí. Tato karta, tedy přesněji trojice karet, zabere v počítači dva ISA sloty a má na sobě celý další počítač s 8MHz procesorem Intel 8088 a 64 kB paměti pro vykonávání kódu (nad rámec 320 kB video-paměti). Tento počítač má vlastní ROM s programem pro spoustu vykreslovacích funkcí. Místo aby hlavní počítač prováděl výpočty nutné k transformaci 3D prostoru na 2D obrazovku a vykreslení čar/trojúhelníků, stačí kartě poslat potřebné příkazy do fronty a ta je nezávisle na hlavním procesoru zpracuje.

Zajímavostí je, že v programu karty jsou právě i příkazy pro práci s 3D. Můžete jí posílat souřadnice čar a polygonů definované ve 3D (x, y, z) a ona už si je vnitřně přepočítá. Polygony je dokonce možné vykreslovat i vyplněné, což je náročnější. Display listy (seznamy vykreslovacích příkazů) lze uchovávat přímo v kartě, takže je nemusíte po každém snímku znovu nahrávat. Vykreslení 3D modelu z jiného místa a úhlu tedy vyžaduje jen pár příkazů a téměř žádnou další komunikaci po pomalé 8bitové ISA sběrnici.

Celé řešení mělo vlastně jen dvě nevýhody pro interaktivní real-time 3D zobrazení. Předně bylo pomalé, neboť Intel 8088 není zrovna optimalizovaný procesor pro práci s grafikou. I kdyby ovšem bylo rychlé, je tu problém pouze jednoho zobrazovacího bufferu (prostoru v paměti obsahujícího barvy všech pixelů pro vykreslení na obrazovku). Pokud tedy karta něco vykresluje, vidíte, jak se každý jednotlivý trojúhelník postupně rovnou objevuje na obrazovce, a většinu času tedy vidíte nekompletní scénu. Při dalším snímku se celý obraz smaže a vše se opakuje. Takové řešení je vhodné jen pro občasné překreslení statické scény, ne pro cokoli real-time.

V případě real-time zobrazení je nutné použít techniku zvanou double-buffering. V takovém případě máte dva buffery pro uchování obrazové informace, takže vždy může grafická karta vykreslovat na monitor z jednoho, zatímco v druhém se scéna teprve připravuje. Přechod mezi snímky se pak řeší buďto rychlým překopírováním připraveného snímku z jednoho bufferu do druhého, nebo prostou změnou informace, který buffer slouží pro výpočet nové scény a ze kterého se kreslí na monitor (žádná data se tedy nekopírují).

IBM PGC má pro obrazová data pouze 300 kB, což stačí přesně pro uchování rozlišení 640×480 ve 256 současných barvách (640*480/1024 = 300 kB). Při double-bufferingu by karta musela mít video-paměti alespoň 600 kB.

IBM PGC se s ohledem na ceníkovou cenu $4290 ani nemohlo stát běžnou součástí PC. Bylo to opět zařízení pro úzkou skupinu lidí a sloužilo obvykle ve specializovaných CAD/CAM/CAE programech. Z běžně dostupných programů by údajně měly PGC akceleraci podporovat některé verze AutoCADu. Bohužel nikdo z těch, kteří dnes takové karty mají, se o otestování nepokusil.

Platforma PC po hardwarové stránce umožňuje prakticky od počátků práci na dvou monitorech současně. Také v případě PGC je možné používat systém s dvěma monitory. V závislosti na nastavení se PGC umí chovat jako specializovaná karta, takže systém startuje ze standardní grafické karty (MDA, CGA, EGA) a o jakékoli zobrazení na PGC monitoru se pokouší pouze u programů, které jsou pro PGC přímo napsané. Druhou možností je aktivace emulace CGA, kdy PGC může sloužit jako jediný (případně hlavní) grafický adaptér v počítači, abyste nepotřebovali druhý monitor (nativní PGC aplikace si kartu umí přepnout zpět do nativního módu). Vypadá to ovšem, že o emulaci CGA se stará hlavní procesor karty, takže je vše neskutečně pomalé, jak je ostatně možné vidět na videu níže (později je ve videu vidět, jak skutečná CGA překresluje mnohem rychleji):

Matrox PG-640, PG-1280 (1985, 1986)

IBM sice myšlenku 3D akcelerátoru v PC postupně opustilo, když se začalo zabývat RISCovými pracovními stanicemi, našlo se však několik následovníků. Jedním z nich byl Matrox, který poměrně záhy vyrobil kartu schopnou akcelerovat programy napsané pro PGC. Koncept karty byl podobný – výstup v 640×480 ve 256 barvách, emulace CGA (pro případ, že nechcete používat dva monitory) a schopnost asynchronně provádět různé příkazy od počítače včetně 3D vykreslování.

Na rozdíl od IBM ovšem Matrox sáhl po poněkud vhodnějších čipech (National Semiconductor 32016 CPU spolu s matematickým koprocesorem) a nejspíš také kód napsal efektivněji. Výsledkem bylo asi desetinásobné zrychlení. Vzhledem k tomu, že se bavíme o kartě, která v nejlepším případě zobrazila ne více než 2000 trojúhelníků za sekundu, znamenalo by to po vydělení deseti, že PGC opravdu žádný trhač asfaltu na 3D nebyl.

Vedle programů napsaných pro PGC bylo možné akcelerovat zobrazení také v celé řadě CADů, pro které Matrox sám napsal optimalizované ovladače. Stále však platila stejná omezení ohledně bufferů, která kartě opět znemožňovala práci v real-time režimu. Poměrně nízký pixel fillrate (rychlost kreslení jednotlivých bodů) stejně znemožňoval překreslit obrazovku v plném rozlišení více než asi 1,5x za sekundu, i kdyby byl přes celou obrazovku jen jediný trojúhelník.

matrox-pg-1280a-pc-at

matrox-pg-1280a-card-out

Matrox PG-1280A – tři desky zabírající dva ISA sloty v počítači. Karta vhodná pro práci v CAD programech v rozlišení 1280×1024 (zdroj: Infoworld 1986, twitter/Foone).

O dva roky později přichází novější verze, která je opět rychlejší, protože došlo k výměně původního procesoru za Texas Instruments TMS34010 – obvod přímo vytvořený pro práci s grafickými daty. Rozlišení se zvedlo až na 1280×1024, nicméně všechna omezení zůstala stejná včetně barevné hloubky (256 barev).

Matrox SM-640 a SM-1281 (1988)

Prvním skutečně real-time 3D akcelerátorem pro IBM PC byly až Matrox SM-1281 a SM-640, které sice měly základ společný s řadou PG, nicméně byly rozšířeny o další obvody a více paměti. Čip pracoval stále jen v 8bit barevné hloubce (256 barev), ale paměť pro obrazové buffery se v případě SM-1281 rozšířila na 2,5 MB. Obraz se při plném rozlišení 1280×1024 konečně vešel do paměti dvakrát a bylo možné pracovat s double-bufferingem (1280*1024*2/1024^2 = 2,5 MB).

Matrox nemusel vyvíjet všechno vlastní, a tak na jedné z karet údajně byl licencovaný geometrický čip od Silicon Graphics (SGI). Názory na výkon se trochu liší, ale mluví se o šesti a deseti tisících trojúhelníků za sekundu. Sám bych věřil spíše nižšímu z čísel. Karta údajně podporovala také Gouraudovo stínování (plynulé přechody barev mezi jednotlivými vrcholy polygonů, „Gouraud shading“) a Z-buffer. Díky Z-Bufferu je možné vykreslit objekty, které se navzájem protínají. Při kreslení nového objektu do scény se totiž u každého pixelu porovnává jeho vzdálenost s tím, co už je vykresleno ve scéně, a pokud je vzdálenost vyšší, nový bod se do obrazu nezapíše.

Pro představu – při kreslení bez Z-Bufferu se musí všechny polygony před vykreslením srovnat tak, aby se kreslilo od nejvzdálenějších k nejbližším (tuto techniku používaly obvykle ještě mnohem později PC hry, které  3D scénu počítaly přes procesor).

Za kartu SM-1281 jste koncem roku 1988 zaplatili $6995, téměř dvojnásobek toho, co stála PG-1281 se stejným „2D“ základem.

matrox-vr-scene

matrox-sm1281-power-glove

Rozšířenost mezi uživateli samozřejmě opět odpovídala ceně. Využití bylo jen ve specializovaných aplikacích, pokud jde o PC (existovaly i varianty pro DEC a Sun). Dnes již na internetu najdete obvykle jen nějaké vědecké články, kde tato karta byla použita pro virtuální realitu (speciální rukavice a helma se snímáním pohybu a stereoskopickým zobrazením). Jednoduchá 3D scéna virtuální reality s jednou místností a stolem uprostřed neměla více než 200 trojúhleníků a prý se vykreslovala rychlostí 18 snímků za sekundu. Pokud tedy šlo o vykreslování do helmy, bylo nutné obraz spočítat dvakrát, takže se dostaneme někam k sedmi tisícům polygonů vykreslených za sekundu (200*18*2 = 7200). Černobílé obrázky sice nejsou pro luštění kvality zobrazení ideální, ale ve scéně nejspíš není použito Gouraudovo stínování (tj. celý polygon má jednu barvu, „flat shading“) a ani Z-buffer není nutný.

Pokračování příště

Že se real-time 3D v PC dostalo do komukoli dostupného komerčního 3D akcelerátoru už v 80. letech a že za to mohl Matrox, bylo i pro mě před časem překvapení. Při hledání informací zejména o řadě SM jsem se dostal pomalu až na kraj Internetu. Prvenství ve 3D pro PC sice Matroxu připisuje kde kdo, nicméně většinou se mluví až o kartě Matrox Impression Plus (konec 1993).

Nic to ovšem nemění na faktu, že pro hry bylo plnohodnotné 3D zatím nezajímavé a karty jako SM-1281 nabízely nízký výkon (za hodně peněz) pro téměř jakoukoli serióznější real-time 3D grafiku. Problém byl i v absenci univerzálního programovacího rozhraní, které by zajistilo možnost běhu programů na různých kartách a různých systémech.

Nějak se ovšem začít muselo. Příště se přesunu do zajímavějšího období, kdy se 3D stalo naprosto seriózní záležitostí s praktickou využitelností v mnoha odvětvích…

sgi-irisvision-infoworld-1990

(zdroj: Infoworld, 1990)

Komentáře k článku

  1. 1. elzet  18.11.2018  9:14:01

    Skvělý článek, díky! Zrovna minulý týden jsem vykládal něco z historie 3D grafiky studentům a budu muset příští hodinu přednést opravu ;)

  2. 2. swarm  18.11.2018  11:16:56

    [1] Tak to je pěkné. Já tohle bral loni s deváťákama, když jsem ještě učil v rámci skill-based volunteeringu (letos už na to nemám čas), a historie grafik, 3D i her měla velký úspěch. Doporučuji ukázat pro srovnání video z toho leteckého simulátoru od E&S a vedle toho pak třeba MS Flight Simulator 1.0/2.0, protože to je stejná doba :) Tam si člověk nejvíc uvědomí, jak moc ta technologie už byla napřed.

    Video SGI 2400 je velmi zajímavý materiál. Zazněly tam i nějaké parametry:

    70,000 coordinates per second
    22,000 depth-cues lines per second
    32bit Z-Buffer and color buffers
    fill rate up to 44 Mpixels/second

    Předpokládám, že podle nastavení to bude umět kreslit tak 10-15 tisíc trojúhelníků za sekundu (aspoň ve formě triangle-stripů), což je tedy asi 10x méně než zvládla o deset let později 3Dfx Voodoo Graphics na Pentiu 166MHz (resp. necelá polovina ATI Rage II na stejném procesoru), ale třeba pixel fill-rate 44 miliónů pixelů za sekundu (rychlost vykreslovat pixely ve 3D) odpovídá přímo hodnotě té 3Dfx Voodoo Graphics (a dvojnásobku Rage II). Je teda pravda, že u těch karet ze začátku druhé poloviny 90. let už šlo o vykreslování texturovaných polygonů (resp. pixelů), ale tady to pro změnu bylo v 32bit barevné hloubce místo 16bit.

    Vysoký fill-rate samozřejmě není náhoda. První Voodoo jelo obvykle v 640×480 a Rage II klidně i v nižších rozlišeních. Naopak SGI 2400 bylo spíš o ~1024×768 a 1280×1024.

    Jestli jim něco budeš povídat dříve, než stihnu napsat druhý díl (ještě jsem nezačal), tak se podívej na tu SGI IrisVision grafiku, která pro PC vyšla roku 1991. Je to přepracovaná grafika z SGI Personal Iris a po tom, co jsem si pročetl stovky stránek vývojové dokumentace této grafiky, jsem se rozhodl, že něco chci sepsat na blog. Bohužel při prohledávání všech zdrojů jsem zjistil, že jestli to vezmu úplně od začátku, tak se v prvním díle k IrisVision ani nedostanu. A stalo se.

  3. 3. Pavel Čalkovský  18.11.2018  19:31:31

    Moc pěkný článek, kdybys při pátrání v hlubinách webu narazil na praktické zprovoznění TIGA akcelerátorů, byl bych vděčen.Zatím se nám s Milanem Zítkem nedaří spustit ani demo a Milan už to vzdal. Doufám v brzké pokračování
    Pavel

  4. 4. mixal11  21.11.2018  14:51:57

    Zaujimave obdobie.

    Spominam, ze moje prve pc malo zvlastnu graficku kartu a este zvlastnejsi monitor. Bolo to z nejakeho Svajciarskeho ustavu, uz v 93 beznadejne zastarale.

    Graficka karta bola 8 bit SVGA s 256 kB RAM, co bolo zaujimave, ze mala aj podporu pre ega monitory. Mala 9pin Canon aj 15pin Canon konektory.

    K tomu som mal Monitor ktory ma Canon 9 vedel bezat ako EGA monitor a aj nejaky zvlastny standard – PGA, PGW alebo take nieco.

    Dlho som bezal v rezime cez 9 Pin, ako EGA monitor. Ta graficka karta dokazala zobrazovat cez to aj VGA rezimy. (tusim aj 800x600x16 farieb) Problem boli 256 farebne rezimy. Farby boli uplne uletene, akokeby invertovane, nahodne, hrozne. Potom som ako student priemyslovky zletoval konvertor z 15 pin Canon VGA na ten analogovy rezim monitora (ten PGW, PGA alebo take nieco) a fungovalo to, sice to bolo velmi tmave ale slo to! Pinout toho analogoveho rezimu som nasiel v navode k tomu monitoru a spojil som co mi pripadalo podobne/take iste :) Konecne doom vyzeral ako mal. Aj ked na tej 8 bit VGA siel par fps :)

    IBM PGC monitor pouzival 9 pin canon analog? Mohlo sa jednat o monitor pre tuto IBM graficku kartu alebo to bola nejaka specialita?

  5. 5. swarm  29.11.2018  12:46:00

    [3] O TIGA bohužel zatím nic nevím, krom toho, že to existovalo. Snad někdy příště :)

    [4] Těžko říct, co to bylo. Přechod od EGA k VGA byl plynulý, takže existovaly SuperEGA karty, které fungovaly jen jako EGA, ale uměly také pár vyšších rozlišení, pokud se připojil MultiSync monitor (typicky 640×480, 800×560, ale i další). Pak byly různé hybridy, které si také poradily s 16barevnými VGA rozlišeními, pokud byly řízeny voláním BIOSu a ne přes registry (protože fakticky šlo stále spíše o EGA).

    Monitory byly drahé, takže pak byly karty, které nabízely oba typy konektoru – digitální 9pin „EGA“ i 15pin analogový VGA. Podle nastavení jumperů na kartě byl vybrán aktivní výstup. Teoreticky je tedy možné mít i VGA kartu, ke které jdou připojit EGA monitory (resp. kompatibilní MultiSync).

    Stejně tak monitory mnohdy měly vzadu přepínač na různé typy vstupů, takže tam byly analogové, digitální a někdy i kompozitní signály na výběr.

    Ano, IBM PGC i ten Matrox mají analogový 9pin konektor. Analogový signál byl nutný, protože digitální EGA monitory uměly zobrazit maximálně 64 barev, zatímco tady bylo potřeba, aby monitor rozlišil 12bitů barev (=4096). Relativně snadno jde překonvertovat tento analogový 9pin na standardní VGA konektor a pak už je jen potřeba, aby připojený monitor chápal synchronizační signály z karty. Nicméně v tom videu s PGC je to vidět – autor tam připojil přes pasivní redukci běžný VGA monitor.

  6. 6. jarop  9.7.2019  10:04:08

    Ad „Zatímco mezi herními 3D akcelerátory jsme si na geometrickou jednotku počítající transformace a osvětlení museli počkat až do roku 2000 (NVIDIA GeForce 256)“ Tento čip nebol programovateľný ako grafické systémy SGI, tým bol až geforce 3 (shadery). Zaujímavé je, že Commodore plánoval v novej architektúre amigy v polovici 90tych rokoch použiť programovateľný chipset Hombre, kde základom bol upravený HP PA RISC procesor. Škoda, že sa to nepodarilo realizovať.

  7. 7. swarm  9.7.2019  17:39:18

    [6] Geometrická jednotka nemusí být nutně programovatelná. Ostatně nejsem si jistý, kolik programovatelnosti geometrické jednotky nechalo SGI zpřístupněno uživatelům jejich grafik (tj. programátorům aplikací).

    Ohledně Hombre – ten přístup s PA-RISC by nebyl špatný. Mimochodem na HP fx grafikách je ostatně PA-RISC taky přítomen (řízení, geometrie). S ohledem na dobu, kdy to vyvíjeli, by to byla asi docela loterie, jestli by výsledek stál za něco i v texturovaném 3D. Sony (PS1), který zmiňuje wikipedia pro srovnání, třeba mělo na textury dobrý výkon, ale perspective correction stála za prd a filtrace textur chyběla úplně. Aby se textury na polygonech při pohybu nevlnily, tak se musely dělat ve hrách šílené hacky – to všechno proto, že v té době udělat hardwarovou akceleraci textur bylo dost tranzistorově náročné, i se všemožnými usnadněními na úkor kvality.

    Fill-rate 30 Mpix podle mě mohl být realistický (SGI Indy, který by byl možná ve stejné ceně, dával 50 Mpix/s) – jen to určitě bude hodnota pro netexturované polygony.

  8. 8. jarop  11.7.2019  10:36:53

    Ad Playstation – čítal som na viacerých článkoch, že vôbec nemal perspective corerected texturovanie.
    Ad Amiga Hombre – Bol navrhnutý tak, že celý chipset obsahoval len 2 prípadne 3 chipy, preto mal byť lacný. Existovalo viacero variant – pre plný počítač, pre konzoly, dokonca prídavná karta pre PCI.
    Detailný návrh som našiel na webe (bývalé interné dokumenty commodore) https://ftp.uni-erlangen.de/aminet/docs/hard/Hombre_shrinked.zip
    Pre grafiku mal byť určený upravený PA RISC. Niečo podobné ako kedysi spravil TI pre 2D grafiku – programovatenľý GPU TMS34010.
    Podľa mňa je programovateľný chip výhodou nad fixed function chipmi, pretože je flexibilný, dajú meniť funkcie a algoritmy a optimalizovať – výpočty, texturovanie. Fixed function chipy viackrát obsahovali chyby, ktoré znemožnovali použiť niektoré funkcie alebo algoritmy v nich rýchlo zastarali.
    Prečo sa miesto programovatených procesorov začali hromadne používať zákaznícke chipy na grafiku, zvuk je zrejme otázka ceny a rýchlosti.


Napsat komentář