Raytracing: Warum erscheinen die Kugeln im Bild unten gestreckt?


8

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Ein Kontext. Oben sind der Code und das daraus resultierende Bild in Peter Shirleys Raytracing in einem Wochenendbuch aufgeführt. Wie Sie dem Code entnehmen können, fügt er einige Bereiche hinzu. Und doch gibt es im endgültigen Bild 2 Ellipsoide nebeneinander. Ich kann einfach nicht verstehen, warum es so ist, egal wie oft ich mir den Code angesehen habe. Kann mir jemand erklären? Hier ist der Link zum Quellcode. https://github.com/petershirley/raytracinginoneweekend


2
Dies sieht normal aus und wird dadurch verursacht, dass sich die perspektivische Kamera in der Nähe der Kugeln befindet und einen großen FOV-Wert aufweist.
PaulHK

Übrigens ist dies nicht ausschließlich für Raytracing.
Sebastian Mach

Antworten:


16

Formen, die in der Peripherie gestreckt erscheinen, sind eine Folge der perspektivischen Projektion. Je breiter das Sichtfeld (FOV) ist, desto stärker wird der Dehnungseffekt.

Um den Effekt zu demonstrieren, habe ich ein kurzes Beispiel für ShaderToy geschrieben: https://www.shadertoy.com/view/MltBW2

Wie Sie auf den folgenden Bildern sehen können (entsprechend dem Sichtfeld von 40, 80 und 120; wenn ich keinen Fehler gemacht habe), macht sich dies besonders bei einem breiten Sichtfeld wie 90 ° und darüber bemerkbar.

FOV 40 ° FOV 80 ° FOV 120 °


Schönes Beispiel. Es könnte jedoch hilfreich sein, eine Art Textur (z. B. ein Gitter) auf der Grundebene zu haben. Andernfalls ist es schwierig, den Unterschied zwischen dem Ändern des Blickwinkels und dem Bewegen der Kamera zu erkennen. (Siehe auch: Dolly Zoom .)
Ilmari Karonen

1
Es sollte auch beachtet werden, dass dieser Effekt typischerweise bei einem hohen Sichtfeld relativ zur Entfernung der Objekte von der Kamera auftritt. Es sieht unnatürlich aus, weil Sie normalerweise keine Objekte aus der Nähe Ihrer Augen sehen. Zumindest nicht ohne schnell die Augen zu drehen.
Nicol Bolas
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.