Raytracing: perché le sfere nell'immagine qui sotto appaiono allungate?


8

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Qualche contesto. Sopra sono il codice e l'immagine risultante per esso nel Raytracing di Peter Shirley nel libro di un fine settimana. Come puoi vedere dal codice, aggiunge alcune sfere. Eppure nell'immagine finale ci sono 2 ellissoidi affiancati. Non riesco proprio a capire perché sia ​​così, non importa quante volte ho guardato il codice. Qualcuno può spiegarmi? Ecco il link al codice sorgente. https://github.com/petershirley/raytracinginoneweekend


2
Questo sembra normale ed è causato dal fatto che la telecamera prospettica è vicina alle sfere e ha un valore FOV elevato.
PaulHK,

A proposito, questo non è esclusivo del ray tracing.
Sebastian Mach,

Risposte:


16

Le forme che appaiono allungate nella periferia sono una conseguenza della proiezione prospettica. Più ampio è il campo visivo (FOV), più forte diventa l'effetto di allungamento.

Per dimostrare l'effetto ho scritto un rapido esempio su ShaderToy: https://www.shadertoy.com/view/MltBW2

Come puoi vedere dalle immagini qui sotto (corrispondenti a un FOV di 40, 80 e 120; se non ho commesso alcun errore), questo diventa particolarmente evidente con un ampio FOV, come 90 ° e oltre.

FOV 40 ° FOV 80 ° FOV 120 °


Bell'esempio Tuttavia, potrebbe essere utile avere una sorta di trama (ad esempio una griglia) sul piano terra; altrimenti è difficile distinguere tra la modifica dell'angolo di visione e il semplice spostamento della fotocamera. (Vedi anche: dolly zoom .)
Ilmari Karonen,

1
Va inoltre notato che questo effetto si verifica in genere con un FOV elevato rispetto alla distanza degli oggetti dalla fotocamera. Sembra innaturale perché di solito non vedi oggetti così vicini ai tuoi occhi. Almeno, non senza girare rapidamente gli occhi.
Nicol Bolas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.