• No results found

3D model vyvořený pomocí techniky NURBS

Zdroj: Wikipedia. NURBS model. Dostupné z: https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline

Sculpt modeling – používá se také název digital sculpting, který lze přeložit jako digitální sochařství. Geometrie reprezentující 3D model se může u této techniky lišit. Ve většině případů je to gemetrie založená na síti polygonů, které lze v prostoru zatlačit nebo vytáhnout.

Podobá se to tedy reálnému sochařství například z jílu, viz ukázka na obrázku č. 3.

(Vaughan, 2012)

4 Rendering

Rendering lze přeložit jako vykreslování nebo ztvárnění. Je to proces generování fotorealistického nebo nerealistického obrazu z jednoho 2D nebo 3D modelu, či souboru několika modelů, zvaného jako 3D scéna. Při renderingu dochází ke vzniku 2D obrazu či animace na základě informací o objektech, světlech a celé scéně. Při renderování je možné nastavovat mnoho parametrů, které ovlivní finální obraz. Mezi základní parametry patří zorný úhel, rozlišení konečného obrazu, stupeň anti-aliasingu atd. Některé z programů umožňují generovat také 3D obrazy. Renderování složitějších scén může být časově náročné.

Čas renderování pak závisí na použité metodě, softwaru a hardwaru. Obrázek č. 4 představuje ukázku, jak může vypadat vstupní 3D model a výsledný render. Na obrázku č.

5 níže pak můžeme vidět ukázku fotorealistického renderu. (Rodriguez, 2007; Žára, 2008)

Obrázek 4: Příklad renderingu

Zdroj: Dyso. Rendering. Dostupné z: https://www.dyso.cz/slovnik/rendering/

Existují dva základní typy renderingu, real time rendering a offline rendering. Offline rendering je označovaný také jako pre-rendering. Havní rozdíl mezi těmito typy renderingu spočívá v rychlosti, s jakou jsou finální obrazy vypočítávány a dokončovány. Dále lze rendering rozdělit podle tří základních technik, podle kterých k vykreslení dochází. Jedná se o metody raytracing, radiosity a scanline. Každá z těchto technik se liší hlavně svým přistupem k zpracování světla. (Rodriguez, 2007; Žára, 2008)

Obrázek 5: Fotorealistický render od Marka Denka

Zdroj: Marek Denko. PF 2017. Dostupné z: http://marekdenko.net/

4.1 Real time rendering

Renderování v reálném čase je technika, která se používá především v interaktivní grafice, v počítačových hrách, v simulacích a návrhářských programech. Vzhledem k tomu, že interakce uživatelů je v takových prostředích vysoká, je nutné vytvářet snímky v rychlém sledu za sebou a v reálném čase. Frekvenci obměny obrazů měříme v fps (frames per second – počet snímků za vteřinu). Aby pohyb vypadal plynulý, musí být na obrazovku vykresleno cca 25 snímků za sekundu, při této frekvenci lidské oko vnímá výstup jako plynulou sekvenci a nezaznamenává jednotlivé snímky. Jako ideální frekvence se uvádí 30-60 snímků za sekundu. Při nižší frekvenci by mohlo dojít k tomu, že by výstup působil trhaně. (Möller, 2008; Gregory, 2014)

Vykreslování v reálném čase je podstatně vylepšeno vyhrazeným grafickým hardwarem

znovupoužitelnou část hry. Díky ní vznikají nejen hry, ale i animované filmy, prezentace a aplikace ze všech oblastí. Jako standard lze dnes označit tři nejpoužívanější enginy, kterými jsou Unity, Unreal engine a CryEngine (Möller, 2008; Gregory, 2014)

4.1.1 Unity Engine

Velice populárním enginem je Unity, jehož první verze 1.0 byla vydána v roce 2005.

Původně se jednalo o engine pouze pro Mac OS, ale od roku 2009 začal podporovat i další platformy. Tento engine vytvořila společnost Unity Technologies a od roku 2017 je dostupný ve verzi 5.6. (Menard, 2011; Unity, 2018)

Jde o nástroj, který podporuje vývoj 2D a 3D her a zároveň vývoj aplikací pro virtuální a augmentovanou realitu. Hlavní předností enginu je jeho portovatelnost na jednotlivé mobilní formáty, díky tomu je Unity v součastnosti nejpoužívanějším nástrojem pro vývoj mobilních aplikací a her. Přehled všech podporovaných platforem můžete vidět níže na obrázku č. 6.

Součástí enginu je také editor, který slouží k tvorbě jednotlivých scén vyvíjené aplikace či hry. Přímo v editoru si pak vývojář může aplikaci spustit a otestovat. Během spuštění lze za běhu měnit různé parametry a sledovat, jak se změny projevují. Programovacími jazyky tohoto enginu jsou JavaScript, C# a Boo, což také přispívá k oblíbenosti tohoto enginu u vývojářu. Přestože se Unity snaží cílit na jednoduchost a začínající vývojáře, jedná se o profesionální engine, který využívají i velké firmy vyvíjející aplikace a hry. Unity má také velkou komunitu vývojářů a velice dobře zpracovanou dokumentaci s návody a tutoriály, která je dostupná online. (Menard, 2011; Unity, 2018)

Obrázek 6: Podporované platformy enginem Unity Zdroj: Unity. Platforms. Dostupné z:https://unity3d.com/

Engine je dostupný ve čtyřech různých licenčních verzích. Zakládní licence Personal je určená pro nekomerční využití, oproti placeným licencím má drobná omezení ale je zcela zdarma. Dalšími druhy licencí jsou Plus za 35$ měsíčně, Pro za 125$ měsíčně a Enterprise, který je určen pro střední a velká studia a cena za tuto licenci se odvíjí od individuální poptávky. Zdrojový kód tohoto enginu je dostupný pouze pro verze Pro a Enterprise, ale je nutné zaplatit další poplatek, který Unity na svých stránkách neuvádí. (Menard, 2011; Unity, 2018)

Hlavními výhodami tedy jsou vyvážení jednoduchosti a obsáhlosti, mnoho cílových platforem, možnost scriptování ve více jazycích, dále pak oficiální tržiště s různými materiály, obrovská komunita lidí a materiály s tutoriály pro začátečníky i pokročilé. Mezi nevýhody patří zpoplatněné vyšší verze a zpoplatěný zdrojový kód, obzvláště v době, kdy je mnoho jiných nástrojů open source. V kritice toho enginu zaznívají například také argumenty, že je zde použita velmi zastaralá verze jazyka C# nebo že konkurenční nástroje Unreal Engine a CryEngine dokáží vyprodukovat lepší grafiku. (Unity, 2018)

4.1.2 Unreal Engine

Dalším populárním enginem je Unreal, který vyvíjí společnost Epic Games. Je dostupný již od roku 1998 a jeho nejnovější a aktuální verzí je Unreal Engine 4.19, která vyšla v březnu 2018. (Unreal Engine, 2018)

Tento engine je prezentován jako sada vývojových nástrojů pro každého, kdo pracuje s real-time technologí. Najde uplatnění při vývoji podnikových aplikací, filmů, her pro všechny platformy, VR a AR. Ve čtvrté verzi enginu byly představeny nové funkce a nástroje, které podporují rychlý a interaktivní přístup k vývoji. Vývojář v reálném čase může sledovat výsledky svojí práce. Mezi nové funce čtvrté verze patří také podpora rozšířených renderovacích funkcí např. full-scene HDR reflections, dynamické světelné scény a fyzikálně založené stínování. Programovací jazyk tohoto enginu se s poslední verzí změnil z UnrealScript na klasický C++. Od roku 2015 je Unreal Engine 4 dostupný zdarma a podporuje platformy Windows PC, Mac OS x, iOS, Android, Linux, PS4 a Xbox One.

Poplatek za užívání tohoto enginu je ve formě procent z výnosů daného projektu ale pouze v takovém případě, kdy výnosy překročí určitou částku. Další výhodou pro vývojáře je možnost vytvořit aplikaci pomocí programovacího jazyka Blueprint, který má svoje grafické rozhraní a lze v něm programovat bez psaní kódu. Tento engine má také velkou komunitu lidí a tutoriály pro začátečníky i pokročilé. (Unreal Engine, 2018; Sweeney, 2015)

Mezi hlavní výhody patří bezplatná dostupnost egnigu, existence oficiálního tržiště s různými materiály a dobrá pověst nástrojů, díky kterým lze dosáhnout velmi pěkné grafiky.

Nevýhodou je omezení na jeden programovací jazyk, méně tutoriálů pro programátory nebo fakt, že při vytvoření úspěšné aplikace musí vývojář odvádět 5% z tržeb. (Unreal Engine, 2018; Gossage, 2015)

4.1.3 CryEngine

CryEngine lze označit za zcela rovnocennou alternativu k Unreal Engine. Jde o produkt společnosti Crytek, kteou založili tři bratři v roce 1999. Tento engine byl vyvinut mezi roky 2001 a 2004 společně s první hrou společnosti Crytek, hrou Far Cry. První vydání enginu vyšlo v roce 2002. Aktuálně je dostupný ve verzi 5.4, vydané v září roku 2017. (CryEngine, 2018)

Stejně jako u předchozích dvou enginů jde o nástroj pro vývoj 3D her a aplikací. CryEngine podporuje platformy Oculus Rift, Windows PC, Linux PC, Xbox One a Playstation 4. Hry vytvořené pomocí tohoto nástroje jsou považovány za jedny z graficky nejlepších. Např. hra Crysis, která vyšla v roce 2007 je do dnes uznávána hráči i kritiky za vysokou grafickou úroveň a její inovativní gameplay. Podporovanými skriptovacími jazyky jsou C++, LUA a C#. CryEngine je open source, je tedy dostupný zcela zdarma a uživatel za něj může zaplatit, kolik sám uzná za vhodné. Neexistuje zde ani povinnost platit procenta z výnosu úspěšného projektu, jako je tomu u Unreal Engine. (CryEngine, 2018)

Jednou z hlavních výhod tohoto enginu je grafický výstup na špičkové úrovni. Další výhodou je dostupnost zdarma a stejně jako ostatní má vlastní tržiště s různými materiály.

Naopak jeho nevýhodou je absence podpory mobilních platforem a menší uživatelská přívětivost. (CryEngine, 2018, Plecháček, 2016)

4.2 Offline rendering

Klasický výpočet offline rendering, označovaný také jako pre-rendering je proces, kde jsou jednotlivé snímky vykreslovány podle předem nastavených parametrů. S výstupem pak uživatel již nemůže interagovat. Offline rendering se používá především pro tvorbu animovaných filmů, digitálních efektů, reklam, grafických vizualizací a cutscén v moderních hrách. Obecně lze říci, že tento druh renderingu je používán k vykreslování složitějších scén a v případech, kdy uživatel klade důraz na realitstický výstup. Při offline renderingu se vždy pracuje nejdříve se zjednodušeným zobrazením 3D scény a až poté se nechává renderovat v plné kvalittě na základě nastavených parametrů. S tímto druhem renderingu se můžete setkat v programech jako je 3DS Max, Blender, Maya a dalších běžných 3D softwarech. Samotný rendering je v tomto případě typicky prováděn pomocí vícejádrových procesorů (CPU), v současné době ale programy stále častěji podporují i kombinaci s (GPU), což rendering urychluje. (Slick, 2018; Klekner, 2016)

4.3 Renderovací techniky

Existují tři hlavní výpočetní techniky, které se používají k většině případů renderování.

Každá z těchto technik má svoje výhody i nevýhody a liší se od sebe hlavně svým přístupem k práci se světlem, respektive se světelnými paprsky. (Slick, 2018; Klekner, 2016)

4.3.1 Ray tracing

První technikou je Ray tracing (lze přeložit jako sledování paprsků). Výsledný obraz se vypočítává sledováním jednoho nebo více paprsků světla z kamery, skrz níž scénu sledujeme. Pro zmíněné paprsky se nastavují parametry, jako například kolikrát se mají ve scéně odrazit, od kterých typů materiálů se mají odrážet, případně jimi procházet a zároveň jakou barvu od nich mají přejímat. Jedná se o pohledově závislou metodu, což znamená, že nepracuje s nekonečným množstvím odražených paprsků světla v celé digitální 3D scéně.

Pracuje pouze s paprsky, které je nutné brát v potaz pro daný kamerový úhel, z něhož scénu sledujeme. Ray tracing je vhodný pro renderování vizuálních děl, která mají vypadat dobře.

Považuje se za zásadní metodu, používanou při vytváření realistických scén. Nevýhodou je nutnost nového výpočtu při změně kamery a větší nároky na výpočetní výkon. (Slick, 2018;

Klekner, 2016)

Princip metody Ray tracing, kdy algoritmus vytváří obraz tím, že rozšiřuje paprsky do scény je znázroněn ná následujícím obrázku č. 7.

Obrázek 7: Princip metody Ray Tracing

Zdroj: Condinghorror. Ray Tracing. Dostupné z: https://blog.codinghorror.com/real-time-raytracing/

4.3.2 Radiosity

Při používání techniky zvané radiosity se světlo ve scéně šíří nezávisle na kameře. Díky tomu není nutné při změně kamery provádět výpočet znovu. Radiosita se zaměřuje spíš na konkrétní povrchy všech 3D objektů ve scéně než na jednotlivé pixely výsledného renderu.

Pomocí této metody lze dosáhnout takových výstupů, které jsou v podstatě nerozeznatelné od reality. Využívá se pro film, architekturální vizualizace atd. Díky zmíněným vlastnostem je radiozita primárním prvkem předních renderovacích metod real time renderingu.

Realističnosti šíření světla a barevných odrazů je dosaženo pomocí měkkých stínů a tzv.

Color Bleeding. To je viditelný efekt, ve kterém jsou objekty nebo povrhcy zbarveny

Na obrázku č. 8 lze vidět příklad využití metody Radiosity. Vlevo na obrázku je případ, kdy je reflektor zaměřený na roh místnosti. Světlo zasáhne horní část krabice a několik stěn.

Jelikož pro tento obrázek nebyla použita metoda Radiosity, světlo se dál nešíří. Vpravo vidíme, co se stane, když zmíněnou metodu použijeme - světlo se odráží od stěn a krabice a nyní se rozsvítí i povrchy, které nebyly v přímém směru reflektoru. (Slick, 2018; Klekner, 2016)

Obrázek 8: Příklad metody Radiosity

Zdroj: Darhmoj. Radiosity. Dostupné z: https://darthmojo.wordpress.com/2008/12/26/radiosity-renders/

4.3.3 Scanline

Poslední technikou je scanline rendering, která se používá především tam, kde je nezbytná rychlost renderingu a neklade se důraz na povrchy a jednotlivé pixely výsledného obrazu.

Renderování pomocí techniky scanline je postaveno na polygonové bázi a využívá speciálních postupů jako je například zapékání textur a nasvícení. Nejčastěji se používá právě pro real time rendering a dnes lze pomocí této techniky vytvořit realistické scény renderované rychlostí 60 snímků za sekundu nebo i vyšší. (Slick, 2018; Klekner, 2016)

Obrázek č. 9 představuje ukázku renderu vytvořeného pomocí metody Scanline.

Obrázek 9: Render interiéru vytvořený pomocí metody Scanline

Zdroj: Denisyakovlev. Interior. Dostupné z: https://denisyakovlev.deviantart.com/

4.4 Renderovací farmy

Renderovací farma je vysoce výkonný počítačový systém, nař. počítačový cluster, vytvořený pro generování CGI. Jedná se tedy o vzájemně propojené počítače určené výhradně pro účely renderingu, kde hlavní počítač předává úkoly dalším počítačům. Každý počítač v tomto systému se nazýva node (uzel). Výpočty, které se provádějí na renderovací farmě, lze nazvat paralelními výpočty, protože každý node může dostat specifický úkol a výpočty se pak řeší současně. Úkolem hlavního počítače je tedy distribuce jednotlivých úkolů, k čemuž používá speciální render management software nebo queue manager. Úloha přiřazená každému uzlu

stav sítě. Jakmile uzel vykreslení dokončí, okamžitě by mu měl být přidělen jiný úkol.

(Klekner, 2016)

Díky nárustu vysokorychlostního přístupu k internetu vznikla vedle renderovacích farem

„on-site“ (na místě) i dalš možnost opírající se technologii cloud computing. V tomto případě jsou uživateli účtovány pouze náklady za čas použitý k renderování. Tyto služby eliminují potřebu zákazníka stavět a udržovat vlastní renderovací farmu. Dalším fenoménem je collaborative rendering, v němž se uživatelé připojují k síti animátorů, kteří zasahují do samotného renderingu a přispývají k dosažení přesně poažadované kvality výstupu. Tento způsob renderingu má však technologická a bezpečnostní omezení. (Klekner, 2016)

5 Techniky k zobrazení CGI

CGI může být pouhým statickým obrázekem ale také dynamickou animaci případně plně interaktivním prostředím. Tato kapitola se věnuje zobrazovacím zařízením pro CGI.

Popisuje technologie pro prostorové 3D zobrazení, augmentovanou a virtuální realitu.

5.1 3D techniky zobrazování – stereogramy

Pojem stereoskopie má dva různé významy, prvním je prostorové vidění a druhým pak technologie, pomocí které lze dojem prostorového vidění vyvolat. Všechny tyto technologie stereoskopického zobrazování lze označit jako stereogramy. (Brennesholtz, 2008; Polášek, 2009)

Metoda stereoskopické projekce je postavená na principu překrývání stejných obrazů, které jsou od sebe posunuty o určitý úhel. Každému oku se pak nabízí jenom ten obraz, který je mu určen. Aby bylo dosaženo co nejlepšího prostorového vjemu, musí být záznamy pro pravé i levé oko odděleny. Záznam pro každé oko se také odděleně pořizuje. 3D filmy jsou nátačeny dvěma kamerami, které scénu snímají z různých úhlů, nebo pomocí zrcadel, která jsou od sebe v určité vzdáelnosti. Konkrétní 3D techniky jsou popsány níže. (Brennesholtz, 2008; Polášek, 2009; Saxby, 2010)

5.1.1 Anaglyfy

Jedná se o jednu z metod, pomocí které lze vytvořit stereoskopický obraz. Výsledný obraz obsahuje dva dílčí obrazy v komplementárních barvách, které se překrývají. Jde o barvy, při jejichž složení dostaneme černou. Kombinací barev, které jsou vzájemně doplňkové, je mnoho, ale ne všechny jsou vhodné. V současné době se nejvíce používá červená v kombinaci s azurovou, ale v minulosti byly nejpoužívanějšími kombinacemi červená

Anaglyg je sice nejméně kvalitní, ale zároveň nejjednodušší a nejméně nákladnou metodou 3D zobrazení. Lze jí použít na všech zobrazovacích zařízeních, na všech typech monitorů, projektorů, ale i při tisku. Díky tomu se jedná o nejlépe dostupnou a velice rozšířenou techniku. Velkou nevýhodou je pak ztráta barevnosti pozorovaných předmětů. Z principu totiž nelze zobrazit všechny barvy. Pro svojí jednoduchost a malé náklady jde o velmi oblíbené reklamní zpestření například na různých propagačních akcích. Ukázku anaglyfu můžete vidět na obrázku č. 10. (Křížecký, 2009; Gali-3D, 2008)

Obrázek 10: Ukázka anaglyfu s názvem "Dont look down"

Zdroj: Mvramsey. Dont look down. Dostupné z: https://mvramsey.deviantart.com/art/Don-t-Look-Down-3-D-conversion-351198163

5.1.2 Aktivní stereoskopická projekce

Při aktivní steroskopické projekci se obraz promítá s dvojnásobnou frekvencí 120 Hz, kdy se střídavě promítají obrazy pro pravé a levé oko. To znamená, že za jednu vteřinu se promítne 60 snímků každému oku. Ke sledování 3D obrazu touto technologií musí být použity elektronické brýle, které pracují ve stejné frekvenci jako projektor a synchronizovaně se zdrojem vysílání střídavě zatmívají levé nebo pravé oko. Brýle se u této technologie aktivně podílí na vytváření vnímaného trojrozměrného vjemu. Každé oko tedy

dostává jemu určený obraz a z této dvojice snímků pak mozek skládá 3D scénu. S metodou aktivní stereoskopické projekce se můžeme setkat například v kinech IMAX SOLIDO, nebo u dostupných 3D projektorů, telivozorů i monitorů. Aktivní 3D brýlé mají skla vyplněná kapalnými krystaly a obsahuji polarizační filtry. Při daném signálu se pak krystaly natočí do směru elektrického pole a změní v brýlích polarizaci, tak aby každé oko sledovalo jemu určený obsah. Elektronické brýle jsou spojená se zdrojem vysílání buď na dálku pomocí infračerveného paprsku, nebo na přímo kabelem. (Gali-3D, 2008; Fernando, 2013)

Výhodou této metody je velice kvalitní plnobarevné trojrozměrné zobrazení a možnost použití obyčejné projekčního plátna či monitoru. To ale neplatí pro standardní LCD monitory, které většinou nemají dostatečnou obnovovací frekvenci a nejsou tak schopné zobrazit plynulý záznam. Nevýhodou je nutnost nabíjení aktivních brýlí a jejich nákladná údržba. Kvůli komplikovanější technologii brýlí také není tato metoda vhodná pro velký počet diváků a projekce vyžaduje speciální 3D projektor. Pro zmíněné vlastnosti má tato technologie uplatnění především pro sledování domácích televizorů a hraní her. (Gali-3D, 2008; Fernando, 2013)

5.1.3 Pasivní stereoskopická projekce

K pasivní steroskopické projekci je zapotřebí speciálních brýlí, dvou projektorů a speciální promítací plochy. Obrazy jsou promítány dvěma projektory, přičemž před každým z nich je speciální polarizační filtr, který propouští světlo v dané rovině, v horizontální nebo ve vertikální. Obraz se promítá na specifikcou projekční plochu se speciálním povrchem, který uchová polarizaci dopadajícího světla. Od speciálního plátna se pak odráží zdánlivě spojený obraz směrem k divákovi. Očnice speciálních brýlí obsahují také polarizační filtry, v jedné očnici je orientovaný horizontálně a v druhé veritkálně. Díky těmto brýlím se obrazy oddělí tak, že do každého oka dopadne pouze příslušný obraz. (Gali-3D, 2008; Fernando, 2013)

Výhodou této metody je kvalitní obraz ve vysokém rozlišení v plné snímkové frekvenci, kdy

synchronizovanými projektory na speciální projekční plátno. Kvůli tomu také není možné pro pasivní projekci použít monitor. (Gali-3D, 2008; Fernando, 2013)

5.1.4 Autostereoskopické monitory

Další metodou jsou monitory s technologií autostereoskopie. Jedná se o displeje, pomocí kterých lze zobrazovat 3D obraz bez použití brýlí. Hlavní prvek zde hraje speciální fólie, která je umístěna na displeji a která láme obraz do lichých a sudých pixelových sloupců.

Stejně jako u předchozích metod každé oko dostává oddělený obraz a mozek z těchto obrazů následně skládá 3D scénu. Značnou nevýhodou je, že je divák nucen sedět v určitém směru, ve kterém je možné sledovat 3D obraz. Existují však aktivní stereoskopické monitory, které pomocí kamery dokáží sledovat pohyb uživatele a upravují speciální fólii tak, aby i při pohledu z jiných úhlů nedocházelo k porušení 3D obrazu. Další variantou jsou displeje, které

Stejně jako u předchozích metod každé oko dostává oddělený obraz a mozek z těchto obrazů následně skládá 3D scénu. Značnou nevýhodou je, že je divák nucen sedět v určitém směru, ve kterém je možné sledovat 3D obraz. Existují však aktivní stereoskopické monitory, které pomocí kamery dokáží sledovat pohyb uživatele a upravují speciální fólii tak, aby i při pohledu z jiných úhlů nedocházelo k porušení 3D obrazu. Další variantou jsou displeje, které