Umění jako takové, jde ruku v ruce s umělcem, autorem, jeho invencí, inspirací, myšlením a také dostupnou technologií. Pokud umíme sestrojit kladivo jako nástroj, budeme jej používat. Stejné je to o tisíce let později, kdy umíme vymyslet a vytvořit z křemíku počítač, který umí vykonat mnohonásobný počet úkonů za stejný čas, než člověk.
Tím se otevírají nové možnosti. Tento technologický pokrok, který započal již v devatenáctém století kostrukcemi mechanických strojů pro složité výpočty a plně se rozvíjel v poslední třetině 20. století je dnes již očividný a nedá se popřít. Stejně tak jako stačí krátké zamyšlení nadtím, že virtuální prostor, nebo alespoň digitální rovina (webové stránky, bankovní systémy) je součástí našeho, podle všeho reálného světa.
Jak jsem zmínil, tyto úvahy a postupy jsou známé desítky let a značnou část z toho jsou již aplikované a progresivně rozvíjené. S rychlým vývojem rostou rychle i nové možnosti. Aktuálně je možné díky technologii mít k dispozici výkon počítače natolik velký, že jsou možné inovativní přístupy k interakci a ztvárnění digitálního prostoru.
Samotý název napovídá, že se jedná o realitu, která je rozšířena (obohacena) o něco dalšího. Aby k danému rozšíření mohlo dojít, musíme prostor kolem nás snímat kamerou, pomocí počítače doplnit o digitální prvky a na závěr promítnout na nějaké ploše (monitor, projektor, display, ...). Je možné přidat i uživatelské rozhraní, jehož funkce mohou různým způsobem ovlivnit chování reality. Veškeré chování se však odehrává na ploše monitoru, či jiného zobrazovacího zařízení. Oblast pro použití například s telefonem či tabletem může být téměř neomezená.
Ocitneme se, obvykle díky uzavřeným brýlím, v čistě prázdném, digitálním černém prostoru. Můžeme vidět pouze virtuální prvky, které sami vytvoříme, nebo jsou součástí aplikace, kterou spustíme. Náš pohyb z pravidla snímá senzor a k přenosu pozice rukou se používají různé druhy i typy ovladačů. Oblast použití je většinou závislá na výkonném počítači, kde běží virtuální aplikace a obraz se přenáší do brýlí.
Na první pohled by se dala snadno zaměnit s relitou rozšířenou, jelikož výsledek může vypadat totožně. Zásadní rozdíl je však v tom, že u kombinované reality vidíme přímo své okolí a ne například pouhý přenos kamery na display telefonu, byť v reálném čase. Zůstává tedy viditelnost okolí přes sklo brýlí, které je obohaceno projekcí o digitální prvky. Je zde možnost pohybové interakce uživatele. Zdánlivě neomezená oblast použití závislá pouze na konkrétním typu baterie, jenž je v autonomních brýlích použitá.
Obecně se používají optické a infra červené. Jejich kombinací, video kamer, paprsků měřících vzdálenost a dalších lze dosáhnout celkem přesného modelu prostředí a pak je možné do něj vložit digitální objekt, který se důstojně tváří jako jeho součást. Dále přenášení různé interakce oběma směry.
Teoreticky je možné použít veškeré dostupné senzory na trhu. Gyroskop pro rozpoznání polohy v prostoru, GPS modul pro lokalizaci v geografickém směru. Některé hardwarové bloky jsou připravené pro použití a snadné spárovaní s ovládáním reality, jiné lze sestrojit jednoduchý obvodem s daným senzorem pro snímání čehokoliv, nějakého mikroprocesoru (arduino, raspberry) a vysílače, který nasbírané informace senzorem pošle virtuální realitě.
Pro zajímavé chování prostředí a jeho prvků je potřeba vše oživit nějakými příkazy a předpisy chování. Vývoj takového prostředí, jeho naprogramování pro realitu se liší u různých výrobců brýlí či systémů. Budeme se věnovat rozšířenému prostředí převážně v brýlích Hololens 2 a případně virtuální realitě prostřednictvím konzole Oculus Rift.
Jednoduché však dostatečné pravidlo při programování čehokoliv jsou malé krůčky. Nikdy se nevytváří celé aplikace, hry či jiné systémy, ale postupně dělíme celek na malé kroky, které se řeší samostatně. V praxi a v našem případě to znamená, že při vytváření virtuálního prostředí netvoříme rovnou celé prostředí. Začneme tím, jestli vůbec probíhá komunikace mezi našimi brýlemi, telefonem, počítačem či čímkoliv a naším programem, aplikací. Nasledně se pokusíme zobrazit základní data, modely a postupně přidáváme jednotlivé funkce, které opět mohou mít několik samostatným kroků a procesů vývoje.
Je mnoho cest, jak vytvořit obsah virtuální nebo rozšířené reality. Je třeba se okrajově seznámit se slovem engine (z angl. "motor"), v našem případě "herní engine". Pokud si představíme zdrojový kód jako soupis nějakých instrukcí, je logické, že je potřeba je ale ještě vykonat. To může mít v informatice opět mnoho podob, ale nás by měly zajímat především dvě.
Někteří si dokáží představit, jak vznikají webové stránky. Vždy je nějaký kód HTML, ten nám nese obsah a jednotlivé bloky těchto kódu mají pro přehled svá jména, id nebo třídy. Pak za tím stojí v jednoduché podobě soubor se styly, předpisem vizuální podoby, zarovnání nebo základního chování, obvykle typu CSS (Cascadian Style Sheet). Můžeme využít podpory veškerých prohlížečů (Firefox, Chrome, Opera, Safari), ve kterých je možné 3D prostředí tvořit a spouštět modely. S kouskem JavaScriptu je možné model zobrazit nebo vytvořit potřebné chování.
Druhá možnost pro tvorbu prostředí je program Unity, který je enginem sám o sobě.Dalé, špičkou na trhu je engine od firmy Epic Games, Unreal Engine. Jedná se jednoduše o 3D program, který umí objekty zobrazit ve virtuální realitě. Slovo engine, motor se dá spojit s jiným slovem a to emulace. Emulace znamená, že něco umožňuje něčemu vlastní činnost. Obecně každý operační systém emuluje chod dílčích programů (Windows -> Poznámkový blok). Ve smyslu programování, zdrojový kód musí něco emulovat, aby se vykonal. Webové stránky v základní podobě (HTML, CSS, JavaScript) emuluje, uvádí v chod, sám prohlížeč. V Unity umožňuje chod prostředí Unreal Engine, samostatná jednotka, která má předepsaná základní pravidla fyziky, či jiného chování objektů a především celé vykreslení v potřebné realitě, brýlích.
Vždy je ale princip, postup tvorby stejný. Potřebujete mít nějaký objekt, ať už je to hlavička s obrázkem na webové stránce, nebo krychle ve 3D programu, která je určena pro virtuální realitu. Objekt musí být pojmenován, aby následná práce byla možná a přehledná. A dále různými způsby danému objektu se jménem můžeme dávat další vlastnosti a obdobným procesem tvořit celé komplexní prostředí.
Pokud na papír neuděláme čáru, zůstane nejspíš prázdný. Stejné je to i s jakoukoliv realitou v digitálním světe. Pokud do něj nedáme nic, nic v něm také nebude. Musíme vytvořit model ve 3D programu, vytvořit vizuální stránku či předepsat chování. Občas nebývá realizace záměru složitá, ale je třeba chápat a dodržet základní principy, pořádek v digitálném datech, zabírat zbytečnými objekty, soubory nebo jinými digitálními daty výkon počítače. Optimalizace modelu či kódu je velmi častým řešením špatného fungování.
Zaznamenaný obraz virtuální reality brýlí Oculus Rift.
Video - VR data v reálném čase (záznam)
Zaznamenaný obraz kombinované reality brýlí Hololens 2.
Video - XR základní script a fyzika Video - XR základní práce s modelem z Blenderu Video - XR práce s objekty v prostoru
Pro lepší pochopení to trochu zamotáme. Podle správné sémantiky je emulace provozování programu určeného pro konkrétní platformu na jiné. Příkladem je potřeba spustit Android aplikaci na Windows, což je celkem snadné. Obecně může být ale emulátorem cokoliv, co funguje samo o sobě a dovoluje to funkci dalším samostatným celkům, která by bez emulátoru nebyla možná. Také se pojem dá částečně zaměnit s vizualizací. Pro naše potřeby je zajímavý emulátor pro Hololens 2. Pod odkazem je k nalezení srozumitelný návod na zprovoznění takového prostředí. To umožní zkoušet tvořit věci do brýlí, aniž by jste je fyzicky měli k dispozici a mnoho prvnotních testů lze realizovat jen s ním.