Переміщення: чому сфери на зображенні нижче виглядають розтягнутими?


8

введіть тут опис зображення введіть тут опис зображення

Якийсь контекст. Зверху наведено код та отримане зображення для нього у книзі «Підопічні Пітера Ширлі» у книзі одного вихідного. Як видно з коду, він додає в деяких сферах. І все ж у фінальному зображенні є два еліпсоїди поряд. Я просто не можу зрозуміти, чому це так, незалежно від того, скільки разів я дивився на код. Хтось може мені пояснити? Ось посилання на вихідний код. https://github.com/petershirley/raytracinginoneweekend


2
Це виглядає нормально і викликано тим, що перспективна камера близька до сфер і має велике значення FOV.
PaulHK

До речі, це не винятково для відстеження променів.
Себастьян Мах

Відповіді:


16

Форми, що з’являються розтягнутими на периферії, є наслідком перспективного проектування. Чим ширше поле зору (FOV), тим сильніший ефект розтягування.

Щоб продемонструвати ефект, я написав короткий приклад на ShaderToy: https://www.shadertoy.com/view/MltBW2

Як видно з зображень нижче (відповідає FOV 40, 80 та 120; якщо я не помилився), це стає особливо помітним при широкому FOV, як 90 ° і вище.

FOV 40 ° FOV 80 ° FOV 120 °


Гарний приклад. Це може допомогти мати якусь текстуру (наприклад, сітку) на площині основи; інакше важко визначити різницю між зміною кута огляду та просто переміщенням камери. (Див. Також: Доллі зум .)
Ільмарі Каронен

1
Слід також зазначити, що цей ефект, як правило, відбувається при високій FOV відносно відстані об'єктів від камери. Це виглядає неприродно, тому що ти зазвичай не бачиш предметів з такої близькості до очей. Принаймні, не без швидкого повернення очей.
Нікол Болас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.