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 je přímo závislá 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é optiky (waveguide) nebo video-passthrough, 6DoF sledování, IMU + kamery.
- Mobilní/standalone: SoC (ARM), omezený TDP (3–10 W), sdílená paměť; důraz na efektivitu shaderů a streaming aktiv.
- PC/konzolová MR: diskrétní GPU, vyšší rozlišení i snímková frekvence; větší prostor pro pokročilé efekty (GI, volumetrika) s foveací.
- XR brýle vs. helmy: brýle preferují lehkost 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 čitelnost textu; textové UI umisťovat do
>= 20PPD oblastí. - FOV: horizontálně 40–110° dle třídy zařízení; širší FOV zvyšuje nároky na fill-rate a CPU/GPU synchronizaci.
- IPD a eye relief: podporovat kalibraci na uživatele; texty a UI renderovat v
>= 0.8 mvzdálenosti pro redukci vergence-accommodation konfliktu. - Jas a kontrast: pro passthrough MR řešit HDR mapování mezi kamerou a displejem; vyhnout se „přepalům“ u světlých ploch.
Senzorika, SLAM a prostorové kotvy
- SLAM (Simultaneous Localization and Mapping): 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 relocalizaci a perzistenci napříč relacemi.
- Režijní náklady: pravidelná aktualizace polohy (pose) (60–90 Hz), rekonstrukce meshe přibližně 10–30 Hz, minimalizovat garbage collection a zamykání 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 dle zařízení; stabilita je důležitější než absolutní maxima.
- Fáze pipeline: senzory → predikce → simulace/animace → render → reprojekce → kompozice. Eliminovat „bubliny“ mezi CPU a GPU.
Renderovací pipeline a reprojekce
- Late-latching / late-stage reprojection: aktualizace view matice těsně před scan-out; vyžaduje oddělené buffery a predikci pohybu hlavy.
- Asynchronní reprojekce: vyhlazuje mikro-třesy při krátkodobém poklesu FPS; omezit artefakty na hranách a při rychlém paralaxu.
- Foveated rendering: statický (center-weighted) nebo eye-tracked dynamický; redukuje pixel shading o 30–60 % bez viditelné ztráty kvality.
Passthrough, occlusion a scene understanding
- Video-passthrough: kalibrace barev/white-balance a latence; stabilizovat rolling-shutter artefakty.
- Reálné zakrývání (occlusion): využít hloubkovou mapu/mesh ze SLAM; obsah testovat vůči hloubce prostředí (environment depth).
- Segmentace: detekce stěn, podlahy, 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 |
|---|---|---|---|
| Hrdina (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 | Instancování podobných položek |
| Materiály | 1–2 draw-calls | 1–3 draw-calls | Sloučit do atlasů, minimalizovat změny stavů |
| Textury | 512–1024 px | 1024–2048 px | BC/ASTC, vždy mip-mapy a trilineární filtrace |
Shaderové techniky a fill-rate
- Výpočetní složitost: minimalizovat větvení a dynamické smyčky; preferovat LUT a fetch textur před náročnou aritmetikou.
- Normal/roughness packing: společné kanály v jedné textuře; snižuje datový tok.
- Alpha test vs. alpha blend: test preferovat u stromů/okrajů; blending je náročný na overdraw a hloubkové třídění.
LOD, impostors a culling
- LOD kaskády: přepínat podle úhlové velikosti (screen-space error) a vzdálenosti; u standalone zařízení agresivněji.
- Impostors/billboards: u vzdálených objektů a vegetace; generovat při bake fázi.
- Frustum, occlusion a portal culling: využívat engine funkce a prostorové rozdělení (BVH, gridy).
Fyzika, kolize a stabilita
- Jednoduché kolizní meshe: konvexní primitiva a low-poly proxy; složité mesh kolize jsou náročné.
- Fixed timestep: stabilní fyzika (např. 60 Hz) oddělená od renderování; interpolace stavů.
- Grasping a interakce: používat continuous collision detection pro ruce/kontroléry; tlumit jitter filtrem (One-Euro, Kalman).
Osvětlení a stíny v MR
- Light estimation: převzít barevnou teplotu a intenzitu z kamer/senzorů; sjednotit shading s reálnou scénou.
- Stíny: pro standalone používat blob/planar stíny; PC třída může využít cascaded shadow maps s rozumným rozlišením.
- Reflexe: screen-space nebo reflection probes; vyhnout se realtime planar reflektorům mimo klíčové scény.
UX a čitelnost v prostoru
- Diegetické UI: upřednostnit UI ukotvené v prostoru před 2D panely; pokud panel, tak 1–2 m od uživatele, minimální výška písma 1.2–1.5° vizuálního úhlu.
- Bezpečné zóny: nevkládat obsah do
< 0.5 m(oční námaha) ani za> 5 mbez LOD. - Interakce: ray + affordance, direct touch s haptikou (pokud je dostupná), hlas a gesta jako doplněk.
Audio a haptika
- Prostorový zvuk: HRTF s occlusion/obstruction; reverb z volumetrických zón (místnost/chodba/venku).
- Synchronizace: latence zvuku pod 20 ms a synchronizace s video frame boundary; desynchronizace zvyšuje nevolnost.
- Haptika: krátké, nízkofrekvenční vzory pro potvrzení; vyvarovat se „permanentního bzučení“.
Streaming aktiv a správa paměti
- Asynchronní načítání: asset bundles rozdělené podle zón; vyhnout se alokacím během vykreslovacího snímku (GC spikes).
- Textury a komprese: ASTC/BC s vhodnou block size; generovat mip-mapy offline.
- GPU paměť: sledovat rezidentní footprint; uvolňovat nepoužívané rendertargety a persistentní mapování bufferů.
Energetická efektivita a termální management
- Frame time headroom: držet rezervu 10–20 %; SoC méně škrtí (thermal throttling).
- Adaptive quality: dynamická změna rozlišení, LOD biasu a stínů podle telemetrie.
- Batching: snižovat počet draw calls (GPU instancing), minimalizovat CPU wake-ups u vláken.
Bezpečnost, soukromí a etika
- Citlivá data: hloubkové mapy, body lidských postav a oční tracking jsou biometrická data – ukládat pouze anonymizovaně a lokálně, pokud není nezbytné je sdílet.
- Bezpečná zóna: upozornění na překážky, respektovat hranice guardian/chaperone; žádné „jump scares“ bez varování.
- Přístupnost: alternativy k gestům (hlas/UI), volitelná snížená pohybová náročnost (teleport, zrychlené přechody s vignette).
OpenXR a multiplatformní vrstvy
- OpenXR: jednotné rozhraní pro head pose, input, composition, anchors a passthrough; minimalizuje vendor lock-in.
- XR kompozitor: využívat vrstvy (quad/layered) pro UI a video; ostré texty bez resamplingu.
- Rozšíření: foveace, hand tracking, haptika, scene understanding; detekovat a zajistit fallback.
Telemetrie, testování a QA
- Runtime metriky: CPU/GPU frame time, M2P, reprojection ratio, dropped frames, GC čas, teplota SoC.
- Testovací scénáře: nízké osvětlení, jednolitá textura (bílé stěny), ostré reflexe, rychlé pohyby hlavy.
- Uživatelské testy: SUS/UEQ, míra nevolnosti, doba dokončení úkolu, přesnost interakcí a znovunalézání kotev.
Typické cíle výkonu (baseline)
| Parametr | Standalone MR | PC/konzolová MR | Cíl |
|---|---|---|---|
| FPS | 72–90 | 90–120 | Stabilita > 99 % snímků v cíli |
| Motion-to-Photon | < 30 ms | < 20 ms | Minimalizovat závislost na reprojekci |
| CPU frame time | < 6–8 ms | < 5–6 ms | Hlavní vlákno bez blokujících I/O |
| GPU frame time | < 6–9 ms | < 6–8 ms | Foveace + LOD + culling |
| Reprojection ratio | < 10 % | < 5 % | Vyšší hodnoty znamenají riziko artefaktů |
Pipeline nasazení a správa buildů
- Asset baking: LOD generace, lightmapy, impostory, komprese textur a zvuku v CI.
- Varianty buildů: různá rozlišení render targetů a kvalita shaderů dle třídy zařízení.
- Automatická kontrola sanity: start, tracking lock, relocalizace, zdraví reprojekce, korekce passthrough.
Checklist optimalizace MR obsahu
- Stabilní FPS a M2P v cílových hodnotách? Reprojection pod definovaný limit?
- LOD pro veškerá 3D aktiva, instancování a atlasování materiálů?
- Occlusion a environment depth jsou zapojeny a vizuálně konzistentní?
- UI je čitelné (≥1.2°), s dostatečným kontrastem a dodržené bezpečné zóny?
- Adaptive quality je aktivní a telemetrie výkonu je odesílána?
- Ochrana soukromí: žádná zbytečná persistovaná biometrie, lokální zpracování tam, kde je to možné?
- Testy ve ztížených podmínkách (nízké osvětlení, monotónní textury, rychlé pohyby) proběhly úspěšně?
Závěr
Špičkový MR zážitek je výsledkem koordinované práce napříč hardwarem



























