V této třetí kapitole, kde se podrobněji podíváme na tvorbu 3D her, se zaměříme na to, co se může stát s 3D světem po dokončení rohového zpracování a rastrování scény. Konfigurace je jednou z nejdůležitějších fází vykreslování, i když vše, co se stane, jsou barvy dvojrozměrné mřížky barevných bloků a jsou vypočítány a změněny.

Mnoho vizuálních efektů viděných v dnešních hrách závisí na chytrém použití textur - bez nich by byly hry nudné a bez života. Pojďme se tedy ponořit a podívejme se, jak tyto fungují!

Jako vždy, pokud nejste připraveni hluboce se ponořit do tkáně, nepropadejte panice - můžete začít Tvorba 3D her 101. Jakmile ale zvládnete základy, přečtěte si náš další pohled na svět 3D grafiky.

Začněme jednoduše

Vyberte si nejprodávanější 3D hry za posledních 12 měsíců a všechny budou sdílet jednu společnou věc: texturní mapy (nebo prostě textury). Jedná se o velmi běžný pojem, většina lidí vytvoří stejný obrázek při přemýšlení o texturách: jednoduchý, plochý čtverec nebo obdélník obsahující obrázek povrchu (tráva, kámen, kov, oděv, obličej atd.).

Pokud je však použit ve více vrstvách a spojeno pomocí složité aritmetiky, může použití těchto základních obrazů ve 3D scéně vytvářet úžasně realistické obrazy. Abychom zjistili, jak je to možné, přeskočme je úplně a podívejme se, jak by mohly vypadat objekty ve 3D světě bez nich.




Jak jsme viděli v předchozích článcích, 3D svět se skládá z vrcholů - jednoduchých tvarů, které se přesouvají a poté obarvují. Ty se pak používají k výrobě primitiv, které se zase komprimují do mřížky 2D pixelů. Protože nebudeme používat textury, musíme tyto pixely obarvit.



Volá se metoda, kterou lze použít ploché stínovánízahrnuje získání barvy prvního vrcholu primitiva a následné použití této barvy pro všechny pixely v rastru, které spadají pod tvar. Vypadá to takto:




Je zřejmé, že to není realistická čajová konvice, přinejmenším špatná barva povrchu. Barvy skákají z jedné úrovně do druhé, nedochází k plynulému přechodu. Řešením tohoto problému může být použití něčeho, co se nazývá Gouraudovo stínování.



Jedná se o operaci, která přebírá barvy vrcholů a vypočítá, jak se barva mění na povrchu trojúhelníku. Použitá matematika lineární interpolaceI když to zní fantasticky, ve skutečnosti, pokud má jedna primitivní strana 0,2 červené barvy a druhá strana 0,8 červené, znamená to, že střed tvaru má barvu mezi 0,2 a 0,8 (tj. 0,5).

Je to relativně jednoduché a hlavní výhodou je rychlost. Mnoho časných 3D her používalo tuto techniku, protože hardware provádějící výpočty byl omezen tím, co dokázal.




Ale i to má své problémy, protože pokud světlo míří přímo uprostřed trojúhelníku, jeho vrcholy (vrcholy) jej nemusí správně zachytit. To znamená, že světla způsobená světlem lze zcela přehlédnout.




Ploché a Gouraudovo stínování je v arzenálu vykreslení, zatímco výše uvedené příklady jsou jasnými kandidáty na použití textur k jejich vylepšení. A abychom lépe pochopili, co se stane, když se na povrch aplikuje textura, vrátíme se zpět v čase ... zpět do roku 1996.

Stručná historie her a GPU

Quake je významná hra vydaná před 23 lety id Software. I když to nebyla první hra, která k vytvoření prostředí použila 3D polygony a textury, byla to jedna z prvních, která je všechny využila tak efektivně.

Další věc, kterou udělal, bylo ukázat, co lze udělat s OpenGL (grafické rozhraní API bylo stále v první revizi), a také to pomohlo prodat první produkt grafické karty. Komentář ve 3Dfx Vudu.

Ve srovnání s dnešními standardy bylo Voodoo extrémně jednoduché: žádná podpora pro 2D grafiku, žádné vertexové vykreslování a jen základy pixelového vykreslování. Stále to byla krása:

Měl celý čip (TMU), aby získal pixel z textury, a pak další čip (FBI), aby jej smíchal s pixelem z rastru. Mohlo by to udělat pár doplňků, jako je vytváření efektů mlhy nebo průhlednosti, ale to bylo téměř vše.

Pokud si vezmeme přehled architektury za designem a provozem grafické karty, můžeme vidět, jak tyto procesy fungují.

Čip FBI má dvě barevné hodnoty a kombinuje je; jedním z nich může být hodnota z textury. Proces řazení je matematicky poměrně jednoduchý, ale mírně se liší mezi tím, co se přesně míchá, a kterým API se používá k provedení pokynů.

na co se podíváme Direct3D nabízí Pokud jde o funkce míchání a operace míchání, vidíme, že každý pixel je nejprve vynásoben číslem mezi 0,0 a 1,0. To určuje, kolik barvy pixelu ovlivní konečný vzhled. Poté jsou přidány, odečteny nebo duplikovány dvě upravené barvy pixelů; v některých funkcích je operace logickým výrazem, kde je vždy vybráno něco jako nejjasnější pixel.

Obrázek nahoře je příkladem toho, jak to funguje v praxi; faktor použitý pro levý pixel alfa hodnota. Tohle číslo průhledný pixelů.

Zbytek kroků zahrnuje použití hodnoty mlhy (převzato z číselné tabulky vytvořené programátorem a poté provedené stejné matematické matice); provádět určité kontroly a úpravy viditelnosti a průhlednosti; před konečným zápisem barvy pixelu do paměti na grafické kartě.

Proč lekce historie? Navzdory relativní jednoduchosti designu (zejména ve srovnání s moderními vývojáři) proces vysvětluje základní základy texturování: získejte některé barevné hodnoty a promíchejte je, aby modely a prostředí vypadaly tak, jak by měly v dané situaci vypadat.

Dnešní hry to všechno ještě dělají, jediným rozdílem je množství použitých textur a složitost výpočtů míchání. Společně simulují vizuální efekty viděné ve filmech nebo interakci světla s různými materiály a povrchy.

Základy texturování

Pro nás je textura plochý 2D obraz aplikovaný na polygony, které tvoří 3D struktury v zobrazeném rámečku. Pro počítač to není nic jiného než malý blok paměti ve formě 2D pole. Každá položka v poli představuje hodnotu barvy pro jeden z pixelů v obraze textury (známější) výplň textu - texturní pixely).

Každý vrchol v mnohoúhelníku má 2 souřadnice (obvykle sen, v) vám řekne, který pixel v textuře je s ním spojen. Samotný vrchol má 3 sady souřadnic (X ve Z) a nazývá se proces připojování textů k vrcholům. mapování textury.

Abychom to viděli v akci, vraťme se k nástroji, který jsme v této sérii článků několikrát použili: Vykreslování WebGL v reálném čase nářadí. Pro teď, z koordinovat z rohů a udržovat vše v rovné rovině.

Zleva doprava máme texturu sen, v souřadnice mapované přímo na rohové vrcholy x, y souřadnice. Pak horní rohy y souřadnice se zvětšily, ale textura se natáhla nahoru, protože textura se stále mapuje přímo na ně. Na obrázku zcela vpravo se tentokrát změnila struktura: u hodnoty se zvyšují, ale to způsobí rozdrcení tkáně a její relaps.

Protože tkáň je nyní účinně delší, i když vyšší u Hodnota musí zapadat do primitivu - v podstatě se textura částečně opakuje. Toto je způsob, jak dělat něco, co je vidět v mnoha 3D hrách: topakovat. Běžné příklady toho lze najít ve scénách se skalnatými nebo travnatými krajinami nebo cihlovými zdmi.

Pojďme nyní nastavit scénu tak, aby byla primitivnější, a vraťme hloubku zpět do hry. Níže máme klasický pohled na krajinu, ale jak se struktura hrudníku kopíruje a opakuje mezi primitivy.

Nyní má tato struktura hrudníku 66 kilogramů v původním formátu gif a má rozlišení 256 x 256 pixelů. Původní rozlišení části rámečku obsazeného texturami přepravky je 1900 x 680, takže z hlediska pouze pixelové „oblasti“ by tato oblast měla být schopna zobrazit pouze 20 textur přepravky.

Zjevně dostáváme na pozadí více než 20 cest, tolik textur hrudníku velmi Menší než 256 x 256 pixelů. Ve skutečnosti jsou a prošly procesem redukce textury (ano, to je slovo!). Nyní to zkusme znovu, ale tentokrát se to přiblížilo k jedné z truhel.

Všimněte si, že textura má velikost pouze 256 x 256 pixelů, ale zde vidíme, že textura má více než polovinu šířky obrázku o šířce 1900 pixelů. Prošlo to něčím, čemu se říká textura augmentace tkání.

Tyto dva procesy textury se ve 3D hrách vyskytují po celou dobu, protože při pohybu kamery po scéně nebo přiblížení a oddálení modelů je třeba všechny textury aplikované na primitiva spolu s polygony upravit. Matematicky to není velký problém, ve skutečnosti v tomto oboru blikají i ty nejjednodušší integrované grafické čipy. Redukce a augmentace tkáně však představuje nové problémy, které je třeba nějak vyřešit.

Zadejte mini textury

První problém, který je třeba opravit, je pro vzdálené textury. Podíváme-li se znovu na první obraz krajiny přepravky, ty směrem k obzoru mají velikost jen pár pixelů. Pokoušet se vtesnat obrázek o velikosti 256 x 256 pixelů do tak malého prostoru je zbytečné ze dvou důvodů.

Zaprvé menší textura zabírá méně místa v paměti na grafické kartě, což je užitečné při pokusu o vložení malého množství mezipaměti. To znamená, že je méně pravděpodobné, že bude odstraněn z mezipaměti, a opakované použití této textury bude mít plný užitek z výkonu dat, která jsou v blízké paměti. Druhým důvodem, proč jsme tu na chvíli, protože je to spojeno se stejným problémem pro zvětšené textury.

Běžné řešení pro použití velkých textur, které jsou rozdrceny na malá primitiva, Vhodný. Jedná se o zmenšené verze původní textury; Samotný herní engine může být sestaven (pomocí příslušného příkazu API) nebo může být předem připraven herními designéry. Každá úroveň textury mipmapy má poloviční lineární rozměry než předchozí.

Pro texturu hrudníku by to bylo něco jako: 256 x 256 → 128 x 128 → 64 x 64 → 32 x 32 → 16 x 16 → 8 x 8 → 4 x 4 → 2 x 2 → 1 x 1.

Všechny mipmapy jsou seskupeny dohromady, takže struktura je stále stejný název souboru, ale nyní větší. Tkáň je zabalena takovým způsobem, že sen, v Jeho souřadnice nejen určují, který texel se má použít na pixel v rámečku, ale také od které mipmapy. Programátoři poté kódují vykreslovací modul, aby určili použitou mipmapu na základě hodnoty hloubky čtvercového pixelu, takže pokud je příliš vysoká, pixel je daleko, takže lze použít malou mipmapu.

Čtenáři s ostrými očima možná zaznamenali nevýhodu mipmap a je to na úkor větších textur. Původní struktura hrudníku byla 256 x 256 pixelů, ale jak vidíte na obrázku výše, struktura mipmapy je nyní 384 x 256 pixelů. Ano, je tu spousta volného místa, ale celkový nárůst alespoň na jednu z velikostí textury je 50%, bez ohledu na to, jak se sbalíte do menších textur.

To však platí pouze pro předem připravené mipmapy; Pokud byl herní engine naprogramován tak, aby je generoval správně, nárůst nikdy nemůže být větší než 33% oproti původní velikosti textury. Získáte tedy výhody výkonu a vizuální vylepšení pro relativně malé zvýšení paměti na mipmapách textur.

Níže je vypnuto / zapnuto srovnání mipmap textury:

Na levé straně obrázku jsou textury přepravek použity „tak, jak jsou“, což má pravděpodobně zrnitý vzhled moaré vzory pryč. Vpravo však použití mipmap vede k mnohem plynulejšímu přechodu přes krajinu, kde se struktura přepravky mění na konzistentní barvu na obzoru.

Kdo však chce rozmazané textury, které kazí pozadí jejich oblíbené hry?

Bilineární, trilineární, anizotropní - vše řecké pro mě

Proces výběru pixelů z textury, který se má použít na pixel v rámci, se nazývá vzorkování texturya v dokonalém světě, jeho velikost, umístění, směr atd. bez ohledu na to by to byla textura, která přesně odpovídá primitivu. Jinými slovy, vzorkování textury není nic jiného než plošné mapování 1: 1 na pixel.

Protože tomu tak není, musí vzorkování textury zohledňovat řadu faktorů:

  • Je textura zvětšená nebo zmenšená?
  • Je textura originální nebo mipmap?
  • V jakém úhlu je zobrazena textura?

Pojďme je analyzovat jeden po druhém. První je dostatečně jasný: pokud je textura zvětšena, bude v primitivu více textu překrývajícího pixel; se zmenšením to bude naopak, každý texel musí nyní překlenout více než jeden pixel. To je trochu problém.

Zadruhé, protože se mipmapy používají k obcházení problému vzorkování textury pomocí vzdálených primitiv, ponechává textury pod určitým úhlem. A ano, to je také problém. Proč? Protože všechny textury jsou pro zobrazení vykresleny „otevřenou tváří“, nebo všechny jsou podobné matematice: normála povrchu textury je stejná jako normální plocha zobrazená nad texturou.

Proto mít příliš málo nebo příliš mnoho textury a textury pod úhlem, filtrování textur. Pokud tuto akci nepoužíváte, získáte toto:

Tady jsme nahradili texturu hrudníku texturou písmene R, abychom jasněji ukázali, kolik nepořádku dostane bez filtrování textur!

Grafická rozhraní API, jako jsou Direct3D, OpenGL a Vulkan, nabízejí stejné typy filtrování rozsahu, ale používají pro ně různé názvy. Ve skutečnosti to všechno vypadá takto:

  • vzorkování nejbližšího bodu
  • Filtrování lineární textury
  • Filtrování anizotropní textury

Pro všechny záměry a účely vzorkování nejbližšího bodu pokud to není filtrování - je to proto, že je to nejbližší pixel k pixelu, který vyžaduje, aby byly textury vzorkovány (tj. zkopírovány z paměti) a poté smíchány s původní barvou pixelu.

Zde přichází na pomoc lineární filtrování. Požadované sen, v souřadnice texelu jsou odesílány do hardwaru pro vzorkování, ale namísto získání textelu nejblíže těmto souřadnicím je vzorkovač čtyři texel Jedná se přímo nad, pod, vlevo a vpravo od toho vybraného pomocí vzorkování nejbližšího bodu.

Tyto 4 textilie jsou poté smíchány pomocí váženého vzorce. Například ve Vulkanu je vzorec:

T "Barva", f U vyčerpaného a od 1 do 4 jsou čtyři vzorkované textilie. Hodnoty alfa ve beta jak daleko od bodu definovaného sen, v souřadnice pocházejí ze středu tkáně.

Naštěstí všichni, kdo se zabývají 3D hrami, ať už hrají nebo dělají hry, se na tomto čipu pro zpracování grafiky dějí automaticky. Ve skutečnosti to čip TMU v 3dfx Voodoo udělal: vzorkoval 4 singletony a poté je zamíchal. Direct3D tomu říká divně bilineární filtrování, ale od doby čipu Quake a Voodoo TMU byly grafické karty schopny provádět bilineární filtrování pouze v jednom hodinovém cyklu (samozřejmě pokud textura sedí pohodlně v blízké paměti).

Spolu s mipmaps lze použít lineární filtrování a pokud chcete, aby vaše filtrování bylo opravdu fantastické, můžete si vzít 4 texty z textury, pak další 4 z další úrovně mipmaps a poté je sloučit dohromady. A název Direct3D pro to? trilineární filtrování. Co tri o tomto procesu? Váš odhad je stejně dobrý jako náš ...

Poslední zmíněná metoda filtrování se nazývá anizotrop. Jedná se vlastně o úpravu procesu prováděného v bilineárním nebo trilineárním filtrování. Zpočátku stupeň anizotropie primitivní povrch (a překvapivě složité) - tato hodnota mění poměr stran primitivu kvůli jeho orientaci:

Obrázek výše ukazuje stejný čtvercový primitiv se stranami stejné délky; ale jak se vzdalujeme od naší perspektivy, vypadá to jako čtvercový obdélník a jeho šířka se zvětšuje nad jeho výšku. Takže primitiv na pravé straně má větší anizotropii než ten nalevo (a v případě čtverce je stupeň přesně nula).

Většina dnešních 3D her vám umožňuje povolit anizotropní filtrování a poté upravit jeho úroveň (1x až 16x), ale co se to vlastně změní? Nastavení řídí maximální počet dalších vzorků texelu odebraných na původní lineární vzorek. Řekněme například, že hra je nastavena na 8x anizotropní bilineární filtrování. To znamená, že vrátí 32 hodnot namísto pouhého převzetí 4 textových hodnot.

Je zřejmé, že použití anizotropního filtrování může realizovat:

Stačí trochu posunout nahoru a porovnat vzorkování nejbližšího bodu pro maximálně 16x anizotropní trilineární filtrování. Tak hladký, téměř lahodný!

Musí však platit cena za všechnu tu pěknou chuť máslové textury a je to rozhodně výkon: veškeré maximum, anizotropní trilineární filtrování vrátí 128 vzorků textury pro každý vykreslený pixel. Dokonce i pro nejlepší z nejnovějších GPU to nelze provést v jediném hodinovém cyklu.

Pokud dostaneme něco jako AMD Radeon RX 5700 XTJednotky textury uvnitř procesoru mohou každý vypnout 32 texelových adres v jednom hodinovém cyklu, poté načíst 32 texelů z paměti (každá o velikosti 32 bitů) v jiném hodinovém cyklu a poté dát 4 z nich dohromady k označení. Proto je zamícháno pro 128 texel instancí, které vyžadují alespoň 16 taktovacích cyklů.

Základní rychlost hodin 5700 XT je nyní 1605 MHz, takže šestnáct cyklů trvá pouze 10 nanosaniye. Udělejte to pro každý pixel v rámečku 4K. jeden tkáňová jednotka by stále trvala jen 70 milisekund. Dobře, možná výkon není tak důležitý!

Už v roce 1996 byly 3Dfx Voodoo docela šikovné, co se týče zpracování textur. Mohlo to dosáhnout maxima na 1 bilineární filtrovaný texel za hodinový cyklus a znamenalo to, že 50 milionů tex bylo možné snížit každou sekundu, zatímco čip TMU se houpal na 50 MHz. Hra běžící na 800 x 600 a 30 sn./s potřebuje pouze 14 milionů bilineárního filtrovaného textu za sekundu.

To vše však předpokládá, že textury jsou v blízké paměti a ke každému pixelu je namapován pouze jeden tex. Před dvaceti lety byla myšlenka použití více textur na politiku téměř úplně cizí, ale nyní je to běžné. Podívejme se, proč k této změně došlo.

Osvětluje cestu k ohromujícím obrázkům

Abyste pochopili, jak se tkaní stalo tak důležitým, podívejte se na tuto scénu z Quake:

Je to temný obraz, který byl podstatou této hry, ale můžete vidět, že tma není všude stejná - skvrny stěn a podlahy jsou jasnější než ostatní, aby poskytly pocit celkového osvětlení v této oblasti.

Primitivy, které tvoří strany a půdu, mají na ně aplikovanou stejnou texturu, ale existuje druhá textura s názvem světelná mapaje smíchán s hodnotami texel, než je porovnán se čtvercovými pixely. V dobách Quake byly světelné mapy předpočítány a vytvořeny herním enginem a použity k vytváření statických a dynamických úrovní světla.

Výhodou jejich použití bylo, že složité výpočty osvětlení byly prováděny spíše na textury než na rohy, což zlepšilo zejména vzhled scény a velmi nízké náklady na výkon. Zjevně to není dokonalé: jak vidíte na zemi, hranice mezi osvětlenými oblastmi a těmi ve stínech je velmi jasná.

V mnoha ohledech je odlehčená mapa jen další texturou (pamatujte, že nejsou nic víc než 2D datová pole), takže to, na co se zde díváme, je rané použití toho, co je známé jako multi textury. Jak název napovídá, jedná se o proces, při kterém jsou na princip aplikovány dvě nebo více textur. Použití odlehčených map v Quake bylo řešením, jak překonat omezení stínování Gouraud, ale jak rostly možnosti grafických karet, rostly i vícevláknové aplikace.

3Dfx Voodoo, stejně jako ostatní karty své doby, bylo omezeno v tom, kolik toho dokáže v jednom vykreslení složit. Jedná se v podstatě o kompletní sekvenci vykreslování: od vykreslení rohů po rastrování rámečku a poté změnu pixelů na konečný framebuffer. Před dvaceti lety hrály hry téměř vždy jeden průchod.

Bylo to proto, že vykreslení vrcholů dvakrát bylo velmi nákladné z hlediska výkonu, protože jste chtěli použít více textury. Několik let po Voodoo jsme museli počkat, až bude k dispozici, než jsme mohli udělat vícevláknové grafické karty ATI Radeon a Nvidia GeForce 2 v jediném vykreslení.

Tyto GPU měly více jednotek textury na vykreslovací sekci pixelu (tj. potrubí), takže přivedení bilineárního filtrovaného texelu ze dvou samostatných tkání bylo hračkou. Díky tomu bylo světelné mapování ještě populárnější, což umožnilo plně dynamickým hrám a změnilo hodnoty světla na základě změn v prostředí hry.

Ale s více texturami lze udělat mnohem více, tak se pojďme podívat.

Je normální znásobit výšku

V této sérii článků o 3D vykreslování jsme se nezabývali tím, jak se role GPU opravdu hodí k celému bodu (budeme, ještě ne!). Ale pokud se vrátíš Epizoda 1a podívejte se na veškerou složitou práci při vykreslování vrcholů, možná si myslíte, že toto je nejtěžší část celého pole pro zpracování GPU.

Bylo to už dlouho a herní programátoři udělali vše pro to, aby toto pracovní vytížení snížili. To znamenalo dostat se do sáčku vizuálních triků a vytáhnout co nejvíce klávesových zkratek a cheatů, což dalo stejný vizuální vzhled při použití mnoha vrcholů všude, ale ve skutečnosti k jejich spuštění nebylo použito tolik z nich.

A většina z těchto triků, výškové mapy ve pravidelné mapy. Dva souvisí s tím, že druhý může být vytvořen z prvního, ale prozatím se podívejme na techniku ​​nazvanou: bump mapping.

Mapování nárazů zahrnuje použití 2D pole zvaného výšková mapa, které vypadá jako jedna verze původní textury. Například výše uvedený obrázek má realistickou texturu cihel aplikovanou na 2 ploché povrchy. Textura a mapa výšky vypadá takto:

Barvy výškové mapy představují normály povrchu cihly (pokryli jsme to, co je normální Epizoda 1 této řady článků). Když sekvence vykreslení dosáhne bodu aplikace textury cihly na povrch, provede se řada výpočtů k úpravě barvy textury cihly na normální.

Výsledkem je, že cihly vypadají více 3D, i když jsou stále dokonale ploché. Zvláště pokud se pečlivě podíváte na okraje cihel, můžete vidět meze techniky: textura vypadá trochu pokřiveně. Ale pro rychlý trik přidání více detailů k povrchu je velmi populární bump mapping.

Normální mapa je jako výšková mapa, ale barvy této textury jsou normální samy o sobě. Jinými slovy, k převodu výškové mapy na normální není nutný výpočet. Možná se divíte, jak lze pomocí barev reprezentovat šipku v prostoru. Odpověď je jednoduchá: každý texel má své specifické R, G, B hodnoty (červená, zelená, modrá) a tato čísla jsou přímo X ve Z hodnoty pro normální vektor.

Ve výše uvedeném příkladu ukazuje levé schéma, jak se směr normálu mění na drsném povrchu. Abychom představili stejné normály v ploché struktuře (střední diagram), přiřadíme jim barvu. V našem případě, R, G, B zvyšování hodnot (0,255,0) pro přímku a poté množství červené pro levou a modrou pro pravou.

Pamatujte, že tato barva není smíchána s původním pixelem - sděluje procesoru, kterým směrem je normální, takže fotoaparát může správně vypočítat úhly mezi světly a povrchem s texturou.

Výhody nárazového a normálního mapování skutečně svítí, když se ve scéně používá dynamické osvětlení, a proces vykreslování počítá účinky změn světla na pixel, ne na roh. Moderní hry nyní používají spoustu textur ke zlepšení kvality provedené magie.

Tato realisticky vypadající stěna je neuvěřitelně jen rovný povrch - podrobnosti o cihel a maltě nebyly provedeny pomocí milionů polygonů. Místo toho to dělá jen 5 textur a spoustu chytré matematické práce.

Výšková mapa byla použita ke generování normální mapy pro simulaci způsobu, jakým cihly vrhají stíny na sebe a jakékoli drobné změny povrchu. Drsnost textury byla použita ke změně toho, jak světlo odráží různé prvky stěny (např. Zploštělá cihla odráží konzistentněji než hrubá malta).

Konečná mapa, označená AO na obrázku výše, tvoří součást procesu zvaného okolní okluze: technika, na kterou se v pozdějším článku podíváme hlouběji, ale zatím jen ve stínech.

Mapování textur je zásadní

Texturování je pro herní design naprosto zásadní. Získejte verzi Warhorse Studio z roku 2019 Království přichází: spása - RPG z pohledu první osoby z 15. století v Čechách, starobylé zemi střední a východní Evropy. Designéři chtěli vytvořit svět co nejrealističtější pro dané období. A nejlepší způsob, jak hráče ponořit do života před stovkami let, každý pohled na krajinu, budovu, sadu oblečení, vlasy, předměty každodenní potřeby atd. Bylo to o správném vzhledu.

Každá jedinečná struktura v tomto jediném obrázku ve hře je vytvořena umělci a jejich použití vykreslovacím modulem ovládaným programátory. Některé jsou malé, mají základní detaily a filtrování nebo zpracování jiných textur (například kuřecí křidélka) zabere jen málo.

Jiné mají vysoké rozlišení a ukazují spoustu jemných detailů; anizotropicky filtrováno a smícháno s normálními mapami a jinými texturami - stačí se podívat na tvář muže v popředí. Programátoři vysvětlují různé požadavky na texturování každého prvku ve scéně.

To vše se nyní děje v mnoha hrách, protože hráči očekávají více detailů a realismu. Textury porostou a budou se více používat na povrchu, ale proces vzorkování textu a jeho aplikace na pixely bude v zásadě stejný jako za dnů Quake. Nejlepší technologie, bez ohledu na to, jak stará, nikdy nezemře!