私は透視投影を研究していて、この概念に出くわしました:
基本的には、ポイント (x、y、z) があれば、それをパースペクティブ スクリーン (カメラ スペース) に投影できるということです。
x' = x/z
y' = y/z
z' = f(z-n) / z(f-n)
なぜ x' = x/z または y' = y/z なのか理解できません
私は透視投影を研究していて、この概念に出くわしました:
基本的には、ポイント (x、y、z) があれば、それをパースペクティブ スクリーン (カメラ スペース) に投影できるということです。
x' = x/z
y' = y/z
z' = f(z-n) / z(f-n)
なぜ x' = x/z または y' = y/z なのか理解できません
0,0,0
これを見る1つの方法は、あなたがやろうとしていることは、視聴者の位置(原点にあると仮定)と投影したい空間内の点(P)の両方を通る線と交差することです。
したがって、直線の方程式、つまり、P' = P * a
はa
単純にスカラー値を取り、 P'.Z = 1
(これは投影面がどこにあるか)を解きます。これは、スカラー乗法がである場合に自明に当てはまります1 / P.Z
。したがって、投影された点は次のようになります。(P.X, P.Y, P.Z) * (1 / P.Z)
幾何学的には、相似三角形の問題です。
あなたの図で(x,y,x)
は、 は と同じ点線上にあるため(x',y',z')
:
triangle [(0,0,0), (0,0,z), (x,y,z)]
is similar to
triangle [(0,0,0), (0,0,z'), (x',y',z')]
これは、対応する辺の比率が固定されていることを意味します。さらに、元のベクトルは射影されたベクトルに比例します。最後に、概念上の投影面が にあることに注意してくださいz' = 1
。
(x,y,z) / z = (x',y',z') / z'
-> so, since z' = 1:
x'/z' = x' = x/z
y'/z' = y' = y/z
[警告:z'
私の回答の は、質問での出現とは異なることに注意してください。質問z' = f(z-n) / z(f-n)
は物理的なポイントに直接対応していません。これは、隠面の削除などを行うために使用される「深さの値」です。]