Předem vypočítaná viditelnost

Předem vypočítaná viditelnost je postup, při němž tvůrci ještě před spuštěním hotové hry připraví údaje o tom, které části prostředí mohou být vidět z určitých míst. Hra pak tyto údaje využívá při rozhodování, co vykreslit.

Například stěna může spolehlivě zakrývat místnost za ní. Pokud je tento vztah známý předem, nemusí engine při každém snímku znovu hledat všechny možné zakryté objekty od začátku. Připravená data ovšem sama zabírají paměť.

Schematická ilustrace: předem sestavený seznam pro oblast A

A
Kamera je zde
B
Může být viditelné
C
Za neprůhlednou stěnou

Modelový seznam potenciálně viditelných oblastí z A: A + B. Oblast C je v tomto příkladu úplně zakrytá.

Předvýpočet dovolí C vynechat ještě před podrobnějšími testy. Zařazení B znamená pouze možnost viditelnosti, nikoli že se každý jeho objekt musí v aktuálním záběru zobrazit. Rozložení je zjednodušený model, nikoli skutečná mapa hry.

Možná viditelnost a skutečný záběr

Jedním z řešení je rozdělení prostoru na menší oblasti a vytvoření informací o jejich vzájemné viditelnosti. Seznam může obsahovat části, které z dané oblasti mohou být vidět; další kontroly při hraní upřesní aktuální výsledek. Nejde proto vždy o hotový obrázek ani o jediný přesný seznam pro každý myslitelný pohled.

Když je kamera předvídatelná

Andy Gavin popisuje u původního Crash Bandicoot propojení předpočítané viditelnosti s kamerou vedenou připravenou trasou. Tvůrci znali možné pohledy a mohli zpracovat scénu předem. Volně se měnící svět je obtížnější případ: otevření dveří, pohyb překážky nebo nově vzniklá zeď nemusí odpovídat původním předpokladům. Konkrétní systém proto musí určit, pro jakou geometrii a změny jsou jeho data platná.

Podklady: Unity: předpočítání zakrytých objektů; Andy Gavin: viditelnost v původním Crashi.