MR jako průsečík reálného a digitálního světa
Smíšená realita (MR) kombinuje prostorově ukotvený digitální obsah s reálným prostředím prostřednictvím senzorů, prostorového mapování a renderingu s nízkou latencí. Kvalita výsledku přímo závisí na správně zvolených technologických požadavcích a disciplinované optimalizaci obsahu i kódu. Tento článek shrnuje klíčové parametry hardwaru, pipeline pro sledování a vykreslování, doporučené rozpočty pro 3D aktiva a praktické techniky pro dosažení stabilního, komfortního a věrného MR zážitku.
Hardwarové předpoklady a třídy zařízení
- HMD (head-mounted display): průhledná optika (waveguide) nebo video-passthrough, sledování 6DoF, IMU + kamery.
- Mobilní/standalone zařízení: SoC (ARM), omezené TDP (3–10 W), sdílená paměť; důraz na efektivitu shaderů a streamování aktiv.
- PC/konzolová MR: samostatná GPU, vyšší rozlišení i snímková frekvence; větší prostor pro pokročilé efekty (GI, volumetrické efekty) s foveací.
- XR brýle vs. helmy: brýle upřednostňují nízkou hmotnost a energetickou efektivitu; helmy nabízejí širší FOV a robustnější senzory.
Optika, displeje a komfort
- Rozlišení a PPD: cílit na dostatečný počet pixelů na stupeň (pixels-per-degree) pro dobrou čitelnost textu; textové UI umisťovat do oblastí s hodnotou
>= 20PPD. - FOV: horizontálně 40–110° podle třídy zařízení; širší FOV zvyšuje nároky na fill-rate a synchronizaci CPU/GPU.
- IPD a vzdálenost oka od optiky: podporovat kalibraci pro každého uživatele; texty a UI vykreslovat ve vzdálenosti
>= 0.8 mpro omezení konfliktu vergence a akomodace. - Jas a kontrast: u MR s passthrough řešit mapování HDR mezi kamerou a displejem; vyhnout se přepalům světlých ploch.
Senzorika, SLAM a prostorové kotvy
- SLAM (simultánní lokalizace a mapování): kombinace IMU a kamer (VIO) pro 6DoF; vyžaduje stabilní osvětlení a texturu povrchů.
- Prostorové kotvy (anchors): uchovávají polohu a orientaci objektů; implementovat relocalization a perzistenci napříč jednotlivými relacemi.
- Režijní náklady: pravidelná aktualizace pose (60–90 Hz), rekonstrukce meshe přibližně při 10–30 Hz, minimalizace GC a zámků v hlavním vlákně.
Latence a časování: rozpočty pro komfort
- Motion-to-Photon (M2P): cílit na
< 20 msu PC a< 30 msu standalone zařízení. Nad 40 ms dramaticky roste riziko kinetózy. - Frekvence: 60/72/90/120 Hz podle zařízení; stabilita je důležitější než dosažení maximální frekvence.
- Fáze pipeline: senzory → predikce → simulace/animace → renderování → reprojekce → kompozice. Eliminovat „bubliny“ mezi CPU a GPU.
Renderovací pipeline a reprojekce
- Late-latching / late-stage reprojection: aktualizace matice pohledu těsně před scan-out; vyžaduje oddělené buffery a predikci pohybu hlavy.
- Asynchronní reprojekce: vyhlazuje mikrootřesy při krátkodobém poklesu FPS; omezit artefakty na hranách a při rychlém paralaxu.
- Foveated rendering: statický (se zvýšeným rozlišením ve středu zorného pole) nebo dynamický eye-tracked; snižuje zatížení pixel shadingem o 30–60 % bez viditelné ztráty kvality.
Passthrough, zakrývání a scene understanding
- Video-passthrough: kalibrace barev a vyvážení bílé a práce s latencí; stabilizovat artefakty rolling shutteru.
- Zakrývání reálnými objekty (occlusion): využívat hloubkovou mapu/mesh ze SLAM; hloubku obsahu testovat proti environment depth.
- Segmentace: detekce stěn, podlah, stolů a lidských postav pro fyzikálně věrohodné interakce a kolize.
Rozpočty aktiv: polygony, materiály, textury
| Aktivum | Standalone MR | PC/konzolová MR | Poznámka |
|---|---|---|---|
| Hlavní postava (hero asset) | 10–40 tis. tris | 40–120 tis. tris | U LOD0; nutné LOD1–3 s agresivní decimací |
| Scénická rekvizita | 1–8 tis. tris | 8–30 tis. tris | Instancovat podobné položky |
| Materiály | 1–2 draw calls | 1–3 draw calls | Sloučit do atlasů, minimalizovat změny stavu |
| Textury | 512–1024 px | 1024–2048 px | BC/ASTC, vždy mipmapy a trilineární filtrování |
Shaderové techniky a fill-rate
- Výpočetní složitost: minimalizovat větvení a dynamické smyčky; upřednostňovat LUT a načítání textur před náročnými výpočty.
- Balení normal a roughness map: společné kanály v jedné textuře snižují nároky na propustnost paměti.
- Alpha test vs. alpha blend: alpha test upřednostňovat u stromů a okrajů; blending je náročný na overdraw a řazení podle hloubky.
LOD, impostory a culling
- LOD kaskády: přepínat podle úhlové velikosti (chyby v prostoru obrazovky) a vzdálenosti; u standalone zařízení používat agresivnější nastavení.
- Impostory/billboardy: využívat u vzdálených objektů a vegetace; generovat ve fázi bake.
- Frustum, occlusion a portal culling: využívat funkce enginu a prostorové rozdělení (BVH, gridy).
Fyzika, kolize a stabilita
- Jednoduché kolizní meshe: konvexní primitiva a low-poly proxy; kolize se složitými meshi jsou náročné.
- Pevný časový krok: stabilní fyzika (např. 60 Hz) oddělená od renderování; interpolace stavů.
- Uchopování a interakce: využívat continuous collision detection pro ruce/kontrolery; tlumit jitter filtrem (One-Euro, Kalman).
Osvětlení a stíny v MR
- Odhad osvětlení: přebírat barevnou teplotu a intenzitu z kamer/senzorů; sjednotit stínování s reálnou scénou.
- Stíny: u standalone zařízení používat blob/planar stíny; zařízení třídy PC mohou využívat cascaded shadow maps s přiměřeným rozlišením.
- Reflexe: využívat screen-space reflexe nebo reflection probes; vyhnout se odrazům v reálném čase na planárních plochách mimo klíčové scény.
UX a čitelnost v prostoru
- Diegetické UI: upřednostňovat UI ukotvené v prostoru před 2D panely; pokud se používá panel, umístit jej 1–2 m od uživatele a zajistit minimální výšku písma odpovídající vizuálnímu úhlu 1.2–1.5°.
- Bezpečné zóny: nevkládat obsah blíže než
< 0.5 m(namáhá oči) ani dále než> 5 mbez LOD. - Interakce: ray + affordance, direct touch s haptickou odezvou (pokud je k dispozici), hlas a gesta jako doplňkové možnosti.
Audio a haptika
- Prostorový zvuk: HRTF s occlusion/obstruction; dozvuk z volumetrických zón (místnost/chodba/venkovní prostředí).
- Synchronizace: latence audia < 20 ms a synchronizace s hranicí video snímku; nesynchronizovaný zvuk a obraz zvyšují nevolnost.
- Haptika: krátké nízkofrekvenční vzory pro potvrzení; vyvarovat se „trvalého bzučení“.
Streamování aktiv a správa paměti
- Asynchronní načítání: asset bundles po zónách; vyhnout se alokacím během snímku (špičky GC).
- Textury a komprese: ASTC/BC s vhodnou velikostí bloku; generovat mipmapy offline.
- Paměť GPU: sledovat rezidentní paměťovou náročnost; uvolňovat nepoužívané rendertargety a persistentní mapování bufferů.
Energetická efektivita a termální management
- Rezerva času snímku: zachovat rezervu 10–20 %; SoC pak méně často omezuje výkon kvůli přehřívání (thermal throttling).
- Adaptivní kvalita: dynamicky měnit rozlišení, LOD bias a stíny podle telemetrie.
- Batching: snižovat počet draw calls (GPU instancing), minimalizovat probouzení vláken CPU.
Bezpečnost, soukromí a etika
- Citlivá data: hloubkové mapy, data o lidských postavách a sledování očí jsou biometrická data – ukládat je pouze anonymizovaně a lokálně, pokud jejich ukládání není nezbytné.
- Bezpečná zóna: upozorňovat na překážky a respektovat hranice guardian/chaperone; nepoužívat „jump scares“ bez varování.
- Přístupnost: nabízet alternativy ke gestům (hlas/UI) a volitelně omezit náročnost pohybu (teleport, rychlé přechody s vignette).
OpenXR a multiplatformní vrstvy
- OpenXR: jednotné rozhraní pro head pose, input, composition, anchors a passthrough; minimalizuje závislost na konkrétním dodavateli.
- XR kompozitor: využívat vrstvy (quad/layered) pro UI a video; dosáhnout ostrého textu bez opětovného vzorkování.
- Rozšíření: foveace, hand tracking, haptika, scene understanding; detekovat jejich dostupnost a v případě potřeby použít náhradní řešení.
Telemetrie, testování a QA
- Runtime metriky: čas snímku CPU/GPU, M2P, míra reprojekce, vynechané snímky, čas GC, teplota SoC.
- Testovací matice: scénáře se slabým osvětlením, rovnoměrnými texturami (bílé stěny), ostrými odlesky a rychlými pohyby hlavy.
- Uživatelské testy: SUS/UEQ, míra nevolnosti, doba dokončení úkolu, přesnost interakce a opětovné nalezení kotev.
Typické cíle výkonu (základní úroveň)
| Parametr | Standalone MR | PC/konzolová MR | Cíl |
|---|---|---|---|
| FPS | 72–90 | 90–120 | Stabilita > 99 % snímků v cílové hodnotě |
| Motion-to-Photon | < 30 ms | < 20 ms | Minimalizovat závislost na reprojekci |
| Čas snímku CPU | < 6–8 ms | < 5–6 ms | Hlavní vlákno bez blokujících operací I/O |
| Čas snímku GPU | < 6–9 ms | < 6–8 ms | Foveace + LOD + culling |
| Míra reprojekce | < 10 % | < 5 % | Vyšší hodnoty znamenají riziko artefaktů |
Pipeline nasazení a správa buildů
- Příprava aktiv: generování LOD, lightmap, impostorů a komprese textur a zvuku v CI.
- Varianty buildů: různá rozlišení renderovacích targetů a kvalita shaderů podle třídy zařízení.
- Automatické kontroly: spuštění, zámek sledování, relocalization, stav reprojekce, korekce passthrough.
Kontrolní seznam optimalizace MR obsahu
- Jsou FPS a M2P stabilní a v cílových hodnotách? Je reprojekce pod stanoveným prahem?
- Mají všechna 3D aktiva LOD? Jsou použity instancing a materiály uspořádané do atlasů?
- Jsou zapojeny occlusion a environment depth a jsou vizuálně konzistentní?
- Je UI čitelné (≥1.2°), má dostatečný kontrast a jsou dodrženy bezpečné zóny?
- Je aktivní adaptivní kvalita a odesílají se údaje o výkonu?
- Soukromí: neukládají se zbytečně biometrická data a probíhá místní zpracování, kde je to možné?
- Byly úspěšné testy ve ztížených podmínkách (slabé osvětlení, monotónní textury, rychlé pohyby)?
Závěr
Špičkový MR zážitek je výsledkem koordinované práce napříč hardwarem, senzorikou, renderovacím řetězcem a disciplinovanou tvorbou obsahu. Přísné rozpočty latence, foveace, LOD a správná práce s passthrough a occlusion zásadně zvyšují věrohodnost a komfort. Multiplatformní vrstvy (OpenXR), telemetrie a automatizované build pipeline umožňují škálovat vývoj i údržbu. Dodržováním uvedených požadavků a optimalizačních technik získáte stabilní, srozumitelný a bezpečný MR produkt, který obstojí v reálných podmínkách nasazení.
