Nei giochi in realtà virtuale a volte si usa il rendering foveated. Avete usato qualcosa di simile nella demo?
Usiamo molti trucchi tecnologici per gestire la visualizzazione di un dettaglio di questo livello. Uno è il "quadtree", che ripartisce il terreno in "tile" di diverse dimensioni. Ci sono differenti livelli di dettaglio, quindi possiamo costruire il terreno con il massimo dettaglio che i nostri sensori di immagini e i dati stereo ci permettono di ottenere, per poi realizzare versioni a risoluzione più bassa. Il risultato è che le tile che si trovano nelle vicinanze dell'osservatore virtuale hanno un dettaglio migliore di quelle in lontananza, con un passaggio graduale e progressivo in funzione della distanza. Il risultato è credibile, anche perché man mano che ci si avvicina ai punti più lontani scambiamo le texture a bassa risoluzione con quelle ad alta risoluzione.

C'è qualche latenza? Per intenderci, se mi giro di scatto vedo le tile a risoluzioni più bassa?
La demo tiene il passo dell'utente. Attualmente manteniamo un framerate di 60 FPS e noi scambiamo selettivamente le tile quando sono ancora abbastanza lontane dall'utente [così] che non riesca a distinguere la differenza tra la tile di alta qualità e quella a bassa qualità.
Quindi si svolge lo stesso processo anche per tutto ciò che si trova alle spalle dell'utente, o il processo viene attivato quando ruota la testa?
In questo senso siamo stati furbi. L'altra cosa bella di quelle tile è che possiamo rimuovere tutto ciò che non rientra nel campo visivo dell'utente. Ovviamente facciamo una pre-elaborazione per calcolare quali aree sono visibili. Per esempio si vi state muovendo su una collina tutto quello che c'è dietro di questa non sarà visibile, ma potrete osservare con dovizia di dettagli tutto quello che c'è sulla collina e su quella vicina.
Calcoliamo tutte le cose che sono visibili dalla posizione dell'utente, mentre siamo in grado di rimuovere immediatamente tutto quello che non è visibile, così da ridurre il numero di elementi da elaborare. Con questo trucco riusciamo a mantenere un'esperienza fluida.
Se faccio una corsa attorno a un crinale, è possibile che il modello non sia pronto?
No, sarà pronto prima che ci arrivi.