明確に定義された対称ビュー フラスタムの場合、ソリューションはいくつかの単純なジオメトリで見つけることができます。

YY
正規化されたデバイス座標 (-1 から 1 の範囲)にあると仮定します。ピクセル座標の場合は、変換する必要があります。
投影面をカメラから 1 ユニット離れた位置に選択しました。しかし、他の距離でも同様に機能します。すると、距離y'
は単純に
y' = YY * H/2
H/2
は画面の半分の高さで、次のように計算できます。
H/2 = tan (fovy/2)
はfovy
カメラの垂直方向の視野です。
回転の角度を見つけたいとしalpha
ます。これは単純です:
tan alpha = y' / 1 = YY * tan(fovy / 2)
alpha = atan(YY * tan(fovy / 2)
方向に注意してください。正の値は下向きの回転を指定します。
任意の射影の場合、この問題は解析的に解決できます。
P
射影行列とビュー行列があると仮定するとV
、次のことを解きたいと思います。
w-clip(P * V * (0 0 1 0)^T) = (... YY ...)
カメラの x 軸を中心とした移動と回転のみを許可する必要があるためV
、次の形式になります。
/ 1 0 0 tx \
V = | 0 cos alpha -sin alpha ty |
| 0 sin alpha cos alpha tz |
\ 0 0 0 1 /
これにより、次の式が得られます。
YY = (p23 * cos alpha - p22 * sin alpha) / (p43 * cos alpha - p42 * sin alpha)
は- 番目の行と- 番目の列にpij
ある のエントリです。P
i
j
お気に入りのシンボリック ソルバーを使用して解を取得するalpha
と、ビュー マトリックスを再計算できます。