Raytracing: ทำไมทรงกลมในภาพด้านล่างจึงยืดออก


8

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

บริบทบางอย่าง ด้านบนเป็นรหัสและรูปภาพผลลัพธ์ในหนังสือ Raytracing ของปีเตอร์เชอร์ลีย์ในหนังสือหนึ่งสัปดาห์ อย่างที่คุณเห็นจากโค้ดเขาเพิ่มในทรงกลมบางส่วน และในภาพสุดท้ายยังมีรูปวงรี 2 อันอยู่เคียงข้างกัน ฉันไม่สามารถเข้าใจได้ว่าทำไมถึงเป็นเช่นนั้นไม่ว่ากี่ครั้งที่ฉันดูโค้ด ทุกคนสามารถอธิบายให้ฉันได้ไหม นี่คือลิงค์ไปยังซอร์สโค้ด https://github.com/petershirley/raytracinginoneweekend


2
สิ่งนี้ดูปกติและเกิดจากกล้องมุมมองที่อยู่ใกล้กับทรงกลมและมีค่า FOV ขนาดใหญ่
PaulHK

Btw นี่ไม่ได้ จำกัด เฉพาะการติดตามรังสี
Sebastian Mach

คำตอบ:


16

รูปร่างที่ปรากฏในขอบด้านนอกเป็นผลมาจากการฉายภาพมุมมอง ยิ่งมุมมองภาพกว้างขึ้น (FOV) ก็จะยิ่งมีผลต่อการยืดที่มากขึ้น

เพื่อแสดงให้เห็นถึงผลกระทบที่ฉันเขียนตัวอย่างอย่างรวดเร็วใน ShaderToy: https://www.shadertoy.com/view/MltBW2

อย่างที่คุณเห็นในภาพด้านล่าง (ตรงกับ FOV 40, 80 และ 120; ถ้าฉันไม่ทำผิดพลาด) สิ่งนี้จะเห็นได้ชัดเจนโดยเฉพาะกับ FOV ที่กว้างเช่น 90 °ขึ้นไป

FOV 40 ° FOV 80 ° FOV 120 °


ตัวอย่างที่ดี มันอาจช่วยให้มีพื้นผิวบางชนิด (เช่นกริด) บนระนาบกราวด์ได้ ไม่อย่างนั้นเป็นการยากที่จะบอกความแตกต่างระหว่างการเปลี่ยนมุมมองและเพียงแค่ขยับกล้อง (ดูเพิ่มเติมที่: ดอลลี่ซูม )
Ilmari Karonen

1
ควรสังเกตว่าโดยปกติเอฟเฟกต์นี้จะเกิดขึ้นกับค่า FOV สูงเมื่อเทียบกับระยะห่างของวัตถุจากกล้อง มันดูแปลกประหลาดเพราะปกติแล้วคุณจะไม่เห็นวัตถุที่อยู่ใกล้กับดวงตาของคุณ อย่างน้อยก็อย่าหันหลังให้กับคุณเลย
Nicol Bolas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.