Raytracing: pourquoi les sphères de l'image ci-dessous semblent-elles étirées?

8

entrez la description de l'image ici entrez la description de l'image ici

Un peu de contexte. Ci-dessus sont le code et l'image résultante pour cela dans Raytracing de Peter Shirley dans le livre d'un week-end. Comme vous pouvez le voir dans le code, il ajoute dans certaines sphères. Et pourtant, dans l'image finale, il y a 2 ellipsoïdes côte à côte. Je ne peux pas comprendre pourquoi il en est ainsi, peu importe combien de fois j'ai regardé le code. Quelqu'un peut-il m'expliquer? Voici le lien vers le code source. https://github.com/petershirley/raytracinginoneweekend

Manh Nguyen
la source
2
Cela semble normal et est dû au fait que la caméra en perspective est proche des sphères et a une grande valeur FOV.
PaulHK
Btw, ce n'est pas exclusif au lancer de rayons.
Sebastian Mach

Réponses:

16

Les formes apparaissant étirées à la périphérie sont une conséquence de la projection en perspective. Plus le champ de vision (FOV) est large, plus l'effet d'étirement est fort.

Pour démontrer l'effet, j'ai écrit un exemple rapide sur ShaderToy: https://www.shadertoy.com/view/MltBW2

Comme vous pouvez le voir sur les images ci-dessous (correspondant aux FOV de 40, 80 et 120; si je n'ai fait aucune erreur), cela devient particulièrement visible avec un FOV large, comme 90 ° et plus.

FOV 40 ° FOV 80 ° FOV 120 °

Julien Guertault
la source
Bel exemple. Cependant, il peut être utile d'avoir une sorte de texture (par exemple une grille) sur le plan du sol; sinon, il est difficile de faire la différence entre changer l'angle de vue et déplacer simplement la caméra. (Voir aussi: dolly zoom .)
Ilmari Karonen
1
Il convient également de noter que cet effet se produit généralement avec un champ de vision élevé par rapport à la distance entre les objets et la caméra. Cela n'a pas l'air naturel, car vous ne voyez généralement pas d'objets aussi proches de vos yeux. Du moins, non sans avoir rapidement tourné les yeux.
Nicol Bolas