Toto je p°eklad Φlßnku The Swindling Technology z Reactor Critical. P°eklad "spßchal" Ji°φ PanßΦek, jß jsem pouze trochu upravil sloh a p°epsal HTML - nejsem tedy autorem ani ₧ßdnΘ z poznßmek (ÜikmΘ zelenΘ pφsmo). JeÜt∞ jedna d∙le₧itß v∞c: Ten Φlßnek byl p°eklßdßn tak, aby byl zachovßn v²znam, o um∞leckΘ zpracovßnφ Jirkovi ani m∞ neÜlo.

PODV┴D╠J═C═ SPOLE╚NOSTI

6. Φervence 1999

KO╪ENY PODVOD┘

Äßdn² z v²robc∙ 3D Φip∙ se nezdrßhß obelhßvat koneΦnΘho spot°ebitele za ·Φelem dosa₧enφ co nejv∞tÜφ prodejnosti sv²ch v²robk∙. Uvedu zde p°φklady n∞kolika doposud vyvinut²ch technologii, kterΘ nemajφ ₧ßdn² praktick² v²znam a p°itom jsou mnohdy patentovßny jako "technologicky p°evratn² objev".

HromadnΘ obelhßvßnφ zapoΦalo s p°φchodem velmi populßrnφho programu 3D Winbench 98. Srovnßvacφ test se sklßdal ze dvou Φßstφ. Nejprve byly spuÜt∞ny testy kvality. Ty umo₧nily ov∞°it implementaci r∙zn²ch funkcφ. Jestli₧e n∞kterß funkce nebyla implementovßna nebo jejφ implementace byla nesprßvnß (to musel rozhodnout u₧ivatel), pak tento program vyhodnotil test jako "ne·sp∞Ün²". Po testu kvality nßsledovalo testovßnφ v²konu. Zde bylo n∞kolik v²konnostnφch test∙ s jedin²m "pr∙m∞rn²m" vyhodnocenφm. Toto Φφslo bylo chßpßno jako v²konnostnφ index. Bohu₧el, jestli₧e dan² Φipset n∞kterou 3D funkci nepodporoval (test kvality byl ne·sp∞Ün²), pak byl benchmark test spuÜt∞n v m≤du se softwarovou akceleracφ. V²sledkem toho je, ₧e nap°. Matrox Mystique byl ve vzßjemnΘm porovnßnφ s ATI Rage II v₧dy pomalejÜφ navzdory tomu, ₧e Mystique je nepochybn∞ rychlejÜφ. P°φΦina takov²ch nedobr²ch v²sledk∙ spoΦφvala v tom, ₧e Mystique nem∞l podporu bilinearnφho filtrovßnφ, kterΘ mnoho srovnßvacφch test∙ vy₧adovalo.
(*pozn. viz. obΦasnΘ ·vahy a p°ipomφnky v recenzφch duchovnφho otce t∞chto strßnek ohledn∞ rozporupln²ch v²sledk∙ v testech grafick²ch karet s nßvaznostφ na rychlost v samostatn²ch hrßch)

Vlßdci tohoto sv∞ta (nap°. spoleΦnost Compaq) zaklßdali svß rozhodnutφ na zßklad∞ v²sledk∙ testu 3D Winbench 98, a v tom byl problΘm. Recenzenti internetov²ch sajt se mohli pominout z volßnφ, ₧e tento v²sledek je podvodn², ale management korporacφ to neposlouchal a stßle nakupoval na zßklad∞ t∞chto Φφsel.

Dva klasickΘ p°φklady. ATI vyvinulo "turbo-driver" pro jejich Rage Pro. Driver zφskßval 3D Winbench 98 hodnocenφ o 30-40% vyÜÜφ ne₧ standardnφ driver, ale ve hrßch nem∞l absolutn∞ ₧ßdnΘ v²hody. PowerVR driver od Videologicu ov∞°oval jmΘno spouÜt∞nΘho programu, a kdy₧ zjistil p°φtomnost 3D Winbench 98, specißln∞ se pro n∞j natweakoval. Kdy₧ se spustiteln² soubor 3D WinBenche p°ejmenoval, v²sledek PowerVR klesl o 20-30%.

Co nßsledovalo

Kdy₧ programßto°i ZDLAB vyvφjeli 3D Winbench 99, pokouÜeli se ud∞lat ho podvodnφkovzdorn² a ochrßnit ho p°ed mo₧nostφ zneu₧itφ v²robcem graf. Φip∙. VÜechny rychlostnφ testy byly jednotn∞ p°estaly pou₧φvat trilineßrnφ filtrovßnφ, antialiasing atd. Jin²mi slovy, jestli₧e karta nepodporovala tyto featury, firmy nemusely podvßd∞t, aby dosßhly vysok²ch v²sledk∙, proto₧e tyto funkce prost∞ nebyly pou₧φty.

To sice znφ dob°e, ale je zde stßle jedno ALE! V testu kvality se program od ZDLABu automaticky rozhodne, zda je nebo nenφ funkce implementovanß sprßvn∞. Je to asi tak, jako bychom nosili triΦko s nßpisem ônakopni m∞ö - bylo by ostudnΘ toho nevyu₧φt.

ScΘnß° pro "Jak rychle zφskat penφze" je:

Samoz°ejm∞, v²sledek 3D Winbenche nenφ jedin²m m∞°φtkem k p°esv∞dΦovßnφ. Kdy₧ se podφvßte na zprßvy firmy Mercury Research, zjistφte, ₧e pou₧φvajφ takΘ v²sledky z programu 3D Mark 99. Ve zprßv∞ je mimo jinΘ v²konnostnφ test (Game1 a Game2) a test 3D funkcφ (trilineßrnφ filtrovßnφ, anisotropickΘ filtrovßnφ, bump mapping). Toto lze zneu₧φt jeÜt∞ jednoduÜeji. V²robci nßs Φasto jednoduÜe klamou "chip funkce podporuje, ale ovladaΦe zatφm ne".

TRILINEARN═ FILTROV┴N═

Nejd°φve mi dovolte, abych vßm °ekl o trilinearnφ approximaci (znßmΘ jako "LOD dithering"). MyÜlenka za trilineßrnφm filtrovßnφm je zv²Üenφ kvality obrazu. To bohu₧el vy₧aduje mnoho poΦφtßnφ. Trilinearnφ approximace je nßhra₧ka trilinearnφho filtrovßnφ. Dßvß extrΘmn∞ nφzkou kvalitu obrazu (mnohem horÜφ, ne₧ bez pou₧itφ trilineßrnφho filtrovßnφ) a souΦasn∞ umo₧≥uje napsat "Podpora trilineßrnφho filtrovßnφ" do tiskovΘho prohlßÜenφ. ProΦ? Proto₧e ve 3D Winbench 99 test trilinearnφho filtrovßnφ ·sp∞Ün∞ prob∞hne.

Nenφ to poprvΘ, co pφÜi o nφzkΘ kvalit∞ trilinearnφ approximaci. TakΘ jsem ji₧ vφcekrßt psal o tom, ₧e je naprosto nezbytnΘ rozezliÜovat approximaci od skuteΦnΘho trilinearnφho filtrovßnφ. B∞hem 5 dn∙, kterΘ jsem strßvil na Comteku (ruskΘ poΦφtaΦovΘ v²stav∞), jsem Φasto vid∞l, ₧e lidΘ p°istupovali k PC s Viper V770 a dopisovali p°φkaz gl_texturemode GL_LINEAR_MIPMAP_LINEAR v konzoli Quake 2. Ten p°φkaz by m∞l aktivovat trilinearnφ filtrovßnφ v Quake 2. LidΘ si ovÜem neov∞°ili, zda TNT2 v∙bec mß skuteΦnΘ trilinearnφ filtrovßnφ. Prost∞ si n∞kde p°eΦetli, ₧e p°i trilinearnφm filtrovßnφ vzroste kvalita obrazu a slep∞ tomu v∞°φ.


(*pozn. nevφm proΦ, ale obrßzek vlevo mi siln∞ p°ipomφnß trilineßrnφ filtrovßnφ podlahy ve h°e UNREAL pod graf. kartou TNT :-()

Je zajφmavΘ, ₧e NVIDIA nemß na svΘ webovΘ strßnce o trilineßrnφm filtrovßnφ ani slovo, nato₧ pak tvrzenφ, ₧e jejφ Φipy ho podporujφ. Ale existuje recenze na TNT2, kterß by nem∞la podporu trilineßrnφho filtrovßnφ v sekci se specifikacemi? (Ano, existuje. Jß specifikace do recenzφ v∙bec nepφÜu ;-), pozn. Pepa KokeÜ) Ano, TNT a TNT2 mß trilinearnφ filtrovßnφ ale pracuje pouze v "DX5 compatibility mode", tzn. se zakßzan²m multitexturingem. Pokud pravΘ trilineßrnφ filtrovßnφ aktivujete, zakß₧e se souΦasn∞ Twin-texel m≤d, kter² umo₧≥uje zpracovat dva pixely v jednom pr∙chodu. To zp∙sobφ asi 40% pokles v²konu. Ale samotnß skuteΦnost, ₧e trilinearnφ filtrovßnφ je jen mßlokdy k vid∞nφ nebo je pomalΘ, nenφ hlavnφm problΘmem. Konec konc∙ TNT2 ho oficißln∞ v∙bec nepodporuje (viz popisnß Φßst v manußlu). ProblΘm je, ₧e v∞tÜina v²robc∙ oznßmila p°φtomnost "trilinearnφho filtrovßnφ" ve sv²ch prohlßÜenφch. Ve skuteΦnosti lidΘ vidφ trilinearnφ aproximaci, navφc velmi rychlou (aspo≥ podle 3D Mark 99 Max). V d∙sledku toho ud∞lalo mnoho vß₧en²ch recenzent∙ zßv∞ry stojφcφ na nepodlo₧enΘm zßklad∞.

ANISOTROPICK╔ FILTROV┴N═

Nejd°φve se seznamte s tφmto axiomem: Äßdn² doposud vyroben² 3D akcelerßtor nepodporuje anisotropickΘ filtrovßnφ. Podle tiskov²ch prohlßÜenφ Φipy Savage4, Savage3D, TNT, TNT2, G200, a G400 podporujφ anisotropickΘ filtrovßnφ. Ani jeden z nich toto filtrovßnφ nemß.

NejlepÜφ cesta, jak tuto podporu zkontrolovat, je pomocφ ôFiltering Demo utilityö z DIRECTX 6 SDK. Umo₧≥uje porovnßnφ v²sledk∙ hardwarovΘho anisotropickΘho filtrovßnφ s referenΦnφmi obrßzky. Jak mo₧nß vφte, DIRECTX6 mß referenΦnφ softwarovΘ rendererovßnφ, kterΘ zobrazuje obraz tak, jak by m∞l b²t zobrazen. DIRECTX6 podporuje t°i-·rovn∞ anisotropickΘho filtrovßnφ (·rovn∞ 2, 4, a 8). ╚φm vyÜÜφ ·rove≥, tφm je lepÜφ zobrazovanß kvalita. TNT A TNT2 mß druhou ·rove≥ (t.j. nejhorÜφ kvalitu) anisotropickΘho filtrovßnφ. Nφ₧e vidφte t°i obrßzky - referenΦnφ ·rove≥ 2 anisotropickΘho filtrovßnφ, TNT2 anisotropickΘ filtrovßnφ, a referenΦnφ bilineßrnφ filtrovßnφ. V∞nujte pozornost malΘmu textu. Je z°ejmΘ, ₧e obraz TNT2 se velmi podobß (ne°eknu-li p°φmo "rovnß se") bilineßrnφmu filtrovßnφ.

Mnohem oblφben∞jÜφ cesta k otestovßnφ anisotropickΘho filtrovßnφ je program 3DMARK 99. Program ukazuje, ₧e implementace anisotropickΘho filtrovßnφ na TNT2/TNT je lepÜφ ne₧ bilineßrnφ filtrovßnφ, ale mnohem horÜφ ne₧ skuteΦnΘ trilineßrnφ filtrovßnφ (ne aproximace). Jak si mo₧nß vzpomφnßte, v²robci v₧dy tvrdili, ₧e anisotropickΘ filtrovßnφ je lepÜφ ne₧ trilineßrnφ. To vÜechno m∞ nutφ k zßv∞ru, ₧e v p°φpad∞ TNT/TNT2 tu mßme dalÜφ podvodnou aproximaci a ne skuteΦn∞ fungujφcφ funkci.

ANTIALIASING

VÜechny hardwarovΘ featury mohou b²t rozd∞leny na skuteΦn∞ vyu₧itelnΘ a na marketingovΘ proklamace. MarketingovΘ proklamace jsou ty featury, kterΘ se staly velice populßrnφmi na Webu. PotΘ u₧ se nikdo nezajφmß, jestli je skuteΦn∞ pot°ebuje. Zdß se, ₧e nikdo neznß pohßdku o nahΘm krßli.

Velmi oblφben²m marketingovou featurou je stßle full-scene antialiasing. Pravd∞podobn∞ to vÜe zaΦalo u Rivy 128, kterß m∞la v 3D WINBENCH 98 tuto featuru zaÜkrtnutou (tj. provedla se ·sp∞Ün∞). SkuteΦn∞ to m∞la, proto₧e p°i testu kvality se nepoΦφtal v²kon, pouze se ov∞°ovala implementace funkce. Implementovat antialiasing celΘ scΘny v hernφch kartßch je jednoduchß jak facka. Obraz je renderovßn ve vyÜÜφm rozliÜenφ a pak zmenÜen. Jin²mi slovy, pokud mßte v 800x600 na Riv∞ 128 40 FPS, pak v 2x2 antialiasingu dostanete 10 FPS - 4x mΘn∞. Jen₧e marketingovß maÜinerie u₧ se shlukla pod vlajkou "A¥ si u₧ivatel vybere". Zatracen∞, o jakΘm v²b∞ru to mluvφ - mezi 40 a 10 FPS?

Dnes najdete full-scene antialiasing ve specifikacφch ka₧dΘ karty, bez ohledu na to, jestli ho karta podporuje (*pozn. û nap°φklad si vzpome≥te na to co bylo uvedeno na krabici k VOODOO 3 û psal o tom Pepa KokeÜ na tΘto strßnce, a nebo na recenzi na Savage 4) (p°φkladem je Savage4, kterß tuto featuru nemß, ale deklaruje ji). Hry s podporou antialiasingu u₧ se v podstat∞ nevyskytujφ. Antialiasing hran, kter² jeÜt∞ p°ed rokem vypadal jako velmi u₧iteΦnß featura (vysokß rychlost a vynikajφcφ kvalita), je nynφ mrtev. Äßdn² z Φip∙ novΘ generace ho nepodporuje. ProΦ taky, kdy₧ existuje antialiasing celΘ scΘny?

P°edpov∞∩

B∞da! P°edpov∞∩ je extrΘmn∞ negativnφ. V²robci se zajφmajφ o odbyt, a proto se zajφmajφ o bezmyÜlenkovitΘ propagovßnφ nov²ch featur. Tyo featury jsou na nejlepÜφ cest∞ stßt se nov²mi fetiÜi:

Tak₧e se nenechte zmßst. Nenφ vÜechno zlato, co se t°pytφ.

*pozn. ┌vaha:

Cφtφte se takΘ podvedeni? Jß ne. V₧dy¥ tyto znßmΘ reklamnφ triky se pou₧φvajφ vÜude kolem nßs. Nap°φklad exkluzivnφ p°echodnΘ snφ₧enφ cen zbo₧φ se provede tak, ₧e se nechß p∙vodnφ cena zbo₧φ a nad nφ se napφÜe cena o 30% vyÜÜφ a p°eÜkrtne se :-). A nebo Telecoom (Φte se telekum û pozor nezam∞≥ovat s renomovanou znßmou telekomunikaΦnφ spoleΦnostφ) zavede novΘ tarify pro produkt Internet 99 a stßle, m∞sφc po zavedenφ tΘto slu₧by, ·Φtuje obΦan∙m v jednom nejmenovanΘm m∞st∞, nalΘzajφcφ se na Severnφ Morav∞ telefonnφ impulsy se star²mi sazbami :-). ProΦ by se tato marketingovß maÜinΘrie, kterß mß za cφl zv²Üenφ prodejnosti v²robk∙, m∞la vyhnout zrovna hardwarovΘmu pr∙myslu? Budha by mo₧nß na to °ekl toto: Z jednoty vznikß dvojnost û z dvojnosti vznikß cht∞nφ a ze cht∞nφ vznikß ...

SkuteΦnost je takovß, ₧e z d∙vodu ôpomalosti souΦasn²ch procesor∙ö nßm teprve grafickΘ 3D akcelerßtory umo₧nily, vyu₧it v²Üe zmi≥ovan²ch technologiφ, kterΘ zp∙sobily velmi podstatn² kvalitativnφ p°elom v hernφm pr∙myslu. V²robci grafick²ch Φip∙ musφ mφt v patrnosti finßlnφ cenu, aby byla grafickß karta b∞₧nΘmu spot°ebiteli cenov∞ p°φstupnß. VÜe je to ·zce napojeno na v²zkumnΘ laborato°e, ve kter²ch nejsou vÜechny projekty v praxi ₧ivotaschopnΘ, a na nßslednΘm uvedenφ nov²ch technologiφ a postup∙ zpracovßnφ do praxe.

Taky si myslφm, ₧e by nßs koneΦnΘ spot°ebitele, mo₧nß h°ßl na srdci pocit, ₧e mßme pravΘ anizotropickΘ filtrovßnφ, embossing filtering a full scene antialiasing, ale rychlost hry podobajφcφ se prohlφ₧enφ diapozitiv∙ by nßs z tohoto h°ejivΘho pocitu rychle probudila. R∙znΘ nßvody na vÜelijakΘ tweakovßnφ her, kterΘ nakonec p°em∞nφ hru v zcela jinou, ne₧ p∙vodn∞ programßto°i zam²Üleli, takΘ napomßhß k podpo°e davovΘho fanatismu za honbou uvoln∞n²ch fps, aby mohli hrßt ve vyÜÜφch rozliÜenφch. V souΦasnΘ dob∞ ji₧ nenφ podstata problΘmu jen v tom, abychom dosßhli co nejvφce fps, ale takΘ v kvalit∞ zobrazovßnφ. S ka₧dou novou generacφ grafick²ch Φip∙ je k dispozici takΘ v∞tÜφ v²poΦetnφ potencißl procesor∙ a tak v∞°φm, ₧e souΦasnΘ technologie, ale i ty, kterΘ p°ijdou, budou stßle vφce spoleΦn∞ s aplikacemi vyu₧φvat vÜechny dostupnΘ rysy a vymo₧enosti k naÜφ celkovΘ spokojenosti. Za p∞t rok∙ mo₧nß bude vÜe od firmy ôTNIntelLogic Fxfooling AMD corporationö na ploÜnΘm spoji o rozm∞ru 1cm2 s atomov²m generßtorem a ·spora elektrickΘ energie ji₧ bude tak z°etelnß, ₧e ╚EZ koneΦn∞ vyslyÜφ ₧ßdosti ekologicky sm²Ülejφcφch obΦan∙ a v²stavbu Temelφnu s koneΦnou platnostφ zastavφ. Uuuuuffffff, u₧ aby to bylo. :-)

Pozn. Pepa KokeÜ:

Antialiasing: S poklesem v²konu p°i antialiasingu nemß autor pravdu. Pokles nenφ p°φmo ·m∞rn² velikosti antialiasingu (2x2 -> 4x ni₧Üφ v²kon). Rychlost klesne na tu hodnotu, na jakou by padla v p°φpad∞, ₧e pou₧ijete p°φsluÜn∞ v∞tÜφ rozliÜenφ - tak₧e nap°. u 800x600 s 2x2 antialiasingem rychlost klesne zhruba na ·rove≥, na jakou by se dostala v 1600x1200 bez antialiasingu. V extrΘmnφch p°φpadech (na velmi v²konnΘ kart∞, ale velmi slabΘm procesoru) by tedy rychlost s antialasingem mohla b²t stejnß jako rychlost bez n∞j: P°i zv²Üenφ rozliÜenφ se nem∞nφ poΦet polygon∙ (kterΘ poΦφtß procesor), pouze stoupß nßrok na fillrate grafickΘ karty. Pokud je rychlost siln∞ limitovßna procesorem (t°eba Pentium 166), ale grafickß karta mß velkou rezervu ve fillrate (t°eba TNT2 v 640x480), ani po zdvojnßsobenφ rozliÜenφ v obou sm∞rech rychlost nemusφ poklesnout.

P°edpov∞∩ do budoucna: Nemohu souhlasit ani s jednφm tvrzenφm:

  • 32bitov² Z-buffer - tvrzenφ o existenci 32bitovΘho Z-bufferu mß zhruba stejnou pravdivostnφ hodnotu jako tvrzenφ o existenci 32bitov²ch barev, tedy ₧ßdnou (pou₧φvß se 24bit∙, zbyl²ch osm je v lepÜφm p°φpad∞ pou₧ito pro jinΘ ·Φely - alpha kanßl u barev, stencil buffer u Z-bufferu). V tomto smyslu nßs v²robci skuteΦn∞ klamou. Ale myslφm, ₧e pou₧itφ 24bitovΘho (nebo i v∞tÜφho) Z-bufferu mß sv∙j smysl. StaΦφ si uv∞domit, ₧e hloubka Z-bufferu udßvß maximßlnφ mo₧nou hloubku viditelnΘ scΘny, v p°φpad∞ 16bit∙ 65536 bod∙. P°edstavte si t°eba leteck² simulßtor, kde chcete vid∞t t°eba 10 km dop°edu (a to poΦφtßm s tφm, ₧e Z-sou°adnice se skuteΦn∞ budou p°epoΦφtßvat podle pozice letadla). Vyd∞lte si tato dv∞ Φφsla, a vyjde vßm p°esnost 6,5 bodu na metr. To podle m∞ nenφ ₧ßdnß velkß ·rove≥ detail∙, obzvlßÜ¥ nep°ßtelskß letadla nebo tanky by pak vypadaly velmi podivn∞.
  • Stencil buffer v hardwaru zatφm nenφ pot°eba, ale jen co Φipy zaΦnou poΦφtat v hardwaru osv∞tlenφ, tak jeho v²znam naroste. P°edstavte si tu ironii (a pomalost), ₧e sv∞tlo vßm spoΦφtß karta, ale stφn musφte poΦφtat sami (a k poΦφtßnφ stφn∙ samoz°ejm∞ pot°ebujete poΦφtat i se sv∞tlem, tak₧e karta se vlastn∞ na sv∞tlo mohla klidn∞ vybodnout a v²sledek by byl stejn².
  • VelkΘ textury - vzpomφnßte si jeÜt∞ na System Shock, kter² krom∞ obvykl²ch textur 64x64 dovoloval pou₧φt i 128x128? Tehdy to jeÜt∞ pou₧itelnΘ nebylo, ale o p∙l roku pozd∞ji u₧ ano.
  • Bump mapping - Matrox G400 a Environmental bump mapping, vφc nenφ pot°eba °φkat.