<<

Masarykova univerzita Fakulta informatiky

Ruční kresba s využitím rozšířené reality

Bakalářská práce

Vendula Němcová

Brno, jaro 2020 Masarykova univerzita Fakulta informatiky

Ruční kresba s využitím rozšířené reality

Bakalářská práce

Vendula Němcová

Brno, jaro 2020 Na tomto místě se v tištěné práci nachází oficiální podepsané zadání práce a prohlášení autora školního díla. Prohlášení

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

Vendula Němcová

Vedoucí práce: Mgr. Jiří Chmelík, Ph.D.

i Poděkování

Chtěla bych poděkovat panu Mgr. Jiřímu Chmelíkovi, Ph.D. za zaujetí pro nápad a volnost poskytnutou při jeho realizaci. Dále bych chtěla poděkovat panu doc. RNDr. Petru Matulovi, Ph.D. za vedení při snaze registrovat kresby na jejich vzory. V neposlední řadě děkuji Mgr. Da- vidu Kuťákovi za představení techniky v HCI laboratoři a práce s ní a Bc. Vlastimilu Blažkovi za průběžnou korekturu a snímání břemene v podobě domnělé důležitosti bakalářských prací.

ii Shrnutí

Práce se zabývá popisem konceptu rozšířené reality a možnostmi jejího využití pro uměleckou tvorbu. Teoretická část práce nabízí pře- hled aktuálního technického vybavení pro rozšířenou realitu a jeho porovnání. Praktickou část práce tvoří návrh systému vhodného k pro- cvičování ruční kresby a jiné výtvarné tvorby s využitím virtuálních modelů.

iii Klíčová slova

rozšířená realita, , kresba, výtvarná tvorba, Unity, AR Foundation, Google ARCore

iv Obsah

Úvod 1

1 Představení oblasti rozšířené reality 3 1.1 Definice ...... 3 1.2 Uplatnění ...... 4 1.3 Významné problémy a metody ...... 4 1.3.1 Sledování polohy ...... 5 1.3.2 Rekonstrukce a analýza prostředí ...... 6 1.3.3 Registrace objektů ...... 7

2 Typy vybavení pro rozšířenou realitu 8 2.1 Podle kategorie zařízení, typu obsahu a uplatnění ...... 8 2.1.1 Zařízení nošená na hlavě ...... 8 2.1.2 Zařízení držená v rukou ...... 9 2.1.3 Zařízení navázaná na prostor ...... 9 2.2 Podle metody a parametrů zobrazení ...... 9 2.2.1 Video pass-through a optical see-through . . . .9 2.2.2 Speciální typy displejů ...... 10 2.2.3 Zorné pole a zorný úhel ...... 10 2.3 Podle výpočetní techniky, způsobu sledování polohy a mobility 10

3 Současné headsety a brýle pro rozšířenou realitu s 3D obsa- hem 12 3.1 1 ...... 12 3.2 HoloLens 2 ...... 14 3.3 Nreal Light ...... 15 3.4 Varjo XR-1 Developer Edition ...... 16

4 Vybavení pro rozšířenou realitu dostupné v rámci HCI La- boratory 18 4.1 Wrap 1200dxar ...... 18 4.2 HTC Vive Pro ...... 19 4.3 HTC Vive ...... 20 4.4 Samsung Galaxy S8 ...... 22

5 Návrh prototypu 23

v 5.1 Aplikace Composer ...... 23 5.2 Aplikace Viewer ...... 26

6 Implementace prototypu 30 6.1 Použité technologie ...... 30 6.2 Formát ukládaných dat ...... 32 6.3 Aplikace Composer ...... 33 6.3.1 Storage ...... 34 6.3.2 Scene ...... 34 6.3.3 Control ...... 35 6.3.4 Manipulation ...... 35 6.3.5 Handles ...... 36 6.3.6 UI ...... 37 6.4 Aplikace Viewer ...... 37 6.4.1 Display ...... 38 6.4.2 Storage ...... 38 6.4.3 Scene ...... 38 6.4.4 UI ...... 39

7 Možná budoucí rozšíření 40 7.1 Aplikace Composer ...... 40 7.1.1 Rozšíření podpory formátů 3D modelů . . . . . 40 7.1.2 Historie ...... 40 7.1.3 Přidávání primitivních těles ...... 40 7.1.4 Další vylepšení editoru ...... 40 7.1.5 Manipulace s kostrou modelu ...... 41 7.2 Aplikace Viewer ...... 41 7.2.1 Přehrávání animace ...... 41 7.2.2 Poměřování a vodicí linky ...... 41 7.2.3 Vizualizace přesnosti reprodukce ...... 41

Závěr 44

Bibliografie 46

A Tabulky 55

vi Úvod

Pro výtvarné umělce je klíčové rozvíjet svou schopnost zachycovat viděné. Zkušenosti s reprodukcí existujících objektů jim mimo jiné umožňují představit si a věrohodně ztvárnit i objekty neexistující. Umělci proto většinou svůj výtvarný projev trénují. Obvyklým způso- bem je tvorba v ateliéru podle kompozic statických objektů, tzv. zá- tiší či pózujících figur. Možnosti takového prostředí však mohou být velmi omezené; v ateliéru nemusí být dostatečné množství přiroze- ného světla či schází kvalitní umělé osvětlení, ateliér je příliš malý na to, aby pojal požadovanou kompozici, objekty kompozice nemusí být vůbec možné sehnat či do ateliéru dopravit, dostupné objekty jsou příliš monotónní, pózující figury se hýbou nebo dokonce není, kdoby pózoval. Cílem mé práce je nabídnout řešení mnoha těchto problémů vhodným zkombinováním současných technologií. V dnešní době je možné pomocí 3D skenerů a programů pro 3D modelování vytvořit vysoce realistické digitální scény. Tam, kde není možné nebo žádoucí použít hmotné objekty, se proto nabízí uchýlit se k objektům virtuálním, a v současnosti se s tímto přístupem v mnoha oblastech experimentuje. Rozhodla jsem se, že použití 3D modelů bude vhodným základním kamenem i pro navrhovaný systém. Vizuální vjem ze zobrazení objektu by měl být co nejpřirozenější, aby tvorba za použití systému poskytovala zhruba stejnou příležitost k rozvoji jako tvorba za běžných podmínek. Z toho vyplývá potřeba 3D model trojrozměrně také zobrazit. Zachycovat na plátno obsah obra- zovky je totiž podstatně jednodušší než převádět na plátno prostorově viděný objekt. Bylo by také vhodné, aby umělec nebyl omezen ve volbě nástrojů a dílo vyprodukované za pomoci systému bylo hmotné, nikoli virtuální povahy. Přirozeným řešením těchto požadavků je technologie rozšířené reality. V 1. kapitole tuto oblast krátce představuji. Otázka zprostředkování rozšířené reality je poněkud těžší. Tech- nické vybavení pro ni je totiž stále ve stádiu vývoje. Současně dostupná zařízení jsou většinou velmi drahá a navíc často závisí na dalším hard- warovém vybavení a jeho výkonu. Cílem této práce je sice především navrhnout prototyp řešení a otestovat jeho koncept, přesto by bylo vhodné mířit na takové technické vybavení, které nebude zcela z do- sahu potenciálních uživatelů.

1 V kapitolách 2–4 se zabývám popisem technického vybavení pro rozšířenou realitu, jeho parametry, klasifikací a použitelností pro na- vrhovaný systém. V následujících kapitolách popisuji vytvořený prototyp, a to jak po stránce návrhové, tak po stránce implementační. Prototyp sestává ze dvou aplikací: První, nazvaná Composer, umožňuje import 3D mo- delů a vytvoření a osvětlení kompozice. Druhá, nazvaná Viewer, tuto kompozici umožňuje zobrazit v prostředí rozšířené reality. V poslední kapitole uvádím možná budoucí rozšíření systému, která by například umělci umožnila porovnat svůj výtvor s jeho digi- tálním vzorem.

2 1 Představení oblasti rozšířené reality

1.1 Definice

Rozšířená realita Rozšířená realita (anglicky augmented reality, zkráceně AR) je tech- nologie doplňující reálné prostředí o počítačem generovanou infor- maci. Vjem rozšířeného prostředí může být zprostředkován každým z lidských smyslů, nejčastěji se však jedná o vjem vizuální, který je případně doprovozen vjemem sluchovým či hmatovým. Doplňovaná informace může být buď zcela umělá a nereálná, nebo se může jed- nat o zprostředkování reálných jevů, které člověk sám není schopen vnímat (např. vizualizace přítomného elektromagnetického vlnění). Doplňovaná informace může reálné prostředí jak obohatit o nové prvky, tak v něm může stávající prvky skrýt. [1] Prostředí rozšířené reality kombinuje reálné a virtuální informace, umožňuje interakci v reálném čase a je trojrozměrné, přičemž virtuální objekty jsou registrovány s reálnými. [2]

Mixovaná realita, rozšířená virtualita a virtuální realita a jejich vztah k rozšířené realitě Pro popsání příbuzných oblastí a jejich vztahů se nabízí použít tzv. Re- ality- continuum, spojitou škálu sahající od zcela reálného po zcela virtuální prostředí. [3] Každé prostředí na této škále, které poskytuje zároveň reálné i virtuální podněty, lze označit za prostředí tzv. mixované reality (někdy také smíšené reality; anglicky mixed rea- lity, zkráceně MR). Rozšířenou realitu je tedy možné chápat jako typ mixované reality. Vedle AR je pak řazena tzv. rozšířená virtualita (ang- licky augmented virtuality, zkráceně AV), která má blíže virtuálnímu konci spektra. Zatímco u rozšířené reality je převážně reálné prostředí doplňováno virtuálními podněty, u rozšířené virtuality je převážně virtuální prostředí doplňováno reálnými podněty. Pojem virtuální realita (anglicky , zkráceně VR) bývá definován mnoha různými způsoby a částečně splývá s pojmem virtu- ální prostředí (anglicky virtual environment, zkráceně VE). [4] V této práci budu uvažovat následující definici:

3 1. Představení oblasti rozšířené reality

Virtuální realita je technologie zprostředkovávající zcela umělé, počítačem generované prostředí. Toto prostředí je trojrozměrné, obsa- huje interaktivní prvky a existuje nezávisle na prostředí, ve kterém se pozorovatel fyzicky nachází. Hlavní rozdíly mezi AR a VR lze tedy popsat takto: Při zažívání vir- tuální reality je uživatel smyslově ponořen do zcela umělého prostředí, a v ideálním případě se svým reálným okolím zcela ztratí kontakt. U rozšířené reality naopak v reálném prostředí smyslově zůstává, ale jeho zážitek je rozšířen o virtuální podněty. [5]

1.2 Uplatnění

Rozšířená realita nachází uplatnění v mnoha oblastech lidského zájmu a obohacuje uživatele při práci i v osobním životě. S její pomocí lze:

∙ vizualizovat prototypy a zrychlit proces vývoje,

∙ usnadnit technické a lékařské operace či analýzy zobrazením doplňujících dat nebo skrytých struktur,

∙ vytvořit výukové simulace nejen v oblastech medicíny a letectví,

∙ zprostředkovat zaniklé kulturní památky a historické události,

∙ navigovat chodce či řidiče,

∙ vizualizovat zákazníkům produkty a nabídnout jejich vyzkou- šení v prostoru vlastního bytu či na vlastním těle,

∙ umožnit setkání na dálku a vzdálenou spolupráci,

∙ rozšířit herní zážitek o prvky a možnosti interakce reálného prostředí

∙ a mnohé další. [1, 5]

1.3 Významné problémy a metody

Pro navození dojmu prolnutí reálného a virtuálního prostředí je třeba zprostředkovávat virtuální objekty tak, jako by se fyzicky nacházely

4 1. Představení oblasti rozšířené reality v okolí uživatele. To zahrnuje například jejich vykreslení ve správné velikosti a orientaci vzhledem k úhlu pohledu nebo zohlednění po- lohy při přehrávání zvuků, které vydávají. Je také vhodné zajistit, aby virtuální objekty napevno umístěné do scény zůstávaly na svých mís- tech. S těmito problémy souvisí úlohy sledování polohy, analýzy prostředí a registrace objektů, které jsou velmi provázané a částečně splývají.

1.3.1 Sledování polohy Sledování polohy1, anglicky positional tracking, někdy také spatial trac- king, spočívá v udržování přehledu o prostorovém umístění a natočení uživatele nebo jiného objektu. Sledované parametry jsou vyjadřovány pomocí tzv. stupňů volnosti (anglicky degrees of freedom, zkráceně DoF). Rozlišuje se jich až šest: tři odpovídají pozici na jednotlivých osách x, y a z, a tři odpovídají rotaci kolem těchto os (v anglickém prostředí se používá označení pitch (kolem osy z), yaw (kolem osy y) a roll (kolem osy x)). [6] Nejčastějšími metodami, které se v současné době používají, jsou magnetické, inerciální, optické a hybridní sledování polohy. Magnetické sledování využívá soustavu tří na sebe kolmých elek- tromagnetických cívek, které měří proud indukovaný magnetickým zdrojem, respektive soustavu magnetometrů měřících statické magne- tické pole. Výhodou magnetického sledování je skutečnost, že sledující a sledovaný na sebe nemusí přímo vidět, je však náchylné na rušení kovy. Inerciální sledování využívá akcelerometr a gyroskop (často sdru- žené do tzv. inertial measurement unit (IMU)), pomocí kterých měří změny zrychlení a rotace. Z těch potom odhaduje současnou polohu a orientaci. Inerciální sledování dosahuje vysoké frekvence aktualizace dat, kvůli metodě měření však dochází k nežádoucí akumulaci chyb. Optické sledování využívá kamery pro viditelné a infračervené světlo. Určována je poloha kamery vzhledem k prostředí nebo poloha objektů prostředí vzhledem ke kameře. Jednou z kategorií optického sledování je tzv. marker-based tracking, při kterém jsou ve snímaném obrazu rozpoznávány vizuální referenční značky. Orientace v pro- storu se také může zakládat na značkách se speciálními optickými vlastnostmi. Marker-less tracking oproti tomu staví pouze na sníma- ném obraze. Pomocí metod počítačového vidění jsou v obraze často

5 1. Představení oblasti rozšířené reality

detekovány význačné rysy a útvary, ze kterých je pak rekonstruováno okolní prostředí. Typem marker-less sledování je sledování založené na hloubkové informaci, kterou je možné měřit pomocí odražených infračervených paprsků. Optické sledování bývá poměrně přesné, ale vyžaduje výhled bez překážek a dosahuje nízkých frekvencí aktuali- zace dat. Inerciální a optické sledování se svými vlastnostmi doplňují; jejich spojení využívá hybridní sledování. Významnou metodou založenou na hybridním sledování je tzv. simultaneous localization and mapping (SLAM), kdy je zároveň mapováno (respektive digitálně rekonstruo- váno) reálné prostředí a zároveň je v něm sledována poloha daného zařízení. [6, 7] Poloha je nejčastěji sledována u hlavy uživatele (head tracking), lze ale sledovat i jeho tělo (body tracking) či části těla. Sledování polohy využívá, ale liší se od něj tzv. snímání pohybu, které koresponduje s an- glickým pojmem a označuje zachycování či nahrávání pohybu reálného tvora či objektu. Se sledováním polohy a snímá- ním pohybu souvisí hand tracking, při kterém je sledována poloha a případně pohyb rukou, zpravidla za účelem detekce gest nebo urči- tých pohybových sekvencí. Používá se také eye tracking, při kterém je sledována pozice očí (místo, kam se člověk dívá) nebo jejich pohyb. Sledovány mohou být například i statické a pohybující se objekty, které již byly v reálném prostředí rozpoznány. [6]

1.3.2 Rekonstrukce a analýza prostředí Na základě dat získaných například během fáze sledování polohy si systémy pro rozšířenou realitu mohou rekonstruovat reálné prostředí a uchovávat jeho digitální reprezentaci. Jednou z možností je vytvá- ření polygonálních sítí, které aproximují povrchy. Protože se virtuální objekty mohou vázat na reálné objekty na základě jejich významu, je obvykle žádoucí data o prostředí dále analyzovat. Za tímto účelem je využíváno různých metod počítačového, respektive strojového vidění a strojového učení. V obraze mohou být například detekovány rovinné

1Někdy také poziční sledování nebo snímání polohy, respektive pozice. V této práci preferuji variantu sledování polohy, přičemž slovo poloha chápu jako společné ozna- čení pro pozici – umístění v prostoru – a orientaci – natočení v prostoru.

6 1. Představení oblasti rozšířené reality plochy a rozpoznávány určité druhy objektů jako například lidské postavy, budovy, auta, prvky interiéru nebo 2D obrázky. [1, 5]

1.3.3 Registrace objektů Při registraci virtuálních objektů s reálnými jsou kombinovány zna- losti o poloze pozorovatele a vlastnostech prostředí. Virtuální objekt je zobrazen tak, aby odpovídal rozšiřovanému reálnému objektu či při- dělené poloze v souřadném systému. Pro věrnější dojem může být aplikována okluze, kdy je virtuální objekt překryt reálným objektem, který se nachází blíže k uživateli.

7 2 Typy vybavení pro rozšířenou realitu

Ve zbytku této práce se budu zabývat rozšířenou realitou, která rozši- řuje primárně vizuální vjemy. V následujících pasážích shrnuji různé pohledy na rozdělení vybavení pro tento typ AR a popisuji jeho sou- části a základní parametry.

2.1 Podle kategorie zařízení, typu obsahu a uplatnění

2.1.1 Zařízení nošená na hlavě

Mezi početně zastoupená zařízení pro rozšířenou realitu patří zařízení nošená na hlavě uživatele v podobě headsetů a brýlí. Tyto dvě sku- piny částečně splývají; jejich charakteristiky a možné rozdíly shrnuji na základě vlastního pozorování. Za headset jsou často označována robustnější zařízení obsahující více funkčních součástí jako je obrazovka, sluchátka, senzory nebo do- konce integrovaná výpočetní jednotka. Headsety zpravidla poskytují širší zorný úhel a soustředí se na zobrazování 3D obsahu. Jejich využití je rozsáhlé a zahrnuje vizualizaci a simulaci, hraní her a trojrozměrnou tvorbu. Za brýle se většinou označují subtilnější, běžným brýlím podobná zařízení s méně početnými, respektive jednoduššími součástmi. Brýle se častěji soustředí na zobrazování 2D informací při užším zorném úhlu, někdy může být dokonce rozšířeno vidění pouze na jednom oku. Brýle se pro svou schopnost analyzovat a obohacovat reálná pro- středí pojí s označením smartglasses, ne všechen obsah pro ně určený však z definice spadá pod rozšířenou realitu. Smartglasses nejčastěji zobrazují data o prostředí nebo uživateli, pohodlněji zprostředko- vávají aplikace z mobilních zařízení nebo umožňují zaznamenávat a zprostředkovávat jiným to, co uživatel vidí. Využití mají například pro konzultace se vzdáleným specialistou, zvýšení bezpečnosti a pro- duktivity v oblasti průmyslu, turistiku a navigaci nebo zobrazování tělesných dat při sportu. V této práci jsem se rozhodla ctít terminologii výrobce, pokud ji zavádí, jinak rozlišuji intuitivně výše uvedeným způsobem.

8 2. Typy vybavení pro rozšířenou realitu

2.1.2 Zařízení držená v rukou Rozšířenou realitu mohou zprostředkovávat také mobilní telefony a tablety, které už běžně obsahují kamery a senzory využitelné pro sle- dování polohy. Pomocí nástrojů jako jsou Google ARCore (blíže po- pisuji v sekci 6.1) a Apple ARKit lze pro tento typ zařízení vyvíjet aplikace rozšiřující realitu. Obsah je z povahy obrazovek zařízení typicky nazírán dvojrozměrně a na krátkou vzdálenost. Po vzoru mo- bilní virtuální reality je nicméně také možné vložit telefon do headsetu s průhledem pro kameru a používat na něm stereoskopické AR apli- kace.

2.1.3 Zařízení navázaná na prostor Spatial augmented reality, zkráceně SAR, navazuje zážitek rozšířené reality přímo na fyzický prostor pomocí projektorů, speciálních ob- razovek na plochách interiéru nebo volumetrických a holografických displejů. Virtuální objekty lze vnímat buď přímo, nebo za pomocí brýlí, které filtrují světlo. SAR systémy zpravidla nejsou mobilní, zato však nezávisí na jednotlivcích a často umožňují víceuživatelský zážitek. Využití mají například pro lokální spolupráci, prezentaci produktů či kreací a umělecké instalace. [8]

2.2 Podle metody a parametrů zobrazení

2.2.1 Video pass-through a optical see-through Video pass-through, někdy také video see-through, je metoda zobrazení rozšířené reality, při které je uživateli v reálném čase ukazován video stream proložený s virtuálním obsahem. Uživatel se tedy na své okolí nedívá přímo, ale skrze jednu či více kamer. [9] Optical see-through je metoda zobrazení rozšířené reality, při které uživatel na reálné prostředí pohlíží skrze průhledné optické zařízení, od něhož se navíc do uživatelových očí odráží virtuální obsah. Hlav- ními technologiemi, na kterých může být optické zařízení založené, jsou tzv. curved mirror (někdy také curved combiner, volně přeloženo jako zakřivené zrcadlo) a tzv. waveguide, zahrnující difrakční, holografic- kou, polarizační a odrazovou optiku. [9, 10, 11]

9 2. Typy vybavení pro rozšířenou realitu

2.2.2 Speciální typy displejů Head-mounted display, zkráceně HMD, je označení pro displej nošený na hlavě (v rámci headsetu či brýlí), který umožňuje stereoskopické zobrazení obsahu. Každému oku typicky přísluší samostatná obra- zovka či optika. Optical head-mounted display, zkráceně OHMD, je HMD využívající optical see-through technologie. , zkráceně VRD, někdy také retinal scan display (RSD) nebo retinal projector (RP) je metoda zobrazení, při které je obraz pomocí světelného paprsku promítán přímo na sítnici. [6]

2.2.3 Zorné pole a zorný úhel Zorným polem (anglicky field of view, zkráceně FoV) se rozumí viditelná část prostoru. Popsat se dá pomocí tzv. zorného úhlu – úhlu mezi dvěma krajními body zorného pole měřeného z místa pozorování. Lze mluvit o horizontálním, vertikálním a diagonálním zorném úhlu. Lidské vidění dosahuje přes 180∘ horizontálního a až 130∘ verti- kálního zorného úhlu. Vlastnosti zorného pole jsou ale proměnné; se vzrůstající vzdáleností od středu pohledu člověk ztrácí schopnost rozlišovat detaily, barvy a tvary. Lidské vnímání je prostorové do hori- zontálního zorného úhlu zhruba 120 ∘. [6, 8] Velikost zorného pole hraje významnou roli u tzv. imerzivní rozší- řené reality, jejímž cílem je nabídnout uživateli pohlcující zážitek – čím zařízení poskytuje větší zorný úhel, tím je jeho použití pro uživatele pohodlnější a vyvolává přirozenější dojem.

2.3 Podle výpočetní techniky, způsobu sledování polohy a mobility

Použitá výpočetní technika, způsob sledování polohy a celková pohyb- livost zařízení nebo systému pro rozšířenou realitu spolu do značné míry souvisí. Tzv. tethered headsety a brýle pro virtuální a rozšířenou realitu vyžadují pro svou funkčnost stálé kabelové spojení s výpočetní techni- kou, která řeší generování obsahu a další úlohy. Naproti tomu untethe- red headsety a brýle jsou buď soběstačné, nebo práci na jiná zařízení

10 2. Typy vybavení pro rozšířenou realitu přesměrovávají bezdrátově. Headsety běžně označované za tethered zpravidla využívají výkonné, imobilní počítače, do stejné kategorie však z principu spadají i headsety připojující se k mobilním zařízením, která uživatel nosí s sebou. Prostorově vázané systémy a systémy používané v prostředí se známou geometrií mohou využívat informací o prostoru a sledovat polohu pomocí tzv. model-based tracking. [6] Tethered systémy s imo- bilními počítači obvykle umisťují část sledovacích senzorů mimo sle- dované zařízení, kde je možné pro sledování využít více zdrojů. Sledo- vání polohy je tak přesnější, ale operuje na malém, omezeném prostoru – tzv. room-scale. Untethered systémy a mobilní systémy se většinou spoléhají na sledovací metody jako je SLAM (zmiňuji v sekci 1.3.1) a mohou být používány ve větším, někdy až neomezeném prostoru – tzv. world-space. Použití výkonnějších zařízení či počítačů zpravidla zaručuje lepší vykreslovací kvalitu a podporu výpočetně náročnějších efektů nebo obrazových analýz. Výhodou slabších zařízení typicky bývá větší fle- xibilita a cenová dostupnost.

11 3 Současné headsety a brýle pro rozšířenou re- alitu s 3D obsahem

V této kapitole popisuji vybrané headsety a brýle pro rozšířenou rea- litu, které byly vydány v posledních letech. Značná část současných produktů využívá optical-see through displeje. To uživatelům poskytuje přirozenější pohled na okolní svět, dosažitelný zorný úhel je na druhou stranu oproti video see-through omezený a virtuální objekty nemusí být zcela neprůhledné. Lze také pozorovat snahu zpřístupnit rozšířenou realitu běžným spotřebite- lům, což obvykle znamená přesun k mobilnějším a méně výkonným zařízením. Dražší a výkonnější produkty zpravidla postupně obrací svou pozornost k firmám. Do výběru jsem zařadila významná a technologicky zajímavá zaří- zení, která umožňují zobrazovat trojrozměrný obsah a nabízejí několik způsobů vývoje vlastních aplikací.

3.1 Magic Leap 1

Magic Leap 1 je zařízení pro rozšířenou realitu vydané v prosinci roku 2019, které rozšiřuje vizuální, zvukové a částečně také haptické vjemy. Jedná se o drobně aktualizovanou verzi zařízení Magic Leap One Creator Edition vydaného v srpnu roku 2018. [12, 13, 14] Sestává z tzv. Ligh- twearu, Lightpacku a Controlu. Lightwear je headset se zobrazovací technikou, reproduktory a snímacími senzory. Lightpack je přenosné zařízení poskytující výpočetní výkon a bateriové napájení. Control je bezdrátový dotykový ovladač. Lightwear uživateli sedí na hlavě, Light- pack je zavěšený u jeho boku a Control spočívá v jeho ruce. Lightware a Lightpack spolu komunikují prostřednictvím kabelu. [15] Podle rozebrání a analýzy produktu [16] je v Lightwearu obsažen waveguide OHMD složený ze šesti vrstev – přítomny jsou dvě sady vrstev pro různé zaostřovací roviny, každá po třech kusech přísluší- cích jednotlivým barevným kanálům. Na vnější straně headsetu byl zjištěn infračervený vysílač a senzor pro zkoumání okolí a magnetický senzor sledující polohu Controlu. Uvnitř headsetu jsou podle ana- lýzy umístěny infračervené senzory pro sledování pohybu očí. [16]

12 3. Současné headsety a brýle pro rozšířenou realitu s 3D obsahem

Další oficiální a zjištěné parametry Lightwearu uvádím v tabulce A.1. Do headsetu je možné dokoupit dioptrické vložky. [15] Control disponuje snímáním o šesti stupních volnosti a umožňuje ovládat Magic Leap 1 pomocí tří tlačítek a dotykového trackpadu citlivého na přítlak. S Lightwearem komunikuje bezdrátově a podle výrobce vydrží běžet až šest hodin na jedno nabití. Skrze Control je také možné poskytnout uživateli haptickou zpětnou vazbu. [15, 17] Lightpack obsahuje systém na čipu NVIDIA Tegra X2 (přezdí- vaný Parker); popis jeho součástí a další parametry zařízení uvádím v tabulce A.2. Magic Leap 1 je řízen tzv. prostorovým1 operačním systémem Lumin OS odvozeným ze systému Linux a Android Open Source Project. Lu- min OS umí zpracovávat informace ze senzorů a rekonstruovat z nich digitální odraz reálného prostředí. Vytváří polygonální síť reprezen- tující reálné prostředí a detekuje a sleduje roviny, plochy a objekty, přičemž využívá strojového učení. Rozpoznává také gesta a pohyby holých rukou. V Magic Leap 1 je prostorové i audio: Na virtuální objekty ve scéně mohou být navázány zdroje zvuku. Při jejich pře- hrávání je pak zohledněna vzdálnost a orientace nosného objektu. Zvuk může být také vstupem – Lumin OS dovede reagovat na několik předdefinovaných hlasových příkazů a převádět řeč na text. [15,14, 17, 18] Systém je vybaven několika základními aplikacemi, které umožňují prohlížet 3D webové stránky, zobrazovat prostorová média a živý obsah a sdílet zážitek rozšířené reality s ostatními lidmi. [14] Další aplikace třetích stran a podniková řešení jsou k dispozici na stránkách Magic Leap. [19] Základní sada Magic Leap 1 s roční zárukou je oficiálně nabízena za 2 295 USD, v přepočtu zhruba 54 000 CZK. [14]

Na Magic Leap 1 lze spouštět aplikace dvojího typu: Landscape je typ aplikací, jichž může běžet více zároveň, a které lze (dočasně či tr- vale) umístit do prostoru nebo nechat plout před uživatelem. Oproti tomu aplikace typu immersive může vždy běžet pouze jedna a zabírá celé zorné pole. [17]

1V originálu spatial operating system; nejspíše se jedná pouze o marketingový název.

13 3. Současné headsety a brýle pro rozšířenou realitu s 3D obsahem

Magic Leap nabízí několik způsobů vývoje aplikací; shrnuji je v tabulce A.3. Vyvíjet, testovat a debugovat aplikace je možné přímo v Magic Leap 1 nebo pomocí vývojového nástroje Zero Iteration, který zařízení simuluje. K dispozici je také několik dalších nástrojů usnadňujících vývoj. [17]

3.2 Microsoft HoloLens 2

Microsoft HoloLens 2 je headset pro rozšířenou realitu vydaný v roce 2019, který rozšiřuje vizuální a zvukové vjemy. Jedná se o untethered, soběstačné zařízení obsahující výpočetní jednotku. Podle vedoucího vývojáře produktu může HoloLens 2 některé úlohy také přesměrová- vat na cloud Microsoft Azure, ke kterému se umí přímo připojit. [20, 21] Headset může být nošen v kombinaci s dioptrickými brýlemi. Pro rychlé opuštění prostředí AR lze hledí odklopit nahoru. [20] Microsoft HoloLens 2 obsahuje systém na čipu Qualcomm Sna- pdragon 850 Mobile Compute Platform. [20] Další vybrané oficiální a zjištěné parametry produktu uvádím v tabulce A.4. Microsoft HoloLens 2 disponuje snímáním o šesti stupních volnosti a za účelem mapování prostoru si v reálném čase vytváří polygonální síť reprezentující reálné prostředí. Ovládání headsetu je realizováno pomocí pohybu očí a rukou. Udílet příkazy lze také hlasově; HoloLens 2 využívá zpracování přirozeného jazyka. Do systému se lze přihlásit pomocí rozpoznání duhovky. [20] Zařízení je běží na operačním systému Windows Holographic Ope- rating System a ve výchozím stavu poskytuje webový prohlížeč, apli- kaci pro zobrazování 3D modelů a byznysové aplikace pro vzdálenou spolupráci a pomoc. [20] Další aplikace jsou k dostání na stránkách Microsoft Store. [22] Základní balení obsahující pouze headset Microsoft HoloLens 2 lze oficiálně pořídit za 3 500 USD, v přepočtu zhruba 83 000 CZK. [23]

Vyvíjet aplikace pro HoloLens 2 je možné několika způsoby, jež popi- suji v tabulce A.5. K herním enginům Unity a Unreal Engine je navíc

14 3. Současné headsety a brýle pro rozšířenou realitu s 3D obsahem

dostupná nástrojová sada Toolkit (zkráceně MRTK), která má vývoj dále usnadnit. [24] Dokumentace Microsoft Docs vývojářům doporučuje používat grafické nastavení s nízkou renderovací kvalitou, aby aplikace dosáhla dostatečné snímkové frekvence. [25, 26] Pro vývoj a testování je možné použít jak samotné zařízení Holo- Lens 2, tak jeho emulátor. [27]

3.3 Nreal Light

Nreal Light jsou brýle pro rozšířenou realitu, které rozšiřují vizuální a zvukové vjemy. Nreal Light bude nabízen ve dvou verzích: vývo- jářské a spotřebitelské. Vývojářská verze produktu je v době psaní této práce v předprodeji a sestává z brýlí, výpočetní jednotky a ovla- dače. Spotřebitelská verze bude obsahovat pouze brýle; výpočetní jednotku a ovladač nahradí mobilní telefon nebo tablet se systémem Android. Brýle Nreal Light jsou s výpočetní jednotkou nebo hostujícím zařízením propojeny kabelem USB-C. [28] Tvarem se brýle Nreal Light velmi blíží brýlím slunečním, jejich stranice mohou být taktéž složeny. Očnice jsou tvořeny tzv. Combined Light Guide optikou – pravděpodobně se tedy jedná o OHMD zalo- žený na technologii waveguide. Více parametrů uvádím v tabulce A.6. Do brýlí mohou být magneticky připevněny dioptrické vložky. [29] Ovladač je snímán se třemi stupni volnosti. Reaguje na dotyk a přítlak, umožňuje také ovládání pomocí přejetí prstu. S výpočetní jed- notkou Nreal Light komunikuje přes . Obsahuje vestavěnou dobíjecí baterii. [29] Parametry výpočetní jednotky Nreal Light uvádím v tabulce A.7. Vývojová verze Nreal Light je zákazníkům nabízena za 1199 USD, v přepočtu zhruba 28 000 CZK. Lze očekávat, že cena spotřebitelské verze bude nižší. [28]

Pro vývoj vlastních aplikací Nreal poskytuje sadu vývojových ná- strojů Nreal SDK, zkráceně NRSDK. Sada nabízí funkce pro prosto- rové výpočty jako SLAM, snímání o šesti stupních volnosti, detekci horizontálních a vertikálních rovinných ploch a sledování obrázků. K dispozici je také funkce optimalizace vykreslování a funkce rozpo-

15 3. Současné headsety a brýle pro rozšířenou realitu s 3D obsahem

závání gest. NRSDK je v době psaní této práce možné používat s Unity, do budoucna je plánována podpora vývoje v Unreal Engine a Android Native. Měla by být umožněna také integrace nástrojových sad třetích stran coby pluginů. [30, 31] V brýlích Nreal Light lze zobrazovat existující nativní aplikace pro Android bez nutnosti jakýchkoli změn. Do stávajících 2D aplikací je pomocí NRSDK navíc možné přidat 3D objekty a prvky rozšířené reality. [30, 31] Mezi další vývojové nástroje pro Nreal patří emulátor zařízení běžící v Unity v režimu přehrávání. S tablety a mobilními telefony, které jsou podporovány Google ARCore2, lze sdílet obsah zobrazovaný v Nreal Light, což má využití například pro video zaznamenávání, živé demonstrace nebo víceuživatelský, kooperativní zážitek rozšířené reality. [31, 32]

3.4 Varjo XR-1 Developer Edition

Varjo XR-1 Developer Edition je headset pro rozšířenou a virtuální rea- litu vydaný v roce 2019. Headset operuje v pokojovém měřítku a je typu tethered – vyžaduje připojení ke vhodnému3 počítači se systé- mem Windows 10 přes rozhraní Thunderbolt. Pro sledování polohy lze použít bázové stanice Steam VR nebo ART. Headset je také kom- patibilní s ovladačemi a ovladači pro produkty HTC Vive. Prostřednictvím Varjo XR-1 lze zažívat rozšířenou realitu, rozšířenou virtualitu i virtuální realitu. [33, 34] Varjo XR-1 využívá video pass-though HMD se speciálně vyvinu- tým systémem obrazovek známým jako tzv. foveated display[6]. S po- mocí sledování pohybu očí je v místě, kam se uživatel dívá, zajištěno větší rozlišení než v okrajových oblastech. Výsledný obraz má podle výrobce kvalitu odpovídající běžné ostrosti lidského vidění. Více in- formací o řešení obrazovky je k dispozici pod [35]. HMD poskytuje zorný úhel o velikosti 87 ∘. Další vybrané parametry uvádím v tabulce A.9. Headset je možné používat v kombinaci s dioptrickými brýlemi. [36]

2Více informací o nástrojích Google ARCore a jím podporovaných zařízeních uvádím v sekci 6.1. 3Požadavky na hostující počítač uvádím v tabulce A.8.

16 3. Současné headsety a brýle pro rozšířenou realitu s 3D obsahem

Pomocí infračervených senzorů pro snímání hloubky Varjo XR-1 rekonstruuje obraz reálného prostředí, na základě čehož lze například realizovat překrytí virtuálních objektů reálnými. V budoucnosti by ze získaných dat mělo být také možné extrahovat gesta a pohyby rukou. [37] Varjo XR-1 Developer Edition je prodáván za 9 995 EUR, což je v přepočtu zhruba 266 000 CZK. Ke každému produktu je navíc účto- ván a podpora za 1 995 EUR, zhruba 53 000 CZK. Bázové stanice pro sledování polohy je třeba dokoupit zvlášť. [36]

K vývoji aplikací pro rozšířenou realitu určených Varjo XR-1 je možné použít nativní SDK a pluginy pro Unity a Unreal Engine. Podporovány jsou také vývojové nástroje pro vytváření simulací Prepar3D a VBS Blue IG a software od společností Flight Safety a CAE. [38]

17 4 Vybavení pro rozšířenou realitu dostupné v rámci HCI Laboratory

Human- Interaction Laboratory působící na Fakultě infor- matiky Masarykovy univerzity se zabývá výzkumem v oblasti roz- hraní pro komunikaci člověka s počítačem a jejich aplikací. Mezi řešené problémy patří také zobrazování, vizualizace, simulace, snímání po- hybu a počítačové vidění. [39] Laboratoř disponuje různorodým vybavením pro počítačovou gra- fiku a interakci člověka s počítačem, dostupného vybavení pro rozší- řenou realitu ovšem není mnoho. V této kapitole se proto zabývám i těmi zařízeními, která pro rozšířenou realitu primárně neslouží, ale dají se použít.

4.1 Vuzix Wrap 1200dxar

Vuzix Wrap 1200dxar jsou brýle pro virtuální a rozšířenou realitu vy- dané roku 2013. Prodej brýlí byl ukončen a produkt se již na stránkách výrobce nenachází, dostupné informace o něm jsou omezené. Podle nalezených uživatelských manuálů k tomuto a příbuzným modelům produktu brýle umožňují zobrazovat 2D i 3D video. [40, s. 5] Podle uživatelské recenze starší verze produktu a zmínek v manuálech lze také zobrazit počítačem generovaný 3D obsah na pozici určenou papí- rovým markerem a vykreslit jej přes obraz z kamer. [41] [42, s. 5–6] [40, s. 22] Vybrané technické parametry headsetu, které se mi podařilo zjistit, uvádím v tabulce A.10. V uživatelských manuálech je uvedeno, že je možné Vuzix Wrap 1200dxar připojit k libovolnému zařízení s HDMI rozhraním, sledování pozice je však oficiálně podporováno pouze na osobních počítačích se systémem Windows. [40, s. 5] Manuály zmiňují sadu vývojových nástrojů Vuzix VR/AR SDK určenou pro Windows a dostupnou v rámci Vuzix Developer Program na webových stránkách společnosti. K datu psaní této práce se skrze odkaz nelze ke zdrojům určeným tomuto produktu dostat. [40, s. 22] Pro zprovoznění headsetu je třeba stáhnout ze stránek výrobce instalátor, který zajistí instalaci Vuzix VR Manager, maxReality, maxRe-

18 4. Vybavení pro rozšířenou realitu dostupné v rámci HCI Laboratory

ality Viewer, ovladačů kamer a kompatibilní verze rozhraní DirectX. Vuzix VR Manager slouží ke kalibraci trackeru; maxReality je doplněk pro modelovací program Autodesk 3ds Max, který umožňuje v pro- gramu vytvořit a exportovat VR a AR scény, jež jsou pak pomocí maxReality Viewer zobrazitelné ve Vuzix Wrap 1200dxar. Po úspěšné instalaci je třeba ve Windows nastavit na obrazovce podporované rozli- šení a obnovovací frekvenci a přepnout zobrazení do režimu duplikace nebo rozšíření (v brýlích se zobrazí obsah jedné z obrazovek). Ná- sledně je třeba zkalibrovat tracker. V době psaní této práce už instalátor k brýlím na stránkách výrobce není dostupný.

Použitelnost pro navrhovaný systém Namísto v manuálech odkazovaného, již nedostupného softwaru jsem stáhla novou verzi Vuzix VR Manager a maxReality Viewer z jiného zdroje. Otevřít ukázkové soubory pro otestování brýlí se mi ale ne- podařilo – přenos obrazu z jedné z kamer brýlí selhal. Aktualizace ovladačů kamery ani spouštění maxReality Viewer v různých módech kompatibility nepomohlo. Kalibrace trackeru ve Vuzix VR Manager také nefungovala. Vzhledem k těmto potížím, nedostupnosti náleži- tého softwaru a zastaralosti hodnot klíčových technických parametrů jsem se brýle dále zprovoznit nepokoušela.

4.2 HTC Vive Pro

HTC Vive Pro je headset pro virtuální realitu vydaný v roce 2018. Tento headset sice není pro rozšířenou realitu primárně určen, v jeho přední části se však nachází dvojice kamer, která umožňuje zobrazit uživatelovo okolí. To má využití např. ve chvílích, kdy se uživatel nachází na okraji sledované místnosti nebo chce interagovat s okolním světem, aniž by musel headset odložit. [43] Headset je typu tethered a funguje v kombinaci s bázovými stani- cemi SteamVR a kompatibilním počítačem (viz tabulka A.12). Velikost snímané místnosti dosahuje 10 × 10 m při použití čtyř bázových stanic a 5 × 5 m při použití dvou. Pro interakci s virtuálním obsahem je možné použít ovladač společný pro řady produktů HTC Vive a HTC Vive Pro. Vybrané parametry headsetu uvádím v tabulce A.11.

19 4. Vybavení pro rozšířenou realitu dostupné v rámci HCI Laboratory

HTC Corporation poskytuje několik vlastních sad vývojových ná- strojů pro mobilní zařízení i osobní počítače, které umožňují jak na- tivní vývoj, tak vývoj skrze herní enginy Unity a Unreal Engine. [44] Z hlediska předních kamer je zajímavá především sada VIVE SRWorks SDK, která poskytuje některé funkce počítačového vidění a umožňuje živou interakci s virtuálními objekty ve scéně. [45] Na odkazované stránce se nachází i několik videí, která ilustrují použití headsetů HTC v aplikacích pro rozšířenou realitu. Vyvíjet software pro headsety HTC je možné také prostřednic- tvím pluginu od SteamVR pro Unity. [46] Tento kromě klasické VR funkcionality zpřístupňuje i obraz z předních kamer. [47]

Použitelnost pro navrhovaný systém

Vhodnost použití HTC Vive Pro ke zprostředkování rozšířené reality jsem testovala pomocí funkce SteamVR, která umožňuje zobrazení okolí, pokud se uživatel nachází na okraji sledované místnosti. [43] Headset se pro tuto práci ukázal být nevhodný; dvojice předních kamer má fixní rozestup, který spíše neodpovídá rozestupu očí uživa- tele. Ačkoli toto nemusí vadit v jiných AR aplikacích nebo při použití za účelem nezranit se, pro uměleckou tvorbu, která zahrnuje práci s blízkými a drobnými objekty, je takový vizuální vjem nedostačující. Při kreslení jsem viděla tužku dvojitě, obraz měl navíc nízké rozlišení.

4.3 HTC Vive

HTC Vive je headset pro virtuální realitu vydaný v roce 2016, jehož pro- dej byl již ukončen. Od svého přímého nástupce HTC Vive Pro se liší mimo jiné tím, že poskytuje pouze jednu přední kameru pro zobrazení uživatelova okolí. Způsob použití HTC Vive je téměř stejný jako u HTC Vive Pro. Ma- ximální velikost místnosti snímané pomocí bázových stanic je zhruba 3,5 × 3,5 m. Vybrané technické parametry uvádím v tabulce A.13 a požadavky na hostující počítač v tabulce A.14.

20 4. Vybavení pro rozšířenou realitu dostupné v rámci HCI Laboratory

Obrázek 4.1: Pohled z HTC Vive během testování. Výstup z přední kamery je použit jako pozadí virtuálního modelu. (archiv autorky)

Použitelnost pro navrhovaný systém

V této práci se zaměřuji především na 2D uměleckou tvorbu jako je kresba a malba. Rozhodla jsem se tedy vyzkoušet, zda nestačí troj- rozměrně vnímat pouze virtuální objekt a realitu s plátnem nazírat dvourozměrně. Headset v tomto ohledu hodnotím pozitivně: 2D vjem výstupu z jedné kamery mi pro tvorbu přijde skutečně vhodnější než nepřirozený 3D vjem ze dvou kamer s fixním rozestupem. Při nepří- tomnosti rušivého způsobu zobrazení zde však vyniká nízké rozlišení kamery. Při běžném osvětlení na papíře není možné rozlišit jednotlivé tahy, čímž je přesnost tvorby velmi omezena. Na stránkách výrobce se mi o přední kameře a jejích technických možnostech nepodařilo dohledat žádné bližší informace. Za pomoci vývojového rozhraní od SteamVR v pluginu pro Unity [47] jsem zjistila, že maximální rozlišení snímku kamery zbaveného distorze činí pouze 612 × 460 pixelů. Obrázek 4.1 zachycuje pohled z headsetu v průběhu tohoto testování.

21 4. Vybavení pro rozšířenou realitu dostupné v rámci HCI Laboratory 4.4 Samsung Galaxy S8

Samsung Galaxy S8 je mobilní telefon, který je podporován nástroji Google ARCore (blíže popisuji v sekci 6.1). [48] Telefon disponuje obrazovkou s rozlišením 2960 × 1440 px a fotoaparátem s rozlišením 12 megapixelů při clonovém čísle f1.7. Fotoaparát umožňuje automa- tické zaostřování. Další vybrané parametry uvádím v tabulce A.15. [49]

Použitelnost pro navrhovaný systém Oproti předchozím zařízením nabízí telefon Samsung Galaxy S8 velmi dobrou obrazovou kvalitu. Díky automatickému zaostřování je navíc možné pohodlně rozlišit detaily kresby na papíře. Byť obraz ztrácí na kvalitě, zařízení je použitelné i při nižší intenzitě osvětlení. Sledování polohy telefonu a ploch detekovaných v obraze je nicmé- ně výrazně méně spolehlivé a přesné. Překrytí kamery nebo prudký pohyb může narušit umístění virtuálních objektů. Google ARCore toto chování dokumentuje pod [50]. Při prohlížení z různých míst a úhlů se také může zdát, že objekty nezůstávají zcela na stejném místě a nepatrně se odchylují. Mobilní telefon Samsung Galaxy S8 hodnotím jako nejvhodnější ze všech vyzkoušených zařízení. Pro výtvarnou tvorbu a tím i navrho- vaný systém je klíčová kvalita zobrazení, zatímco nepřesné sledování polohy příliš nevadí. Při zamýšleném použití bude uživatel většinu času sedět a kompozici pozorovat z fixního úhlu, kompozice navíc bude umisťována jen zhruba a pro přichycení, nikoli s důrazem na přes- nost.

22 5 Návrh prototypu

Na navrhovaný systém kladu tyto požadavky:

∙ Systém umožní zobrazit libovolný objekt, a to i v omezeném prostoru.

∙ Systém umožní osvětlit kompozici pomocí několika základních typů světel a osvětlení dále regulovat pomocí několika parame- trů.

∙ Vizuální vjem ze zobrazení objektu bude co nejpřirozenější, aby tvorba za použití systému poskytovala zhruba stejnou příležitost k rozvoji jako tvorba za běžných podmínek.

∙ Umělec nebude omezen ve volbě nástrojů a dílo vyprodukované za pomoci systému bude hmotné, nikoli virtuální povahy.

∙ Systém bude uživatelsky přívětivý a snadno použitelný.

Navržený systém sestává ze dvou aplikací (prozatím se jedná pouze o prototypy). První z nich, již jsem nazvala Composer, slouží k vytvoření a osvětlení kompozice, kterou uživatel hodlá umělecky re- produkovat. Aplikace Composer je určena pro osobní počítače. Druhá aplikace, již jsem nazvala Viewer, slouží k zobrazení vytvořené kompo- zice v prostředí rozšířené reality. Tuto aplikaci lze použít s vhodným mobilním telefonem a headsetem pro rozšířenou realitu, respektive headsetem pro virtuální realitu, který telefonu nezakrývá fotoaparát. Vhodným headsetem může být například cenově dostupný .

5.1 Aplikace Composer

Cílem aplikace Composer je umožnit uživateli snadno a rychle vy- tvořit kompozici z již existujících 3D modelů. Aplikace se soustředí na manipulaci s celými modely nebo jejich dílčími souvislými polygo- nálními sítěmi, nejedná se o modelovací program. Rozhraní aplikace jsem se snažila navrhnout přehledně, aby byla aplikace přístupná

23 5. Návrh prototypu

Obrázek 5.1: Kompozice s různobarevnými světly. Výchozí zobrazení obsahuje pravé a horní menu. (archiv autorky)

i uživatelům bez předchozích zkušeností s podobným typem soft- waru. Aplikace je vhodná i pro pokročilejší uživatele, kteří si mohou ve specializovaném programu vytvořit vlastní kompletní 3D model (resp. kompozici) a pomocí Composeru jej pouze umístit do prostoru, osvětlit a exportovat.

Po spuštění aplikace uživatel vidí scénu se dvěma světly a referenční siluetou člověka pro porovnávání velikostí. Pomocí pravého menu může do scény importovat 3D model1 nebo načíst kompozici, která již byla v Composeru vytvořena. Dále může přidat osvětlení: bodové světlo v podobě lampy nebo světelný kužel znázorněný jako reflek- tor. Obrázek 5.1 ukazuje základní uživatelské rozhraní a kompozici s importovanými modely a oběma typy světel. Horní menu umožňuje přepínat způsob ovládání pohybu a orien- tace ve scéně; k dispozici je ovládání blízké modelovacím programům jako je Blender, které vyžaduje použití myši, a ovládání, které využívá pouze a klávesnici.

1V současné době jsou podporovány pouze modely uložené ve formátu .obj.

24 5. Návrh prototypu

Jednotlivý model či světlo lze vybrat kliknutím myši, pro výběr více modelů a světel zároveň je třeba podržet klávesu shift. Aktuální výběr lze zrušit kliknutím na libovolný z vybraných objektů. Při podržení klávesy alt lze kliknutím vybrat část2 modelu, respektive více částí při současném držení kláves alt a shift (viz obrázek 5.2).

Obrázek 5.2: Výběr částí objektu. Vlevo se nachází menu pro ovládání editace.(archiv autorky)

Po vytvoření neprázdného výběru se zobrazí transformační úchop- ka a levé menu, které uživateli nabízí akce uplatnitelné na celý výběr. Selekci modelů lze posunovat, škálovat, rotovat a mazat. Selekci světel lze posunovat, rotovat a mazat, navíc lze upravovat dosah, intenzitu a barvu světel (viz obrázek 5.3). Když je uživatel se svou kompozicí hotov, může ji v pravém menu exportovat pro zobrazení v aplikaci Viewer.

Aplikaci Composer jsem vyvíjela a testovala na osobních počítačích se systémem Windows. Po drobných úpravách a otestování by ji však

2Částí v tomto případě rozumím celek, který je na úrovni 3D modelu rozpoznáván jako submesh (oddělená polygonální síť). Granularita modelu je tedy určována jeho tvůrcem.

25 5. Návrh prototypu

Obrázek 5.3: Výběr světla. V levém menu je možné nastavit světelné parametry. (archiv autorky)

mělo být možné používat i na Linuxových systémech. Rozšíření na sys- tém macOS je principiálně možné, ale složitější kvůli přísnější vývojové politice firmy Apple.

5.2 Aplikace Viewer

Aplikace Viewer zajišťuje umístění vytvořené kompozice do reálného prostředí a její následné zobrazení v brýlích pro rozšířenou realitu zprostředkovanou mobilním telefonem. Umisťování probíhá v běž- ném mobilním AR módu – uživatel drží telefon v ruce a s aplikací interaguje dotykem. Pro zobrazování kompozice se aplikace přepne do stereo pass-through módu a uživatel telefon vloží do brýlí (viz sekce 2.2.1 a další části kapitoly 2).

Průchod aplikací je znázorněn diagramem 5.4. Uživatel je v každém kroku instruován krátkými texty. Nejprve je třeba inicializovat prostředí rozšířené reality namířením telefonu na nějaký reálný objekt (například na podlahu).

26 5. Návrh prototypu

Obrázek 5.4: Diagram průchodu aplikací Viewer. (archiv autorky)

Poté uživatel v zařízení vyhledá soubor s kompozicí, kterou si přeje zobrazit. Načtenou kompozici může umístit na jednu z rovinných ploch detekovaných v reálném prostředí. Střed kompozice se při umis- ťování pohybuje zároveň se středem obrazovky a na rovinné ploše je znázorněn barevným terčem. Kompozice je na plochu umisťována kolmo a okolo své ypsilonové osy se natáčí směrem k uživateli. Zvole- nou pozici a orientaci uživatel zafixuje dotykem. Průběh umisťování kompozice je zachycen na obrázku 5.5. Pokud je uživatel s umístěním kompozice nespokojen, může jej změnit. Jinak dostane možnost poupravit její velikost a zapnout odhad osvětlení, při kterém je intenzita a barva světel v kompozici ovlivňo- vána světlem v záběru kamery. Virtuální objekty se tak mohou jevit přirozenější a lépe zapadat do reálného prostředí. Informace o imple- mentaci odhadu osvětlení uvádím v sekci 6.4.3. Po potvrzení změn je uživatel vyzván k vložení telefonu do brýlí a aplikace se přepne do stereo módu. Rozbalením nastavení lze upravit zorný úhel stereo zobrazení i zobrazení virtuálních objektů. Obrázek 5.6 představuje záběr z této části aplikace. Pokud si uživatel nepřeje dívat se i nadále na aktuální scénu, může přejít zpět do klasického módu a kompozici znovu umístit, vyměnit ji za jinou nebo ukončit aplikaci.

27 5. Návrh prototypu

Obrázek 5.5: Umisťování kompozice na rovinné plochy detekované v reálném prostředí. Plochy odpovídají povrchu židle a podlahy. Ro- vinnou plochu na židli zasahuje terč značící střed kompozice. (archiv autorky)

Obrázek 5.6: Aplikace Viewer ve stereo módu pro zobrazení kompo- zice v brýlích pro rozšířenou realitu. Na snímku je rozbaleno nastavení zorného úhlu. (archiv autorky)

28 5. Návrh prototypu

Aplikaci Viewer jsem vyvíjela a testovala na mobilním telefonu Samsung Galaxy S8 se systémem Android. Obdobně by měla fungovat i na jiných telefonech se stejným systémem, které jsou certifikovány pro použití s Google ARCore; jejich seznam je dostupný zde: [48] Rozšíření na systém iOS je opět možné, ale složitější kvůli přísnější vývojové politice firmy Apple.

29 6 Implementace prototypu

6.1 Použité technologie

Unity

Unity je multiplatformní herní engine usnadňující vývoj her a jiných 2D či 3D grafických aplikací, včetně těch pro rozšířenou a virtuální realitu. Projekt vyvinutý v Unity je možné přeložit pro použití na osobních počítačích s operačními systémy Windows, macOS a Linux, na mobil- ních telefonech se systémy Android a iOS, na herních konzolích jako jsou PS4 a Xbox One, na televizních platformách jako je tvOS, na před- ních systémech pro rozšířenou a virtuální realitu, a prostřednictvím rozhraní WebGL také na webových stránkách. [51] Unity je vývojářům dostupná v placené i neplacené verzi v závis- losti na výši jejich ročního výdělku. [52] Základními stavebními prvky, které engine poskytuje, jsou herní objekty umístěné do scén a komponenty, které jim přidávají speciální chování. Kromě sady předchystaných komponent je možné použít komponenty vlastní, realizované tzv. skriptem napsaným v programo- vacím jazyce C#. Herní objekt s přidruženými komponentami lze také uložit pro pozdější užití jako tzv. prefab. Prostřednictvím Unity Asset Store mohou uživatelé ostatním posky- tovat vlastní assety, jako například prefaby, 2D a 3D grafiku, nástroje a rozšíření do Unity. [53]

OBJ Import

OBJ Import je nástroj pro Unity, který umožňuje za běhu importovat do scény 3D modely uložené ve formátu .obj. (Tato funkcionalita je jinak dostupná pouze v Unity editoru při vytváření hry či aplikace.) S pomocí nástroje lze importovat také materiál modelu a jeho textury, pro něž je podporováno několik obrazových formátů. Modely mohou být tvořeny trojúhelníky, čtyřúhelníky i n-úhelníky. [54]

30 6. Implementace prototypu

Flexible Color Picker Flexible Color Picker je přizpůsobitelný prefab sloužící jako UI prvek pro výběr barvy. Sestává z několika posuvníků pro různé barevné modely, barevné palety, náhledu výsledné barvy a vstupního pole pro zadání barvy v hexadecimálním formátu. Jeho jednotlivé části mohou být skryty, přeuspořádány a škálovány. [55]

Simple File Browser Simple File Browser je nástroj pro Unity, který umožňuje za běhu zob- razit dialog pro výběr a uložení souborů. (Tato funkcionalita je jinak dostupná pouze v Unity editoru.) Prostřednictvím dialogu je možné soubory vyhledávat a filtrovat podle typu, přistupovat k obsahu po- mocí rychlých odkazů a provádět jednoduchý i vícenásobný výběr souborů a složek. Nástroj běží i na systému Android a podporuje získávání práv za běhu. [56]

Google ARCore Google ARCore je sada vývojových nástrojů pro rozšířenou realitu zalo- ženou na mobilním telefonu. Google ARCore je nabízeno v několika úpravách: pro Android, Android NDK, iOS, Unity a Unreal Engine. [57] Google ARCore umožňuje sledovat polohu mobilního zařízení pomocí metody SLAM, kdy jsou kombinovány obrazové informace z kamery a informace ze senzorů zařízení. Na základě význačných bodů nalezených v kamerovém obraze ARCore umí detekovat hori- zontální a vertikální roviny, respektive rovné plochy nacházející se v reálném prostředí. U detekovaných rovin a význačných bodů lze testovat zasažení kurzorem (respektive dotekem na obrazovce), a také k nim ukotvit virtuální objekty. Rozpoznávat je možné také statické i pohyblivé obrázky na základě shody s obrázkem ve vlastní data- bázi nebo lidské tváře. Prvky detekované v prostředí a ukotvené ob- jekty jsou nadále sledovány, takže zůstávají registrovány na správném místě, i když uživatel opustí prostředí s jejich vzory. ARCore posky- tuje také hloubkovou mapu prostředí, průměrnou intenzitu osvětlení v prostředí a barevnou korekci. Pomocí ARCore Cloud Anchor API lze vytvářet aplikace pro více hráčů či spolupracovníků. [58]

31 6. Implementace prototypu

Google ARCore je možné použít na vybraných mobilních zaříze- ních, které prošly certifikačním procesem. Při něm je kontrolována zejména kvalita kamery, snímací senzory a výkonnost CPU. Seznam všech podporovaných zařízení je k dispozici na [48].

AR Foundation AR Foundation je balíček pro Unity poskytující multiplatformní roz- hraní pro práci s rozšířenou realitou. Samotná funkcionalita je ovšem dodávána doplňkovými, platformě závislými balíčky, AR Foundation zajišťuje pouze odstínění od konkrétních nástrojů a vývojových sad. V současnosti podporovanými doplňkovými balíčky jsou ARCore XR Plugin pro Android, ARKit XR Plugin pro iOS, Magic Leap XR Plugin pro Magic Leap a Windows XR Plugin pro HoloLens. [59]

ARcore_mobileVRHeadset ARcore_mobileVRHeadset je opensource projekt umožňující používat sadu nástrojů Google ARCore na mobilním telefonu vloženém do he- adsetu pro mobilní AR (respektive VR s průhledem pro fotoaparát). Projekt je napsaný v Unity s využitím ARFoundation a balíčku pro Go- ogle ARCore. Vznikl kvůli nedostatku podobných hotových řešení; nástroje Google ARCore jsou údajně určeny pro mobilní telefony pou- žívané běžným způsobem a nejsou tak přímo kompatibilní s nástroji jako je Google Cardboard SDK, které scénu do brýlí vykreslují stereo- skopicky a se soudkovým zkreslením. [60] ARcore_mobileVRHeadset vykresluje obsah po vrstvách pomocí systému herních kamer. Výstup z fotoaparátu mobilního telefonu je vykreslen jako první. Přes něj jsou pak zobrazeny herní objekty scény. Následně je tento mezivýsledek zpracován shaderem, který na něj aplikuje soudkové zkreslení. Pomocí posuvníků lze v aplikaci ovládat zorný úhel použitý pro zobrazení. [61, 62]

6.2 Formát ukládaných dat

Aplikace Composer umožňuje exportovat kompozici do souboru, ze kterého ji lze později načíst v aplikacích Composer i Viewer. Kom- pozice sestává z herních objektů, které jsou tvořeny světly a 3D modely

32 6. Implementace prototypu

o různých texturách a materiálech. Pro uložení dat jsem tedy zvolila zip archiv, který obsahuje soubory s texturami a soubor ve formátu .json s popisem vlastností herních objektů. Archivu nastavuji pří- ponu .composition, aby bylo možné při vybírání souboru k načtení filtrovat podle typu. Soubor .json obsahuje objekt s těmito atributy: ∙ Pole gameObjects: Prvky popisují objekty 3D modelů – jejich jméno, polohu a velikost, textový odkaz na případnou mesh a pole číselných odkazů na podřazené objekty. ∙ Pole lights: Prvky popisují objekty světel – jejich typ, polohu a velikost, intenzitu, barvu a dosah. ∙ Slovník1 meshes: Textové klíče popisují jména, hodnoty popisují 3D modely – jejich jméno, formát, počet částí, vrcholy, normály, UV souřadnice, trojúhelníky a textové odkazy na materiály. ∙ Slovník1 materials: Textové klíče popisují jména, hodnoty popi- sují materiály – jejich jméno, difuzní a spekulární barvu, soubory difuzní, normálové a emisní textury a lesklost. Herní objekty světel jsou generické a není je proto třeba ukládat; vytváří se z uložených prefabů2 a jsou jim pouze nastaveny příslušné uložené vlastnosti světel. 3D modely a materiály zastoupené v kompozici vícekrát se v sou- boru .composition uloží pouze jednou a jsou referencovány z více herních objektů.

6.3 Aplikace Composer

Aplikace Composer je oproti aplikaci Viewer výrazně komplexnější a vnitřně těšněji provázaná. Struktura vazeb mezi třídami se nejspíše v budoucnu nebude zásadněji měnit. Uživatelské rozhraní je složi- tější a obsahuje více prvků sdružených do skupin podle funkcionality. Rozhodla jsem se proto jednotlivé třídy, objekty a UI prvky provazo- vat spíše skrze kód než Unity editor, abych měla nad jejich vazbami

1Jedná se o objekt obsahující pole klíčů a pole hodnot. 2Viz sekce 6.1

33 6. Implementace prototypu větší kontrolu a snáze se upravovaly. Pro přístup k objektům a UI prv- kům scény využívám vyhledávání objektů a komponent podle jejich vlastností (viz [63] a metody začínající slovem Find), často s pomocí konstrukcí tzv. Language-Integrated Query, které poskytuje C# (více pod [64]). Vazby mezi třídami zpravidla realizuji pomocí jazykové konstrukce event jazyka C# (události). Data událostí přitom definuji stylem obvyklým pro .NET Framework. Své komponentové skripty jsem rozdělila do několika jmenných prostorů, jejichž funkcionalitu a využití popisuji v následujících sek- cích. Dokumentaci jednotlivých tříd a vybraných metod je možné najít přímo v přiloženém zdrojovém kódu.

6.3.1 Storage

Jmenné prostředí Storage obsahuje definice serializovatelných dat pro uchování kompozicí. Formát výsledného souboru popisuji v sekci 6.2. Dále se v něm nachází třída, která umožňuje kompozici do souboru uložit nebo ji z něj načíst. Při ukládání je objektový strom kompozice nejprve rekurzivně převeden do serializovatelné podoby, a potom je zapsán do souboru ve formátu .json. V průběhu převodu jsou z mo- delů ve scéně získána a uložena do souboru texturová data. Všechny vzniklé soubory jsou nakonec sbaleny do archivu. Při načítání kompo- zice ze souboru se postupuje analogicky, pouze v opačném směru.

6.3.2 Scene

Ve jmenném prostředí Scene se nachází třída, jež poskytuje metody pro import 3D modelu ze souboru .obj, načtení dříve uložené kom- pozice, export kompozice stávající a přidání světel. Samotné načítání modelu je řešeno nástrojem OBJ Import, kterým se zabývám v sekci 6.1. Jako dialog pro výběr souborů a umístění jsem prozatím využila třídu OpenFileDialog z .NET Frameworku [65], která otevírá uživa- telsky přívětivý souborový dialog systému. Vzhledem k tomu, že se nejedná o multiplatformní řešení, by bylo vhodné dialog v budoucnu nahradit například dialogem z nástroje Simple File Browser (viz sekce 6.1), který jsem úspěšně otestovala v aplikaci Viewer.

34 6. Implementace prototypu

Jmenné prostředí dále obsahuje data použitých událostí a pomoc- nou komponentu, která na hostitelský objekt aplikuje billboard efekt3. Toho využívá referenční silueta člověka pro porovnávání velikostí popisovaná v sekci 5.1.

6.3.3 Control Obsahem jmenného prostředí Control jsou třídy pro ovládání pohybu a orientace ve scéně. Dělí se na třídu, která obsahuje dostupné módy ovládání a umožňuje mezi nimi přepínat, a třídy těchto módů, které implementují samotné ovládání. V současné verzi je k dispozici ovlá- dání podobné modelovacím programům jako je Blender, a ovládání, které nevyžaduje použití myši.

6.3.4 Manipulation Nejvýznamnějším jmenným prostředím je Manipulation, které sdru- žuje třídy pro výběr a editaci objektů kompozice. Unity již sice obsahuje nástroje pro vytváření výběru [66] nebo jeho transformaci pomocí úchopek [67], ty jsou ovšem dostupné pouze v rámci Unity editoru a nikoli za běhu přeložené aplikace. Použití samotného Unity jakožto existujícího řešení pro přípravu kompozic zároveň nepovažuji za vhodné, neboť editor poskytuje mnoho další, nesouvisející funkcionality, disponuje komplikovaným uživatelským rozhraním a zabírá mnoho místa na disku. Pro výběr a editaci objektů kompozice jsem proto implementovala vlastní systém. K objektům kompozice připínám skriptové4 komponenty, které objekt označují jako vybratelný nebo editovatelný, respektive editova- telný objekt světla. K editovatelným objektům je ukládána informace o tom, jaké úpravy je na nich možné provádět; v současné verzi je podporováno posunutí, otočení, škálování a smazání. Objektům světel lze nastavovat intenzitu, barvu a dosah vyzařovaného světla. Všechny vybratelné objekty jsou od doby svého přidání do kompo- zice registrovány manažerem výběru. Při kliknutí na některý či některé z nich se mění výběr. O těchto změnách manažer výběru notifikuje další třídy prostřednictvím události.

3Objekt s tímto efektem se vždy natáčí přední stranou ke kameře. 4Skriptové ve smyslu názvosloví Unity (viz sekce 6.1).

35 6. Implementace prototypu

Manažer editací kontroluje, zda je současný výběr tvořen pouze editovatelnými objekty, a pokud ano, jaký je průnik povolených úprav. Na základě těchto informací potom umožní výběr patřičným způso- bem editovat. Realizaci úprav rozvádím v následující sekci. Pobdobně současný výběr dále zpracovává manažer osvětlení, který zjišťuje, zda výběr sestává ze světel. V kladném případě umožní měnit parametry osvětlení. Aby bylo možné vybírat a upravovat objekty scény po celcích i po částech, rozdělila jsem komponenty označující vybratelnost a edi- tovatelnost do dvou typů. Pokud se nejedná o výběr po částech, je kliknutí na část vybraného objektu propagováno až k jeho kořeni, skrze nějž je pak objekt vybrán celý (každá jeho další část). Manažer editací pracuje s objekty pouze skrze jejich editovatelné části, které nesou informaci o povolených úpravách.5 Objekty světel jsou tvořeny prefaby s předdefinovanými modely, které nemohou být dále trans- formovány. Je jim tedy přidělováno jak označení kořene, tak označení části, a je zakázáno je škálovat.

6.3.5 Handles Jmenné prostředí Handles obsahuje třídy transformačních úchopek, skrze něž jsou ovládány transformace posunutí, rotace a škálování. Každá úchopka zobrazená v aplikaci Composer je tvořena prefabem s modelem o třech transformačních oskách (v případě rotační úchopky o třech transformačních obručích), které odpovídají prostorovým osám x, y, z. Na kořenový objekt je připojena hlavní skriptová kom- ponenta a na jednotlivé objekty osek (obručí) potom dílčí skriptové komponenty. Dílčí komponenty reagují na tah myší. Z tažené vzdále- nosti a osové příslušnosti dílčí komponenty je určena transformační změna. Hodnota změny je následně skrze vyvolání transformační události předána manažeru editací, který podle ní upraví vybrané objekty. Manažer editací si dostupné transformační úchopky drží. Aktivní úchopku, a tím i používanou transformaci, lze jeho prostřednictvím přepínat.

5Principiálně je tedy možné povolit u jednotlivých částí objektu různé úpravy, jedná se však pouze o implementační detail, pro který jsem nenalezla smysluplné využití. 36 6. Implementace prototypu

6.3.6 UI Ve jmenném prostředí UI se nachází třídy, pomocí nichž je řízeno uživatelské rozhraní. Každá z nich seskupuje UI prvky příslušné určité funkcionalitě; v současné době se jedná o práci se scénou (ve smyslu jmenného prostředí Scene), ovládání pohybu a orientace ve scéně (ve smyslu jmenného prostředí Control), obecnou editaci, úpravu parametrů osvětlení a zobrazování vyskakovacích upozornění. Pro zadávání barvy osvětlení využívám prefab Flexible Color Picker, o němž píšu v sekci 6.1. Třídy umožňují nastavit ovládaná tlačítka a klávesové zkratky a na- vázat na ně akce, které se po jejich použití mají provést. Poskytují také například funkce pro ovládání skupin přepínacích tlačítek a skrý- vání skupin UI prvků. Změny v zobrazení skupin jsou pak typicky navázány na události vyvolané zbylými částmi aplikace. Jak zmiňuji v úvodním textu o implementaci Composeru, prova- zování prvků aplikace jsem se rozhodla realizovat skrze kód spíše než skrze Unity editor. To se týká i uživatelského rozhraní a s ním spojené logiky. Zda je podobné řešení UI výhodou oproti jiným, pro Unity běžnějším řešením, a případně jak velkou, je předmětem pro budoucí zvážení.

6.4 Aplikace Viewer

Jak ukazuji na diagramu 5.4, průchod aplikací Viewer je tvořen ně- kolika na sebe navazujícími kroky, jimiž je uživatel provázen pomocí krátkých textových pokynů. Jednotlivé kroky spolu ale nesouvisí těšně a mohou být v případě potřeby přeuspořádány; z určitých kroků je také možné se vracet do kroků předchozích. Z tohoto důvodu jsem se rozhodla navrhnout logiku kroků nezávisle a provázat je až prostřed- nictvím Unity editoru. Toho dosahuji použitím atributů nastavitelných z editoru, událostí UnityEvent a vlastních pomocných komponent, které umožňují specificky manipulovat s vlastnostmi prvků scény. Své komponentové skripty jsem rozdělila do několika jmenných prostorů, jejichž funkcionalitu a využití popisuji v následujících sek- cích. Dokumentaci jednotlivých tříd a vybraných metod je možné najít přímo v přiloženém zdrojovém kódu.

37 6. Implementace prototypu

V kořenovém jmenném prostoru aplikace se nachází dvě nezařazené třídy. Jedna umožňuje kontrolovat běh aplikace z editoru Unity a druhá informuje o inicializaci AR prostředí a zahájení sledování polohy.

6.4.1 Display Jmenné prostředí Display obsahuje třídy pro úpravu zobrazení po- mocí stereo vykreslování a soudkového zkreslení. Většina kódu je založena na projektu ARcore_mobileVRHeadset (popisuji v sekci 6.1), který jsem upravila pro novější verzi Unity a AR Foundation. Zobrazení scény je rozloženo do vrstev mezi tři kamery6. První z nich zabírá pouze pozadí v podobě výstupu z fotoaparátu zařízení, druhá (hlavní) kamera zabírá kompozici a běžné uživatelské rozhraní a třetí zabírá uživatelské rozhraní, které je použito při stereo zobrazení. Na hlavní kameru je při přechodu do stereo módu aplikován shader soudkového zkreslení.

6.4.2 Storage Ve jmenném prostředí Storage se nachází definice serializovatelných dat a třída, která umožňuje načíst uloženou kompozici ze souboru. Jedná se o úpravu kódu z aplikace Viewer; více informací o této funk- cionalitě uvádím v sekci 6.3.

6.4.3 Scene Jmenné prostředí Scene obsahuje třídy pro manipulaci s objekty kom- pozice. Jedna z tříd umožňuje samotnou kompozici přidat, změnit její velikost, vyměnit ji za jinou a smazat; jedná se o adaptaci kódu z aplikace Composer. Jako dialog pro výběr souboru je zde však použit Simple File Browser (viz sekce 6.1), jemuž jsem upravila vzhled. Další třída řeší umístění kompozice na detekovanou rovinnou plochu a její natočení směrem k uživateli. Zbylé třídy popisují vlastnosti objektů světel a na světla umístěná v kompozici umožňují aplikovat odhad osvětlení.

6Kamerou míním speciální herní objekt v Unity, který zajišťuje vykreslování scény nebo její části.

38 6. Implementace prototypu

Informace o odhadovaném osvětlení ve scéně poskytuje Google ARCore skrze AR Foundation (popisuji v sekci 6.1). Vypočítávají se z intenzit pixelů na snímku kamery a zahrnují odhad intenzity světla v reálném prostředí a barevnou korekci průměrného osvětlení ve scéně. Protože ve scéně může být přítomno více různobarevných světel, použití barevné korekce není zcela přímočaré. Ve stávající verzi korekci aplikuji zhruba na základě odlišnosti barvy konkrétního světla od průměrné barvy světel ve scéně.

6.4.4 UI Obsahem jmenného prostředí UI jsou kratší třídy určené pro ovlá- dání prvků uživatelského rozhraní. Umožňují přepínat viditelnost skupiny UI prvků nebo pro skrytí nastavit časovač, k dispozici je také komponenta, skrze niž lze aktualizovat obsah zobrazených textů. Třídy nachází využití především v ovládání textových pokynů, které uživatele provádí jednotlivými kroky nastavení a zobrazení kom- pozice.

39 7 Možná budoucí rozšíření

7.1 Aplikace Composer

7.1.1 Rozšíření podpory formátů 3D modelů Kromě formátu .obj by aplikace v budoucnu mohla podporovat další často používané formáty pro ukládání 3D modelů jako například .stl, .fbx, .collada nebo .3ds. Pokud by daný formát popisoval i světla ve scéně, byla by při importu převedena do reprezentace, se kterou je možné v Composeru pracovat. Jiné aplikací nezpracovatelné informace by nejspíše musely být při importu zahozeny.

7.1.2 Historie Pro uživatele významnou funkcionalitou, kterou jsem z navrženého prototypu prozatím vynechala, je historie provedených akcí. V bu- doucnu by mělo být možné přecházet o několik kroků zpět či dopředu. Pro usnadnění práce by kromě provedených transformací a úprav para- metrů světel mohly být ukládány také změny výběru objektů. Položky historie by mohly být zobrazeny v samostatném menu.

7.1.3 Přidávání primitivních těles Užitečnou funkcionalitou by mohlo být přidávání primitivních těles jako jsou krychle, koule, válec, kužel nebo torus. Uživatel by pak mohl tvořit jednoduché cvičné kompozice bez nutnosti shánět externí 3D modely. Primitivní tělesa by také mohl využít jako vizuální oporu nebo pozadí importovaného 3D modelu.

7.1.4 Další vylepšení editoru Composer by jakožto uživatelsky přístupný editor mohl být v někte- rých ohledech dále vylepšen. Na první pohled skrytá funkcionalita, kterou je v současné chvíli uniformní škálování, vícenásobný výběr a výběr po částech, by uživateli mohla být vizualizována. Pokud by se aplikace více rozrostla, za úvahu by stála také nějaká forma nápovědy nebo jednoduchý průvodce.

40 7. Možná budoucí rozšíření

Častější uživatelé by nejspíše ocenili informace o všech použitel- ných zkratkách.

7.1.5 Manipulace s kostrou modelu Vzdálenějším, nicméně velmi zajímavým rozšířením by mohlo být upravování pozice modelu pomocí jeho kostry. Například jediný mo- del člověka by se tak dal zobrazovat v mnoha různých postojích či s růz- nými gesty, podobně jako živý lidský model. Jedná se však o implemen- tačně náročnou funkcionalitu, která je nad rámec zadání mé bakalářské práce.

7.2 Aplikace Viewer

7.2.1 Přehrávání animace S podporou dalších typů informací o modelu souvisí také možné rozší- ření o přehrávání animací. Pohyb, který byl v modelu nadefinován, by při zobrazování mohl běžet ve smyčce, což by mělo využití například pro rychlé skici a pohybové studie. Uživatel by navíc oproti reálnému prostředí získal výhodu nekonečného opakování, respektive přesné reprodukovatelnosti pohybu.

7.2.2 Poměřování a vodicí linky Umělci při práci často poměřují délky částí kompozice a úhly, které tyto části navzájem svírají. Přestože prostředí rozšířené reality za tímto účelem umožňuje použít fyzické špejle či podobné nástroje, aplikace by mohla poskytnout také nástroj virtuální, jenž by například dovoloval nastavovat zarážky. Přes zobrazovanou kompozici by navíc uživatel mohl přeložit pomocnou mřížku nebo vodicí linky.

7.2.3 Vizualizace přesnosti reprodukce Velmi cennou funkcionalitou, kterou by Viewer mohl uživateli v bu- doucnu nabídnout, je srovnání vytvořené reprodukce se vzorovou kompozicí. Po dlouhém sezení nad papírem či plátnem umělec do ur- čité míry přichází o přehled nad celkovým tvarem a vzájemnými

41 7. Možná budoucí rozšíření vztahy jednotlivých částí. Hledat chyby a nepřesnosti v reprodukci však nemusí být jednoduché ani pro vnějšího pozorovatele. K řešení tohoto problému spatřuji potenciál ve využití počítače a metod zpra- cování obrazu. S jejich pomocí by reprodukce a předloha mohly být vhodně vizuálně překryty, což by uživateli odhalilo oblasti, kde je reprodukce nepřesná.

Tímto rozšířením jsem se již částečně zabývala a pod vedením pana doc. RNDr. Petra Matuly, Ph.D. hledala vhodnou metodu pro registraci obrázku reprodukce (kresby) s obrázkem vzorového 3D modelu. Bohužel jsem nenalezla dataset vhodný k reprezentativnímu otes- tování zkoušených metod. Sestavila jsem proto alespoň vlastní malý da- taset tvořený rendery volně dostupných 3D modelů a mými kresbami tužkou, k nimž jsem uměle dotvořila kresby fixou. Další data by výhle- dově bylo možné sbírat od samotných uživatelů při experimentálním zavedení této funkcionality do aplikace. Zkoušela jsem použít tzv. feature-based registraci (registraci na zá- kladě význačných bodů) pomocí metody SIFT [68] a registraci na zá- kladě intenzit pomocí metody měření tzv. vzájemné informace [69, 70]. První zmíněná metoda v obrazech identifikuje význačné body na zá- kladě analýzy obrazů za různého zmenšení (respektive zjednodušení, zhrubnutí). Po nalezení korespondujících dvojic těchto bodů lze oba vstupní obrazy registrovat. Druhá metoda je iterativní a hledá takovou transformaci jednoho obrazu na druhý, při které je maximalizována vzájemná informace v obrazech. Hodnota vzájemné informace se ur- čuje pomocí entropií obrazů, jenž jsou odhadnuty z intenzit pixelů. Feature-based registrace se pro tento problém ukázala být ne- vhodná, protože se výtvarné reprodukce od svých vzorů na úrovni bodů velmi liší. Intenzitní registrace se naopak osvědčila, a to jak pro kresby tužkou, které obsahují souvislé plochy a měkké intenzitní přechody, tak pro kresby fixou, které jsou spíše lineární povahy ain- tenzitně se blíží binárnímu obrazu. Očekávám, že aplikování na malby by plodilo lepší nebo srovnatelné výsledky. Výstupem provedené práce je funkce implementovaná v MATLABU realizující poloautomatickou registraci za pomocí metody vzájemné informace. Funkce umožňuje provést buď fixní počet registračních pokusů, anebo se po každém pokusu uživatele dotáže, zda je již s vý- sledkem spokojen. Mezi jednotlivými pokusy jsou upravovány para-

42 7. Možná budoucí rozšíření

Obrázek 7.1: Intenzitní registrace kreseb a renderu 3D modelu. Pod každou kresbou se nachází její nejúspěšnější registrace na mo- del (z pěti provedených pokusů). Z nejlevější registrace je patrné, že by kreslený muž měl mít větší mozkovnu a spodní čelist. Druhá re- gistrace zleva se zdařila, ale nenavádí uživatele na přímočaré řešení nepřesností. Registrace nehotových kreseb v tomto případě nebyly úspěšné. ([71], archiv autorky)

metry iterační registrační metody. Na obrázku 7.1 je k vidění vzorek použitých vstupních obrázků a jejich registrace.

Před použitím v aplikaci Viewer musím nejprve nalézt způsob, jak uživateli tuto funkcionalitu vhodně zpřístupnit, a rozmyslet si, jak naložím s prodlevami nutnými pro výpočet registrace. Potom bude třeba existující funkci znovu implementovat za použití jiného progra- movacího jazyka a vhodné knihovny, jakou by mohlo být například OpenCV.

43 Závěr

Cílem mé bakářské práce bylo prozkoumat oblast brýlí pro rozšíře- nou realitu, popsat technické vybavení současné generace a otestovat vybavení dostupné v rámci Human-Computer Interaction Laboratory. Pro nejvhodnější dostupné zařízení jsem pak měla navrhnout a im- plementovat prototyp, který by umožňoval připravit kompozici z 3D modelů a konfigurovatelných světel a zobrazit ji v brýlích pro rozšíře- nou realitu jako předlohu pro kreslení či jinou tvorbu. Nejprve jsem definovala a představila rozšířenou realitu jako tako- vou. Následně jsem vytvořila obecný přehled zařízení, která rozšiřují vizuální vjemy, a popsala jejich možná dělení a základní parametry. S pomocí představených konceptů jsem potom rozebrala vybrané současné brýle a headsety pro rozšířenou realitu, přičemž jsem se blíže zaměřila na možnosti vývoje aplikací pro ně určených. Významná část produktů vydaná v posledních letech využívá optical-see through displeje, což uživatelům poskytuje přirozenější pohled na okolní svět. Tento způsob zobrazení má ale jistá omezení – dosažitelný zorný úhel je omezený a virtuální objekty jsou částečně průhledné. Část sou- časných výrobců hledá cestu k běžným spotřebitelům skrze levnější a mobilnější zařízení, druhá se obrací spíše na firmy. Nabízené mož- nosti pro vývoj vlastního softwaru jsou u obou kategorií zpravidla velmi dobré. Human-Computer Interaction Laboratory příliš mnoho vybavení pro rozšířenou realitu nenabízí. Jako nejvhodnější zařízení pro svůj prototyp jsem zvolila mobilní telefon Samsung Galaxy S8, který je pod- porován vývojovými nástroji pro rozšířenou realitu Google ARCore a poskytuje dobrou kvalitu zobrazení. Navrhovaný prototyp jsem rozdělila do dvou aplikací. První apli- kace, nazvaná Composer, umožňuje importovat 3D modely, pomocí základních transformací z nich sestavit kompozici a tu následně osvět- lit dvěma předdefinovanými typy světel o volitelné intenzitě, barvě a dosahu. Aplikace Composer je určena pro osobní počítače. Druhá aplikace, nazvaná Viewer, tuto kompozici umožňuje načíst, umístit do prostředí rozšířené reality, případně mírně poupravit a nakonec zobrazit v headsetu pro AR. Aplikace Viewer je určena pro mobilní

44 7. Možná budoucí rozšíření

telefony s podporou Google ARCore a vhodný headset, jakým může být například Google Cardboard. Obě aplikace prototypu jsou naprogramovány v herním enginu Unity, aplikace Viewer staví na projektu ARcore_mobileVRHeadset a prostřednictvím rozhraní AR Foundation využívá Google ARCore. Pro budoucí vývoj a směřování prototypu mám několik zajíma- vých nápadů. Nejvýznamnějším z nich je implementace funkcionality, pomocí níž by bylo možné vizualizovat přesnost vytvořeného výtvar- ného díla vzhledem ke vzorové kompozici. Touto funkcionalitou jsem se již částečně zabývala a nalezla pro ni možné řešení v podobě inten- zitní registrace obrazů. Mezi další možná rozšíření patří implementace nástrojů po pomě- řování částí vzoru nebo výtvarné reprodukce, přehrávání definova- ného pohybu nebo úprava pozice importovaného modelu pomocí jeho kostry. Prototyp by bylo vhodné otestovat s potenciálními uživateli a na zá- kladě toho zhodnotit jeho praktickou použitelnost. Za tímto účelem plánuji oslovit vyučující a studenty předmětů Ateliéru grafického designu a multimédií, který na Fakultě informatiky Masarykovy uni- verzity působí. U nich by prototyp také mohl nalézt jedno ze svých využití.

45 Bibliografie

1. KIPPER, Greg; RAMPOLLA, Joseph. Augmented Reality: An Emerg- ing Technologies Guide to AR. Syngress, 2012. ISBN 9781597497336. 2. AZUMA, Ronald T. A Survey of Augmented Reality. In: Presence: Teleoperators and Virtual Environments. Cambridge: MIT Press, 1997, sv. 6, s. 355–385. Č. 4. 3. MILGRAM, Paul; TAKEMURA, Haruo; UTSUMI, Akira; KISHI- NO, Fumio. Augmented reality: a class of displays on the reality- virtuality continuum. In: DAS, Hari (ed.). Telemanipulator and Technologies. SPIE, 1995, sv. 2351, s. 282–292. Dostupné z DOI: 10.1117/12.197321. 4. KARDONG-EDGREN, Suzan; FARRA, Sharon L.; ALINIER, Gu- illaume; YOUNG, H. Michael. A Call to Unify Definitions of Virtual Reality. Clinical Simulation in Nursing. 2019, roč. 31, s. 28– 34. ISSN 1876-1399. Dostupné z DOI: https://doi.org/10. 1016/j.ecns.2019.02.006. 5. CARMIGNIANI, Julie; FURHT, Borko; ANISETTI, Marco; CERA- VOLO, Paolo; DAMIANI, Ernesto; IVKOVIC, Misa. Augmented reality technologies, systems and applications. Multimedia Tools and Applications. 2011, roč. 51, č. 1, s. 341–377. ISSN 1573-7721. Dostupné z DOI: 10.1007/s11042-010-0660-6. 6. KOULIERIS, G. A.; AKŞIT, K.; STENGEL, M.; MANTIUK, R. K.; MANIA, K.; RICHARDT, C. Near-Eye Display and Tracking Tech- nologies for Virtual and Augmented Reality. Computer Graphics Forum. 2019, roč. 38, č. 2, s. 493–519. ISSN 01677055. 7. SADEGHI-NIARAKI, Abolghasem; CHOI, Soo-Mi. A Survey of Marker-Less Tracking and Registration Techniques for Health & Environmental Applications to Augmented Reality and Ubiqui- tous Geospatial Information Systems. Sensors (Basel, Switzerland). 2020, roč. 20, č. 10. ISSN 1424-8220. 8. BIMBER, Oliver; RASKAR, Ramesh. Spatial Augmented Reality: Merging Real and Virtual Worlds. A K Peters, Ltd., 2004. ISBN 1-56881-230-2.

46 BIBLIOGRAFIE

9. ROLLAND, Jannick; HOLLOWAY, Richard; FUCHS, Henry. Com- parison of optical and video see-through, head-mounted displays. Proceedings of SPIE - The International Society for Optical Enginee- ring. 1994, s. 293–307. Dostupné z DOI: 10.1117/12.197322. 10. LEE, Yun-Han; ZHAN, Tao; WU, Shin-Tson. Prospects and chal- lenges in augmented reality displays. Virtual Reality & Intelligent Hardware [online]. 2019, roč. 1, č. 1, s. 10–20 [cit. 2020-07-13]. Dostupné z: http://www.vr-ih.com/vrih/resource/article/ unzip/1550154392868/201901- issue/2018.0009_Xml/2018. 0009_NormalPdf.pdf. 11. KRESS, Bernard; Meimei Shin. Diffractive and Holographic Op- tics as Optical Combiners in Head Mounted Displays. Adjunct Publication of the 2013 ACM Conference on [online]. 2013, s. 1479–1482 [cit. 2020-07-13]. ISBN 978-1-4503- 2215-7. Dostupné z: http://www.ubicomp.org/ubicomp2013/ adjunct/adjunct/p1479.pdf. 12. MAGIC LEAP, INC. What’s the difference between Magic Leap One Creator Edition and Magic Leap 1? – Care | Magic Leap [online]. 2019 [cit. 2020-07-12]. Dostupné z: https://www.magicleap.care/ hc/en-us/articles/360037603251-What-s-the-difference- between-Magic-Leap-One-Creator-Edition-and-Magic-Leap -1-. 13. MAGIC LEAP, INC. How to Identify your Magic Leap model – Care | Magic Leap [online]. 2020 [cit. 2020-07-12]. Dostupné z: https: //www.magicleap.care/hc/en-us/articles/360040994232- How-to-Identify-your-Magic-Leap-model. 14. MAGIC LEAP, INC. All Fact Sheets [PDF dokument; online] [cit. 2020-07-10]. Dostupné z: https://www.magicleap.com/static/ magic-leap-fact-sheet.pdf. 15. MAGIC LEAP, INC. Magic Leap 1 | Magic Leap [online]. 2020 [cit. 2020-07-10]. Dostupné z: https : / / www . magicleap . com / en - us/magic-leap-1. 16. IFIXIT. Magic Leap One Teardown [online]. 2018 [cit. 2020-07-10]. Dostupné z: https://www.ifixit.com/Teardown/Magic+Leap+ One+Teardown/112245.

47 BIBLIOGRAFIE

17. MAGIC LEAP, INC. Developer Portal | Magic Leap [online]. 2020 [cit. 2020-07-10]. Dostupné z: https://developer.magicleap. com/en-us/learn/guides/. 18. MAGIC LEAP, INC. Lumin OS Speech Input – Care | Magic Leap [online]. 2019 [cit. 2020-07-12]. Dostupné z: https://www.mag icleap.care/hc/en-us/articles/360037168832-Lumin-OS- Speech-Input. 19. MAGIC LEAP, INC. Apps on Magic Leap World [online]. 2020 [cit. 2020-07-10]. Dostupné z: https://world.magicleap.com/en- us. 20. MICROSOFT. HoloLens 2—Overview, Features, and Specs | Microsoft HoloLens [online]. 2020 [cit. 2020-07-11]. Dostupné z: https : //www.microsoft.com/en-us/hololens/hardware. 21. GOODE, Lauren. Microsoft’s HoloLens 2 Puts a Full-Fledged Computer on Your Face. Wired [online]. 2019 [cit. 2020-07-11]. ISSN 1078-3148. Dostupné z: https://www.wired.com/story/ microsoft-hololens-2-headset/. 22. MICROSOFT. Browse all HoloLens apps – Microsoft Store [online]. 2020 [cit. 2020-07-11]. Dostupné z: https://www.microsoft. com/en-us/store/collections/hlgettingstarted/hololens. 23. MICROSOFT. HoloLens 2: Find Specs and Features – Microsoft Holo- Lens 2 [online]. 2020 [cit. 2020-07-11]. Dostupné z: https://www. microsoft.com/en-us/p/holoLens-2/91pnzzznzwcp. 24. MICROSOFT. Learn the tools and architecture – Mixed Reality | Micro- soft Docs [online]. 2020 [cit. 2020-07-11]. Dostupné z: https : / / docs . microsoft . com / en - us / windows / mixed - reality / development. 25. MICROSOFT. Configure a New Unity Project for Windows Mixed Re- ality: Per-project settings [online]. 2018 [cit. 2020-07-11]. Dostupné z: https : / / docs . microsoft . com / en - us / windows / mixed - reality/configure-unity-project#per-project-settings. 26. MICROSOFT. Performance recommendations for Unreal [online]. 2020 [cit. 2020-07-11]. Dostupné z: https://docs.microsoft.

48 BIBLIOGRAFIE com/en-us/windows/mixed-reality/performance-recommend ations-for-unreal. 27. MICROSOFT. Using the HoloLens Emulator – Mixed Reality | Micro- soft Docs [online]. 2020 [cit. 2020-07-11]. Dostupné z: https:// docs.microsoft.com/en-us/windows/mixed-reality/using- the-hololens-emulator. 28. HANGZHOU TAIRUO TECHNOLOGY CO., LTD. Nreal – Bu- ilding Mixed Reality for Everyone [online] [cit. 2020-07-11]. Do- stupné z: https://www.nreal.ai/. 29. HANGZHOU TAIRUO TECHNOLOGY CO., LTD. Developer | Nreal [online] [cit. 2020-07-11]. Dostupné z: https://developer. nreal.ai/dev-kit. 30. HANGZHOU TAIRUO TECHNOLOGY CO., LTD. Discover: In- troducing NRSDK [online] [cit. 2020-07-11]. Dostupné z: https: / / developer . nreal . ai / develop / discover / introduction - nrsdk. 31. HANGZHOU TAIRUO TECHNOLOGY CO., LTD. Discover: Core Features [online] [cit. 2020-07-11]. Dostupné z: https://develo per.nreal.ai/develop/discover/core-features. 32. HANGZHOU TAIRUO TECHNOLOGY CO., LTD. Develop: Ob- View [online] [cit. 2020-07-12]. Dostupné z: https : / / developer.nreal.ai/develop/unity/observer-view. 33. VARJO TECHNOLOGIES. Varjo Announces XR-1 Developer Edi- tion, A Video-Pass-Through Headset For Engineers, Designers and Re- searchers on the Cutting Edge of Mixed Reality [online] [cit. 2020- 07-12]. Dostupné z: https : / / varjo . com / press - release / varjo-announces-xr-1-developer-edition-a-video-pass- through-headset/. 34. VARJO TECHNOLOGIES. System requirements – Varjo.com [on- line]. 2020 [cit. 2020-07-12]. Dostupné z: https://varjo.com/ use-center/getting-started/system-requirements/#acces sories-reqs. 35. KLAUS MELAKARI; VARJO TECHNOLOGIES. How Varjo Deliv- ers Human-Eye Resolution with Bionic Display – Varjo.com [online].

49 BIBLIOGRAFIE

2020 [cit. 2020-07-12]. Dostupné z: https://varjo.com/blog/ introducing-bionic-display-how-varjo-delivers-human- eye-resolution/. 36. VARJO TECHNOLOGIES. XR-1 Developer Edition [online]. 2020 [cit. 2020-07-12]. Dostupné z: https://store.varjo.com/varjo- xr-1. 37. VARJOTECHNOLOGIES. Varjo XR-1 Developer Edition – Varjo.com [online]. 2020 [cit. 2020-07-12]. Dostupné z: https://varjo.com/ products/xr-1/. 38. VARJO TECHNOLOGIES. Varjo Software Compatibility – Applica- tions Supported by Varjo – Varjo.com [online]. 2020 [cit. 2020-07-12]. Dostupné z: https://varjo.com/supported-applications. 39. CHMELÍK, Jiří. Laboratoř interakce člověka s počítačem (HCILAB) [online]. Fakulta informatiky Masarykovy univerzity [cit. 2020- 05-26]. Dostupné z: https : / / www . fi . muni . cz / research / laboratories/hcilab.html. 40. VUZIX CORPORATION. VUZIX WRAP 1200DXAR USER MAN- UAL Pdf Download. [PDF dokument, online]. c2013 [cit. 2020- 05-15]. Dostupné z: https://www.manualslib.com/manual/ 694909/Vuzix-Wrap-1200dxar.html#manual. 41. UŽIVATEL CHAUNCEY FREND. Vuzix WRAP 920 AR Review [YouTube video, online]. 2011 [cit. 2020-05-12]. Dostupné z: http: //www.youtube.com/watch?v=_OEJxSxHlhg. 42. VUZIX CORPORATION. VUZIX WRAP 1200AR USER MAN- UAL Pdf Download. [PDF dokument, online]. c2013 [cit. 2020- 05-15]. Dostupné z: https://www.manualslib.com/manual/ 676443/Vuzix-Wrap-1200ar.html#manual. 43. HTC CORPORATION. Activating the dual camera [online] [cit. 2020-05-14]. Dostupné z: https://www.vive.com/eu/suppo rt/vive- pro- hmd/category_howto/activating- the- dual- camera.html Podpora k produktu Vive Pro. 44. HTC CORPORATION. VIVE Developer Resources – Official docu- ments for VIVE developers [online] [cit. 2020-05-14]. Dostupné z: https://developer.vive.com/resources/.

50 BIBLIOGRAFIE

45. HTC CORPORATION. Intro To VIVE SRWorks SDK – VIVE De- veloper Resources [online] [cit. 2020-05-12]. Dostupné z: https: / / developer . vive . com / resources / knowledgebase / intro - vive-srworks-sdk/. 46. VALVE CORPORATION. SteamVR Unity Plugin [online] [cit. 2020-05-14]. Dostupné z: https://valvesoftware.github.io/ steamvr_unity_plugin/. 47. KEITH BRADNER, Valve Corporation. steamvr_unity_plugin / SteamVR_TestTrackedCamera.cs at master · ValveSoftware [GitHub repozitář, online]. 2019 [cit. 2020-05-14]. Dostupné z: https:// github.com/ValveSoftware/steamvr_unity_plugin/blob/mas ter/Assets/SteamVR/Extras/SteamVR_TestTrackedCamera.cs Ukázka použití třídy SteamVR_TrackedCamera pro zachycení výstupu z kamery. 48. GOOGLE DEVELOPERS. ARCore supported devices | Google Devel- opers [online] [cit. 2020-07-04]. Dostupné z: https://developer s.google.com/ar/discover/supported-devices. 49. SAMSUNG. Spec Plus [online] [cit. 2020-07-15]. Dostupné z: h ttps://www.samsung.com/uk/smartphones/galaxy-s8/spec- plus/ Specifikace produktu Samsung Galaxy S8. 50. GOOGLE DEVELOPERS. GoogleARCore Namespace | Google Devel- opers [online] [cit. 2020-07-15]. Dostupné z: https://developers .google.com/ar/reference/unity/namespace/GoogleARCore# losttrackingreason Relevantní je sekce LostTrackingReason. 51. UNITY TECHNOLOGIES. Unity – Manual: Platform development [online]. 2020 [cit. 2020-07-03]. Dostupné z: https://docs.uni ty3d.com/2019.4/Documentation/Manual/PlatformSpecific. html. 52. UNITY TECHNOLOGIES. Plans and Pricing | Powerful 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. [online] [cit. 2020-07-03]. Dostupné z: https : / / store . unity.com/.

51 BIBLIOGRAFIE

53. UNITY TECHNOLOGIES. Unity Asset Store – The Best Assets for Game Making [online] [cit. 2020-07-03]. Dostupné z: https: //assetstore.unity.com/. 54. UŽIVATEL DUMMIESMAN. Runtime OBJ Importer | Modeling | Unity Asset Store [online]. 2019 [cit. 2020-07-03]. Dostupné z: https://assetstore.unity.com/packages/tools/modeling/ runtime-obj-importer-49547. 55. UŽIVATEL WARD DEHAIRS. Flexible Color Picker | GUI Tools | Unity Asset Store [online]. 2020 [cit. 2020-07-03]. Dostupné z: https://assetstore.unity.com/packages/tools/gui/flexib le-color-picker-150497. 56. UŽIVATEL YASIRKULA. yasirkula/UnitySimpleFileBrowser: uGUI based runtime file browser for Unity 3D (draggable and resizable) [GitHub repozitář, online]. 2020 [cit. 2020-07-04]. Dostupné z: https://github.com/yasirkula/UnitySimpleFileBrowser. 57. GOOGLE DEVELOPERS. ARCore overview | Google Developers [online] [cit. 2020-07-04]. Dostupné z: https://developers. google.com/ar/discover. 58. GOOGLE DEVELOPERS. Fundamental concepts | ARCore | Google Developers [online] [cit. 2020-07-04]. Dostupné z: https://devel opers.google.com/ar/discover/concepts. 59. UNITY TECHNOLOGIES. About AR Foundation | AR Foundation | 4.0.2 [online]. 2020 [cit. 2020-07-04]. Dostupné z: https://docs. unity3d.com/Packages/[email protected]/ manual/index.html. 60. UŽIVATEL JULIANCORTES. ARCore with Cardboard causes objects to not appear to move the proper amount (incorrect FOV) · Issue #134 · google-ar/-unity-sdk [GitHub repozitář; online]. 2019 [cit. 2020-07-04]. Dostupné z: https://github.com/google- ar/arcore-unity-sdk/issues/134. 61. UŽIVATEL JONDYNE, UŽIVATEL VL4DIMIR. jondyne/ARcore_- mobileVRHeadset: ARcore for use in VR headset [GitHub repozitář, online]. 2018 [cit. 2020-07-04]. Dostupné z: https://github. com/jondyne/ARcore_mobileVRHeadset/.

52 BIBLIOGRAFIE

62. DYNE, Jonathan. Augmented Reality for Mobile VR Headsets [on- line]. 2018 [cit. 2020-07-04]. Dostupné z: https://medium.com/ @jon_54445/augmented-reality-for-mobile-vr-headsets- adc6d5ed11fe. 63. UNITY TECHNOLOGIES. Unity – Scripting API: GameObject [on- line]. 2020 [cit. 2020-07-16]. Dostupné z: https://docs.unity3d. com/ScriptReference/GameObject.html. 64. MICROSOFT. Language-Integrated Query (LINQ) (C#) | Microsoft Docs [online]. 2017 [cit. 2020-07-16]. Dostupné z: https://docs. microsoft.com/en-us/dotnet/csharp/programming-guide/ concepts/linq/. 65. MICROSOFT. OpenFileDialog Class (System.Windows.Forms) | Mi- crosoft Docs [online]. c2020 [cit. 2020-07-16]. Dostupné z: https: //docs.microsoft.com/en-us/dotnet/api/system.windows. forms.openfiledialog?view=netframework-4.0. 66. UNITY TECHNOLOGIES. Unity – Scripting API: Selection [on- line]. 2020 [cit. 2020-07-16]. Dostupné z: https://docs.unity3d. com / 2019 . 3 / Documentation / ScriptReference / Selection . html. 67. UNITY TECHNOLOGIES. Unity – Scripting API: Handles [online]. 2020 [cit. 2020-07-16]. Dostupné z: https://docs.unity3d.com/ 2019.3/Documentation/ScriptReference/Handles.html. 68. LOWE, David G. Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision [online]. 2004, roč. 60, č. 2, s. 91–110 [cit. 2020-05-30]. ISSN 0920-5691. Dostupné z: https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf. 69. RAHUNATHAN, Smriti; STREDNEY, D.; SCHMALBROCK, P.; CLYMER, B. D. Image Registration Using Rigid Registration and Maximization of Mutual Information. In: MMVR13. The 13th Annual Medicine Meets Virtual Reality Conference [online]. Long Beach, CA, 2005 [cit. 2020-06-09]. Dostupné z: https://www. osc.edu/files/research/Biomed/vtbone/updates/image_ registration.pdf. Plakát prezentovaný na konferenci.

53 BIBLIOGRAFIE

70. MAES, F.; COLLIGNON, A.; VANDERMEULEN, D.; MARCHAL, G.; SUETENS, P. Multimodality image registration by maximi- zation of mutual information. IEEE Transactions on Medical Ima- ging. 1997, roč. 16, č. 2, s. 187–198. 71. UŽIVATEL 3DCHARS. Free zbrush guy head [digitální obrázek]. In: TURBOSQUID: 3D Models for Professionals [online]. 2012 [cit. 2020-06-09]. Dostupné z: https://www.turbosquid.com/3d- models/free-zbrush-man-head-3d-model/696839. 72. QUALCOMM TECHNOLOGIES, INC. Snapdragon 850 Mobile Compute Platform | 4G LTE Processor from Qualcomm [on- line]. 2020 [cit. 2020-07-11]. Dostupné z: https://www.qualcomm. com/products/snapdragon-850-mobile-compute-platform. 73. HTC CORPORATION. VIVETM | Buy VIVE Hardware [online] [cit. 2020-05-12]. Dostupné z: https://www.vive.com/eu/product/ vive/ Detail produktu. 74. NEWEGG INC. Vuzix 418T00011 Wrap 1200DX, Digital Video Black [online] [cit. 2020-05-12]. Dostupné z: https:// www.newegg.com/p/N82E16886777001 Detail produktu. 75. HTC CORPORATION. Vive Pro Full Kit | The professional-grade VR headset [online] [cit. 2020-05-12]. Dostupné z: https://www. vive.com/eu/product/vive-pro-full-kit/ Detail produktu.

54 A Tabulky

Tabulka A.1: Vybrané technické parametry headsetu Lightwear [14, 12, 16]

Parametr Hodnota Obrazovka 6vrstvý waveguide OHMD Rozlišení 1,3 megapixelů (odpovídá např. cca 1440 × 900 px) pro každé oko Obnovovací frekvence 120 Hz Zorný úhel 50 ∘ (pro virtuální objekty) Barevný rozsah 16,8 milionů barev Senzory IR senzory, IMU, magnetický senzor pro sledování polohy Controlu Audio Integrované reproduktory s prostorovým zvukem Vstup Integrovaný mikrofon Hmotnost 316 g

55 A. Tabulky

Tabulka A.2: Vybrané technické parametry Lightpacku [14, 12]

Parametr Hodnota Systém na čipu NVIDIA Tegra X2 (Parker) Procesor 2 jádra Denver 2.0 64-bit + 4 jádra ARM Cortex A57 64-bit (2 jádra A57 a 1 jádro Denver volné pro aplikace) Grafický procesor NVIDIA PascalTM, 256 CUDA jader Vizuální procesora Movidius Myriad X Grafická rozhraní OpenGL 4.5, Vulkan, OpenGL ES 3.1 +AEP Paměť 8 GB RAM (cca 4 GB volných pro aplikace) Úložiště 128 GB (cca 95 GB volných pro aplikace) Vstup a výstup Bluetooth 4.2, WiFi 802.11ac/b/g/n, USB-C Napájení Vestavěná dobíjecí lithium-ion baterie (údajně až 3 hodiny souvislého užívání), 45wattový USB-C Power Delivery nabíjecí kabel Operační systém Lumin OS

aVolně přeloženo z tzv. vision processing unit, zkráceně VPU; mikroprocesor určený pro řešení úloh strojového a počítačového vidění.

56 A. Tabulky

Tabulka A.3: Vývojové platformy pro Magic Leap 1 [17] *

Platforma Jazyk Renderer Běhové pro- Aplikace středí Unity C# Unity Unity Immersive Unreal C++, Unreal Unreal Immersive Blueprints MagicScript JavaScript Lumin RT v8 Immersive, + Lumin RT Landscape Lumin Web JavaScript Helio Helioa Landscapeb Platform + Lumin RT Lumin RT C++ Lumin RT Lumin RT Immersive, Landscape Nativní C C OpenGL, C API Immersive Vulkan * Z důvodu čitelnosti byly následující názvy zkráceny: Unreal Engine na Unreal a Lumin Runtime na Lumin RT.

aprohlížeč prostorových webových stránek bPlatforma nepodporuje vývoj aplikací určených přímo pro Magic Leap 1, pouze webových stránek v něm prohlížitelných.

57 A. Tabulky

Tabulka A.4: Vybrané technické parametry Microsoft HoloLens 2 [20, 21, 72]

Parametr Hodnota Obrazovka waveguide OHMD Rozlišení 2k 3 : 2 (odpovídá např. cca 2048 × 1366 px), přes 2 500 světelných bodů na radián Zorný úhel 52 ∘ (diagonálně, pro virtuální objekty) Senzory 4 kamery pro sledování polohy hlavy, 2 IR kamery pro sledování pohybu očí, senzor hloubky, akcelerometr, gyroskop, magneto- metr Audio Integrované reproduktory s prostorovým zvu- kem Vstup Integrovaný 5kanálový mikrofon Systém na čipu Qualcomm Snapdragon 850 Mobile Compute Platform Procesora vlastní holografická procesorová jednotka druhé generace Grafický procesor Qualcomm Adreno 630 Grafická rozhraní DirectX 11, DirectX 12 Paměť 4 GB LPDDR4x DRAM Úložiště 64 GB UFS 2.1 Vstup a výstup Bluetooth 5, WiFi 802.11ac 2 × 2, USB-C Napájení Dobíjecí lithiové baterie (údajně 2 až 3 hodiny souvislého užívání), USB Power Delivery nabí- jecí kabel Operační systém Windows Holographic OS Hmotnost 566 g

aVýrobce uvádí jako tzv. HPU, holographic processing unit; jedná se nejspíše pouze o marketingový název.

58 A. Tabulky

Tabulka A.5: Vývojové platformy pro Microsoft Hololens 2 [24] *

Platforma Jazyk Renderer Běhové prostředí Unity C# Unity Unity (+ MRTK) Unreal C++, Unreal Unreal Blueprints (+ MRTK) JavaScripta JavaScript WebXR Prohlížeč + WebXR Nativní vývoj C++, C# Holographic- UWP, Win32 Space, OpenXR, DirectX, XAML * Z důvodu čitelnosti byl název Unreal Engine zkrácen na Unreal. UWP zde zastupuje Universal Windows Platform a MRTK Mixed Reality Toolkit.

aPlatforma nepodporuje vývoj aplikací určených přímo pro Microsoft Hololens 2, pouze webových stránek v něm prohlížitelných.

59 A. Tabulky

Tabulka A.6: Vybrané technické parametry brýlí Nreal Light [29]

Parametr Hodnota Obrazovka Combined Light Guide optika Rozlišení 1080p pro každé oko (odpovídá např. 1920 × 1080 px) Obnovovací frekvence 60 Hz Zorný úhel 52 ∘ (pro virtuální objekty) Senzory 2 šedotónové kamery pro zkoumání pro- storu, barevná HD kamera, IMU, senzor okolního osvětlení, senzor blízkosti Audio Integrované reproduktory s prostorovým, ambisonickýma zvukem Vstup a výstup USB-C Tlačítka ovládání jasu a hlasitosti Hmotnost 88 g

azvuk, jehož prostorovost se vztahuje na horizontální i vertikální rovinu

Tabulka A.7: Vybrané technické parametry výpočetní jednotky Nreal Light [29]

Parametr Hodnota Systém na čipu Qualcomm Snapdragon 845 Procesor 8 Qualcomm Kryo 385 64-bit jader Grafický procesor Qualcomm Adreno 630 Paměť 6 GB RAM Úložiště 64 GB Vstup a výstup Bluetooth 5.0, WiFi 802.11ac, USB-C, Micro- USB Napájení Vestavěná dobíjecí baterie s kapacitou 7100 mAh, USB-C nabíjecí kabel Operační systém Android 8.0

60 A. Tabulky

Tabulka A.8: Požadavky Varjo XR-1 na hostující počítač [73]

Parametr Hodnota Grafický procesor NVIDIA GeForce RTX 2080 Ti nebo NVIDIA Quadro RTX 6000 Procesor Intel Core i7-7820X Paměť 32 GB RAM nebo více Úložiště 2 GB nebo více Vstup a výstup 1× Thunderbolt 3, 2× DisplayPort 1.2 nebo 2× Mini DisplayPort, 1× USB-A 3.0 nebo novější (bez hubu) Operační systém Windows 10 (64-bitový)

Tabulka A.9: Vybrané technické parametry Varjo XR-1 [36]

Parametr Hodnota Obrazovka video pass-through HMD: Bionic a Display: 2× micro-OLED, 2× AMOLED Obnovovací frekvence 60/90 Hz Rozlišení pro každé oko kombinace 1920 × 1080 px a 1440 × 1660 px Zorný úhel 87 ∘ Kamera 2× 12 megapixelů, 90 Hz, pevné ohnisko, senzor o velikosti 1/3 " s velikostí pixelu 1.55 µ, kruhový úhel pohledu 94 ∘ Barvy kontrastní poměr přes 10 000 : 1 Senzory IR senzorový systém: 2 širokoúhlé kamery a LED, sledování pohybu očí Sledování polohy Steam VR a ART Vstup a výstup 10 m optický Thunderbolt kabel Hmotnost 1050 g

aVíce informací o řešení obrazovky je k dispozici pod [35].

61 A. Tabulky

Tabulka A.10: Vybrané zjištěné technické parametry brýlí Vuzix Wrap 1200dxar [40, 42, 74]

Parametr Hodnota Obrazovka Duální LCD Rozlišení 852 × 480 pixelů pro každé oko Zorný úhel 35 ∘ (diagonálně) Kamery Duální, přední, odnímatelné Rozlišení kamer 640 × 480 pixelů Snímková frekvence kamer 60 Hz Připojení HDMI, USB 2.0 Senzory akcelerometr, magnetometr a gyro- skop (celkem 3 stupně volnosti) Audio Odnímatelná sluchátka

Tabulka A.11: Vybrané technické parametry headsetu HTC Vive Pro [75]

Parametr Hodnota Obrazovka Duální AMOLED s úhlopříčkou 3, 5 " Rozlišení 1440 × 1600 pixelů pro každé oko Obnovovací frekvence 90 Hz Zorný úhel 110 ∘ Připojení Bluetooth, USB-C port pro periferie Senzory SteamVR Tracking, G-sensor, gyroskop, senzor přiblížení, Eye Comfort Setting (IPD) Audio headset a (odnímatelná) sluchátka s Hi- Res certifikátem Vstup Integrovaný mikrofon

62 A. Tabulky

Tabulka A.12: Požadavky HTC Vive Pro na hostující počítač [75]

Parametr Hodnota Grafický procesor NVIDIA GeForce GTX 1060, AMD Radeon RX 480, jejich ekvivalent nebo lepší Procesor Intel Core i5-4590, AMD FX 8350, jejich ekviva- lent nebo lepší Paměť 4 GB RAM nebo více Vstup a výstup DisplayPort 1.2 nebo novější, 1× USB 3.0 nebo novější Operační systém Windows 8.1 nebo pozdější, Windows 10

Tabulka A.13: Vybrané technické parametry headsetu HTC Vive [73]

Parametr Hodnota Obrazovka Duální AMOLED s úhlopříčkou 3, 6 " Rozlišení 1080 × 1200 pixelů pro každé oko Obnovovací frekvence 90 Hz Zorný úhel 110 ∘ Připojení Bluetooth, HDMI, USB 2.0 Senzory SteamVR Tracking, G-sensor, gyroskop, senzor přiblížení Vstup Integrovaný mikrofon

63 A. Tabulky

Tabulka A.14: Požadavky HTC Vive na hostující počítač [73]

Parametr Hodnota Grafický procesor NVIDIA GeForce GTX 1060, AMD Radeon RX 480, jejich ekvivalent nebo lepší Procesor Intel Core i5-4590, AMD FX 8350, jejich ekviva- lent nebo lepší Paměť 4 GB RAM nebo více Vstup a výstup HDMI 1.4, DisplayPort 1.2 nebo novější, 1× USB 2.0 nebo novější Operační systém Windows 7 SP1, Windows 8.1 nebo pozdější, Windows 10

Tabulka A.15: Vybrané technické parametry Samsung Galaxy S8 [49]

Parametr Hodnota Obrazovka AMOLED Rozlišení 2960 × 1440 px Barevná rozsah 16 milionů barev Hlavní kamera Dual Pixel 12 MP, f1.7 Video UHD 4K (3840 × 2160) při 30 fps Senzory akcelerometr, gyroskop, magnetometr, senzor přiblížení, senzor barevného světla a další Procesor osmijádrový, 2,3 GHz, 1,7 GHz Paměť 4 GB RAM Úložiště 64 GB (52,3 GB k dispozici pro uživatele) Vstup a výstup Bluetooth 5, 802.11 a/b/g/n/ac 2.4 GHz + 5 GHz 2 × 2, USB-C, NFC Napájení Dobíjecí baterie 3000 mAh Operační systém Android Hmotnost 155 g

64