レイトレーシング:下の画像の球が引き伸ばされて表示されるのはなぜですか?


8

ここに画像の説明を入力してください ここに画像の説明を入力してください

いくつかのコンテキスト。上記は、ある週末の本のピーターシャーリーのレイトレーシングでのコードとその結果の画像です。コードからわかるように、彼はいくつかの領域を追加しています。そして、最終的な画像には2つの楕円体が並んでいます。コードを何度見ても、なぜそうなのかを理解することはできません。誰かが私に説明できますか?これがソースコードへのリンクです。 https://github.com/petershirley/raytracinginoneweekend


2
これは正常に見え、遠近法カメラが球に近く、FOV値が大きいことが原因です。
PaulHK

ところで、これはレイトレーシングに限定されるものではありません。
セバスチャンマッハ

回答:


16

周辺に引き伸ばされて表示される形状は、透視投影の結果です。視野(FOV)が広いほど、ストレッチ効果が強くなります。

効果を示すために、ShaderToyで簡単な例を書きました:https ://www.shadertoy.com/view/MltBW2

下の画像(40、80、120のFOVに対応)を見るとわかるように、これは、90°以上の広いFOVで特に顕著になります。

FOV 40° FOV 80° FOV 120°


いい例です。ただし、地面にある種のテクスチャ(グリッドなど)を配置すると役立つ場合があります。そうしないと、視野角を変更することとカメラを動かすだけの違いを見分けるのが難しくなります。(参照:ドリーズーム
Ilmari Karonen

1
また、この効果は通常、カメラからのオブジェクトの距離に比べて高いFOVで発生することにも注意してください。通常、目の近くにあるものは見えないため、不自然に見えます。少なくとも、すぐに目を向けることなくしては。
ニコルボーラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.