(x,y,z)
透視ピラミッド内の(x',y',z')
座標を透視キューブ内の座標に変換する方法は? (右手座標系)
この透視行列を(x,y,z)
ベクトルで乗算しようとしましたが、結果は期待したものではありません。
fov=70°、aspect=4/3、near=100、far=100; で試してみました。x=100、y=100、z=-300;
結果は(158.28, 211.05, -344.44)
私が欲しいのはこれだけです:
前もって感謝します、
(x,y,z)
透視ピラミッド内の(x',y',z')
座標を透視キューブ内の座標に変換する方法は? (右手座標系)
この透視行列を(x,y,z)
ベクトルで乗算しようとしましたが、結果は期待したものではありません。
fov=70°、aspect=4/3、near=100、far=100; で試してみました。x=100、y=100、z=-300;
結果は(158.28, 211.05, -344.44)
私が欲しいのはこれだけです:
前もって感謝します、
遠近法マトリックスは一般に、目的の視錐台が正規のボリューム (ユニット キューブである可能性がありますが、すべてのグラフィックス パイプラインが同じというわけではありません。たとえば、D3D は OpenGL とは異なります) にマップされるように空間を変換しますが、このボリュームは同種で記述されます。 (射影) 座標。これは、実際の射影が非線形変換であるためですが、射影座標系を使用すると、パイプラインの大部分に対して線形変換を使用できます。
そのため、3D (または 2D) 空間でポイントが必要な場合は、投影を実行する必要があります。
これは単なる分割です。
点 (x, y, z, 1) に透視行列を掛けると、ベクトル 4 (x', y', z', w') が得られます。次に、x'、y'、z' を w' で割り、射影を行う必要があります。