Pracovní stanice, IBM PC, Silicon Graphics a začátky 3D (díl 3.) – příchod textur a herních akcelerátorů

Začátkem devadesátých let už bylo jasné, že 3D je cesta, kterou se počítačový svět vydá. Ač v PC zatím žádné herní 3D akcelerátory neexistovaly, vývojáři her chrlili více a více her, které trojrozměrný svět počítaly s pomocí procesoru a detailnost grafiky se s každým rokem (a novými procesory) rychle zlepšovala. Masový příchod 3D akcelerace se už blížil…

50644873_1997526486996045_2153323502147469312_n

Poslední díl jsem zakončil povídáním o 3D akcelerátoru SGI IrisVision. Speciálním řešení od SGI, které umožňovalo na 32bit x86 procesorech pracovat s plnohodnotnými knihovnami IRIS GL (přímý předchůdce OpenGL). Karta byla nesmírně zajímavá a skutečně se používala pro specifické aplikace (3D modelování, 3D CAD), ale o úspěchu se hovořit nedá ani omylem. SGI proto DOS/Windows platformu na delší čas opustilo a nechalo trh PC na pospas Matroxu a SPEA.

SPEA byla po celou svou dobu specializovaná na rychlé 2D akcelerátory a 3D akcelerátory pro CAD. V roce 1991 měl tento výrobce kartu schopnou zobrazit až 30 tisíc jemně stínovaných polygonů, nicméně s ohledem na velikost paměti byl 3D rendering omezen na nižší rozlišení, případně i bez double-bufferingu (tj. nepoužitelný na interaktivní real-time 3D). Srdcem byl zajímavý procesor Intel i860, který se používal také v geometrických jednotkách hi-end systému od SGI (nicméně ve větším množství).

Kdo si takovou kartu koupil? Asi jen někdo, kdo používal svůj počítač primárně k práci v AutoCADu.

Matrox měl našlápnuto o něco lépe a tvrdě pracoval na vylepšování čipů vlastního návrhu. Už tu první 3D grafiku, která byla v běžných počítačích kompatibilní s IBM Professional Graphics Controllerem, dokázal protlačit i do mini-počítačů PDP se sběrnicí QBUS (Matrox QG-640). S ne-PC světem měl zkušenosti a jeho pozdější 3D řešení se v roce 1990 vyskytlo i v pracovních stanicích od Sunu (výkonem blízko SGI IrisVision). Rozhodně se Matrox neomezoval jen na PC.

matrox-impression-box

Krabice od Matrox MGA Impression (1993) – zmínka o 3D akceleraci je až na zadní straně (zdroj)

Matrox v případě PC chápal, že jestli chce 3D nějak prosadit, musí jít s komplexností a cenou dolů, aby si jeho karty mohlo koupit více lidí. V roce 1993 vydává 3D akcelerátor MGA Impression Pro s necelými 9 MB paměti (odděleně pro obraz a Z-Buffer) a podporou 3D zobrazení v programech AutoCAD i 3D Studio. Na něm je zajímavé, že se (pominu-li DA převodník, BIOS a paměť) skládá z pouhých dvou čipů. Celé řešení se vejde na jednu delší kartu typu ISA (nebo VL-BUS) a nezabírá více než jeden slot. Cena? $1.999. Za své peníze zákazník dostal také rychlou 2D kartu s DOS/VGA kompatibilitou a rychlým převodníkem, který ještě v rozlišení 1280×1024 zvládal 100 Hz (což bylo víc, než kolik zvládal kdejaký špičkový monitor té doby).

Kdo se spokojil s 2D funkcemi a velmi osekanou 3D akcelerací (primárně wireframe), mohl jít do levnějšího MGA Ultima, což byla karta, která ve 2MB verzi stála pouhých $599. O rychlosti akcelerace obou řešení ve 3D bohužel nemám žádné informace.

Mnohem zajímavější řešení je Matrox Impression Plus vydané o rok později (Infoworld). Karta začínala v základu s 2MB pamětí na $449 a bylo ji možné nejen rozšířit paměť na 6 MB, ale také přidat modul s video vstupem a modul s MPEG video akcelerací. Je na ní zajímavé, že umí všechno, co Impression Pro, ale vypadá už přitom jako podstatně novější karty – tj. jeden čip a unifikovaná paměť na všechno (obraz i Z-Buffer) na krátké PCI kartě. Přitom výkon poskočil na 90 tisíc jemně stínovaných trojúhelníků za sekundu (v triangle stripech). S tím geometrickým výkonem je to tedy o něco složitější – dle všeho totiž karta nemá geometrickou jednotku a tenhle výkon je ve skutečnosti spíše zásluhou dobových procesorů Intel Pentium (66 MHz). Pro srovnání, 75MHz procesor Intel 486DX4 stačil na výpočet jen asi 20 tisíc trojúhelníků.

Karta vychází v době, kdy se na světlo světa dostává Windows NT 3.5 se zbrusu novým 3D rozhraním OpenGL. Obojí je kartou záhy podporováno, byť středobodem 3D ovladače jsou stále spíše specifická rozhraní Autodesku.

matrox-mga-2064w

Nástupcem karty byl Matrox Millennium (MGA-2064W, rok 1995), který si získal velkou oblibu zejména jako rychlý 2D akcelerátor s výkonnými převodníky, díky kterým bylo možné provozovat vysoké obnovovací frekvence i v rozlišeních jako 1600×1200. Obsahoval však také 3D jádro s omezenou podporou OpenGL pro lepší akceleraci CADů. Vzhledem k tomu, že architektura byla pouze mírným vylepšením předchozího čipu, akcelerace se týkala pouze vykreslování trojúhelníků s jemným stínováním, nicméně bez textur. V tomto ohledu tedy karta technologicky stále spadá do první poloviny 90. let.

Windows NT

Windows NT 3.5 byl poměrně revoluční systém. Oproti první verzi NT (3.1) byl mnohem rychlejší a s menšími nároky na operační paměť. Vzhled byl sice podobný klasickým Windows 3.11, ale uvnitř to byl plně 32bitový operační systém s preemptivním multitaskingem, podporou více procesorů, souborovým systémem NTFS s podporou dlouhých názvů souborů, nativní prací v síti (včetně TCP/IP, AppleTalk a dalších) a přístupovými právy. Bylo zde v podstatě všechno, co měl Windows NT 4.0 (1996), jen bez nového vzhledu z Windows 95.

Už na 50MHz procesoru 486 s 16 MB operační paměti se NT 3.5 choval daleko lépe než standardní Windows. Takový počítač se přitom dal pořídit s CD-ROM, 270MB pevným diskem a ISA/PCI základní deskou do tří tisíc dolarů (do čtyř, pokud jste preferovali 60MHz Pentium). I kdyby se k tomu přihodila ještě tisícovka za zmíněnou kartu Matrox Impression Plus s rozšířenou pamětí, pořád šlo o řešení levnější než UNIXové stanice.

Rychlý, robustní a stabilní operační systém na obyčejných PC rychle přilákal profesionály z jiných běžných platforem. Stal se například útočištěm pro mnoho uživatelů profesionálních variant počítačů Commodore Amiga. Nad Amigou jako platformou se totiž už stahovala mračna a dlouhé roky bylo vidět, že v profi segmentu se uživatelé ničeho pořádného nedočkají, když ani grafický obvod posledního modelu A4000 stále neuměl nativně pracovat s 16 milióny barev. Jak byl operační systém Amiga OS s rychlým preemptivním multitaskingem velkou předností v 80. letech, nyní již bylo vidět, jak se některá tehdejší rozhodnutí proměnila v omezení. Velké výtky obvykle směřovaly k nestabilitě systému vlivem chybějící ochrany paměti. Přechod na Windows NT byl obrovský skok ve stabilitě a díky tomu, že mnoho společností původně vyvíjejících pro Amigu začalo portovat své programy také pro NT, byl přechod i relativně snadný.

V případě programů jako LightWave 3D se navíc projevila výhoda NT v podpoře rychlých procesorů MIPS a DEC Alpha. Jedna stanice s Alphou a Windows NT dokázala výkonem nahradit celou místnost propojených Amig, když došlo na výsledný rendering 3D animovaných scén do filmů a TV pořadů. Když pak LightWave 3D přidal podporu pro OpenGL (která ve verzi na Amize logicky chyběla), přecházeli už i ti nejzapálenější fandové (pracující s 3D).

Windows NT zatopil také Applu, u kterého pouze zvýraznil nedokonalosti a nestabilitu původního operačního systému pro Macy. Apple měl ovšem na rozdíl od Amigy alespoň solidně výkonný hardware s procesory PowerPC, takže to pro něj nebylo smrtelné. Nicméně neschopnost dodat lepší operační systém mu způsobila hodně problémů. Uživatelé si museli počkat až na Mac OS X (verze 10.0 vyšla v roce 2001).

DODATEK: Hodí se dodat, že nestabilita operačního systému se samozřejmě nevyskytovala jen u Applu a Amigy. Windows i OS/2 měly také své problémy obdobného rázu. V 90. letech byly prostě uživatelé podstatně zvyklejší na pády programů a nutnost restartovat počítač.

UNIXové pracovní stanice

V UNIXovém světě se s pokrokem ve 3D také nezahálelo. Tahounem bylo SGI, které nabízelo nějakou formu 3D akcelerace (téměř) v každé své pracovní stanici včetně low-endu, a bylo vyhledávanou platformou na cokoli, co se nějak týkalo 3D grafiky. 3D akcelerátory existovaly i do pracovních stanic od Sunu (Sparc), HP (PA-RISC) a IBM (Power), nicméně zde byly volitelné. Stanice těchto výrobců byly obvykle dodávány pro jiný účel, takže v jejich útrobách byla většinou jen nějaká primitivní 2D grafická karta.

iris-indigo

SGI IRIS Indigo a vřelé přijetí recenzenty (zdroj)

V roce 1991 vychází ikonická stanice SGI Indigo. Malá stylová krabice modré barvy se stala pro mnohé prvním kontaktem s počítači SGI. Zprvu byl počítač nabízen s 33MHz procesorem MIPS R3000 a volbou několika 3D akcelerátorů (různý počet geometrických jednotek, 8/24bit barvy, volitelně Z-Buffer). Ti, kterým o 3D výkon nešlo, se dočkali také jednoduché 2D grafiky (frame buffer), což byla v případě SGI výjimka. Základní konfigurace stlačila cenu na $8.000. Reálně jste se stejně dostali s diskem a 3D akcelerací na dvojnásobek, jenže i tak jste byli téměř na polovině ceny, kterou byste zaplatili dva roky zpátky za předchozí model Personal IRIS. Do roka se objevila nová verze základní desky a 64bit procesory řady MIPS R4000 (100 a více MHz), aby výkon zas poskočil.

V případě grafického akcelerátoru Elan (nejvyšší verze) byla osazena rovnou čtveřice geometrických jednotek, což v kombinaci s rasterizační jednotkou pracující na 50 MHz dávalo výkon daleko vyšší než cokoli dostupného v PC nebo Macu. Přitom Indigo bylo menší než obvyklé PC (recenze v CADCAM). Grafické karty pro Indigo umožňovaly obrazový výstup v rozlišení 1024×768 a 1280×1024 při obnovovací frekvenci 72 Hz a až 16 miliónech barev.

indigo2

SGI Indigo2, jak ho SGI ukazovalo v promo materiálech

Velký úspěch pomohl SGI v roce 1993 uvést na trh celou řadu nových modelů pro všechny typy zákazníků. Původní Indigo dostalo dva nástupce – Indy a Indigo2. Sice se nabízelo, že by Indigo2 mělo být tím jediným nástupcem, ale dvojka byla ve skutečnosti mnohem větší, výkonnější a rozšiřitelnější (recenze v PCW). Jo a samozřejmě také mnohem dražší. Kromě grafických možností z předchůdce přibyla ještě varianta Extreme Graphics, která hrubou silou zdvojnásobila rasterizační výkon (tj. rychlost, kterou se pixely na obrazovce vykreslují).

SGI Indy je proti Indigu naopak ještě menší a v základní konfiguraci stálo pouhých $5.000 (ovšem bez disku, bez CPU cache) a už tato základní konfigurace nebyla úplně nepoužitelná při práci s 3D. Rozumná konfigurace vyšla aspoň na $8.000 a samozřejmě ty nejvyšší šly klidně přes $20.000 (recenze v magazínu Byte, recenze v PCW).

Zacílení SGI Indy bylo velmi specifické. Na IRIX (operační systém od SGI) vycházely programy nejen pro práci s 3D grafikou, ale například také vektorové i bitmapové editory a střihové programy na video (na IRIX existovaly i programy od Adobe jako Photoshop, Ilustrator a Premiere). SGI chtělo touto stanicí nabídnout řešení pro uživatele nejvýkonnějších Maců. Myšlenka byla jednoduchá – kdo chtěl skutečně hodně výkonu v Macu, ten obvykle šel cestou nějakého hi-end modelu a následným upgradem (klidně od třetí strany). Dohromady pak takový počítač stál tolik, co použitelný Indy, který nabízel nejen více výkonu, ale také daleko schopnější operační systém. Indy měl v základu dva Macovské sériové porty, 10Mbit/s Ethernet, ISDN modem a dokonce i analogové a digitální video vstupy (digitální byl používán s dodávanou webkamerou pro video-konference).

sgi-indy-workplace

Náš SGI Indy s externí SCSI (2x) CD-ROM mechanikou – snaha o přímou konkurenci hi-end modelům Apple Mac (vyšší rozlišení na tumblr)

V případě výkonu to bylo zprvu trochu složitější. Nejlevnější konfigurace měla příliš málo operační paměti a nejlevnější procesor bez sekundání cache také nedával tolik výkonu, kolik se od SGI očekávalo. Zlí jazykové dokonce tvrdili, že základní Indy bylo rychlé pouze jako ten Mac. Nakonec se s touto ostudou SGI vyrovnalo – novou verzí zefektivnilo činnost operačního systému a přidalo více paměti do základních konfigurací.

Ačkoli bylo Indy úplným dnem nabídky SGI, už jeho základní grafická karta nebyla tak primitivní, jak se dnes mnohé zdroje tváří. V SGI udělali hardwarovou akceleraci IRIS GL (a následně OpenGL), kde sice procesor musel dělat všechnu geometrii (podobně jako herní grafiky do příchodu GeForce 256) a dokonce musel i přepočítávat počáteční a konečnou barvu každého řádku vykreslovaného trojúhleníku, ale kreslení daného řádku pak už bylo pouze v režii grafické karty. Ta si poradila jak s plynulým přechodem mezi barvami (pro jemné stínování), tak s poloprůhledností. Rasterizační jednotka navíc byla na poměry roku 1993 nesmírně rychlá (verze schopná zobrazit 16 miliónů barev měla 192bitovou paměťovou sběrnici) – 50 Mpix/s pro stínované polygony a 20 Mpix/s, když se přidá i poloprůhlednost. To jsou hodnoty, které měl leckterý PC 3D akcelerátor v roce 1997. Textury ovšem zatím nebyly hardwarově podporované na žádné z grafice v Indigu (1 i 2) a v Indy. Pokud program kreslil trojúhleník s texturou, byl daný trojúhleník vykreslen pomocí procesoru, a tedy daleko pomaleji. Možnost kreslit textury tímto způsobem byla přidána jen proto, aby programy napsané pro hi-end systémy při spuštění nespadly.

Kdo si chtěl hrát s texturami, ten se musel podívat po hi-endu v podobě SGI Onyx s grafickými řešeními Reality Engine 2. Nejmenší z Onyxů byl velký asi jako menší lednička a vešly se do něj čtyři procesory. Ty největší se skládaly z modulů velikosti racků a mohli jste jich zapojit tolik, že jste získali jeden počítač s až 36 procesory a několika grafickými kartami. Kdyby vás zajímalo, kdo si podobné stroje mohl kupovat, tak nástupce si později ve verzi SGI Origin 2000 (tj. bez grafik) koupil třeba John Carmack do id Software (v roce 1997, plan file strana 33). Původních osm procesorů záhy rozšířil na šestnáct (180MHz R10000) a používal jej například při vývoji Quake II pro výpočty osvětlení (lightmap) v jednotlivých herních úrovních.

Výkon Reality Engine 2 byl v plném zapojení někde na úrovni NVIDIA GeForce 256. Jen tedy vyšel o sedm let dříve. Plná konfigurace měla až 160 MB video-paměti pro buffery a až 16 MB paměti pro textury. Geometrii počítalo šestnáct procesorů Intel i860XP. Na 3D grafiku byste v roce 1993 jen těžko sháněli výkonnější počítač. Popisovat samotný Onyx více do detailů je zbytečné, když k tomu už Dodoid natočil pěkné video:

Rok 1995, textury a herní 3D akcelerátory

Pokud jste si začátkem roku chtěli koupit nějakou grafickou kartu s „3D“ do svého počítače, na výběr toho moc nebylo. Pravděpodobně byste skončili u (v minulých kapitolách zmíněného) Matrox Impression Plus. Na CD („3D Superpack“) přibaleném ke kartě byste našly čtveřici her ve verzi s hardwarovou akcelerací pomocí této karty. Všechny hry byly hnusné a nestojí za zmínku. Větší smysl dával nákup karty kvůli akceleraci OpenGL pod Windows NT (3.5). Jenže, jak karta neuměla textury, ani poloprůhlednost, dokázala z celého OpenGL akcelerovat jen malou část funkcí, která tak tak stačila pro použití v CADech nebo programech jako 3D Studio.

V polovině roku by volba padla spíše na nový Matrox Millennium, který byl aspoň rychlejší a neměl problém s vyšším rozlišením, přesnějším Z-Bufferem a 32bit barevnou hloubkou pro 3D. Jenže to bylo všechno.

Jiná byla situace, pokud jste si otevřeli nějaký počítačový, případně přímo herní magazín. Tam už se mluvilo o konkrétních přicházejících 3D akcelerátorech přímo určených pro hraní her. Vývojářská studia již měla prototypy některých karet a pracovala na akcelerovaných verzích svých nových her. Hype už byl tak silný, že snad nemohlo následovat nic jiného než zklamání.

Pokud se ptáte, proč byli herní vývojáři tak diví do vytváření konverzí her s akcelerací pro nějakou konkrétní 3D grafiku (a žádnou jinou, protože nebylo univerzální API), odpověď jsou peníze. Firmy vyrábějící 3D akcelerátory chápaly, jak je důležité mít nějaké hry, které na kartě bude možné v době uvedení hrát, a byly za to ochotny platit statisíce až milión dolarů (alespoň tak se v roce 1996 vyjádřil Brian Hook pro Game Developer Magazine). Takovou nabídku bylo těžké odmítnout, když konverze mnohdy znamenala jen několik týdnů práce.

Tasmania

Paradise Tasmania 3D (1995) – přídavný akcelerátor s podporou textur (zdroj)

Herní 3D akcelerátory se staly realitou až před koncem roku. Na trh se dostaly tři a ani jeden z nich nebyl úspěšný. Pamatujete si na grafické čipy od Western Digital? Prodávaly se na kartách pod značkou Paradise a začátkem devadesátých let byly velmi úspěšné. Jenže pak se Western Digital rozhodl výrobu čipů ukončit a grafickou divizi prodal Philipsu. Ale dva dny před tím, než k prodeji došlo, byl uveden přídavný 3D akcelerátor Paradise Tasmania 3D. Byla to karta do PCI s 3D čipem od Yamahy (více info), která se propojovala s hlavní grafikou podobně jako pozdější 3Dfx Voodoo Graphics.

Pixel fill-rate pro texturové polygony se zdá být jen někde u 4-5 Mpix/s, což nedalo velké naděje na hraní her v 640×480. Karta navíc neuměla korekci perspektivy při vykreslování textur a neuměla textury bilineárně filtrovat. Ve výsledku tedy nenabízela nic, čím by mohla zvýšit kvalitu zobrazení proti vykreslování přes procesor. Nízký výkon a mizerná kvalita zobrazení nakonec nepřilákali žádné vývojáře ani zákazníky. Karta za $250 zvládla akcelerovat pouze dvě přibalené hry. Ani jednu jsem z nich nikdy nehrál, ale posuďte sami, zda by vás to k nákupu přesvědčilo.

creative-3D-blaster-VLB

Creative 3D Blaster VLB (1995) nezopakoval úspěch firmy se Sound Blastery (zdroj)

Další kartou byl 3D Blaster od Creative. V Creative vycítili nástup 3D akcelerace a chtěli zopakovat úspěch, jaký se jim povedl se Sound Blasterem během příchodu zvukových karet do PC. Karta s osekaným profesionálním čipem od 3Dlabs neuměla filtrovat textury, takže obraz nevypadal lépe než při vykreslování přes procesor, nicméně akcelerovaných her alespoň bylo přes deset, včetně známějších titulů.

Opět šlo o čistě 3D akcelerátor, který se musel propojit s hlavní grafikou počítače, nicméně v tomto případě došlo k rozhodnutí udělat jej pro sběrnici VL-BUS, což je lokální sběrnice procesoru 486. Počítalo se tak s provozem na počítačích 486, které sice v době uvedení tvořily pořád početnější instalovanou základnu než Pentia, jenže zákazníkům se nelíbilo, že při přechodu na Pentium budou muset svůj draze zaplacený 3D akcelerátor zahodit (na Pentiových deskách byste obvykle hledali VL-BUS marně), takže komerční úspěch se nedostavil. Výrobce neodhadl, jak rychlý přechod na Pentia u běžných zákazníků nakonec bude. Pokud jste si kartu do svého 486 počítače koupili, daly vám akcelerované verze her možnost hrát v rozlišení 640×480 místo základního 320×200. Z videí na Youtube je vidět, že karta byla rychlejší a schopnější než Tasmania 3D.

nvidia-nv1

Diamond Edge 3240XL (1995) s čipem NV1 byl zamýšlen jako kompletní herní akcelerátor. Úspěchu se ovšem prvotina NVIDIE nedočkala. (zdroj)

Třetím akcelerátorem byla NVIDIA NV1. Tuhle společnost založili tři lidé – jeden z AMD a dva ze Sunu. Jejich grafická karta zvládala nejen 3D, ale nahrazovala i standardní 2D/VGA grafiku a dokonce i zvukovou kartu. Karta nicméně nepracovala s trojúhelníky, místo toho používala quadratic texture mapping, který umožňoval jednodušeji vytvářet zaoblené plochy. Problém byl, že všichni okolo se vydali cestou trojúhelníků, takže se NV1 nedočkala úspěchu. Spolupráce se Segou, ze které portovala hry pro NV1 na PC, nakonec společnosti málem zlomila vaz. Skutečný úspěch se dostavil až později s NV3 (Riva 128, konec roku 1997), kdy se v NVIDII vykašlali na jakékoli specialitky a místo toho prostě udělali hodně rychlý akcelerátor pro Microsoftí Direct3D. Ale nebudu předbíhat.

Dohromady bylo podporováno osm her. Později byl vydán také ovladač pro Direct3D, ale výsledek byl nepoužitelný, ať už kvůli nízkému výkonu, nebo kvůli mizerné kvalitě zobrazení. Všechny tři herní 3D akcelerátory tedy byly spíše propadáky.

Největšího úspěchu se v PC v roce 1996 dočkal výrobce čipů 3Dlabs s čipy Glint pro rasterizaci i geometrické výpočty. Tahle malá společnost přinesla do PC světa plnou akceleraci OpenGL. Na rozdíl od Matroxu zvládl jejich čip GLINT 300SX také pracovat s texturami, stencilovými stíny, anti-aliasingem a poloprůhledností a nebyl omezený pouze na pracovní stanice jedné firmy (web produktu v době uvedení). Mohl si jej koupit kdokoli a cena kompletní karty byla $3.000. Nižší pixel fill-rate nedělal z karty ideální řešení na hry, ale schopný geometrický akcelerátor umožnil vykreslovat velmi detailní modely v 3D modelovacích programech a CADech, takže na úspěch bylo zaděláno.

elsa-gloria-4-3dlabs

ELSA Gloria-4 s čipem S3 Vision 968 (4MB) na 2D/video a 3Dlabs 300SX (8MB) na 3D (zdroj)

Zakladatel 3Dlabs před lety povídal na akademické půdě o tom, jak se rozhodl k zajímavému kroku, který jim výrazně pomohl rozšířit jejich čipy mezi co nejvíce lidí. Kontaktoval totiž S3 s tím, že by chtěli kombinovat vlastní 3D čip (jako koprocesor) s jejich 2D řešením, takže by vlastně S3 mohlo nabízet rychlý profesionální produkt (který samo nemělo) a byl by to jasný win-win. V S3 nikomu z managementu nedošlo, že 3D čip z podstaty věci může dělat i 2D, takže se obě společnosti dohodly. Karta sice možná byla o to dražší (a inženýři v 3Dlabs nasranější), ale dostala se takto do prodejních kanálů S3 a celému řešení to dalo ještě větší důvěryhodnost.

Zákazníkům samozřejmě brzy došlo, že čip od S3 není potřeba, takže časem z karet zmizel. O produktech 3Dlabs už pak stejně všichni věděli, takže podobná spolupráce dále neměla význam. Holt úspěch zdaleka není jen o technické dokonalosti produktu.

Pentium Pro

Koncem roku 1995 spatřil světlo světa 32bit procesor Pentium Pro, který se od předchozích Intelovských procesorů lišil jednak velkou vyrovnávací pamětí (L2 cache) a jednak schopností vykonávat instrukce programu mimo pořadí (out-of-order execution). Zjednodušeně si procesor může program přednačíst a instrukce si přeházet tak, aby je mohl vykonat co nejrychleji. Pentium Pro byl velký skok a byl přesně tím, co platforma PC potřebovala pro boj s UNIXovými stanicemi.

Z mého pohledu bylo Pentium Pro druhým hřebíčkem do rakve UNIXových stanic. Tím prvním byl Windows NT 3.5 vydaný o rok dříve. Na třetí (poslední) si však svět ještě musel několik let počkat.

Kombinace Windows NT, Pentium Pro a grafiky od 3Dlabs vytvořila docela slušnou konkurenci levnějším stanicím od SGI a dalších výrobců. Profesionálních CAD/3D programů navíc stále přibývalo a nikdo už nepochyboval, že platforma PC má budoucnost i v tomto segmentu.

Tyhle možnosti si uvědomovala také firma Intergraph, která začala dělat hi-end 3D pracovní stanice s Intelovskými procesory, Windows NT a vlastními grafickými čipy – ještě rychlejšími, než co nabízelo 3Dlabs. Jejich stanice mohli konkurovat alespoň nižším segmentům SGI a za stejný výkon jste obvykle zaplatili o 20-40 % méně. Právě stanice Intergraph byly tím, na čem se John Carmack učil OpenGL a psal GLQuake, resp. Quake II.

SGI Indigo2 IMPACT

Zatímco na PC docházelo k prvním krůčkům s použitelnými 3D akcelerátory, SGI také nezahálelo. Ostatně ani nemohlo. Teď už i PC umožňovalo kreslit 3D scény s texturami, aniž by k tomu byl potřeba grafický superpočítač za stovky tisíc dolarů. Pracovní stanice od SGI sice měly rychlé grafiky, ale žádná z nich textury hardwarově nepodporovala.

S novými grafikami IMPACT se všechno změnilo a to, co přišlo, asi nikdo nečekal. Tyto nové grafiky byly navrženy pro počítač SGI Indigo2 a nabídly jednak vysoký výkon a jednak vysokou kvalitu zobrazení se všemi možnými 3D technologiemi, které by vás mohly v té době napadnout. Existovaly tři varianty grafiky. Solid IMPACT měla vysoký výkon, ale chyběla jí texturovací jednotka. High IMPACT měla stejný výkon jako Solid IMPACT, ale navíc měla ještě texturovací jednotku a k ní 1 MB texturovací paměti s rychlým přístupem (aby bylo možné měnit její obsah i během vykreslování snímku). Maximum IMPACT bylo v podstatě něco jako dvojice High IMPACT propojených do jediné grafické jednotky.

sgi-indigo2-closed-box

sgi-indigo2-opened-box

sgi-indigo2-high-impact

Naše SGI Indigo2 High IMPACT – stanice je velká a velmi těžká. V 64bitových slotech jsou zapojeny dvě karty, které dohromady tvoří grafickou jednotku. (vyšší rozlišení na tumblr)

Fungovalo to stejně jako 3Dfx Vodooo2 SLI, které vyšlo o tři roky později. První půlka se starala o vykreslování lichých řádků a druhá půlka o vykreslování sudých řádků stejného snímku. Zajímavostí je výkon, který při texturování dosahoval v určitých situacích klidně zmíněného Voodoo2 SLI, což byl v roce 1998 herní hi-end. V roce 1995 to byl tak maximálně vlhký sen zasvěcených. Texturované polygony se kreslily rychlostí 120 Mpix/s a netexturované dokonce 240 Mpix/s (pro představu: to stačí na 90 snímků za sekundu, pokud se každý pixel překreslí dvakrát v rozlišení 1280×1024). Konkurenční řešení, pokud už uměla textury, měla výkon obvykle desetinový. Výkon bez textur byl v lepším případě 3-5x nižší. A geometrický výkon? 1,2 miliónu trojúhelníku za sekundu.

SGI Indigo2 IMPACT se stalo nejvýkonnější grafickou stanicí na světě, a kdo chtěl maximum výkonu, ten šel rovnou za SGI. Tím, že 3D začalo být legitimní záležitostí nejen pro úzkou skupinu uživatelů, dařilo se SGI jako nikdy předtím. Lidé z SGI navrhovali hardware a 3D akcelerátor pro herní konzoli Nintendo 64, nicméně pracovní stanice od SGI používali vývojáři her ve velkých studiích i pro ostatní platformy.

49351504_1997526453662715_5692454524887760896_n

3D pro všechny

V první půlce roku 1996 se nabídka 3D akcelerátorů rozrůstá také o grafické karty od významných hráčů na trhu, kteří čekali na vydání první verze Direct3D (jako součást DirectX 2.0). Přichází ATI Rage a S3 Virge. Ani jedna z karet nebyla výkonem zrovna trhač asfaltu. Obě karty byly vlastně velmi vyrovnané a nabídly funkce jako bilineární filtrování textur a korekci perspektivy. ATI Rage nemám změřenou, a vzhledem k tomu, že k ní nikdy nevyšly OpenGL ovladače, ani se k tomu nechystám. S3 Virge nicméně umí nabídnout až 44 Mpix/s při jemně stínovaných polygonech, což z ní dělá poměrně rychlý akcelerátor, kdykoli nejsou potřeba textury. S 32bit texturami klesá výkon na pouhých 5,4 Mpix/s a to byl tehdy velký problém, kvůli kterému byla taková karta vhodná obvykle jen k hraní v rozlišení 400×300 (přestože s dostatkem paměti ve variantě Virge/VX bylo možné 3D akcelerovat i v rozlišení 1024×768, nebo ve 24bit barvách). U ATI Rage nečekám nic lepšího. Ironií bylo, že mnohé hry ve verzi s akcelerací pomocí S3 Virge měly vynucené rozlišení 640×480, takže pak klidně byly trhanější než při vykreslování přes procesor (s vynuceným 320×200). Reputaci S3 to zcela jistě taky nepomohlo. Přesto byl čip relativně úspěšný díky schopné 2D a video akceleraci.

Když chtěli vývojáři vymáčknout z karet maximum, museli používat různé speciální fígle – vypínat Z-Buffer, kde nebyl nutný, pracovat s 16barevnými paletovanými texturami v nízkém rozlišení a ideálně část obrazovky nechat bez textur (třeba oblohu).

S3 Virge byla zajímavá tím, že nabídla poměrně slušnou kvalitu zobrazení. Problém s nízkým výkonem u texturovaných polygonů však zůstal i ve všech pozdějších verzích až do úplného konce. Karty Virge/DX a Virge/GX vydané po pouhém půl roce zrychlily alespoň kreslení texturovaných polygonů při vypnuté filtraci. Virge/GX ze začátku roku 1997 kreslila filtrované textury rychlostí 10 Mpix/s a nefiltrované rovnou 20 Mpix/s. Pokud ve staré hře najdete možnost vypnout filtraci textur, možná ji tam dali vývojáři právě kvůli S3 Virge.

DODATEK: Dnes se na původní Virge mnohdy kouká jako na naprostý odpad. Na druhou stranu je to karta, která vyšla spolu s prvním Direct3D a její konkurence nebyla lepší. V polovině roku 1996 nebyla žádná 3Dfx Voodoo Graphics a další rychlé akcelerátory. Měly jste tu Virge, Rage, Matrox (který sice dostal Direct3D driver, ale pochopitelně neuměl kreslit textury, takže na hry byl k ničemu) a těch několik herních karet ještě z konce 1995, které byly horší. Karta výkonově velmi rychle zapadla především kvůli extrémně rychlému pokroku na poli grafik (karty zastarávaly po půl roce od uvedení na trh), ale i na poli procesorů, kde se přešlo na Pentium, rychle se zvyšovaly takty a s příchodem Pentia II výkon poskočil ještě mnohem dál. Nejhorší reputace se tak Virge (ale i další podobné karty) dočkávala především roky po vydání, když se objevovala v low-end počítačích.

S3.Virge.325

První grafický čip od S3 s 3D akcelerací (zdroj)

Na pozdim 1996 se situace s akcelerátory výrazně zlepšila a z původních Rage a Virge se stala zastaralá řešení. Rendition Verité 1000 byla karta s texturovacím fillrate necelých 15 Mpix/s, 32bit renderingem, anti-aliasingem hran a pěkným vykreslováním. Společnosti Rendition sice nakonec nebylo přáno, ale tohle byla z mého pohledu možná nejlepší 2D/3D karta pro Windows v době vydání (a přitom funkční prototypy existovaly už o rok dříve). Zajímavostí je, že to byla první karta, pro kterou byla naportována hra Quake 1. Portace nazvaná vQuake nabízela všechny funkce včetně anti-aliasingu a Carmack o kartě mluvil velmi pochvalně. Bylo to pro něj ovšem také prozření, že podpora proprietárních rozhraní vázaných na konkrétní karty není správnou cestou, takže pak udělal univerzální portaci pro rozhraní OpenGL a nechal na výrobcích, zda svou kartu doplní o potřebný ovladač. Právě tento krok výrazně přispěl k rozšíření podpory OpenGL v PC grafikách.

Další významnou grafikou byla 3Dlabs Permedia. Stejně jako v případě Verité jste dostali za pár stovek kompletní 2D/3D řešení. Permedia byla při kreslení bez textur pomalejší než Virge, ale s texturami kreslila rychlostí 22 Mpix/s bez ohledu na zapnutí filtrace. Zatímco S3 Virge se snažila o vysokou kvalitu zobrazení, Permedia podváděla – filtrace textur v její režii byla dost nekvalitní a nebyla moc odlišná od kreslení bez ní. Čipy S3 Virge/GX bez filtrace textur kreslily stejně rychle, jenže běžně ve hrách byla filtrace textur zapnutá a v benchmarcích taktéž, takže v povědomí uživatelů byla Virge vnímána jako znatelně pomalejší řešení.

3dlabs-permedia

3Dlabs Permedia s rozšiřujícím modulem na 8 MB video-paměti. Za $300 šlo o jediný low-end OpenGL akcelerátor v roce 1996. (zdroj)

Velkou předností Permedie však bylo něco úplně jiného. Za $300 dolarů jste totiž kromě podpory Direct3D dostali také plnohodnotný ovladač pro OpenGL (tedy pokud vynechám, že ne všechny typy poloprůhlednosti fungovaly korektně). To vám nikdo jiný nenabídl. Jedinou alternativou byl Matrox Millennium, jenže jeho ovladač kvůli nedostatkům karty musel přejít na vykreslování procesorem, kdykoli došlo na textury nebo poloprůhlednost, a výkon šel rázem o řád dolů.

matrox-millennium-control-panel

DODATEK: V roce 1996 vychází úspěšný Windows NT 4.0, jehož tým se snažil maximálně usnadnit nasazení hardwarově akcelerovaného OpenGL do PC. Vylepšil tedy softwarový vykreslovač OpenGL (1.1) zabudovaný přímo v systému a vedle standardního typu ovladače ICD (Installable Client Driver) přidal také nový MCD (Mini-Client Driver). S MCD byla tvorba ovladače pro 3D akcelerátor výrazně zjednodušena – v podstatě výrobce vycházel ze softwarového vykreslování (geometrie, rasterizace) a dopsal akceleraci pouze těch rasterizačních funkcí, které chtěl hardwarově akcelerovat. Právě toho okamžitě využil Matrox (a později také ATI a nejspíš i pár dalších), který zahodil svůj starý a omezený ICD ovladač z NT 3.5, aby přešel na MCD, ve kterém hardwarově akceleroval pouze kreslení stínovaných polygonů bez textur a poloprůhlednosti. Ve výsledku tedy šly spustit všechny OpenGL programy, ale jen ty, které se omezovaly na schopnosti karty, běžely rychle.

3dfx-voodoo-graphics

Diamond Monster 3D – asi nejoblíbenější provedení Voodoo Graphics (zdroj)

Revolucí v herním hi-endu byl ovšem přídavný akcelerátor 3Dfx Voodoo Graphics. Společnost 3Dfx byla založena několika lidmi, kteří v roce 1994 odešli z SGI a o jejich zkušenostech s návrhem 3D akcelerátorů nebylo pochyb. Možná i díky nim se s prvním Voodoo dokázali vyhnout nedostatkům konkurenčních řešení. Chápali, že herní výkon je limitován primárně rychlostí, jakou karta kreslí pixely texturovaných trojúhelníků. Udělali proto texturovací jednotku s extrémně rychlou vnitřní cache pracující s texturami do rozlišení 256×256 pixelů. Texturovací jednotka byla tak komplexní, že ji nedokázali levně vyrobit spolu se zbytkem akcelerátoru v jednom čipu. Proto najdete na prvním Voodoo rovnou dva čipy s logem 3Dfx. Spodní (FBI = Frame Buffer Interface) se stará o řízení fronty příkazů od procesoru, kreslení pixelů a výpočet barev vertexů. Při kreslení textur se výsledek zmixuje ještě s výstupem texturovacího čipu (TMU = Texture Mapping Unit) a uloží do paměti. Každý z čipů má svou vlastní paměť (2MB) připojenou 64bitově. Přestože má tedy karta dohromady 4 MB, obrazové buffery (front, back, Z) se musí vejít do 2 MB. Stejně tak textury dohromady nesmí mít víc než 2 MB.

Výsledná karta fungovala skvěle, stala se hitem a prodávala se ještě několik let. Byla to první karta, pro kterou byly vývojáři ochotni psát své hry, i když jim za to 3Dfx neplatilo. S texturovacím výkonem 45 Mpix/s byla minimálně dvakrát rychlejší než nejrychlejší konkurence, přestože si zachovávala vysokou kvalitu zobrazení. Překonala v rychlosti kreslení (s texturami) i kdejakou profi kartu (3Dlabs, Intergraph). Nevýhod ale bylo také několik. Karta kvůli rozdělené paměti obvykle nemohla akcelerovat ve vyšším rozlišení než 640×480 (16bit), vyžadovala další grafickou kartu na 2D a neuměla vykreslovat v okně. Byla tak vhodná pouze pro hry.

Jenže to většinovému zákazníkovi nevadilo. 3Dfx Voodoo Graphics legitimizovala 3D akceleraci na PC. Her s akcelerací přímo přes rozhraní 3Dfx Glide vznikly vyšší desítky, možná stovky a to nepočítám hry, které Voodoo zvládalo akcelerovat přes Direct3D a OpenGL (pomocí Mini-GL ovladačů napsaných pro potřeby konkrétních her).

Závěrem

Herní 3D akcelerátory byly koncem roku 1996 sice ještě minoritní záležitostí, nicméně dokázaly si obhájit svou pozici. Většina sice byla svou užitečností diskutabilní, nicméně nikdo nepochyboval, že další generace udělá z 3D akcelerace běžnou věc, a kdo to myslí s hraním vážně, bude si muset nějaký 3D akcelerátor pořídit. V tuto dobu samozřejmě každá hra nabízela i softwarové vykreslování přes procesor, ale mnoho her jej (zbytečně) omezovalo pouze na rozlišení 320×200 při 256 barvách.

V profesionálním PC segmentu už existovala řešení na plnohodnotnou akceleraci OpenGL. S texturovou pamětí (která byla pro profi segment stále volitelná, protože v CADech nebyla potřeba) jste za profesionální kartu zaplatili tisíce dolarů. Levnější smysluplné řešení představovaly produkty 3Dlabs s čipy Glint 500TX a Glint Delta (rasterizační výkon podobný S3 Virge, ale s podporou vysokých rozlišení, geometrickým výkonem téměř 700 trojúhelníků za sekundu a nativní podporou OpenGL). Dražší řešení (s více než dvojnásobným výkonem) pak byly celé stanice Intergraph Realizm, ale tam už jste za celou stanici zaplatily desítky tisíc dolarů a jen samotná karta stála okolo deseti tisíc. Ke srovnání karet se John Carmack vyjadřoval při vývoji GLQuake ve svém .plan file (strana 25).

V naprostém hi-endu se stalo SGI s kartami IMPACT jasným králem. Když někdo potřeboval maximální 3D výkon bez ohledu na peníze, skončil vždy u SGI. Zejména vývojářům AAA her pro PC i konzole umožnily stanice SGI Indigo2 IMPACT vyvíjet hry s technologiemi a výkonem, který bude dostupný až za několik let, v době vydání.

Příští díl bude závěrečný. Projdu v něm asi největší boj, který se na poli 3D akcelerátorů kdy udál, na jehož konci mnoho výrobců trh úplně opustilo. Došlo také k velkému souboji API (Direct3D x OpenGL x proprietární) a ve výsledku také konci UNIXových grafických pracovních stanic.

Komentáře k článku

  1. 1. Radek  1.2.2019  23:08:49

    Jen pro zajímavost: V roce 1993(4) slavná firma Rare použila pro vývoj Donkey Kong Country pro SNES právě SGI na prerenderování 3D modelů a výsledky použila jako sprite čímž překvapila všechny, protože výsledek byl úžasný.
    Cena SGI byla brutální a pro Rare to byl obrovský risk.

  2. 2. Pedro  2.2.2019  10:42:19

    Tak ma vytocil ten koniec clanku ;) Kedy bude posledna cast?

    Skvela praca, dakujem.

  3. 3. swarm  2.2.2019  19:44:30

    [1] Ano, je to tak. SGI to pak sem tam ukazovalo i ve svých promo klipech, jako je tento na Indigo2 IMPACT: https://www.youtube.com/watch?v=Nc7LWXu3yZI (~2:20)

    Když jsme u těch starých videí, tak se mi ještě líbila tahle ukázka z dob vývoje Nintendo 64: https://www.youtube.com/watch?v=eKlbx5niBu8

    … protože se na SGI dělal hardware, tak se tam vyvíjely i hry (konzole má stejnou architekturu procesoru a kompatibilní architekturu grafiky). Než se později přešlo na vývojové kity ve formě konzole připojené přes speciální cartridge k PC, používaly se pro vývoj stroje SGI Indy, kde byla vložena speciální karta, na které byla kompletní konzole. Výstup z konzole byl klasický kompozitní signál, který pak stačilo píchnout do standardního vstupu na Indym, takže pak byl výstup vidět v okně mezi ostatními programy:

    https://assemblergames.com/threads/my-complete-sgi-ultra64-dev-set-manual-scans-dev-software.45165/
    -> Tohle je moc pěkný zdroj informací k tomu dev kitu včetně okopírovaného manuálu. Tím spíš mě překvapuje, když autor tvrdí, že za chladičem je schované CPU, když CPU je hned pod ním (z fotky to jde i vyčíst). Za chladičem je schovaná grafika kombinovaná s paměťovým řadičem.

  4. 4. swarm  2.2.2019  19:47:43

    [2] Ještě ho nikdo nezačal psát :) Já byl rád, když jsem půl dne po vydání tohoto dílu aspoň opravil většinu překlepů v textu.

    Pozitivní může být jen to, že většinu materiálu, který chci zmínit, už mám připravenou, takže to jen čeká na nějaký odpočinkový den.

  5. 5. klusacek  2.2.2019  21:50:30

    Dik, za clanek, tesim se na pokracovani. Skvele jsou vsechny ty odkazy, ktere obsahuje.

    Treba tady
    http://www.futuretech.blinkenlights.nl/pcw5-93i2.html
    jsem se dozvedel jak vypada Extreme Impact grafika se sundanymi chladici a docela me prekvapilo ze Geometry Engine je Multichip modul. 4 kremikove chipy na jednom keramickem nosici.

    Vlastne Pentium Pro bylo resene podobe, CPU bylo na jednom chipu, cache na druhem, jenze tam to bylo cele zakryte spolecnym heat spreadrem, tady jsou ty chipy videt kazdy zvlast.

  6. 6. swarm  2.2.2019  22:35:36

    [5] Pěkný, toho jsem si předtím ani nevšiml. Jinak teda ta grafika není Impact (ostatně je v modrém Indigo2). Extreme byla nejvýkonnější variantou té předchozí generace (ELAN).

  7. 7. klusacek  2.2.2019  23:00:09

    [6] Aha — to jsem prehledl. Takze je asi dost mozne ze Impact uz mel vsechny gemotericke jednotky integrovane na jednom kusu kremiku.

  8. 8. swarm  4.2.2019  10:54:16

    [7] Trochu jsem po tom pátral. Impact grafiky používají novější čip GE11 místo GE7, který byl v provedení 2×2 na jednom MCM. Hodně low-res fotka bez chladiče je vidět zde:

    http://www.futuretech.blinkenlights.nl/indigo2impactpg.html
    (koukni na Maximum Impact, dva čipy na kartě víc vlevo)

    Mají tam teda chybu, protože stejnou kartu ukazují u High Impact, ale tak by to nemělo být. Tam má být jen jeden čip (takže Maximum Impact má dvojnásobný nejen rasterizační, ale i geometrický výkon).

    Zde je fotka karty s 2xGE11 (Maximum Impact):
    http://archive.irix.cc/sgistuff/hardware/systems/images/indigo2-1907-mximp3.jpg

    Zde je fotka karty s 1xGE11 (High Impact):
    http://archive.irix.cc/sgistuff/hardware/systems/images/indigo2-higd-1901.jpg

    … je to stejná karta, jen tam půlka není osazená.


Napsat komentář