Prohlášení o autorství

Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.

Vedoucí práce: Mgr. Jiří Chmelík, Ph.D. Poděkování

Chtěl bych tímto způsobem poděkovat Mgr. Jiřímu Chmelíkovi, Ph.D. za to, že v dobách hledání, strádání a nejistoty nejen, že odhodlaně přijal pozici garanta této práce, ale hlavně plně projevil svou benevolenci a shovívavost týkající se mého přístupu v průběhu celého procesu. Dále bych chtěl poděkovat MgA. Heleně Lukášové v pozici konzultanta za její nadšení a optimismus, ale i za hlas, který mne neustále motivoval k tomu, abych všechny tyto a veškeré následující řádky doopravdy sepsal. První kapitolu bych jen těžko koncipoval nebýt serveru www.root.cz a jeho seriálu Historie vývoje počítačových her, který výtečně zdokumentoval nejdůležitější milníky herního průmyslu a nesmírně mi pomohl nastínit a představit vývoj vlasů u her sedmdeátých a osm- desátých let. V neposlední řadě bych chtěl poděkovat svým rodičům, svým relativně silným nervům a vlastně i všem svatým za to, že jsem se vůbec narodil, zvládl vyrůst po téměř všech stránkách s důstojností sobě vlastní a dokázal se relativně ve zdraví dožít tohoto vzácného okamžiku. Předběžné shrnutí

Tato práce analyzuje historii a moderní principy tvorby a následného vykreslování vlasů a účesů v počítačových hrách a přináší další postup, který by mohl daný proces obohatit a s trochou štěstí a nadsázky udat určitý trend pro vývoj v nejbližších letech. Její hlavní část představuje a také vysvětluje přiložený kód a jeho funkci a pokusí se důvěryhodně nastínit, jak a proč je vytvořen právě tímto způsobem. Stejnými principy vysvětlí i přiložený materiál, který je použit při renderování vlasů.

Klíčová slova

model, modelování, vlasy, vousy, displacement, shader, Blender, 3D Obsah

Úvod...... 5 Nastavení zrcadla...... 5 Od pouhých slov k činům...... 6 Kapitola I: Evoluce (techniky vykreslování vlasů)...... 7 1.1 Historie...... 7 1.1.1 Éra instalatérská...... 7 1.1.2 2D a zlatá devadesátá...... 9 1.1.3 3D hry druhého tisíciletí...... 10 1.2 Současné techniky...... 11 1.2.1 Millenium...... 11 1.2.2 Uncharted 2 vs. RPG...... 13 1.2.3 Alpha blend/test/to coverage...... 14 1.2.4 NVIDIA HairWorks a přiblížení hair strands...... 15 1.2.5 DirectX 12 a Tress FX 3.0/NVIDIA HairWorks...... 16 Kapitola II: Revoluce (vlastní návrh a implementace)...... 17 A pak přicházím já, celý v bílém...... 17 2.1 Tvorba vlasů...... 19 2.1.1 Pramínek vlasů...... 19 2.1.2 HerrHair...... 22 2.1.2.1 Kód pro vousy...... 23 2.1.2.2 Komplementární kódy pro vlasy...... 24 2.2 Tvorba materiálu...... 28 2.2.1 Pestrobarevný svět...... 28 2.2.2 Složení materiálu...... 29 2.2.2.1 Hard shader...... 29 2.2.2.2 Soft shader...... 31 2.2.2.3 Kombinace...... 32 Kapitola III: Konvoluce (kvalitativní/kvantitativní srovnání)...... 34 Bez hranic...... 34 3.1 Kvantitativní srovnání...... 35 3.1.1 Základní přehled...... 35 3.2 Kvalitativní srovnání...... 35 3.2.1 Top Ten...... 36 3.2.1.1 Deus Ex: Human Revolution...... 37 3.2.1.2 ...... 38 3.2.1.3 GTA V...... 40 3.2.1.4 Ryse: Son of Rome...... 41 3.2.1.5 Série her Metal Gear...... 42 3.2.1.6 Dragon Age: Inquisition...... 44 3.2.1.7 The Order: 1886...... 45 3.2.1.8 Final Fantasy XV...... 46 3.2.1.9 Star Citizen...... 47 3.2.2 Lehce subjektivní verdikt...... 48 Kapitola IV: Rezoluce (shrnutí závěrů)...... 49 Závěr...... 49 Na začátku cesty...... 49 Nastavení zrcadla

Vlasy. Bez nadsázky jedno z těch skutečně traumatizujících zel, které každý z nás zažil. Pokud bychom měli lidskou bytost rozebrat na základní vizualizační prvky, co získáme? Máme zde tělo, bráno jako základní strukturu, které má jisté své charakteristické a charakterizační prvky, díky kterým dokážeme určit mnoho důležitých informací. Jednou z hlavních je pohlaví, což se může zdát banální, nicméně z toho, co jsem slyšel, se obzvláště v Bangkoku tyto informace získané základ- ními pozorovacími schopnostmi spojenými s anatomickými znalostmi poměrně hodí. Dokážeme díky němu také odhadnout fyzické predispozice (Sheldonem nastavený ektomorfní, mezomorfní či endomorfní typ těla) [1] či s nimi spojené generalizačně pojaté psychické vlastnosti (jedinci trpící nadváhou jsou většinou psychicky vyrovnanější, veselejší a celkově mají vyhraněnější a kvalitnější smysl pro humor). Dále zde máme obličej a s ním spojenou mimiku, díky kterým vizuálně odhadujeme kvality, principy a charakter člověka. Na první pohled milá a velmi přijemně usmívající se stařenka s dˇolíčky ve tvářích v nás budí mnohem větší dojem klidu a míru než věčně se mračící babice pyšnící se ďolíčky po neštovicích a bradavicí na nose. Přitom prvotní odhad může být mylný, ze stařenky se může vyklubat psychicky narušený sociopat, zatímco z babice milá, na světelné paprsky náchylná, mžourající dáma po závažné nemoci. A pak zde máme vlasy. Přestože by se mnou někteří holiči a kadeřníci nemuseli souhlasit, vlasy nám o člověku nic moc nového či objektivního neřeknou. Vlasy mají z vizualizačního hlediska pouze estetickou hodnotu jemně dotvářející už tak dobře nastíněný charakter. Jsou takovým posledním detailem, který, pokud vůbec něco vypovídá, dotváří naši domnělou osobnost a ostatním tak ukazuje, jak sami sebe vnímáme. A zde se právě projevuje jejich skrytá zákeřnost. Společně s řečí těla, mimikou a feromony se účes stává nonverbálním komunikátorem a mnoho lidí jej pro tyto účely využívá [2]. Jenže je problém, že vlasy samotné mají vlastní život, kterým se naše představy snaží docela úspěšně nabourávat. Klasickým případem jsou dámy s kudrnatými vlasy, které by mnohem raději měly vlasy rovné, a naopak. Někteří si stěžují, že jejich kštice nejsou dostatečně husté, aby z nich mohl vzniknout požadovaný výtvor, jiní zase trpí nadměrnou hustotou, přičemž konečný výsledek je stejný. A přestože nám všem nejspíše imponují zrzaví jedinci, oni sami barvu svých vlasů povětšinou nesnáší. Je to tak, kvalita a prvotní vlastnosti našich vlasů v nás vyvolávají spíše negativní emoce, proto se snažíme ony nedostatky kompenzovat stylovými účesy. Zde se začínají projevovat vlastnosti druhotné – vlasy se lámou, nedrží správný tvar, jsou nepoddajné nebo naopak poddajné až příliš, takže si mnohdy přejeme, abychom raději žádné vlasy neměli. A v momentě, kdy pár nešťastných z našich řad začne plešatět, zjistí tu krutou realitu, že mít jakékoli vlasy je stále lepší, než nemít žádné. Takoví jedinci jsou pak povětšinou nešťastni, vykořeněni z klasicky uspořádané společnosti a díky tomu poněkud neurotičtí. V daném důsledku se mohou stmelovat do skupin, které zcela zbytečně volají po vlasaté spravedlnosti, díky čemuž dochází ke stupňující se frustraci. To je ovšem jiný příběh. Nás nezajímá pleš, nás zajímají vlasy. Už i ty jsou mnohdy dostatečně frustrující. Ale stále mají jednu výhodu – jsou snadno formovatelné, takže máme prakticky neomezený počet možností, jak vypadat hrozně, ale také nespočet možností, jak své dobré rysy zvýraznit. Může se ovšem stát, že máte tu smůlu, že jste pravidelným hráčem počítačových her, které Vám dávají možnost tvorby vlastní postavy. Onomu avatarovi můžete do detailu nastavit všechny rysy, vytvořit zcela specifickou barvu očí, potetovat jej na místech, kde byste se sami, pokud máte trochu soudnosti, potetovat nenechali. Moderní technologie jsou dokonce tak daleko, že relativně snadno můžete vytvořit své virtuální já, které sdílí Vaši přesnou podobu. A najednou se dostanete k účesům, kde máte na výběr mezi dvaceti nepřirozenými helmami nebo parukami – a všechny vypadají zcela nemožně...

5 Od pouhých slov k činům

Když jsem se ptal svých přátel z herní komunity, co je podle nich z vizuálního hlediska při tvorbě postav nejslabším článkem, často jsem dostal odpověď, že jsou to právě vlasy a s tím spojené účesy. Prostřednictvím této neoficiální ankety jsem zjistil, že nejsem sám, komu nedostatek volnosti při výběru účesů vadí a že to může být jeden z těch skrytých problému, který není dostatečně adresován, důsledkem čehož nedochází k potřebnému a žádoucímu pokroku. Když jsem se těch samých lidí zeptal, zda by byli pro větší volnost, případně jistou formu nezávislosti při tvorbě účesů pro své postavy i za cenu větší časové i výpočetní náročnosti, téměř vždy se mi dostalo kladné či pozitivně laděné odpovědi. Proto jsem se v této práci rozhodl danou problematikou zabývat. Postupně spolu v kostce probereme historii vlasů v počítačových hrách, přičemž si ukážeme různé metody, které se v daných desetiletích používaly, následně přejdeme k technologiím moderním, přičemž nastíníme jejich výhody i nevýhody. Dále Vám představím svůj postup tvorby vlasů, kde si vysvětlíme teorii, na jejichž základech je vybudován a čím se od moderních technologií liší. Projdeme společně všechny změny Blenderem užívaného oficiálního open source kódu, na kterých si vysvětlíme jejich přínos k výslednému výstupu. Závěrem předložíme výsledek k porovnání vůči deseti úspěšným nebo po grafické stránce inovativním či zapamatováníhodným moderním hrám v závislosti na dosaženém vzhledu i polygonální náročnosti.

6 I Evoluce

1.1.1 Éra instalatérská

Přestože vznik počítačových her můžeme a také dokážeme datovat na přelom čtyřicátých a padesátých let (ať se jedná o rok 1948, kdy pánové Goldsmith a Mann vytvořili první hru využívající katodových trubic [3], nebo o rok 1952, kdy pan A. S. Douglas pomocí počítače EDSAC [4] vytvořil hratelné piškvorky OXO [5] ovladatelné ciferníkem známým z bakelitových telefonů), ovladatelné postavy pyšnící se jakoukoli formou porostu na temeni zaznamenáváme až v první polovině osmdesátých let u produktů pro herní konzoli Atari 2600 [6]. Ta jako první využívala mikroprocesory, konkrétně modifikovaný osmibitový MOS 6502 [7], díky jehož revo- lučně nízké ceně (25 dolarů za kus místo až 300 dolarů za kus v případě mikroprocesoru Motorola MC6800 [8]) mohla být distribuována za relativně nízké a přijatelné ceny. Jako jeden z důležitých milníků můžeme považovat rok 1982, kdy na světlo světa přichází hra Pitfall! [9] společnosti Activision. Je to jedna z prvních her, kde je hráč viděn z boku, přičemž se pohybuje jak horizontálně, tak vertikálně, a jako taková tedy nastavuje styl zobrazení a možnosti pohybu pro mnoho následujích her i dekád, jelikož de facto utváří žánr plošinovek. Díky upravenému vykreslovacímu enginu bylo možné zobrazovat více barev v reálném čase, což umožnilo vykreslit nejen vícebarevná pozadí, ale i vícebarevného (konkrétně čtyřbarevného) hráče. Ten měl kromě zelených kalhot, modrého trika a kůže také hnědé vlasy. Protože se jedná o jednu z prvních her užívajících vícebarevného hráče (ne-li první) a protože je těžko dohledatelné, že by existovala starší, leč zapomenutá hra podobného ražení, dovolím si tvrdit, že právě Pitfall! je první hrou, ve které se objevuje postava s rozpoznatelnými vlasy. Poté, co společnost Atari světu předvedla skutečný potenciál herních konzolí, začalo se jejich vývojem intenzivněji zabývat více firem. Zatímco některé skončily na smetišti dějin (např. Magnavox Odyssey2 [10]) a jiné se vydaly svým na danou dobu specifickým a revolučním směrem (osmibitová konzole Vectrex [11] se zabudovaným vektorovým displejem), můžeme s klidem říci, že konzolím osmdesátých let dominovaly krom Atari firmy Nintendo a Sega. Obě firmy v roce 1983 uvedly na trh vlastní konzoli (shodou okolností prakticky ve stejný čas), konkrétně to byly stroje Sega Game 1000 (SG-1000) [12] a Nintendo Entertainment System (NES) [13]. NES byla komerčně úspěšnější a dodnes je považována za nejúspěšnější osmibitovou herní konzoli v historii. Díky tomu pro ni byl vytvořen nespočet her, z nichž se mnohé staly nepřekonatelnými legendami. Jednou z takových legend je i herní série Donkey Kong [14]. Přestože (případně právě proto, že) první hra vznikla už v roce 1981 jako klasická arkáda, svůj největší úspěch zažila po přeportování na NES. Název může být poněkud zavádějící - na rozdíl od jiných her pojmenovaných po hlavních hrdinech nese tato jméno hlavního antagonisty. Hratelnou postavou je zde totiž kníratý mužíček v červených montérkách a kšiltovce. Přestože byl původně pojmenován Jumpman, relativně záhy byl znám jako Mario. Dodnes se vedou spory o tom, zda je Jumpman skutečně Mario či spíše jeho nepojmenovaný příbuzný (nejpravděpodobněji otec), faktem však zůstává, že roku

7 1983 získává Mario vlastní hru (Mario Bros.) a roku 1985 svou ikonickou vizáž v pokračování pojmenovaném Super Mario Bros. [15]. Nejen, že se prostřednictvím této hry Mario stal vlajkovou lodí společnosti Nintendo, díky mnohem vyššímu rozlišení postavy zvýšil také laťku vykreslování rozeznatelných účesů a vousů. Nicméně forma renderingu vlasů se od úspěchu Pitfall! v průběhu osmdesátých let nezměnila. Nazvěme proto tedy toto desetiletí érou instalatérskou po jeho nejikoničtějším představiteli a tento postup tvorby vlasů vykreslováním pixelovým. Kdokoli by teď mohl namítat, že je to názvosloví poměrně nedomyšlené, když celou podstatou grafických výstupů je správné zobrazení pixelů, nicméně tento název odkazuje především na to, že dané účesy skutečně nejsou tvořeny ničím jiným, než pár barevnými pixely. Jedná se o nejstarší metodu kresby herních vlasů v dobách, kdy vyhlazování obrazu či jakékoli náznaky odlesků byly jen tužbami herně závislých snílků a tématy vášnivých debat radikálních developerů.

Obrázek 1.1: Hlavní hrdina hry Pitfall! [16]

Obrázek 1.2: Donkey Kong a první Mario [17]

8 Obrázek 1.3: Super Mario [17]

1.1.2 2D a zlatá devadesátá

Díky stále se zdokonalujícím technologiím mohly hry využívat většího rozlišení a lepšího vykreslování, což může být asi nejlépe doložitelné oficiálním maskotem a další vlajkovu lodí tentokrát konkurenční společnosti Sega, superrychlým ježkem Sonicem. Ten se na herních obrazovkách poprvé objevil 23. června 1991 v 16-bitové verzi a 25. října téhož roku v 8-bitové verzi hry Sonic the Hedgehog [18]. Sonic má na rozdíl od Maria vyhlazenější hrany, jasně nadefinovaný tvar štětin a viditelné stínování srsti. Přestože jde také o hru v dvourozměrném prostředí, po grafické stránce je mnohem sofistikovanější a zdařile vytváří iluzi třetího rozměru.

Obrázek 1.4: Ukázka ze hry Sonic the Hedgehog [19]

9 S příchodem stolních počítačů a CD-ROMů schopných zálohovat data v řádech megabajtů podporovaným simultánním a neutuchajícím zdokonalováním moderních technologií přichází další grafická revoluce v podobě kreslených 2D her (zejména adventur), které svůj největší úspěch zažily převážně ve druhé polovině devadesátých let. Jedním z nejznámějších představitelů je třetí díl jedné z nejúspěšnějších herních sérií Monkey Island – The Curse of Monkey Island [20] z roku 1997. Ten využil moderních technologií a dodal hře oproti předchozím dílům zcela nový vizuál, který po mnoha stránkách připomínal moderní komiksy a kreslené seriály (tzv. Cartoons [21]). Nejen tato hra, ale i její grafické pojetí se staly duchovními otci mnoha her následujících let, ne-li desetiletí, z výčtu mnoha například nám nejbližší série Polda [22] či Horké léto [23]. Oproti pixelovému vykreslování se z hlediska vlasů dostáváme k velmi detailnímu zobrazení, které nám díky několikanásobně obsáhlejší barevné paletě umožňuje zobrazit stíny, odstíny i přechody jednotlivých pramínků. Jedná se však o hry založené na dvourozměrném zobrazení prostoru, kde se na rozdíl od 3D her pozadí radikálně nemění v závislosti na poloze hráče. Jednotlivé scény jsou vlastně takovými interaktivními obrazy na digitálním plátně. Vlasy jsou tedy tvořeny formou kresby a proto celou tuto vývojovou etapu hodlám nazvat kresebným zobrazením.

Obrázek 1.5: Ukázka ze hry The Curse of Monkey Island [24]

1.1.3 3D hry druhého tisíciletí

U trojrozměrných her samozřejmě také docházelo k pokrokům, ale zcela logicky se hledělo spíše na výkon než na vizuální zpracování. Zatímco u dvourozměrných her byla většina scény statická či jasně daná (přemisťování pixelových sloupců o určitý parametr u posuvných her), takže k překreslování docházelo převážně u postav během jejich pohybu, třetí herní rozměr přidával výpočetní komplexitu také ve změně pohledu postav a vnímání prostoru v závislosti na ovládání hráče. Perspektivní vykreslování není triviální záležitostí, o to časově náročnější bylo v dobách, kdy moderní technologie nebyly tak pokročilé jako dnes. Z toho důvodu docházelo k nutným kompromisům na úkor vykreslení a proto v dobách, kdy 2D graficky dominoval Sonic, všechny trojrozměrné hry téže doby vypadaly oproti těm dvourozměrným relativně zastarale. Dokázaly to však výborně kompenzovat svou hratelností, která, ač místy hektická, byla v mnoha případech téměř návyková. Klasickým příkladem jsou legendy FPS her Wolfenstein 3D (1992), Doom (1993) a Duke Nukem 3D (1996) či RPG série Might and Magic (Might and Magic VIII je z roku 2000). Obrázek 1.6 názorně zobrazuje, že 3D hry devadesátých let pracovaly s trojrozměrným prostředím,

10 ve kterém se hráč pohyboval, v kombinaci s dvourozměrnými předrenderovanými postavami na pozicích, kde v závislosti na jejich či hráčově akci byla přehrána předem určená animace. Díky tomu se z hlediska vykreslování vlasů používaly stejné postupy jako u dvourozměrných her (tedy pixelový, potažmo kresebný).

Obrázek 1.6: Ukázka ze hry Duke Nukem 3D [25]

1.2.1 Millenium

Dá se říci, že teprve kolem roku 2000 se začínají objevovat první skutečně trojrozměrné postavy. Ty sice tvůrcům přidělávaly další problémy ve formě animací při pohybu a otáčení, nicméně z hlediska výpočetního díky stálému rapidnímu pokroku nedocházelo k nepříjemným nepřiměřeným prodlevám. Bylo to zapříčiněno také tím, že kromě konstantního vývoje u stolních počítačů došlo také k revolučnímu vývoji u herních konzolí, který reprezentovala především Sony PlayStation 2, která stejného roku nahradila PlayStation 1 z roku 1994 a zaplnila tak šestiletou mezeru v oblasti konzolových výpočetních technologií. Nejstaršími a nejklasičtějšími herními příklady dané doby jsou další legendy v podobě Metal Gear Solid (1998) či Deus Ex (2000). Je tedy fakt, že Metal Gear Solid vyšel už před rokem 2000 ještě na PlayStation 1, čímž částečně vyvrací mé výše zmíněné tvrzení o vzestupu 3D postav po vydaní PlayStation 2, nicméně nesmíme zapomínat, že za sérií MGS stojí Hideo Kojima, známý především svým revolučním přístupem, kterým dokáže předběhnout svou dobu, a výpočetně levným, přesto bezchybným technickým i vizuálním zpracováním, což si později ukážeme ve třetí kapitole. Zpátky k postavám. Ty se v dané době vyznačují svým nízkým polygonovým (low-poly) zpracováním. To je na jednu stranu zcela logické, na stranu druhou můžeme během následujících tří let vidět první polygonově bohaté (high-poly) postavy (například Vietcong z roku 2003), přičemž u většiny kvalitních her s nízkou polygonovou kvalitou můžeme téměř vždy jednoznačně určit, že byly vyrobeny přibližně v roce 2000 s tolerancí maximálně dvou let. Důvod, proč to zmiňuji, je ten, že právě tato low-poly kvalita postav nastavila trend pro tvorbu vlasů minimálně na dalších deset let (základní koncept se užívá ještě dnes). Hlava i vlasy jsou součástí jednoho modelu (ze začátku to bylo celé tělo, ale postupem času se herní vývoj postav dopracoval do podoby oddělené hlavy a těla pro různě detailní formy vykreslování a také pro snazší animaci hlavy v závislosti na pohybu myši/ovladače) a k odlišení hranice mezi nimi sloužila jen textura (v praxi to znamená, že textura vlasů byla součástí textury hlavy). Tento postup můžeme sledovat prakticky celé desetiletí nezávisle

11 na komplexitě provedení postav, ať je to Mafia (2002), výše zmíněný Vietcong (2003), Far Cry (2004), God of War (2005), Call of Duty 4: Modern Warfare (2007), Fallout 3 (2008), Borderlands (2009) nebo Assassin's Creed: Brotherhood (2010). Všechny tyto hry byly ve své době známy tím, že jako AAA produkty (špičkové tituly) posunuly hranice herního vizuálu na zcela novou a doposud nepřekonanou úroveň, přesto se tvorba vlasů v tomhle ohledu prakticky téměř neposunula. Protože se to z užitého tvůrčího procesu nabízí, nazývám tuto metodu texturovou, případně texturovou-tiviální.

Obrázek 1.7: Ukázka ze hry Mafia [26]

Obrázek 1.8: Ukázka ze hry Assassin's Creed: Brotherhood [27]

12 1.2.2 Uncharted 2 vs. RPG

Ke zlomu začíná docházet kolem roku 2009, kdy se z hlediska tvorby herních účesů největší senzací stala hra Uncharted 2 a její velmi detailní zpracování hlavní postavy Nathana Drakea. Přestože se o podobnou metodu možná pokusili mnozí i předtím, byla to právě hra Uncharted 2, která na sebe dokázala strhnout pozornost díky nové technologii tvorby vlasů, kdy se na základní model a jeho případný základní účes připojují jednotlivé polygonální útvary (buď samotný , nebo pruh) s alpha mapou (textura určující průhlednost) a texturou pramenů vlasů. Tím lze za určitou polygonální cenu získat komplexnější účesy, hlavně různé typy rozcuchů a krátkých ježatých vlasů. Platí zde pravidlo, že čím detailnější textury a čím komplexnější model (skládající se tímto způsobem jen na vlasech z desítek až stovek objektů), tím realističtěji daný účes vypadá. Nazvěme jej texturový-kombinovaný. Výhodou tohoto způsobu je úspěšné napodobení realismu vlasů (zvlášť s dobrou texturou a případnými odlesky), nevýhodou je, že tento účes je dělán přesně pro danou postavu a jako takový je prakticky statický (v mnoha hrách můžeme sledovat lehké záchvěvy vlasů tvořené animací hrany/bodů polygonu – pohyb s objektem – nicméně tato metoda může být výpočetně náročná, viz. Tomb Raider z roku 2013). RPG hry šly poněkud jinou cestou. Protože se jedná o hry, kde jedním z hlavních prvků je přenechání tvorby a utváření charakteru herní postavy na hráči samotném, musí být vytvořeny až desítky účesů, ze kterých si hráč může vybrat. Jsou to většinou samostatné modely následně překrývající povrch holohlavé postavy. Tento postup, pojmenujme jej texturový-oddělený, má samozřejmě nespornou výhodu ve variabilitě, kterou hráč při tvorbě postavy získává, nicméně každý rub má i svůj líc a ten se zde projevuje ve formě kvality modelů jako takových. Krom několika her (například Dragon Age: Inquisition), kde je barva vlasů brána jako externí položka, kterou si lze namíchat dle vlastních představ, jsou pro každou přednastavenou barvu vlasů vytvořeny vlastní textury. Pokud bychom tedy měli třicet účesů, pro každý z nich dvacet barev, získali bychom šest set textur jen na pokrytí vlasů. Dnes se to samozřejmě dělá trochu jinak (ideálně jako u výše popsaného DA:I), ale například v dobách prvních dvou Mass Effectů (2007 a 2010) tohle byla relativně reálná praktika. U her tohoto typu se upřednostňuje především příběh (jeho komplexita), tvorba a vyváženost vlastností/schopností herní postavy a vytvoření co nejzají- mavějšího a nejotevřenějšího herního světa, takže je poměrně pochopitelné, že tvorbě kvalitních modelů a textur pro vlasy se příliš času nevěnuje. A i když jsou model i textura kvalitní, stále může nastat situace, ve které se vkus tvůrců neshoduje s vkusem hráčů a ona variabilita, ač velmi vítaná, v takovém případě zvýrazní omezenost volby ve hře. Netřeba dodávat, že takový účes, i kdyby byl zkombinován s předešlou metodou, je z hlediska pohybu i růstu statický.

Obrázek 1.9: Nathan Drake, hlavní postava hry Uncharted 2 [28]

13 1.2.3 Alpha blend/test/to coverage

Metody popsané v předešlé kapitole fungují díky možnosti průhlednosti (transparency) textur skrze využití alpha map/kanálů (textura průhlednosti je tvořena pouze bílou a černou barvou, případně jejich šedotonní kombinací). Existuje více způsobů, jak alpha mapu zpracovat, v moderní počítačové grafice se používají především tyto tři: alpha blend, alpha test a alpha to coverage. Alpha blend je jemnou, hodnoty interpolující metodou průhlednosti, která často využívá celého šedotonního spektra jako hodnot pro nastavení různých úrovní průhlednosti či průsvitnosti. Alpha blend, stejně jako ostatní zmíněné metody alpha mappingu, považuje bílou za zcela neprůhlednou a černou za zcela průhlednou, přičemž vypočítává šedotonní hodnotu každého pixelu. Čím je pixel tmavší, tím je průhlednější. Tato metoda má jisté klady v tom, že výsledek vypadá při správném užití přirozeně a v případě potřeby lze vytvořit zcela jemné hrany. Problém však může nastat u mnoha překrývajících se objektů využívajících alpha blend (typickým příkladem mohu být listy, tráva, případně vlasy a srst), kdy je každý pixel, který ve výsledném obrazu tyto objekty vykresluje, v závislosti na jednotlivých průhlednostech stále přepočítáván a překleslován, což často snižuje počet vykreslených snímků za vteřinu (framerate), který přímo ovlivňuje plynulost her. Alpha test šedotonního spektra nevyužívá a proto jsou ovlivněné pixely buď zcela viditelné, nebo zcela průhledné. V případě užití šedotonní textury využívá hraniční hodnoty (světově známé pod názvem threshold), kdy všechny pixely, jejichž šedotonní hodnota je vyšší, než hraniční hodnota, jsou zcela viditelné, všechny ostatní pixely jsou průhledné. Díky užití absolutních stavů nemůže dojít k opakovanému překleslování jako u alpha blendu, výsledkem čehož je každý pixel zpracován pouze jednou, zároveň však nedochází k vyhlazení hran, což může působit velmi rušivě. Alpha to coverage funguje prakticky stejně jako alpha test. Využívá však mnohonásobného vyhlazení (MSAA), které dokáže zjemnit hrany podobným způsobem jako při užití alpha blend. Této metody lze však využít pouze u modernějších grafických karet (NVIDIA sedmé třídy, AMD/Intel ekvivalenty či novější), protože pro vykreslení je potřeba minimálně čtyřnásobné vyhlazení (4x MSAA).

Obrázek 1.10: Srovnání alpha test (vlevo), alpha blend (uprostřed) a alpha to coverage (vpravo) [29]

14 1.2.4 NVIDIA HairWorks a přiblížení hair strands

S příchodem DirectX 11 a trojúhelníkové teselace [30] začala firma NVIDIA vytvářet vlastní systém Hairworks. Ten podporuje pokročilou simulaci a vykreslování vlasů včetně různých úrovní detailu. Sama společnost tvrdí, že se tvorbou systému zabývala zhruba osm let [31]. Výsledkem je celkem realistické, leč graficky náročné vykreslování až desítek tisíc vlasů/pramenů vlasů (hair strands). Hair strands jsou ve své podstatě renderovatelné křivky (často Beziérovy [32]), u kterých lze snadno nastavit jejich tvar a aplikovat na ně fyzikální zákony. Křivky se v počítačové grafice užívají poměrně dlouho, nicméně právě NVIDIA přišla na to, jak snadno a výpočetně levně je vykreslit přímo ve hře. Hair strands se aplikují skrze samotný objekt – přidá se mu vlastnost tzv. emitteru (zdroje). Ten může buď vyzařovat částice (světla, kouře, atd.), nebo být zdrojem pro křivky reprezentující vlasy (odkazuji se přímo na funkci emitteru v Blenderu [33]). Při nastavování směru či délky nepracujeme se všemi vlasy, nýbrž pouze s reprezentativními řídícími prvky (parents). Docílíme tak snazší úpravy všech požadovaných křivek, které se při vykreslení transformují na řídící vlasy. Mnohdy je ovšem takové pokrytí příliš řídké, proto se využívá vykreslení instancí (children). Tvar instancí nelze přímo upravovat, jsou to kopie řídících objektů. Od skutečného duplikátu objektu se ovšem instance liší také tím, že přebírají všechny vlastnosti hlavního objektu, přičemž procesor je s touto informací obeznámen, nemusí tak zpracovávat stejné informace pro dva různé objekty. Stačí pouze zpracovat informace o pozici, rotaci a měřítku instance a na jejich základě vykreslit již zpracovaný objekt. Tím se šetří bodová/polygonová zátěž (příklad: schodiště tvořené stem oddělených schodů, každý tvořen osmi body a šesti polygony – skrze kopie či separátní objekty zpracovává procesor osm set bodů a šet set polygonů včetně jednotlivých pozic, skrze hlavní objekt a devadesát devět instancí pouze osm bodů, šest polygonů a devadesát devět pozic kopií), což umožňuje plynulejší hratelnost. Hairworks takto fungujících hair strands dokáže plně využít a krom úpravy barvy a směru růstu simuluje i poryvy větru či vykreslování stínů jak vůči jednotlivým vlasům/chlupům, tak vůči tělu a okolí. Nevýhodou je už výše zmíněná náročnost. U alpha blendu jsme narazili na pojem framerate. Pro připomenutí se jedná o počet vykreslených snímků za vteřinu a moderní hry se snaží dosáhnout hodnoty 60 fps (frames per second – snímky za vteřinu). Následující video [34] zobrazuje porovnání vykreslování se zapnutým i vypnutým systémem Hairworks ve hře Witcher 3. Když je systém HairWorks vypnutý, lze s výkonnou grafickou kartou snadno dosáhnout 60 fps, po jeho zapnutí dochází k poklesu až o 20 fps, čehož si můžeme názorně všimnout na nepřirozeně trhaném pohybu hlavní postavy. Podobným způsobem a s relativně stejnými výsledky jak do vizualizace, tak do výkonu pracovaly i původní verze konkurenčního TressFX od AMD.

. Obrázek 1.11: NVIDIA HairWorks a aplikace hair strands [35]

15 1.2.5 DirectX 12 a TressFX 3.0

V červenci roku 2015 Microsoft Windows uvedl společně s Windows 10 na trh zcela nové API ovladače DirectX 12. Ty podle všeho umožňují vykreslovat komplexnější scény v relativně nízkých časech (podle oficiálních zdrojů dokáže ve stejném čase vykreslit až dvanáckrát více polygonů než DirectX 11 [36]). Pro herní komunitu to znamená především detailnější a realističtější hry, což se týká i konceptu tvorby a vykreslení vlasů. 26. ledna 2016 vydala společnost AMD softwarovou knihovnu pro pokročilé vykreslování vlasů a srsti s názvem TressFX 3.0. Dřívější verze TressFX byla využita především u nových her série Tomb Raider, kde na skutečně výkonných herních konzolích a počítačích dokázala nasimulovat pohyb vlasů. TressFX 3.0 tuto simulaci posouvá o krok dál, ovšem v době psaní této bakalářské práce je známa jediná hra využívající tuto knihovnu, a to Deus Ex: Mankind Divided společnosti Square Enix ze srpna roku 2016. Zde se používá základního modelu vlasů v kombinaci s prameny vlasů (hair strands), což účesům dodává realističtější nádech. Protože je ovšem tato metoda v kombinaci se skutečným potenciálem ovladačů DirectX 12 teprve v pomyslných plenách, nelze ji dostatečně zdokumentovat a není jisté, zda tak, jak je vytvořena a jak bude dnes již zavedenými herními studii používána, zvládne nasimulovat také dynamický růst vlasů a tvorbu jakéhokoli účesu.

Obrázek 1.12: Ukázka využití TressFX 3.0 při tvorbě hry Deus Ex: Mankind Divided [37]

16 II Revoluce

A pak přicházím já, celý v bílém...

První kapitola nám názorně ukázala, jak rychle technika tvorby postav a vlasů ve skutečnosti postupuje. Jak nám však nastínil aktuální vývoj nejmodernějších metod, stále je co zlepšovat. Zavedené postupy mohou být vizuálně přívětivé, ale ve třetí kapitole se snadno můžeme přesvědčit, že mohou dopadnout i katastrofálně. K tomu všemu jí osobně nejsem zcela přesvědčen, že nejlepším způsobem simulace trojrozměrné dynamiky vlasů je uspořádání na sobě nezávislých dvourozměrných objektů či graficky náročné fyzikální vykreslování hair strands. Proto jsem začal teoretizovat nad zcela novým postupem, k jehož plnému pochopení je třeba kráčet chvíli ve stopách teoretických, chvíli zase ve stopách praktických (rozdělení na čistou teorii a praxi by zde bylo spíše ke škodě než k užitku). Pokud se podíváme na tělo z čistě biologického hlediska, zjistíme, že nám na temeni neleží či z něj nevisí žádná polygonům tvarově podobná uskupení. Valná většina z nás také není holohlavá a nemá doma třicet paruk, ze kterých si musí vybírat. Nejbližším a nejrealističtějším zobrazením vlasů je tedy užití hair strands. Ty ale mohou být graficky náročné a případná nastavení jejich fyzikálních parametrů v závislosti na délce a růstu by pravděpodobně rapidně snížila rychlost vykreslování. Proto si popíšeme systém, který není na vykreslení příliš náročný a který objektu dodává základní parametry a vlastnosti vlasu. Skutečnost je taková, že vlas můžeme dle zavedených definic rozdělit na dvě části: vlasový stvol (scapus pili) a vlasový kořen (radix pili), přičemž růst probíhá od cibulky (součást kořene) pod pokožkou ke stvolu nad pokožkou. Je jedno, jak je vlas dlouhý, zakřivený, na povrchu polámaný - na hlavě nám drží právě díky svému kořenu. Podle absence či presence vlasového kořene můžeme dokonce de facto určit dva druhy plešatosti, totiž přirozený a uměle vytvořený. Důležité však je, že při uměle vytvořeném stavu plešatosti (nejčastěji vyholením vlasů) onen vlasový kořen pod pokožkou stále existuje a vlas má ve skutečnosti nenulovou délku (od cibulky po pokožku). Proto když řeknu, že vlas má nulovou délku, myslím tím pouze vlasovou cibulku. Tato krátká a prakticky primitivní myšlenka kombinovaná s následným provedením by se dala považovat za základní kámen této technologie a zároveň za největší odlišení od dosavadních široce užívaných metod. Při modelování charakteru vytvořím dvě kopie hlavy. První je klasickým modelem hlavy pro užití textur a tvorbu animace, kterou užívají všechny metody. Důležitým prvkem oproti ostatním systémům (krom systémů užívajících hair strands) je hlava druhá, která ovšem na rozdíl od systémů užívajících hair strands nebude plnit funkci emitteru. Z ní odstraníme úseky, které reprezentují ty oblasti hlavy, ze kterých vlasy či chlupy nerostou. Zbylý objekt již nepřipomíná hlavu, nicméně důvěryhodně reprezentuje oblast výskytu vlasových cibulek. Danou metodou vytvoříme vlasy přímo z této oblasti, na rozdíl od emitteru tak využijeme nejen všech polygonů, ale také všech bodů, ze kterých se skládá. Získáme tak hrubou reprezentaci pramenů vlasů, kterou zjemníme a doladíme vhodným shaderem. Výsledný výstup bude mít vzhledové a trojrozměrné

17 vlastnosti podobné systémům užívajícím hair strands, protože se však jedná o ucelený model, zpracování vykreslení jednotlivých objektů bude oproti hair strands časově snazší a v případě užití textury bude časová složitost prakticky nepodstatná. Prostřednictvím klasických transformačních modifikátorů (užit je konkrétně pohyb a změna velikosti) umístíme oblast dovnitř základní hlavy tak, aby v rámci měřítka reprezentovala plochu zhruba pět milimetrů pod pokožkou (skutečná hloubka pod pokožkou, ve které se vlasový kořen nachází, není známa, uvedený údaj je tedy odhadem). Jednotlivé modely a způsob umístění jsou znázorněny na obrázcích 2.1 a 2.2.

Obrázky 2.1, 2.2: Ukázka obou objektů včetně pozice vůči sobě (prostředí: Blender)

18 Nejprve si musíme vysvětlit užitou teorii pro samotný růst vlasů. Předně základní parametry vlasů jako takových: v knize 'Přehledy věd přírodních. Dílu I. část 1. Tělověda-zoologie-botanika' z roku 1925 se na straně 38 [38] dočteme, že průměrný jedinec má v daný moment mezi osmdesáti až sto čtyřiceti tisíci vlasy, přičemž průměrná tloušťka by měla být do sta mikrometrů a hustota až tři sta vlasů na centimetr čtvereční. Tento názor se může od ostatních až diametrálně lišit, někde se uvádí, že ona hustota je až šest set vlasů na centimetr čtvereční, ale to byl pravděpodobně odkaz na praktiky při aplikaci vlasových štěpů [39]. To znamená, že v bodě průniku vlasů skrze póry můžeme mluvit o velmi hustém a relativně konstantním pokrytí pokožky. S přibývající délkou si lze zcela snadno povšimnout, že vlasy rostoucí blízko u sebe nerostou nezávisle na sobě, nýbrž se stmelují do pramene. Takových pramínků vlasů máme na hlavě v řádech tisíců a mohou, ale nemusejí jeden druhý vzájemně překrývat. Tím můžeme ztratit původní vizuální hustotu, nicméně ta je stále dostatečná. Nesmíme však zapomínat, že i v prameni vlasů roste každý vlas individuálně a proto může v určitém bodě růst jiným směrem. Nejlépe je to vidět u konečků, kdy se nám pramen vlasů jeví roztřepeně a opět ztrácí na vizuální hustotě. Celkově tedy můžeme naivně odvodit určitý typ nelineární rovnice úbytku vizuální hustoty v závislosti na délce vlasů. Opět se naskýtá otázka, co to znamená z praktického hlediska. Za prvé bude potřeba vytvořit materiál, který bude při vykreslení věrně reprezentovat vlasy včetně úbytku hustoty, a za druhé vytvořit (v této fázi spíše ukázat si) systém růstu, který nám z objektu vytvoří požadované prameny.

2.1.1 Pramínek vlasů...

Popišme si nejprve bod druhý. Znovu jsem se nechal inspirovat přírodou a uvědomil si, že vlasy jsou od cibulek skrze pokožku doslova protlačeny na povrch, přičemž tento proces je z logiky růstu neustálý. Musel jsem tedy z naší podkožní plochy podobným způsobem protlačit jednotlivé prameny. To znamenalo dokázat v závislosti na čase snadno modifikovat tvar a velikost modelu. Řešení bylo nasnadě ve formě principu a funkce grafického modifikátoru, potažmo způsobu využití textur k získání reálné plasticity, známého pod termem Displacement [40]. Jedná se o proces aplikace šedotónní textury na objekt, který chceme zpracovat. Jako střední hodnota se využije světlost padesátiprocentní šedé (RGB 127,127,127). Čím světlejší textura na určitém místě je, tím více se body či polygony posunou ve směru normálového vektoru. Stejně tak čím tmavší je textura oproti barvě reprezentující střední hodnotu, tím většího prohloubení dosáhne. Blender má na této bázi zpracovaný interní modifikátor, u kterého lze nastavit jak sílu určující maximální vzdálenost upravených bodů od původního objektu, tak směr růstu (buď klasicky dle normálového vektoru, nebo dle jedné ze tří základních os) či umístění střední hodnoty.

Obrázek 2.3: Rozhraní modifikátoru Displacement

Abych mohl Displacement adekvátně využít, musel jsem vytvořit texturu. Dlouho jsem uvažoval nad její možnou podobou, nad určitým nepravidelným vzorem, který by vypadal jako

19 pramen vlasů. Skončil jsem u následující úvahy: pokud mám model, kde má postava krátké vlasy či vousy, mohu z daného kusu modelu vytvořit displacement mapu, na které ony budou v závislosti na detailu modelu kvalitně zaznamenané. Jediným problémem jest přítomnost dané části pokožky, na které se vlasy či vousy nachází. Mohu však snížit jas a upravit kontrast dané textury tak, aby plocha reprezentující pokožku byla relativně rovnoměrná a absolutně černá, a u modifikátoru v Blenderu nastavit střední hodnotu na nulovou, což mi zaručí, že vše, co je černé (RGB 0, 0, 0), zůstane na svém místě, vše světlejší bude při klasickém nastavení růst vektorovým směrem. Pro zachování většiny dat jsem nechal textuře původní jas, který jsem snížil až v Blenderu.

Obrázek 2.4: Kompozice postupu tvorby textury (vlevo nahoře původní displacement textura, vlevo dole upravená textura, vpravo zobrazení nastavení textury v Blenderu, na pozadí model, z něhož byla textura vytvořena)

Všimněme si na chvíli upravené textury vlevo dole. Byla mi předložena správná poznámka, že to, co je vidět, připomíná spíše než komplexně strukturovanou texturu konzistentní šedou plochu. Ve skutečnosti se jedná o velmi jemnou texturu (reliéf původní textury je stále viditelný), kde všechny podstatné informace byly z klasického černobílého nahuštěny do úzkého šedotonního spektra. Důvodem je lepší operabilita při nastavení parametrů a souběžně s tím kvalitnější vyhlazení a zjemnění světlých vrcholů. Vysvětleme si to na příkladu: Mám displacement mapu se dvěma světlými body reprezentujícími jednotlivé vlasy (jeden z nich má všechny hodnoty nastaveny na 230, druhý na 240). Při aplikaci o síle 1.0 je v adekvátně užitém měřítku rozdíl v nárůstu jeden milimetr. Tato odchylka je při takhle nízké síle zanedbatelná, protože však hodlám pracovat i s aplikací o síle 50.0, rozdíl může dosáhnout pěti centimetrů, což není žádoucí. Proto je celá displacement mapa regulována na úzké šedotonní pásmo – pro snadný názorný výpočet převedeme všech 256 odstínů do pásma o osmi hodnotách. Každých 32 odstínů staré škály je nahrazeno jedním odstínem nové škály, proto se všechny hodnoty v rozmezí 223-255

20 transformují do stejného odstínu. Rozdíl v nárůstu mezi těmito dvěma body bude při aplikaci nové škály nulový jak při aplikační síle 1.0, tak při síle 50.0. Zároveň je v závislosti na jednotce síly nárůst několikanásobně menší, můžeme tedy využít vyšších hodnot a díky upravené škále získáme také jemnější interpolovaný růst. Zbývá ještě nadefinovat optickou přirozenost směru růstu, tedy přidat iluzi gravitace a dané polygony vhodným způsobem prohnout. Směr růstu není problém – stačí využít více modifikátorů typu Displacement s vhodně zvolenými směrovými vektory (protože už máme normálový, bude se jednat o kombinace růstu po ose X,Y, Z). Problém, který skýtá sám blender, se nachází ve formě alternativně naprogramovaných funkcí deformačních, mezi kterými se nachází také modifikátor Bend [41]. Zatímco v 3DS Max se dá nastavit cetrální bod a volně s ním pohybovat a v Cinema 4D dokážeme vytvořit deformační kvádr, kde k deformaci po vhodném nastavení dochází pouze v jeho prostorách, Bend v Blenderu těmito postupy nedisponuje. Jedinými nastavitelnými parametry jsou úhel, nastavení objektového intervalu (zda k deformaci dojde na celém objektu či třeba jen v jeho druhé polovině – důležitou zmínkou je, že tato změna dle mého není funkční, protože zcela nepředvídatelně mění pozici objektu) a zdrojový bod či objekt, dle kterého je modifikovaný objekt ohýbán. Problém nastává ve změně pozice zdroje – ten totiž nefunguje tak snadno a intuitivně jako u ostatních programů a zároveň jsou určeny pouze některé blíže nespecifikované osy, podle kterých se v závislosti na pozici bude požadovaný objekt měnit. Pokud jej chceme změnit dle jiných os, musíme skrze rotace a další úpravy změnit osy zdrojového bodu či objektu. Proto není modifikátor Bend zakomponován do finálového programu, přestože používám hned několik bodů, které lze využít k ohybu jednotlivých objektů.

Obrázek 2.5: Kompozice postupu užití modifikátorů Displacement a Bend (vlevo nahoře objekt bez užití modifikátorů, vpravo dole použití modifikátoru Displacement se směrem růstu po normále, v popředí objekt po přidání Displacement po ose Y a následně Bend)

21 2.1.2 HerrHair

Základní metodu bychom měli nastíněnu, nyní se dostáváme k samotné implementaci kódu. Rozhodl jsem se nepsat celý program od základu, nýbrž využít již zavedeného a přímo užívaného modifikátoru Displacement, jehož open source kód lze nalézt zde [42] či v elektronické příloze. Je třeba poznamenat, že během sepisování tématu bakalářské práce jsem byl z několika oficiálních i neoficiálních zdrojů obeznámen s univerzálně pravdivou informací, že program Blender je sepsán v jazyce Python. V momentě nalezení správné cesty ke kódu modifikátoru jsem zjistil, že on samotný je sepsán jistou formou jazyka C, případně jeho spirituálních nástupců. Protože v našem případě pracujeme hlavně se směry a silou modifikátorů, zajímá nás pouze switch závislý na směru (direction) na konci funkce displaceModifier_do, který k pozici bodů připočítává hodnotu delta, která je odvozena ze síly aplikovaného modifikátoru (strength). Oblast, na kterou upravený kód aplikujeme, jsem rozdělil na několik separátních modelů a jejich osy jsem nastavil tak, abych užíval převážně směru růstu podle normály, podle osy Y a podle osy Z. podle normály:

case MOD_DISP_DIR_NOR: vertexCos[i][0] += delta * (mvert[i].no[0] / 32767.0f); vertexCos[i][1] += delta * (mvert[i].no[1] / 32767.0f); vertexCos[i][2] += delta * (mvert[i].no[2] / 32767.0f); break; podle osy Y:

case MOD_DISP_DIR_Y: vertexCos[i][1] += delta ; break; podle osy Z:

case MOD_DISP_DIR_Y: vertexCos[i][2] += delta ; break;

Při sepisování kódu jsem narazil na malý a nepodstatný, leč lehce rušivý problém. Nastavení názvu směru (direction) je řízeno skrze hlavní program, ke kterému je obtížné získat přístup. Proto bych pro změnu názvů jednotlivých případů musel vytvářet interní ekvivalenty směrů (případně jistou obdobu funkce Override [43] – pro určitý moment přepíše část nadřazeného kódu), což z hle- diska tvorby a vyladění prototypu (k oběma úkonům dochází každý den souběžně se sepisováním těchto stran) nemá prvořadou ani druhořadou prioritu. Proto se růst vousů v mém programu momentálně skrývá pod názvem RGB to XYZ, růst vlasů užíváný převážně na bocích pod X, růst vlasů vepředu nad čelem pod Y, růst na temeni pod Z a univerzální vychýlení vlasů do boku (kód ekvivalentní dřívějšímu případu směru X) pod názvem Normal.

22 2.1.2.1 Kód pro vousy Přestože jsou všechny kódy v jisté míře samy sobě velmi podobné, univerzální kód pro vousy je rozdílný hlavně v maximálním růstu po vektorovém směru (zatímco u vlasů dosahujeme maxima v hodnotě 2.5f, u vousů je to až 5.0f). Důvodem je docílení většího roztřepení původního objektu a zisk širších pramenů. Podíváme-li se na vizuální charakteristiku vousů a vlasů, zjistíme, že vousy jsou na pohled hrubší než vlasy. Stejně tak je tomu při doteku. Zatímco vlasy jsou přirozeně jemné až hedvábné, vousy jsou na dotek jako štětiny. Této vizuální hrubosti docílíme právě šířkou pramenů, což bude později více než dostatečně viditelné při popisu užitého materiálu. Samotný kód je rozdělen na pět případů růstu podle nastavené hodnoty delta. delta<=0.0f: Abych zabránil negativnímu růstu (růstu směrem do lebky), nastavil jsem případ, kdy všechny užité negativní hodnoty budou ekvivalentní hodnotě nulové – žádný růst, existuje pouze vlasová cibulka.

vertexCos[i][0] += 0.0f; vertexCos[i][1] += 0.0f; vertexCos[i][2] += 0.0f;

0.0f

vertexCos[i][0] += delta * (mvert[i].no[0] / 32767.0f); vertexCos[i][1] += delta * (mvert[i].no[1] / 32767.0f); vertexCos[i][2] += delta * (mvert[i].no[2] / 32767.0f);

2.5f

vertexCos[i][0] += delta * (mvert[i].no[0] / 32767.0f); vertexCos[i][1] += delta * (mvert[i].no[1] / 32767.0f); vertexCos[i][2] += delta * (mvert[i].no[2] / 32767.0f); vertexCos[i][1] += ((delta – 2.5f) / 2.44f) * (-3.44f); vertexCos[i][2] += ((delta – 2.5f) / 2.44f);

5.0f

vertexCos[i][0] += 5.0f * (mvert[i].no[0] / 32767.0f); vertexCos[i][1] += 5.0f * (mvert[i].no[1] / 32767.0f); vertexCos[i][2] += 5.0f * (mvert[i].no[2] / 32767.0f); vertexCos[i][1] += ((delta – 2.5f) / 2.44f) * (-3.44f); vertexCos[i][2] += ((delta – 2.5f) / 2.44f);

23 20.0f

vertexCos[i][0] += 5.0f * (mvert[i].no[0] / 32767.0f); vertexCos[i][1] += 5.0f * (mvert[i].no[1] / 32767.0f); vertexCos[i][2] += 5.0f * (mvert[i].no[2] / 32767.0f); vertexCos[i][1] += ((20.0f – 2.5f) / 2.44f) * (-3.44f); vertexCos[i][2] += ((20.0f – 2.5f) / 2.44f);

Díky kvalitě a hrubosti vousů stačí užít pouze jeden růstový systém. Ten nám zaručí téměř konzistentní tvar vousů nezávisle na poryvech větru či jiných fyzikálních jevech. Postavou požado- vané detailní směrové úpravy lze vyřešit skrze užití modifikátoru Bend, případně vyčkat na vydání nezávislého leč úzce spjatého pluginu zabývajícího se danou problematikou.

2.1.2.2 Komplementární kódy pro vlasy Jak již bylo výše nastíněno, vlasy jsou vůči vousům hladší a jemnější a fyzikální jevy na ně působí poněkud silněji. Proto je jejich maximální normálová hodnota (ovlivňující vizuální jemnost) pouze 2.5f a pro variabilitu základního směru růstu vlasů byly vytvořeny hned tři navzájem se doplňující kódy. Hlavním důvodem je využití na různých částech hlavy, stejně tak u různých typů účesů (vlasy na boku mohou být buď rozčepýřené, nebo uhlazené), kde je uživatelsky přívětivější změnit parametr směru růstu místo vylaďování ohybu. Následné nastavení síly jevů může být o to snazší, protože na každý typ směrů růstu můžeme aplikovat jinak působící parametry. Tyto kódy jsou koncipovány stejně jako okomentovaný kód pro vousy, proto je zbytečné podrobně je popisovat. Místo toho předložím srovnání jednotlivých kódů mezi sebou. Podotkl bych pouze jednu věc: zatímco na stranách a vzadu označuje parametr vertexCos[i][1] růst ovlivněný gravitací a vertexCos[i][2] růst směrem od hlavy, u vlasů na temeni hlavy je tomu naopak. delta<=0.0f: Všechny tři kódy jsou v této fázi shodné.

vertexCos[i][0] += 0.0f; vertexCos[i][1] += 0.0f; vertexCos[i][2] += 0.0f;

0.0f

vertexCos[i][0] += delta * (mvert[i].no[0] / 32767.0f); vertexCos[i][1] += delta * (mvert[i].no[1] / 32767.0f); vertexCos[i][2] += delta * (mvert[i].no[2] / 32767.0f);

2.5f

vertexCos[i][0] += 2.5f * (mvert[i].no[0] / 32767.0f); vertexCos[i][1] += 2.5f * (mvert[i].no[1] / 32767.0f); vertexCos[i][2] += 2.5f * (mvert[i].no[2] / 32767.0f);

24 Pro tuto i další fáze již budu psát pouze rozdíly ve směrovém růstu odlišené písmeny, pod kterými se ve výběru nachází.

X: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); Y: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); vertexCos[i][2] += ((delta – 2.5f) / 5.0f); Z: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); vertexCos[i][2] += ((delta – 2.5f) / 3.44f);

25.0f

X: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); vertexCos[i][2] += ((delta – 25.0f) / 1.1f); Y: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); vertexCos[i][2] += 4.5f – ((delta – 25.0f) / 2.9f); Z: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); vertexCos[i][2] += 6.54f – ((delta – 25.0f) / 2.0f);

38.0f

X: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); vertexCos[i][2] += ((delta – 2.5f) / 3.0f); Y: vertexCos[i][1] += (delta – 2.5f) * (-1.0f); Z: vertexCos[i][1] += (delta – 2.5f) * (-1.0f);

52.5f

X: vertexCos[i][1] += (52.5f – 2.5f) * (-1.0f); vertexCos[i][2] += ((52.5f – 2.5f) / 3.0f); Y: vertexCos[i][1] += (52.5f – 2.5f) * (-1.0f); Z: vertexCos[i][1] += (52.5f – 2.5f) * (-1.0f);

Skrze popsání jednotlivých případů a zběžný rozbor průběhu funkce lze odvodit, že první typ růstu (X) nejprve roste podél hlavy a se zvětšující se délkou se začíná odklánět. Proto je dle mého názoru vhodné využít jej na stranách hlavy při růstu kolem uší a pro ofinu načesanou vzhůru. Druhý a třetí typ se liší rychlostí růstu od hlavy u krátké a střední délky vlasů, proto jsou vhodné

25 k užití na temeni hlavy, případně pro ofinu načesanou směrem dolů. Výběr závisí na uživateli, přičemž druhý typ se hodí více pro uhlazené vlasy a třetí typ více pro rozcuchané. Zbývá ještě krátce popsat poslední kód pro hrubou změnu směru růstu vlasů, který se hodí zejména u ofiny a vlasů na temeni. Záporné hodnoty při pohledu zepředu načesávají vlasy doleva, kladné doprava. delta<-20.0f: vertexCos[i][0] += -20.0f;

-20.0f<=delta<=20.0f: vertexCos[i][0] += delta;

20.0f

Nyní, když máme pokryty a vysvětleny všechny potřebné kódy, ukážeme si na této a další straně dosavadní výsledek včetně několika nastavení délky vousů a vlasů.

26 Obrázky 2.6, 2.7, 2.8, 2.9: Ukázka několika typů účesů a vousů včetně náhledu základního modelu a jeho polygonové mříže

27 2.2.1 Pestrobarevný svět

Na předešlých snímcích lze vidět jen nepatrný zlomek variability, kterou nám tento systém nabízí, přičemž daných výsledků bylo dosaženo pouze nastavením různé délky vlasů. Ukazuje nám také náznak vlasového materiálu, kterého pro vykreslování hodláme využít. Abychom však měli jistotu, že výsledek bude korelovat i s natexturovanou hlavou, ukážeme si nejprve dvě možnosti zobrazení pokožky. První, jednodušší, využívá podkožního rozptylu světla (Subsurface scattering [44]) pro dosažení přirozenějších odlesků, což je výhodné převážně u tvorby mokré či zpocené pokožky. Tyto informace dokážeme uložit do využitelných textur, takže tento či podobný výsledek dokážeme získat v reálném čase. Druhá rozšiřuje první o jemnou průsvitnost, čímž získáváme realističtější nádech, zároveň ovšem také delší dobu vykreslování. Proto se jedná o materiál/z materiálu utvo- řenou texturu pro využití na silnějších počítačových sestavách či moderních konzolích. Protože jsou obě pokožky na vytvoření poněkud komplexnější a zároveň nejsou součástí práce, popis jejich tvorby a jednotlivých funkcí vynechám.

Obrázky 2.10, 2.11: Srovnání možností zobrazení pokožky (první možnost 2.10, druhá 2.11)

28 2.2.2 Složení materiálu

Obě pokožky jsou si velmi podobné, proto budu k následujícím ukázkám skladby vlasového materiálu užívat první, jednodušší typ. Využiji jej i během třetí kapitoly, ve které svůj systém kvalitativně i kvantitativně srovnám s ostatními moderními hrami. Nyní k samotnému materiálu vlasů. Ten se skládá ze dvou shaderů, přičemž každý z nich výslednému obrazu přidává jiné vlastnosti. První shader (označme jej Hard) ostře ohraničuje jednotlivé prameny vlasů, čímž je ve výsledku vizuálně odděluje od zbytku účesu a udržuje tím informaci, kudy rostou. Druhý shader (Soft) nastavuje průsvitnost vlasů a zvýrazňuje barvy, ze kterých se účes skládá. Shadery jsou tvořeny skrze systém Cycles, renderer programu Blender.

2.2.2.1 Hard shader První shader je součtem výsledků dvou pomocných shaderů.

Obrázek 2.12: Schéma prvního pomocného shaderu

První pomocný shader (na obrázku 2.12) využívá normálového a tangent vektoru (jejich popis a rozdíl mezi nimi v angličtině zde [45]). Horní větev (červeně) zobrazuje součet absolutní průhlednosti a průsvitnosti v závislosti na normále. Přestože se dle názvu jedná o součet, ve skutečnosti dochází k jemné kombinaci – v místě průsvitnosti je připočítána barva průhlednosti (bílá), která se díky průsvitnosti mírně odráží a výsledná kombinace je lehce světlejší a zářivější než využití samotné průsvitnosti. Dolní větev (modře) využívá tangenty polygonu k nastavení ohraničení jednotlivých vlasů (tangenta je převedena na barevné spektrum z černé do průhledné). Obě větve jsou kombinovány skrze uzel Mix [46] (zeleně). Ten slouží ke smíchání dvou různých shaderů v závislosti na faktoru. Faktor je přednastaven na číselnou hodnotu od nuly do jedné (takže Fac 0.5 míchá shadery jedna ku jedné, Fac 0.4 dvě ku třem atd.), nicméně jeho výhodou je možnost využití externího vstupu. V našem případě jako faktor užijeme podruhé tangentu. To nám zaručí, že

29 průhledná místa vytvořená barevným spektrem nahradíme průsvitností z horní větve. V posledním kroku v poměru jedna ku čtyřem přidáme základní barvu vlasů, čímž naše průsvitnost získá správný barevný nádech.

Obrázek 2.13: Schéma druhého pomocného shaderu

Funkcí druhého pomocného shaderu (na obrázku 2.13) je do výsledku přidat trochu více barvy. Základ získáme skrze barevné spekrum v levé části obrázku, jehož výstup je závislý na informaci o průniku objektů (červeně). Podle toho, kolik objektů daným úsekem vlasu proniká, předává barevné spektrum informaci do faktoru uzlu ovlivňujícího míchání barev, čímž můžeme ovlivnit barvu kořenů a konečků. Vstupy do uzlu jsou předešlý pomocný shader (modře), jehož vstupem je první barva výsledného shaderu, a třetí barva výsledného shaderu. V pravé části obrázku je schéma Mix uzlů, kterými přidáváme odlesky skrze druhou (zeleně), čtvrtou (žlutě) a pátou (fialově) barvu výsledného shaderu.

Obrázek 2.14: Schéma Hard shaderu

30 Obrázek 2.14 zobrazuje konečnou fázi tvorby Hard shaderu. Pomocné shadery kombinu- jeme hned dvěma způsoby – skrze součet, který budeme upravovat, a skrze uzel Mix s faktorem 0.84 (upřednostnění barvy), který je užit jako výstup pro částicový objem (ten zaručuje, že při odrazu bílého světla daný paprsek získá zabarvení shodné s vlasovým materiálem a zvýrazní tak barevné odlesky). Tento proces je zobrazen v horní části obrázku (červeně). Spodní větev (modře) využívá neupravené textury vousů a vlasů (podobu takové textury lze vidět na obrázku o úpravě textury v podkapitole 2.1.1 Pramínek vlasů...) a skrze dvě barevná spektra (od černé po průhlednou) z ní vytváří faktor Mix uzlu (zeleně) ovlivňujícího míchání součtu pomocných shaderů s doda- tečnou průhledností a s tím související mírné zjemnění vlasových konečků. Výstup shaderu Hard vypadá následovně:

Obrázek 2.15: Aplikace Hard shaderu na model vousů a vlasů

2.2.2.2 Soft shader Druhý shader (na obrázku 2.16) je koncipován podobně jako předešlý, využívá totiž stejné pomocné shadery poněkud jiným způsobem. Všimněme si dvou Add [47] uzlů veprostřed obrázku (červeně). Tyto sčítací uzly, se kterými jsme se lehce obeznámili v předešlé podkapitole, lze využít v rámci jediného shaderu. Proto krom výše umístěného součtu, který jsme využili k získání výsledného výstupu v předešlém případě, přidáme ještě součet dvou shaderů obsahujících barvu. Mohli bychom očekávat, že po sečtení dojde ke zdvojnásobení RGB hodnot a výsledek bude světlejší. Ve skutečnosti se však sčítá odstín a sytost, takže místo zesvětlení získáme přesycení barev. Tyto dva součty kombinujeme přes Mix uzel, jehož faktorem je dopadající paprsek světla. V závislosti na odražení paprsku určujeme, zda bude daná oblast udržovat více informací o hraně či barvě vlasu. Protože se dopadající paprsek vždy do jisté míry odrazí, máme zaručeno, že výsledek bude skutečně kombinací součtů, nikoli upřednostnění jednoho součtu před druhým. Tento výsledný mix posíláme do dříve zmíněného uzlu s průhledností (modře), jehož faktorem je původní textura vlasů. Před samotným výstupem přidáme skrze Mix uzel s faktorem 0.14 podružný Hard shader (zeleně) s barvami blízkými základním barvám soft shaderu, které decentně obarví hrany vlasů na pro ně přirozenější odstín. Výstup shaderu Soft znázorněn na obrázku 2.17.

31 Obrázek 2.16: Schéma Soft shaderu

Obrázek 2.17: Aplikace Soft shaderu na model vousů a vlasů.

2.2.2.3 Kombinace Jak bylo zmíněno na začátku podkapitoly 2.2.2 Složení materiálu, konečný shader užitý pro vykreslení vlasů je kombinací obou výše popsaných shaderů Hard a Soft. Zkombinujeme je přes Mix uzel, jehož faktorem je blíže nespecifikovaná číselná hodnota. Její nastavení záleží čistě na uživateli pro dosažení ideálního výsledku. Teorie za tímto krokem je prostá – každý jedinec má

32 jinou kvalitu vlasů. Jedni mohou mít vlasy husté, druzí vlasy prořídlé. Stejné je to s hrubostí či jemností. Zatímco hustotu či prořídlost vlasů dokážeme korelovat počtem instancí růstové oblasti, kvalitu vlasů lze upravit pouze přes její materiál. Protože máme shadery pro hrubé (Hard) i jemné (Soft) vlasy a vousy hotové, jejich propojením skrze Mix uzel můžeme získat všechny možnosti mezi nimi a určit tak jemnost/hrubost vlasů dané postavy, přičemž oba shadery jsou hraničními hodnotami.

Obrázek 2.18: Schéma propojení Soft a Hard shaderu skrze Mix uzel (Fac 0.766)

Obrázek 2.19: Ukázka výstupu výsledného shaderu aplikovaného na vlasy a vousy v kombinaci s jednoduchým typem pokožky

33 III Konvoluce

Bez hranic

Ve třetí kapitole náš model podrobíme dvěma testům - kvalitativnímu a kvantitativnímu. Ještě před několika lety byly hlavním měřítkem kvality postavy její detail v modelu i textuře. S tím souviselo i měřítko kvantitativní – z kolika polygonů se postava skládá. Z obecného hlediska se bralo v potaz, že čím více polygonů, tím lépe pro tvar i detail modelu. O této myšlence můžeme říci, že je zároveň pravdivá i nepravdivá. Dá se zcela jednoznačně a bez nutných ukázek říci, že model koule tvořený deseti polygony ji bude připomínat méně než model tvořený tisíci polygony. Na druhou stranu obdelník tvořený jedním polygonem bude mít stejný tvar a detail jako obdelník ze sta polygonů. Záleží tedy na komplexitě daného modelu a na tom, jak si s ním tvůrce dovede poradit. Dříve se muselo hledět na limity grafických karet a herních enginů, které tvůrce omezovaly v jeho kreativitě v závislosti na polygonové zátěži. Proto se původní modely musely polygonálně redukovat a řada detailů byla tvořena normálovými a displacement mapami. Jednou za čas přišla hra, která v dobách dvaceti tisíc polygonů na hlavní postavu slibovala dvakrát tolik (zmíněný Uncharted 2 – postava Nathana Drakea 37 000 polygonů, vlasy 4 000 polygonů), což vyvolávalo diskuze o jejích silných grafických kvalitách. V dnešní době (zvláště s již zmíněným příchodem DirectX 12) jsou díky novým postupům a technologiím tyto limity mnohem vyšší a ne zcela jasně vymezené. Proto lze v moderních hrách vidět postavy tvořené i stotisícem polygonů. Jiné firmy mají k tvorbě jiný přístup a zdokonalují kvalitu textur, nasvětlení a materiálů, aby jejich postavy mohly být tvořeny co nejméně polygony, které lze využít pro detailnější prostředí či vykreslení více postav (příkladem může být Metal Gear Solid V). Postupné ničení těchto limit má i jistou nevýhodu, která mi v daném momentě ztěžuje práci. Protože herní designéři nadále nemají tak intenzivní potřebu lákat potenciální hráče na polygonální komplexitu svých her, jsou tyto informace hůře dohledatelné, což omezuje náš výběr her pro kvantitativní test. Proto se v této kapitole objeví i hry starší, ne však staré, a neobjeví se některé hry moderní, které jsem chtěl pro srovnání využít.

34 3.1.1 Základní přehled

Předložme si nejprve pár grafů a informací o několika hrách.

Obrázky 3.1, 3.2: Polygonové srovnávací grafy pro hlavní postavy [48]

35 Následující informace lze ověřit zde [49]:

The Order 1886 (únor 2015) – přibližně 100 000 polygonů Second Son (březen 2014) – přibližně 120 000 polygonů Final Fantasy XV (listopad 2016) - přibližně 100 000 + 20 000 polygonů

Další informace ověřitelné zde [50]:

Metal Gear Solid V: Ground Zeroes (březen 2014) – přibližně 18 000 polygonů Deus Ex: Human Revolution (srpen 2011) – přibližně 26 000 polygonů Uncharted 2 (říjen 2009) – přibližně 37 000 + 4 000 polygonů

Jak se z předložených dat můžeme přesvědčit, počet polygonů pro hlavní postavu může být silně variabilní, zhruba od dvaceti do sto dvaceti tisíc. Daný počet polygonů může být závislý na době, kdy byla hra vytvořena (například Mass Effect z roku 2007 versus Ryse z roku 2013), zároveň se však nejedná o jistou formu zákonitosti (Uncharted 2 versus MGS V: GZ). Pokud je užito správných metod, může hlavní postava (či objekt – lodě ze hry Star Citizen z pohledu třetí osoby) dosahovat neskutečných hodnot (lodě ve hře Star Citizen využívají při vykreslování metody occlusion culling [51], která nevykresluje objekty, které jsou skryty jinými objekty). Naše postava i se všemi vlasy se v závislosti na detailu základního modelu polygonově pohybuje od sto devadesáti čtyř do dvě stě třiceti tisíc. Můžeme nyní říci, že tento způsob je díky své polygonové náročnosti lehce neefektivní, nesmíme však zapomínat na různé metody redukce vykreslovaných polygonů (například occlusion culling), optimalizace modelu (neoptimalizovaný Ryse 150 000, optimalizovaný 85 000 polygonů) a znovu zmiňovaný DirectX 12, který tyto hodnoty činí poměrně zanedbatelnými. Je však třeba připustit, že majoritní podíl na celkové polygonové zátěži našeho modelu mají právě vlasy, které při modelu o zhruba padesáti tisících polygonech čitají až sto osmdesát tisíc polygonů. Z toho důvodu lze říci, že z kvantitativního hlediska je tento systém tvorby vlasů bez optimalizace pravděpodobně nejnáročnější a momentálně v tomhle ohledu nemůže získat velmi kladné hodnocení. Pro kvalitativní srovnání musíme hodnotit specifické hry.

3.2.1 Top Ten

Do užšího výběru se dostaly moderní hry, které v době vydání svým vizuálem oslnily herní svět či dokázaly nastavit nebo udržet laťku pro vývoj následujících let. Vybranými kandidáty jsou:

Deus Ex: Human Revolution (srpen 2011) Metal Gear Rising: Revengeance (únor 2013) The Last of Us (červen 2013) GTA V (září 2013) Ryse: Son of Rome (listopad 2013) Metal Gear Solid V: Ground Zeroes (březen 2014) Dragon Age: Inquisition (listopad 2014) The Order: 1886 (únor 2015) Final Fantasy XV (listopad 2016) Star Citizen (stále ve vývoji)

36 3.2.1.1 Deus Ex: Human Revolution

Protože tyto hry bude lepší procházet převážně chronologicky, začneme rozborem nejstarší hry na seznamu: Deus Ex [52] z roku 2011. Toto netradiční kyberpunkové RPG volně navazující na a doplňující příběh původního Deus Ex z roku 2000 je výsledkem spolupráce herních studií Eidos Montreal, Nixxes Software a Feral Interactive společně s vydavatelem Square Enix. Získalo velmi vysoká hodnocení u světově známých a uznávaných herních serverů ( 90/100, 9/10, 8.5/10, IGN 9/10) a bylo mimo jiné nominováno na cenu Spike VGX [53] za nejlepší RPG a na BAFTA Games Award [54] za nejlepší strategii a akční hru. Častým tématem byla i grafická stránka hry, která svým barevným laděním, temnou a ponurou atmosférou či hustotou interaktivních objektů dodávala noirově laděnému příběhu patřičnou hloubku. Postavy byly zvláštní tím, že jejich pokožka nereagovala na světlo a byla pouze otexturovaná, nicméně samotná textura zvýrazňovala hrany a rysy a výběrem barev dodávala iluzi nasvětlení. Řekl bych však, že hlavním problémem grafického zpracování ústřední postavy byly právě vlasy. Ty byly součástí modelu hlavy, takže byly statické a postrádaly objem. To by ničemu nevadilo, horší byla úroveň kvality a detailu vlasové textury, která umělecký zážitek ze hry lehce snižovala.

Obrázek 3.3: Srovnání modelu s hlavním představitelem hry Deus Ex: Human Revolution (originál na [55])

Ústřední postava Adama Jensena (na obrázku 3.3) byla tvořena 25 953 polygony[50], což je zhruba devítinová zátěž našeho modelu. Je samozřejmě potřeba brát v potaz i pětiletý rozdíl mezi oběma modely a přístupnými technologiemi, nicméně už i při zběžném srovnání lze na našem modelu vyčíst jemnost vlasů a plasticitu vousů včetně reakce na světelné podněty. Podobných výsledků mohla hra dosáhnout již v době svého vydání skrze lepší otexturování a detailnější model (pokud by na vlasy hlavní postavy byl vymezen obdobný polygonový rozpočet jako u o dva roky staršího Uncharted 2, výsledek by i bez polygonových pruhů díky dodání třetího rozměru u vlasů vypadal realističtěji a celková polygonová zátěž by nepřesáhla hranici třiceti tisíc), čímž ve srovnání s naším modelem ve výsledku ztrácí.

37 3.2.1.2 The Last of Us

Druhým kandidátem je hra The Last of Us [56] studia Naughty Dog, tvůrců herní série Uncharted. Bez nadsázky lze říci, že se jedná o jednu z nejlepších her nejen roku 2013, ale také celé herní historie. K podložení těchto slov stačí výčet ocenění - BAFTA Games Award za nejlepší hru, akční adventuru, příběh, herecký výkon; Spike VGX za nejlepší hru pro Play Station, nejlepší mužský výkon, studio roku; Kerrang! Award [57] za nejlepší videohru. Její kvalita se odráží i ve velmi vysokých hodnoceních – Metacritic 95/100, Eurogamer 10/10, Game Informer 9.5/10, IGN 10/10. Chvály se dočkala také vizuální stránka hry, a to jak po grafické, tak po umělecké stránce. Ve své době byla označována jako nejlepší a nejrealističtější pro hru vytvořenou na konzoli PlayStation 3[58, 59]. Zvláště hlavní postavy byly zpracovány velmi detailně, vlasy a vousy nevyjímaje.

Obrázky 3.4, 3.5: Mřížové zobrazení hlavních postav hry The Last of Us [60]

38 Obrázek 3.6: Srovnání modelu s hlavní představitelkou hry The Last of Us (originál na [60])

Hlavní hrdinka Ellie (obrázek 3.6) je tvořena 31 537 polygony [60]. Její vlasy jsou tvořeny polygonovými pásy s texturou užívající průhlednosti (varianta metod Alpha blend/test/to coverage). Ze srovnávacího výstupu je patrné, že tvůrci užili velmi detailní vlasové textury, díky které může výstup působit lehce kresebně, ale dokonale koreluje s užitým stylem grafického zpracování. Oproti našemu modelu je díky textuře dosaženo silnějšího ohraničení pramenů vlasů a přestože nejsou reálné, z uměleckého hlediska jsou odlesky výraznější a dodávají účesu zcela nový rozměr. Pokud by se jednalo o tvorbu statického účesu, zcela subjektivně bych upřednostnil tvorbu studia Naughty Dog. Cílem této práce ovšem bylo vytvořit systém dynamické tvorby vlasů, u které si nejsem jist, jak by se s takhle ohraničenými prameny (které fungují právě díky jejich dvourozměrnosti) vypořádala. Proto nechám kvalitativní posudek na čtenáři, ale za sebe mohu říct, že ideálem by podle mne byla kombinace trojrozměrného růstu našeho systému se zvýrazněním a odlesky textur vlasů hry The Last of Us s důrazem na uměleckou kvalitu nad realismem.

39 3.2.1.3 GTA V

Třetí srovnávanou hrou je momentálně nejaktuálnější díl série Grand Theft Auto, akční adventura GTA V [61] od tvůrčí a vydavatelské firmy Rockstar Games a jejích přidružených studií (Rockstar North, Rockstar San Diego, Rockstar Toronto, Rockstar Leeds, Rockstar London, Rockstar New England). Stejně jako obě předchozí, i tato hra získala velmi pozitivní ohlasy (Metacritic 97/100, Eurogamer 9/10, Game Informer 9.75/10, IGN 10/10) a řadu ocenění – BAFTA Games Award za nejlepší britskou hru, design, multiplayer; Spike VGX za nejočekávanější hru, hru roku, soundtrack. Graficky je GTA V velmi zdařilým počinem, který využívá prvků realismu s lehce komixovým nádechem znatelným zejména na texturách zvýrazněných záhybů oblečení (podobné směsi využíva GTA V i v příběhu, který hráči připomíná každodenní život okořeněný přehnanými, absurdními situacemi).

Obrázek 3.7: Srovnání modelu s hlavní postavou hry (originál na [62])

Problémem, který můžeme brát také jako stylistycký podpis her od společnosti Rockstar, je forma výsledného zobrazení postav i prostředí evokující jistou úroveň umělosti, která se projevuje i na výsledném vzhledu vlasů. Na přiloženém obrázku vlevo dole (zvýrazněno) můžeme vidět, že vlasy jsou samostatným objektem, který lze v závislosti na hráčových rozhodnutích změnit. Proto je záhadou nevyužitý potenciál při tvorbě vlasů viditelný nejen v relativně nízké, leč stále dostačující polygonové kvalitě objektu, ale zejména v nízké a prameny nespecifikující textuře. Místy modely vyvolávají dojem, že k zobrazení vlasů bylo užito pouze nereflektujícího jednobarevného materiálu, což může korelovat s domnělou komixovou vizualizací, ale u hry snažící se poměrně věrně zachytit realismus působí výsledek spíše rušivě až neprofesionálně. Hlavní postava Michaela De Santy (na obrázku 3.7) je tvořena 30 914 polygony [62].

40 3.2.1.4 Ryse: Son of Rome

Ryse: Son of Rome [63] vytvořená společností Crytek byla v době svého vývoje považována za jednu z her s největším polygonovým rozpočtem na hlavní postavu (před optimalizací byla tvořena zhruba sto padesáti tisíci polygony). I po následné redukci na přibližně osmdesát pět tisíc polygonů se jednalo o nadstandartní polygonový rozpočet, jež měl za úkol ukázat sílu konzole XBOX ONE a svým detailním zpracováním měl zaujmout i počítačové hráče. Přestože nevyhrála žádná ocenění a získala spíše průměrná hodnocení (Metacritic 60/100, Eurogamer 5/10, Game Informer 6/10, IGN 6.8/10), svým grafickým závazkům jako jedna z vlajkových lodí pro XBOX ONE hra Ryse dostála.

Obrázek 3.8: Srovnání modelu s hlavní postavou hry Ryse: Son of Rome (originál na [64])

Díky nedostatečně specifikovaným informacím nelze říci, z kolika polygonů se hlavní postava Maria Tita (na obrázku 3.8) skládá. Oficiálně se mluví o přibližně osmdesáti pěti tisících polygonech. Problém nastává ve výkladu termínu polygon při tvorbě počítačových her. Ve valné většině případů jsou polygony myšleny čtyřúhelníky, někdy se však i přes rozdílné označení mluví o trojúhelnících. Díky oficiálnímu materiálu [65] ke hře je možné, že se při zmínce o polygonech jedná o trojúhelníky místo čtyřúhelníků. V takovém případě by hlavní postava byla tvořena přibližně čtyřiceti dvěma tisíci polygony. Nezávisle na kvantitativním srovnání si lze povšimnout detailního zpracování vlasů, které je tvořeno polygony či polygonovými pruhy s průhledností skrze texturu (obdobně jako u hry The Last of Us). Znovu je třeba připustit, že tento způsob tvorby vlasů je vzhledově velmi kvalitní, bohužel je omezen svou dvourozměrností. Nelze také říci, zda by tento způsob dokázal správně fungovat při implementaci dynamického růstu vlasů. Všimněme si na okamžik jemnosti jednotlivých pramenů na boku hlavy (výběr). Kaskádovitým způsobem pokládání polygonů lze úspěšně docílít realistického vzhledu překrývajících se vlasů. Stejného pocitu realismu dosáhneme naším trojrozměrným systémem zcela přirozeně. Výhodou je pak variabilita účesu.

41 3.2.1.5 Série her Metal Gear

Metal Gear Rising: Revengeance [66] a Metal Gear Solid V: Ground Zeroes [67] s naším modelem porovnáme dohromady. Obě hry byly vytvořeny studiem Kojima Productions a vydány společností Konami jako součást série Metal Gear tvůrce Hidea Kojimy. Tato série je známá především komplexitou a nelineárním vyprávěním svého příběhu či poněkud netradičním přístupem k hratelnosti během velkých soubojů (v případě prvního dílu Metal Gear Solid se například jednalo o přepojení ovladače do jiného konzolového portu). Srovnáním obou her během jedné podkapitoly můžeme zároveň nahlédnout na více metod grafického zpracování vytvořených stejným studiem.

Obrázky 3.9, 3.10: Model hlavní postavy hry Metal Gear Rising: Revengeance a srovnání s modelem (originál na [68])

42 Metal Gear Rising: Revengeance (Metacritic 80/100, Eurogamer 9/10, Game Informer 7.75/10, IGN 8.5/10) je hra zaměřená na bojový aspekt celé série, jedná se o lineární akční hack and slash hru. Díky omezenému hernímu prostředí má postava Raidena (na obrázku 3.10) oproti ostatním dílům poměrně bohatý polygonální rozpočet – 68 016 trojúhelníků, tedy přibližně třicet čtyři tisíc polygonů (zdroj pro ověření k nalezení na hypertextovém odkazu u přiloženého obrázku), které využívá k detailnímu zpracování a zobrazení základního modelu. Dle skladby a výsledného zobrazení lze usoudit, že vlasy jsou kombinací klasického modelu s polygonovými pruhy.

Obrázek 3.11: Srovnání modelu s hlavní postavou hry Metal Gear Solid V: Ground Zeroes (originál na [69])

Metal Gear Solid V: Ground Zeroes (Metacritic 75/100, Eurogamer 9/10, Game Informer 7.0/10, IGN 8.0/10) je naopak hra s otevřeným herním prostředím zabývající se především taktickou a špionážní stránkou série, ústřední postava Snake/Big Boss (obrázek 3.11) je tedy polygonálně levnější, na všeobecné poměry dokonce střídmá – pouhých 18 210 polygonů[62]. Pro zobrazení detailu užívá model kombinaci světla a klasických/modifikačních textur. I zde dokážeme rozeznat polygonové pruhy s průhledností skrze texturu.

V obou případech můžeme říci, že přes svou nízkou či průměrnou kvantitativní hodnotu tyto hry dosahují vysoké grafické kvality. Důvodem je cit pro detail ve fázi aplikace textur a vhodných metod post-processingu [70] (především různé úrovně rozmazání). Tímto způsobem dokáže studio Kojima productions skrýt nedostatky svých nízkopolygonálních modelů (vhodnými normálovými a displacement texturami lze zjemnit hrany modelu, dalšího zjemnění je dosaženo rozmazáním). Místy tyto nedostatky (zvláště hranatost a zubatost vlasů – zvýrazněno na obrázku 3.11) lze detekovat, nicméně na první pohled patrné nejsou. Připočteme-li již nastíněný poměr kvality vůči kvantitě, vítězem tohoto srovnání je dle mého názoru i přes rozdílné cíle a užité metody jednoznačně studio Kojima Productions.

43 3.2.1.6 Dragon Age: Inquisition

Sedmou hrou na našem seznamu je Dragon Age: Inquisition [71] (Metacritic 85/100, Eurogamer 8/10, Games Informer 9.5/10, IGN 8.8/10) od herního studia Bioware. Tito vývojáři mají za sebou několik úspěšných hermích sérií se zaměřením na tvorbu a vývoj vlastní postavy (RPG), mezi nejznámější krom Dragon Age patří mimo jiné Baldur's Gate, Neverwinter Nights či Mass Effect. Jejich znalosti a zkušenosti proto hře Dragon Age: Inquisition přinesly několik ocenění (The Game Award [72] za nejlepší RPG a hru roku, GLAAD Media Award [73] – zvláštní uznání). Dvě desetiletí v popředí herního designu se projevily i na pohádkově laděném vizuálu a velmi pokročilé tvorbě herní postavy (jak graficky, tak variabilitou).

Obrázek 3.12: Srovnání modelu s tvorbou postavy ve hře Dragon Age: Inquisition (originál na [74])

Celkový dojem na jinak skvěle vytvořeném modelu bohužel kazí právě vlasy. Z obrázku lze vyčíst, že se jedná o polygonální pruhy aplikované na model hlavy s texturou vlasů. Rozdíl mezi texturou na hlavě a pruzích je barevně zřetelný, překrytí hlavy polygonovými pruhy je poměrně odbyté. Zalomení vlasů viditelné na účesu vlevo nahoře je nepřirozené, společně s pravou části ukazuje nedokonalosti v podobě hranatosti a zubatosti způsobené nedostatečným detailem objektů (ve výběru). Slabá kvalita vlasové textury tyto nedokonalosti o to více zvýrazňuje. V tomto srovnání je jednoznačným vítězem náš systém a daná kritika je zářným příkladem toho, jak důležité je nepodcenit zobrazení vlasů při modelování herní postavy. U předních herních výrobců obzvlášť.

44 3.2.1.7 The Order: 1886

Titulem The Order: 1886 [75] se dostáváme ke hrám dosahujícím či přesahujícím hranice sta tisíc polygonů. Můžeme tedy očekávat velký posun v grafickém zpracování. A The Order: 1886 studií Ready at Dawn a SCE Santa Monica Studio je pro to dobrým odrazovým můstkem. Přes smíšená a průměrná hodnocení (Metacritic 63/100, Eurogamer bez hodnocení, Game Informer 7.75/10, IGN 6.5/10) se většina herních kritiků shodla, že silnou stránkou hry je její atmosféra a grafické zpracování.

Obrázek 3.13: Srovnání modelu s hlavní postavou hry The Order: 1886 (originál na [76])

Z přiloženého obrázku 3.13 to v rámci velikosti a rozlišení není patrné, ale podíváte-li se na originál, uvidíte hlavně na vlasech kolem ucha a vzadu na hlavě, že jsou opět vytvořeny skrze kombinaci modelu hlavy a polygonových pruhů. Při tvorbě vlasových textur dle mého názoru došlo buď k použití nízkého rozlišení, nebo špatné metodě nastavení průhlednosti (pravděpodobně Alpha test), protože jednotlivé vlasy jsou velmi zubaté (zvýrazněno). Protože jsme se díky roku vydání a překročení sta tisíc polygonů přiblížili kvalitám našeho modelu, podívejme se na něj zblízka. Na rozdíl od hlavního protagonisty hry The Order:1886 nemá naše postava zubaté konečky. Díky užití shaderu místo textury nemůže dojít k nízkému rozlišení na jednotlivých pramenech (v případě užití textury na našem modelu by ona nesla pouze informaci o barvě a celkové viditelnosti/průhlednosti). Jak jsme si ukázali v podkapitole 2.2.2.3 Kombinace, můžeme nastavit jemnost či tvrdost vlasů, čímž dokážeme případnou zubatost zjemnit či vizuálně zcela eliminovat. V potaz je třeba vzít i variabilitu délky, barvy a typu účesu, což nám The Order: 1886 i přes své grafické kvality neumožní. Proto si troufám tvrdit, že tohle srovnání mluví z hlediska tvorby a kvality zobrazení vlasů ve prospěch našeho systému.

45 3.2.1.8 Final Fantasy XV

Nejnovějším vydaným titulem našeho Top Ten seznamu je dosud poslední díl herní série Final Fantasy. Final Fantasy XV [77] vývojářů Square Enix, XPEC Entertainment, HexaDrive, Umbra a Streamline Studios byl vydán 29. listopadu roku 2016 a v době sepisování této práce není na trhu ani dva měsíce. Tato akční RPG adventura žádná ocenění dosud nezískala, ale stihla sesbírat velmi kladná hodnocení (Metacritic 82/100, Game Informer 8.5/10, IGN 8.2/10). Dá se říci, že po grafické stránce patří série Final Fantasy mezi to nejlepší, co může východní herní průmysl světu nabídnout.

Obrázek 3.14: Srovnání modelu s jednou z hlavních postav hry Final Fantasy XV (originál na [78])

Moderní asijská grafická kultura (komix, animovaný film, hra) se u postav vyznačuje jemnými rysy a extravagantními účesy. Proto nemůžeme očekávat realistický výstup, ale můžeme se podívat na realistickou formu texturového a materiálového zpracování. Videorecenze [79] demoverze hry ukazuje v čase 4:49 průsvitnost vlasového materiálu proti světelným paprskům, což je oproti dosavadním hrám na našem seznamu příjemná změna. Náš systém dosahuje podobných výsledků, což bude nastíneno výstupem v závěru bakalářské práce (důvodem bude také ukázka detailního renderu přes celou stranu k obhájení plné kvality výstupu), může tak ovšem na rozdíl od ostatních postav Final Fantasy XV činit u každé osoby. Jedním z důvodů, proč je Final Fantasy XV svým fyzikálním zobrazením omezena pouze na hratelnou postavu, je více způsobů tvorby vlasů. Hlavní postava uživá metodu Hair strands (kvůli nedostatku dosavadních informací nelze určit, zda se jedná o Tress FX, NVIDIA Hairworks či interní systém), ostatní postavy užívají převážně polygonové pruhy s texturou (vizme hrdinu veprostřed obrázku 3.14). Ty světlo fyzikálně nepropouští a užitá textura převážně v přední části účesu (ve výběru) vyvolává dojem umělosti, což v kontrastu s účesem tvořeným hair strands působí nelichotivě, zvlášť při vymezení dvaceti tisíc polygonů na účes. Jedním z důvodů této volby může být již zmíněná grafická náročnost hair strands, jíž by se náš model měl vyvarovat a z fyzikálního hlediska dosáhnout podobných výsledků.

46 3.2.1.9 Star Citizen

Černým koněm a posledním příspěvkem pro srovnání je stále vyvíjený vesmírný simulátor Star Citizen [80] od vývojářského studia Cloud Imperium Games. Jeho zajímavostí je, že je zcela financován fanoušky hry a celkový rozpočet ke konci roku 2016 přesahuje 140 milionů amerických dolarů. Díky tomu mohou tvůrci užívat unikátních metod modelování (u postav se jedná o detailní skeny hlav, u kterých prý lze měnit jednotlivé prvky – oči, uši, nos – nezávisle na pleti [81]). Tvůrce videa zároveň poznamenává, že vývojáři momentálně nemají vyřešenu metodu realistického zobrazení vlasů. Z následujícího obrázku se lze přesvědčit, že vlasy u postav jsou momentálně výsledkem skenování postavy a přidání textury.

Obrázek 3.15: Srovnání modelu s jednou z hlavních postav hry Star Citizen (originál na [76])

Vlasy i vousy mají díky skenu poměrně realistický vzhled, ale postrádají plasticitu. Nutno znovu podotknout, že se jedná o hru ve vývoji a zobrazení vlasů není dosud vyřešeno. Momentálně tedy ve srovnávacím testu vítězí náš systém. Je to ovšem poněkud nerovný boj. Dovedu si však představit, že hra využívající realistických skenů a lodí o celkové kvantitativní hodnotě několika milionů polygonů využije metody, kterou dosáhne nejlepších výsledků. Pokud navíc upřednostňuje hráčovu svobodu, mohla by užít variabilního systému účesů, který by mohl fungovat podobným způsobem jako ten, který jsem v této práci popsal.

47 3.2.2 Lehce subjektivní verdikt

Je těžké cokoli srovnávat, pokud je vykonavatel jakkoli zainteresovaný. I tak jsem se snažil ke každému srovnání přistupovat co nejvíce objektivně. Ke srovnání jsem využil her, které byly oceněny titulem Hra roku, byly na něj nominovány či po grafické stránce uchvátily herní kritiky. Z některých srovnání jsem v rámci svého subjektivního názoru odešel jako vítěz, v jiných jsem ochotně uznal svou porážku. Celkově vzato se ale dá říci, že výsledný prototyp dosáhl předpo- kládaných kvalit. Pokud systém, který je dosud ve vývoji a neustále podstupuje revize, dokáže svými výstupy konkurovat světově známým AAA titulům, může jej tvůrce považovat za úspěšný.

48 IV Rezoluce

Závěr

Tato práce především zastává funkci dokumentace prototypu HerrHair, systému pro dynamickou a variabilní tvorbu účesů. Zobrazuje proces jeho tvorby a výhody vůči zavedeným principům v herním průmyslu. Srovnává jej s aktuálně datovanými AAA tituly, které byly v době svého vydání oficiálně oceněny či považovány za vrchol grafického zpracování. Budoucím vývojářům může posloužit jako základní kámen či bod, od kterého se mohou odrazit.

Na začátku cesty...

V době vydání práce byl daný systém ve vývoji pouze několik měsíců, aktuální iterace se formou tvorby či grafického výstupu může lišit. I přes zdařilé a kvalitní výsledky je systém prakticky na začátku svého vývoje a cílový produkt by měl splňovat následující body:

• správná forma optimalizace • úprava kódu do na Blenderu nezávislé verze • připojení pluginu na přesné a uživatelsky přívětivé ovládání směru vlasů • vyladění shaderu po všech fyzikálních stránkách • možnost nastavení typu vlasů dle LOIS nebo FIA klasifikace [82]

I bez splnění těchto podmínek však lze prototyp úspěšně použít pro vývoj her či tvorbu videí. Již v této iteraci dokáže v mnoha ohledech předstihnout mnohé zavedené a užívané postupy, po jeho finalizaci se s trochou štěstí snad stane jedním z milníků ve vývoji dynamiky a variability tvorby herních účesů. Na závěr předkládám poslední náhled aktuální verze v plné velikosti.

49 50 Literatura

[1] ROECKELEIN, Jon E., 1998. Sheldon's Type Theory. In: Dictionary of Theories, Laws, and Concepts in Psychology. Greenwood Publishing Group, s. 427-428 [cit. 6. 1. 2017]. ISBN 978-0-313-30460-6.

[2] Vlas, 2016 [online]. Wikipedia. Poslední změna 29. 10. 2016 10:07 [cit. 6. 1. 2017]. Dostupné z: https://cs.wikipedia.org/wiki/Vlas

[3] DU MONT ALLEN B LAB INC, 1948. Cathode-ray tube amusement device. Inventors: Thomas T. GOLDSMITH Jr. a Estle Ray MANN. United States of America. US 2455992 A. 14. 12.

[4] WILKES, M. V. a RENWICK, W., 1950. The EDSAC (Electronic delay storage automatic calculator). Mathematics of Computation [online]. 4(30), 61-65 [cit. 6. 1. 2017]. ISSN 1088-6842. Dostupné z: doi:10.1090/s0025-5718-1950-0037589-7

[5] OXO, 2016 [online]. Wikipedia. Poslední změna 29. 12. 2016 15:17 [cit. 6. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/OXO

[6] Atari 2600 History, 2017 [online]. AtariAge. [cit. 6. 1. 2017]. Dostupné z: www.atariage.com/2600/

[7] The MOS 6502 and the Best Layout Guy in the World, 2011 [online]. swtch.com. [cit. 6. 1. 2017]. Dostupné z: https://research.swtch.com/6502

[8] Motorola 6800 microprocessor family, 2016 [online]. CPU-World. Poslední změna 13. 12. 2016 [cit. 6. 1. 2017]. Dostupné z: www.cpu-world.com/CPUs/6800/

[9] Pitfall!, 2017 [online]. AtariAge. [cit. 6. 1. 2017]. Dostupné z: www.atariage.com/software_page.html?SoftwareLabelID=360

[10] Magnavox Odyssey2 \ Philips Videopac, 2016 [online]. Console Library. [cit. 6. 1. 2017]. Dostupné z: www.videogameconsolelibrary.com/pg70-odyssey2.htm

[11] GCE Vectrex, 2016 [online]. Video Game Console Library. [cit. 6. 1. 2017]. Dostupné z: www.videogameconsolelibrary.com/pg80-vectrex.htm

[12] SG-1000, 2016 [online]. Sega Retro. Poslední změna 8. 12. 2016 12:48 [cit. 6. 1. 2017]. Dostupné z: www.segaretro.org/SG-1000

[13] Nintendo Entertainment System, 2016 [online]. Giant Bomb. Poslední změna 3. 6. 2016 13:57 [cit. 6. 1. 2017]. Dostupné z: www.giantbomb.com/nintendo-entertainment- system/3045-21/

[14] Donkey Kong, 2011 [online]. RetroGames.cz. [cit. 6. 1. 2017]. Dostupné z www.retrogames.cz/recenze_001.php

[15] Super Mario Bros., 2011 [online]. RetroGames.cz. [cit. 6. 1. 2017]. Dostupné z: www.retrogames.cz/recenze_005.php [16] TIŠNOVSKÝ, Pavel, 2011. Historie vývoje počítačových her (8.část – nejznámější hry vytvořené pro herní konzoli Atari 2600). In: Root.cz [online]. 29. 12. [cit. 6. 1. 2017]. Dostupné z: https://www.root.cz/clanky/historie-vyvoje-pocitacovych-her-8-cast- nejznamejsi-hry-vytvorene-pro-herni-konzoli-atari-2600/?ic=serial-box&icc=text-title

[17] TIŠNOVSKÝ, Pavel, 2012. Historie vývoje počítačových her (24.část – hry pro konzoli NES). In: Root.cz [online]. 26. 4. [cit. 6. 1. 2017]. Dostupné z: https://www.root.cz/clanky/historie-vyvoje-pocitacovych-her-24-cast-hry-pro- konzoli-nes/?ic=serial-box&icc=text-title

[18] Sonic the Hedgehog, 2017 [online]. GameSpot. [cit. 6. 1. 2017]. Dostupné z: www..com/genesis/454495-sonic-the-hedgehog/index.html

[19] TIŠNOVSKÝ, Pavel, 2012. Historie vývoje počítačových her (22.část – hry pro konzoli Sega Master System). In: Root.cz [online]. 12. 4. [cit. 6. 1. 2017]. Dostupné z: https://www.root.cz/clanky/historie-vyvoje-pocitacovych-her-22-cast-hry-pro- konzoli-sega-master-system/?ic=serial-box&icc=text-title

[20] Recenze hry: The Curse of Monkey Island, 2008 [online]. Game2k. [cit. 6. 1. 2017]. Dostupné z: www.game2k.cz/the-curse-of-monkey-island/recenze-pocitacove-hry.html? id=the_curse_of_monkey_island_pc

[21] Cartoon, 2017 [online]. Wikipedia. Poslední změna 3. 1. 2017 [cit. 6. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/Cartoon

[22] Polda – Oficiální web, 2016 [online]. Zima Software Games Development. [cit. 6. 1. 2017]. Dostupné z: www.polda5.cz

[23] Horké léto, 2016 [online]. Česká Databáze Her. [cit. 6. 1. 2017]. Dostupné z: www.cdh.cz/pc/Horke-leto-13978/

[24] SMITH, Graham, 2016. Have You Played... The Curse Of Monkey Island? In: Rock Paper Shotgun [online]. 5. 11. [cit. 6. 1. 2017]. Dostupné z: https://www.rockpapershotgun.com/2016/11/05/have-you-played-the-curse-of- monkey-island/

[25] Duke Nukem 3D, 2016 [online]. 3D Realms. [cit. 6. 1. 2017]. Dostupné z: https://3drealms.com/catalog/duke-nukem-3d_27/

[26] Salieri Crime Family, 2016 [online]. Mafia Wiki. [cit. 6. 1. 2017]. Dostupné z: http://mafiagame.wikia.com/wiki/Salieri_Crime_Family

[27] Teodora Contanto, 2016 [online]. Assassin's Creed Wiki. [cit. 6. 1. 2017]. Dostupné z: http://it.assassinscreed.wikia.com/wiki/Teodora_Contanto

[28] Real-time game characters, 2017 [online]. Pinterest. [cit. 6. 1. 2017]. Dostupné z: https://cz.pinterest.com/anderliza/real-time-game-characters/

[29] Transparency map, 2015 [online]. Polycount. Poslední změna 10. 4. 2015 8:31 [cit. 6. 1. 2017]. Dostupné z: http://wiki.polycount.com/wiki/Transparency_map [30] Tessellation Stages, 2017 [online]. Microsoft. [cit. 6. 1. 2017]. Dostupné z: https://msdn.microsoft.com/en-us/library/ff476340(v=VS.85).aspx

[31] NVIDIA HairWorks, 2017 [online]. NVIDIA Corporation. [cit. 6. 1. 2017]. Dostupné z: https://developer.nvidia.com/hairworks

[32] WEISSTEIN, Eric W., 2017. Bézier Curve. In: MathWorld [online]. [cit. 6. 1. 2017] Dostupné z: http://mathworld.wolfram.com/BezierCurve.html

[33] Particles – Introduction, 2017 [online]. Blender Foundation. [cit. 6. 1. 2017]. Dostupné z: https://www.blender.org/manual/physics/particles/introduction.html

[34] On vs Off! Nvidia HairWorks The Witcher 3 Wild Hunt Gameplay at Maximum Graphical Settings PC 1080p, 2015 [online]. YouTube. [cit. 6. 1. 2017]. Dostupné z: https://www.youtube.com/watch?v=tB2RcvWRh40&feature=youtu.be

[35] Using NVIDIA HairWorks, 2016 [online]. NVIDIA Corporation. [cit. 6. 1. 2017]. Dostupné z: http://docs.nvidia.com/gameworks/content/artisttools/hairworks/ Using_HairWorks.html

[36] CROSSLEY, Rob, 2015. DirectX 12 Can Render “up to 12 Times More Polygons“ Than DX11. In: GameSpot [online]. 1. 5. [cit. 6. 1. 2017]. Dostupné z: http://www.gamespot.com/articles/directx-12-can-render-up-to-12-times-more- polygons/1100-6427026/

[37] PAPADOPOULOS, John, 2015. Dawn Engine – First Screenshots Revealed Showcasing AMD's TressFX 3.0. In: Dark Side Of Gaming [online]. 17. 5. [cit. 6. 1. 2017]. Dostupné z: http://www.dsogaming.com/screenshot-news/dawn-engine-first-screenshots- revealed-showcasing-amds-tressfx-3-0/

[38] KRANICH, Jan, 1925. Přehledy věd přírodních. Dílu I, část 1. Tělověda-zoologie-botanika [online]. Olomouc: Nakladatelství R. Prombergra. [cit. 6. 1. 2017]. Dostupné z: http://kramerius4.nkp.cz/search/i.jsp?pid=uuid:bc7b36c0-8c0a-11e3-8031- 001018b5eb5c

[39] Počet vlasových štěpů na cm2, 2016 [online]. PHK Marketing. [cit. 6. 1. 2017]. Dostupné z: http://www.padanivlasu.info/vlasova-poradna/vlasova-poradna-pro-muze/item/ 14-pocet-vlasovych-stepu-na-cm2

[40] RUSSELL, Eddie, 2015. Elliminate Texture Confusion: Bump, Normal and Displacement Maps. In: Digital-Tutors [online]. [cit. 6. 1. 2017]. Dostupné z: blog.digitaltutors.com/bump-normal-and-displacement-maps/

[41] 3ds max Bend Modifier, 2006 [online]. YouTube. [cit. 6. 1. 2017]. Dostupné z: https://www.youtube.com/watch?v=RxSvh7Mwtyw

[42] DUNBAR, Daniel, ROOSENDAAL, Ton, BATT, Ben, LOMMEL, Brecht van a BARTON, Campbell, 2005. MOD_displace.c. In: Blender Foundation [online]. [cit. 6. 1. 2017]. Dostupné z: https://developer.blender.org/diffusion/B/browse/master/source/blender/ modifiers/intern/MOD_displace.c;7dc328e8a1cea0f1ea0b8848a38ce7521401ca8b$196 [43] Method overriding, 2016 [online]. Wikipedia. Poslední změna 1. 12. 2016 16:47 [cit. 6. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/Method_overriding

[44] MASTERS, Mark, 2014. Understanding Subsurface Scattering – Capturing the Appearance of Translucent Materials. In: Digital-Tutors [online]. [cit. 6. 1. 2017]. Dostupné z: blog.digitaltutors.com/understanding-subsurface-scattering-capturing- appearance-translucent-materials/

[45] What are normal, tangent and binormal vectors and how are they used?, 2014 [online]. Game Development. [cit. 6. 1. 2017] Dostupné z: http://gamedev.stackexchange.com/questions/51399/what-are-normal-tangent- and-binormal-vectors-and-how-are-they-used

[46] Mix Node, 2017 [online]. Blender Foundation. [cit. 6. 1. 2017]. Dostupné z: https://www.blender.org/manual/render/cycles/nodes/types/shaders/mix.html

[47] Add Node, 2017 [online]. Blender Foundation. [cit. 6. 1. 2017]. Dostupné z: https://www.blender.org/manual/render/cycles/nodes/types/shaders/add.html

[48] PIRZADA, Usman, 2013. Ryse Polygon Count Comparison with Other AAA Titles – Star Citizen, Crysis 3 and More. In: wccftech [online]. 28. 9. [cit. 6. 1. 2017]. Dostupné z: http://wccftech.com/ryse-polygon-count-comparision-aaa-titles-crysis-star- citizen/

[49] Polycounts in next gen games thread!, 2014 [online]. Polycount. [cit. 6. 1. 2017]. Dostupné z: http://polycount.com/discussion/141061/polycounts-in-next-gen-games-thread

[50] Metal Gear Solid V Graphics Discussion Thread, 2014 [online]. Metal Gear Solid Forums. Poslední změna 22. 11. 2015 [cit. 6. 1. 2017] Dostupné z: http://mgsforums.com/topic/7695350/60/

[51] ZHANG, Hansong, 1998. Effective Occlusion Culling for the Interactive Display of Arbitrary Models. Disertační práce. UNC-Chapel Hill. Department of Computer Science.

[52] KALIŠ, Karel, 2011. Deus Ex: Human Revolution – nářez jako zastrara (recenze). In: Doupě.cz [online]. 26. 8. [cit. 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/deus-ex-human-revolution--narez-jako-zastara-recenze

[53] Spike Video Game Awards, 2017 [online]. Wikipedia. Poslední změna 4. 1. 2017 22:39 [cit. 7. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/Spike_Video_Game_Awards

[54] British Academy Games Awards, 2016 [online]. Wikipedia. Poslední změna 3. 8. 2016 10:38 [cit. 7. 1. 2017]. Dostupné z:https://en.wikipedia.org/wiki/British_Academy_Games_Awards

[55] Deus-ex-human-revolution-adam-jensen.jpg, 2016 [online]. Fandom. [cit. 7. 1. 2017]. Dostupné z: http://massfanon.wikia.com/wiki/File:Deus-ex-human-revolution-adam- jensen.jpg

[56] MALIAROV, Michal, 2013. The Last of Us – když hra potká film (recenze). In: Doupě.cz [online]. 7. 6. [cit. 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/the-last-of-us—kdyz-hra-potka-film-recenze [57] Kerrang! Awards, 2016 [online]. Wikipedia. Poslední změna 1. 11. 2016 16:41 [cit. 7. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/Kerrang!_Awards

[58] HELGESON, Matt, 2013. The Last of Us. In: Game Informer [online]. 5. 6. [cit. 7. 1. 2017]. Dostupné z: www.gameinformer.com/games/the_last_of_us/b/ps3/archive/2013/06/05/the- last-of-us-review-naughty-dogs-grim-masterpiece.aspx

[59] MORIARTY, Colin, 2013. The Last of Us review. In: IGN [online]. 5. 6. [cit. 7. 1. 2017]. Dostupné z: www..com/articles/2013/06/05/the-last-of-us-review

[60] “Yes, but how many polygons?“ An artist blog entry with interesting numbers, 2007 [online]. Beyond3D. Poslední změna 24. 12. 2016 [cit. 7. 1. 2017]. Dostupné z: https://forum.beyond3d.com/threads/yes-but-how-many-polygons-an-artist- blog-entry-with-interesting-numbers.39321/page-84

[61] MALIAROV, Michal, 2013. Grand Theft Auto V: sandbox šitý na míru (recenze). In: Doupě.cz [online]. 17. 9. [cit. 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/grand-theft-auto-v-sandbox-sity-na-miru-recenze

[62] “Yes, but how many polygons?“ An artist blog entry with interesting numbers, 2007 [online]. Beyond3D. Poslední změna 24. 12. 2016 [cit. 7. 1. 2017]. Dostupné z: https://forum.beyond3d.com/threads/yes-but-how-many-polygons-an-artist- blog-entry-with-interesting-numbers.39321/page-83

[63] MALIAROV, Michal, 2013. Akční rubačka Ryse se bude hrát sama, ovladač nepotřebujete. In: Doupě.cz [online]. 14. 6. [cit. 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/akcni-rubacka-ryse-se-bude-hrat-sama-ovladac- nepotrebujete

[64] FAILES, Ian, 2014. The tech of Crytek's Ryse: Son of Rome. In: fxguide.com [online]. 20. 3. [cit. 7. 1. 2017]. Dostupné z: https://www.fxguide.com/featured/the-tech-of-cryteks-ryse- son-of-rome/

[65] IMTIAZ, Khurram, 2013. Ryse downgrade officially confirmed by Crytek CEO. In: GearNuke [online]. 27. 9. [cit. 7. 1. 2017]. Dostupné z: gearnuke.com/ryse-downgrade-officially-confirmed-crytek-ceo/

[66] BAUM, Petr, 2013. Metal Gear Rising: Revengeance – poctivá japonská řezničina (recenze). In Doupě.cz [online]. 29. 3. [cit 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/metal-gear-rising-revengeance--poctiva-japonska- reznicina-recenze

[67] MALIAROV, Michal, 2014. Metal Gear Solid V: Ground Zeroes – demo za všechny prachy (recenze). In: Doupě.cz [online]. 29. 3. [cit. 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/metal-gear-solid-v-ground-zeroes--demo-za-vsechny- prachy-recenze

[68] negotiated study 1 – beginning the project, 2013 [online]. WordPress.com. Poslední změna 23. 10. 2013 [cit. 7. 1. 2017]. Dostupné z: https://tullimation.wordpress.com/2013/10/23/negotiated-study-1-beginning- the-project/ [69] BROWN, Peter, 2014. Kept you waiting, huh? In: GameSpot [online]. 18. 3. [cit. 7. 1. 2017]. Dostupné z: http://www.gamespot.com/reviews/metal-gear-solid-5-ground-zeroes- review/1900-6415701/

[70] Video post-processing, 2016 [online]. Wikipedia. Poslední změna 9. 9. 2016 21:38 [cit. 7. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/Video_post-processing

[71] MALIAROV, Michal, 2014. Dragon Age: Inquisition – veď je nebo zemři (recenze). In: Doupě.cz [online]. 30. 11. [cit. 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/dragon-age-inquisition--ved-je-nebo-zemri-recenze

[72] The Game Awards, 2016 [online]. Wikipedia. Poslední změna 29. 12. 2016 5:56 [cit. 7. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/The_Game_Awards

[73] GLAAD Media Award, 2017 [online]. Wikipedia. Poslední změna 1. 1. 2017 21:42 [cit. 7. 1. 2017]. Dostupné z: https://en.wikipedia.org/wiki/GLAAD_Media_Award

[74] KULASINGHAM, Gajan, 2014. Dragon Age: Inquisition – Gameplay Feature: Character Creation. In: GameSpot [online]. 30. 9. [cit. 7. 1. 2017]. Dostupné z: http://www.gamespot.com/videos/dragon-age-inquisition-gameplay-feature- character-/2300-6421589/

[75] MALIAROV, Michal, 2015. The Order: 1886 – filmový film (recenze). In: Doupě.cz [online]. 19. 2. [cit. 7. 1. 2017]. Dostupné z: doupe.zive.cz/clanek/the-order-1886--filmovy-film-recenze

[76] Squadron 42 vs The Order 1886, 2016 [online]. GameSpot. Poslední změna 27. 7. 2016 [cit. 7. 1. 2017]. Dostupné z: http://www.gamespot.com/forums/system-wars-314159282/squadron-42-vs- the-order-1886-33297593/

[77] BROWN, Peter, 2016. Heavy is the head that wears the crown. In: GameSpot [online]. 28. 11. [cit. 7. 1. 2017]. Dostupné z: www.gamespot.com/reviews/final-fantasy-15-review/1900-6416579/

[78] BROWN, Peter, 2015. Final Fantasy 15 Release Date Confirmed for 2016. In: GameSpot [online]. Poslední změna 6. 8. 2015 [cit. 7. 1. 2017]. Dostupné z: http://www.gamespot.com/articles/final-fantasy-15-release-date-confirmed-for- 2016/1100-6429527/

[79] Outside Xbox, 2016. Let's Play Final Fantasy 15 – WHAT IS GOING ON (Xbox One Gameplay) [online]. Youtube. [cit. 7. 1. 2017]. Dostupné z: https://www.youtube.com/watch?v=5HB9ZLGsmJY

[80] Star Citizen, 2017 [online]. GameSpot. [cit. 7. 1. 2017]. Dostupné z: www.gamespot.cz/star-citizen/

[81] Tactical Advance, 2016. Star Citizen » Character Creation [online]. Youtube. [cit. 7. 1. 2017]. Dostupné z: https://www.youtube.com/watch?v=AYOt2Ps7KMM

[82] The Only Hair Typing System Article You'll Ever Need, 2011 [online]. Curl Centric. [cit. 7. 1. 2017]. Dostupné z: www.curlcentric.com/hair-typing-system/ Přílohy

Elektronické přílohy:

• Displace.txt – původní kód modifikátoru Displacement • HerrHair.txt – upravený kód modifikátoru Displacement, implementační část práce • Hair.blend – soubor programu Blender obsahující vlasů a vousů • Skin.blend – soubor programu Blender obsahující shader jednoduché pokožky • Textures.zip – archiv užitých textur, součástí textový soubor se stručným popisem • References.zip – archiv vybraných autorských obrázků k náhledu v plné velikosti