artykuły

Historia 3dfx – firmy, która swoim Voodoo zrewolucjonizowała gry na platformie PC i... upadła

Historia 3dfx i legendy Voodoo

153 31 marca 2016, 08:30 Piotr Gontarczyk

Potyczki API i wejście Windows 95

Kilka lat później, w 1992 roku, firma SGI (Silicon Graphics Inc.) zaprezentowała pierwszą wersję uniwersalnego wieloplatformowego interfejsu programowania aplikacji (API) – zarówno grafiki 2D, jak i 3D. Nazwała go OpenGL. Dlaczego ten interfejs był ważny? Głównie dlatego, że powstał jako narzędzie w pełni uniwersalne i absolutnie niezależne od producenta układu graficznego. Wcześniej istniały różne rozwiązania w dziedzinie renderowania grafiki 3D, ale każde z nich było mocno ograniczone, mało popularne i drogie. Ponadto związane było z konkretnym producentem oprogramowania, a często także sprzętu. OpenGL pierwotnie miał być interfejsem programowania dla platform uniksowych, przede wszystkim w sektorze profesjonalnym. Twórcy OpenGL-a być może nawet nie zdawali sobie sprawy z tego, że obsługa autorskich rozszerzeń do interfejsu uczyni go w niedługim czasie interesującym także dla twórców gier komputerowych. W okolicach połowy lat 90. ubiegłego wieku OpenGL wydawał się najbardziej przyszłościowym interfejsem programowania aplikacji, ale rzeczywistość okazała się nieusłana różami, a przy tym kolców nie brakowało.

Do interfejsu OpenGL bardzo negatywnie była nastawiona firma Microsoft, której systemy operacyjne Windows już wtedy dominowały na rynku konsumenckim. Niechęć Microsoftu do OpenGL-a miała swoją przyczynę. W 1995 roku gigant z Redmond przejął dziś zapomnianą firmę RenderMorphics, bo miała ona coś, czego Microsoft bardzo potrzebował: właśnie interfejs programowania aplikacji. RenderMorphics stworzyła Reality Lab, a więc interfejs dla twórców gier. Było to jedno z najpopularniejszych rozwiązań, obok RenderWare firmy Criterion Software czy BRender firmy Argonaut Software. RenderMorphics po 3 latach istnienia, w 1995 roku, trafiła w objęcia Microsoftu, który wykorzystał Reality Lab jako podstawę własnego interfejsu programowania aplikacji. Direct3D, bo o nim mowa, po raz pierwszy został udostępniony wraz z pakietem DirectX 2.0 SDK w czerwcu 1996 roku. Stworzenie interfejsu Direct3D przez Microsoft miało skutki dla innych.

Windows 95 na rynek wszedł z wielką pompą, a więc przede wszystkim zmasowaną kampanią marketingową. Nowy, multimedialny, 32-bitowy, w pełni wielozadaniowy, wzbogacony o nowy interfejs użytkownika system operacyjny był przedstawiany jako największa zdobycz techniki. Pod wieloma względami Windows 95 rzeczywiście miał czym przyciągać uwagę. Jednakże mało kto wiedział, że pod jego maską, gdzieś w okolicach silnika, wrzało. Już w czasie, gdy system trafił na rynek, trwały prace nad przeprojektowaniem Reality Lab w dostosowany do wymagań Microsoftu interfejs programowania, później znany jako Direct3D. OpenGL był już w obiegu. Firma, wtedy kierowana jeszcze przez Billa Gatesa, robiła wszystko, by OpenGL w kolejnych wydaniach systemów Windows nie pozwalał w pełni wykorzystać swoich możliwości. Microsoft posunął się nawet do tego, że odmawiał licencjonowania własnego OpenGL MCD (Mini-Client Driver) dla systemu operacyjnego Windows 95, co skutecznie uniemożliwiało producentom sprzętu swobodny wybór funkcji, które miały mieć dostęp do zasobów sprzętowych, a więc tzw. akceleracji. MCD Microsoftu był sprytnym, choć bardzo nieuczciwym zabiegiem, który miał powstrzymywać twórców gier od korzystania z interfejsu OpenGL w grach pisanych z myślą o działaniu pod kontrolą systemów Windows. MCD firmy Microsoft zapewniał tylko gołą, sprzętową rasteryzację. Gdy po udostępnieniu interfejsu Direct3D zainteresował się nim nawet John Carmack z id Software, współtwórca takich kultowych gier, jak Doom i Quake, sprawy dla Microsoftu jednak się skomplikowały. Już w 1996 roku Carmack zdecydował o tym, że nic go nie zmusi do korzystania z API Microsoftu, które jego zdaniem wchodziło programiście w drogę, nie zapewniało żadnych ułatwień, wymagało robienia wszystkiego od zera, a nie dawało nic w zamian i nawet nie działało szybciej od OpenGL-a.

Twórcom gier z pomocą przyszła sama firma SGI. Pomoc polegała na stworzeniu ICD (Installable Client Driver), a więc sterownika, dzięki któremu programy mogły korzystać z różnych implementacji OpenGL-a, zależnie od sprzętu. ICD nie zawierał sztucznych ograniczeń, które Microsoft zastosował w swoim MCD. Przykładem może być chociażby T&L (Transformation and Lighting). Dzięki niemu informacje o scenie 3D, które normalnie przetwarzał procesor, zostały przeniesione na barki akceleratora grafiki 3D (GPU). To pozwoliło osiągnąć większe skomplikowanie grafiki, a także bardziej realistyczne oświetlenie. Jednocześnie zmniejszyło się obciążenie CPU, więc zaoszczędzoną moc obliczeniową można było wykorzystać do innych celów.

W bitwie na interfejsy programowania aplikacji, w czasie gdy rozpoczynała się era akceleratorów 3D, nie uczestniczyli wyłącznie dwaj gracze. Paleta API pękała wręcz w szwach, bo programiści do dyspozycji mieli m.in. Glide firmy 3dfx, SGL firmy PowerVR, S3D firmy S3, Matrox Simple Interface, C Interface firmy ATI, Nvidia NVLib i RRedline firmy Rendition. Największą popularność osiągnął 3dfx Glide, który wraz z rewolucyjnymi kartami 3dfx Voodoo na zawsze zmienił oblicze grafiki 3D w grach przeznaczonych na komputery osobiste.

Sukces 3dfx był także wynikiem splotu kilku zewnętrznych czynników. Po pierwsze, OpenGL pierwotnie został stworzony jako interfejs dla programów profesjonalnych (do projektowania CAD itp.) i dopiero z czasem zaczął być postrzegany jako świetne narzędzie do tworzenia gier z grafiką 3D. Direct3D Microsoftu przede wszystkim pojawił się późno (dopiero w 1996 roku, wraz z systemem Windows 95 OSR2), a ponadto był piekielnie trudny w programowaniu. OpenGL zdawał się mieć o wiele większe szanse na sukces, ale Microsoft robił wszystko, by zdeprecjonować zalety konkurencyjnego interfejsu. Sytuacja była idealna dla trzeciego gracza, którym okazał się 3dfx. Wbił on w skonfliktowany duet potężny klin.

Pierwszy Tomb Raider praktycznie był wizytówką 3dfx Glide

Czym był Glide i co sprawiło, że interfejs powstałej w 1994 roku firmy 3dfx Interactive błyskawicznie osiągnął wielki sukces, który trwał prawie do końca XX wieku? Kluczem okazała się prostota. Glide swoje fundamenty ma w interfejsie OpenGL, który już wtedy był wielkim zbiorem połączeń wewnętrznych, mających zapewnić jego uniwersalność, od profesjonalnych narzędzi aż po gry. Firma 3dfx Interactive uznała, że projektowanie akceleratorów 3D do gier zgodnych sprzętowo z OpenGL prowadzi do skomplikowanych konstrukcji, które potem są drogie w produkcji. Ostatecznie przekłada się to na cenę dla końcowego odbiorcy. Takie wtedy były realia. Programiści 3dfx postanowili stworzyć coś nowego: interfejs programowania wolny od wszelkich rozwiązań, które nie miałyby zastosowania w grach. W ten sposób powstał Glide, a więc mała biblioteka z fundamentami OpenGL, dla której można było zaprojektować akcelerator 3D znacznie mniej skomplikowany niż w przypadku OpenGL-a. Glide okazał się też wyjątkowo prosty w programowaniu i dlatego twórcy gier tak go pokochali. Uproszczenie całości miało jednak swoje koszty. Glide przykładowo był ograniczony do 16-bitowej palety kolorów. Nie trzeba było długo czekać, aż konkurencja zacznie to wykorzystywać. Dwa lata po pojawieniu się pierwszych kart 3dfx Voodoo Nvidia zaprezentowała model Riva TNT – pierwszy akcelerator 3D obsługujący 32-bitową paletę kolorów.

Mamy więc już mały pogląd na zaplecze przygotowań do rewolucji w branży kart graficznych, której początki sięgają połowy lat 90. ubiegłego wieku. Wiemy, jakie interfejsy sprzętowe i programowe tworzyły jej podstawy. Czas wreszcie przejść do bohaterów niniejszego artykułu i zapoznać się z ich listą osiągnięć – niemałym wkładem w rozwój grafiki 3D w komputerach osobistych.

4