近くの顔がディスプレイの隅に完全に位置合わせされたままのボックスをレンダリングしようとしていますが、残りは視差効果のように (遠近法で) せん断することができます。基本的にこれとまったく同じです。
射影行列にこのせん断行列を掛けると、正しい効果が得られることがわかりました。
Shear = {
1 0 -cot(theta) 0
0 1 -cot(phi) 0
0 0 1 0
0 0 0 1
}
ただし、ビュー ボリュームはボリュームの中心付近でせん断しているように見えるため、回転を開始するとすぐに、ボックスの前面が表示領域の外で揺れます。
モデルまたはビューポートを変換して補正できるかもしれませんが、それはごまかしのようです。これは正しい射影行列で行うことができますか、それともモデル ビュー行列に適用する必要がある他の変換を計算する良い方法はありますか?