Webová rozšířená realita
Prezentace
Web AR knihovny
Three.js + AR.js
- 
Popis: AR.js je open-source knihovna postavená na Three.js a umožňuje markerless AR pomocí WebXR API
 - 
Funkce:
- podpora markerless AR (detekce rovinných povrchů pomocí WebXR)
 - renderování 3D objektů ve scéně pomocí Three.js
 - dobře zdokumentované a snadné použití
 - podporuje marker-based AR (fiduciální markery, jako jsou vzory typu Hiro nebo custom AR markery)
 - podpora image tracking (rozpoznání a sledování 2D obrazů).
 
 - 
Výhody:
- rychlost
 - funguje na většině moderních zařízení podporujících WebXR
 
 - 
Použití: hodí se pro jednoduché AR projekty přímo v prohlížeči
 
A-Frame
- 
Popis: A-Frame je framework založený na HTML a Three.js pro tvorbu VR/AR aplikací, který podporuje WebXR
 - 
Funkce:
- jednoduchý zápis AR scény pomocí HTML značek (
<a-scene>) - podpora markerless AR pomocí WebXR
 
 - jednoduchý zápis AR scény pomocí HTML značek (
 - 
Výhody:
- snadná integrace pro vývojáře s minimálními znalostmi JavaScriptu
 - rozšiřitelné pomocí komponent
 
 - 
Použití: skvělé pro rychlé prototypování a vizuálně orientované AR aplikace
 
Babylon.js
- 
Popis: Babylon.js je výkonná 3D grafická knihovna, která podporuje AR přes WebXR
 - 
Funkce:
- robustní podpora WebXR pro markerless AR (detekce rovinných povrchů)
 - pokročilé renderovací možnosti pro složité scény
 
 - 
Výhody:
- vhodné pro složitější projekty s většími nároky na grafiku
 
 - 
Použití: pro pokročilé aplikace AR a VR s pokročilým interaktivním obsahem
 
8thWall
- 
Popis: komerční platforma pro AR aplikace, která nabízí markerless AR přímo v prohlížeči bez nutnosti použití WebXR
 - 
Funkce:
- podpora různých typů AR na široké škále zařízení (včetně iOS bez WebXR)
 - vestavěné nástroje pro detekci povrchů, odhad hloubky a přizpůsobení světelným podmínkám
 
 - 
Výhody:
- nejlepší výkon na trhu díky optimalizacím
 - široká podpora zařízení
 
 - 
Použití: pro profesionální a komerční AR aplikace
 
MindAR
- 
Popis: nenáročná knihovna zaměřená na markerless AR
 - 
Funkce:
- podpora detekce 2D obrazů a povrchů
 - kompatibilní s Three.js i A-Frame
 
 - 
Výhody:
- nenáročnost a rychlost
 - snadno použitelná pro jednoduché AR aplikace
 
 - 
Použití: pro vývoj aplikací s nízkými nároky na výkon
 
WebXR API
- 
WebXR (Web Extended Reality) je API pro webové prohlížeče, které umožňuje vytvářet aplikace využívající rozšířenou (AR) a virtuální realitu (VR) přímo na webu
 - 
Hlavní vlastnosti:
- 
rozšířená podpora zařízení:
- podporuje VR headsety (např. Meta Quest, HTC Vive, Valve Index)
 - umožňuje využít AR funkce na mobilních zařízeních, která podporují detekci povrchů (např. iOS a Android)
 - funguje také na chytrých brýlích (např. HoloLens) nebo AR zařízeních
 
 - 
umístění 3D objektů ve skutečném prostoru pomocí GPS nebo detekce okolí
 - cross-platform řešení:
- WebXR funguje na různých zařízeních a operačních systémech, pokud má uživatel moderní webový prohlížeč (Chrome, Edge, Firefox apod.)
 
 - jednotný přístup:
- nabízí jednotné API pro interakci s VR i AR technologiemi, což vývojářům zjednodušuje práci
 
 
 - 
 
Model-viewer
<model-viewer>je webová komponenta vyvinutá Googlem, která umožňuje snadné zobrazování 3D modelů a integraci rozšířené reality (AR) do webových stránek- 
je navržena tak, aby byla jednoduchá na použití a zároveň poskytovala pokročilé možnosti renderování a interakce
 - 
tato technologie využívá WebGL pro vykreslování 3D grafiky a WebXR (pokud je dostupné) pro funkce AR, což umožňuje uživatelům snadno zobrazovat a manipulovat s 3D objekty ve webovém prohlížeči
 - 
Hlavní vlastnosti:
- 
Používá se jako HTML značka (podobně jako
<img>), což umožňuje vložit 3D model do webové stránky bez potřeby pokročilého programování - 
ukázka:
<model-viewer src="model.glb" alt="3D model" auto-rotate camera-controls ar></model-viewer> - podpora formátu GLTF/GLB
 - interaktivní ovládání - rotace, zoom, posun
 - zobrazení modelu v mobilu i v AR
 
 - 
 
Úloha 1 - Markerless AR
1. Vytvoření základní webové stránky
2. Připojení model-vieweru
- 
ze stránky model-vieweru se zkopíruje Quick Start
 - 
instalace komponentu se vloží ke skriptu
 - 
zobrazení modelu do
body - 
výměna cesty k modelu
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb" - 
odstranění
enviroment image 
3. Výměna modelu za vlastní
- 
připravený model ve formátu .glb se importuje do složky Assets v Glitch
 - 
po uploadu modelu se zkopíruje jeho URL a ve skriptu se nahradí původní model astronauta
 
4. Grafická úprava stránky
- 
stránka se upraví tak, aby obsahovala nadpis, popis modelu a prohlížení modelu
 - 
okno s prohlížením modelu by mělo být zvětšené (editace stylu/css)
 
Úloha 2 - Marker AR
0. Vytvoření rozcestníku na stránkce - dvě tlačítka (kostel + mapa)
- 
vytvoření nového skripu (např.
kostel.html) a překopírování současného html kódu do něj - 
z původního skriptu odmazat součásti body a vložit dvě tlačítka
 - 
dále se vytvoří nový skript
mapa.htmlse základní strukturou pro druhou úlohu - 
tlačítka se upraví pomocí css
 
1. Přidání knihoven A-Frame a MindAR do skriptu
- 
instalace A-Frame Image Tracking z odkazu https://hiukim.github.io/mind-ar-js-doc/installation
 - 
vložení startovacího skriptu https://hiukim.github.io/mind-ar-js-doc/quick-start/overview
 - 
nutno opravit ukončení tagu
</a-gltf-model> - 
odstranění části připojující css skript (není potřeba)
 - 
nyní lze otestovat zkušební vizitku z odkazu výše
 
2. Vytvoření podkladové značky pro uchycení obrazu
- 
z rastru mapy, která slouží jako podklad pro uchycení AR se vytvoří Image Target s využitím nástroje https://hiukim.github.io/mind-ar-js-doc/tools/compile
 - 
pro podkladovou mapu i vizualizované vrsty je nutné zachovat stejný rozsah (velikost) a poměr stran - nunto připravit v GIS dopředu
 - 
pomocí nástroje Image Targets Compiler se vytvořila příprava pro uchycení AR v několika měřítkách včetně zobrazení ukotvujích bodů
 
- 
následně se stáhne zkompilovaný soubor
targets.mind, který se využije v dalším kroku - 
značka se nahraje do složky Assets do Glitche
 
3. Vložení vlastního image targetu
- nastavení cesty pro nový Image Target -> při vyzkoušení se přes mapu zobrazí defaultní model v AR
 
4. Pročištění kódu a vložení jedné mapové vrstvy
- odstranění nepotřebného kódu:
- výměna obrázku 
img(mapové vrsty) v<a-assets> - do 
<a-assets>vložit pouze řádek připojující mapu "mapa-rozvoj-1830-1929-v4.png" - ten je nahraný ve složce Assets <a-camera>zůstane beze změny- do 
<a-entity>se vloží informace o zobrazovatelné vrstvě, opacity=1 
 - výměna obrázku 
 
5. Přidání více mapových vrstev a slideru pro jejich měnění
- 
přenastavení průhlednosti vrstvy: opacity=0
 - 
vložení více vrstev
 - 
přidání slideru včetně cyklu pro procházení vrstev
 - 
úprava css stylu
 
Užitečné odkazy
- 
Glitch: https://glitch.com/
 - 
ChatGPT: https://chatgpt.com/
 





