Požadavky a optimalizace smíšené reality

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 >= 20 PPD 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 m vzdá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 ms u PC a < 30 ms u 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 m bez 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