6

パース ビューと正投影ビューを組み合わせたいのですが、うまくいきません。

X 座標と Y 座標が正射投影で、Z 座標がパースペクティブである必要があります。明確にするために、OpenGL 座標から画面表示への目的の変換のスケッチを追加しました。

希望するビューのスケッチ

(チュートリアルから始めましたが、値の上位、下位などを取得する方法が見つかりませんでした。)

4

2 に答える 2

0

おそらくglFrustumこれを達成するために使用できます。

標準の遠近法マトリックスを使用し、カメラがボックスの正面を向いている場合、X/Y は均一になりますが、カメラから離れると X/Y 座標が中心に向かって移動し、標準的な視差効果のために縮小されます。あなたが描いたのは、ウィンドウの上部への動きです。透視投影を標準の中心より下にトリミングするだけです。そこに出番がありglFrustumます-通常は対称的な上下の引数を下に移動し、必要な軸に沿ってカメラ/ビューマトリックスを整列させると、目的の投影が得られます。

カメラ/ビューを回転させると、X/Y 平面での均一な投影が破壊されます。カメラの動きについては、境界のパンと移動に制限されglFrustumます。

EDIT考えてみるとglTranslatef(shearX, shearY, 0)、呼び出しの前に a を投げてgluPerspective、同じことを達成することができます。

于 2013-11-13T17:58:29.507 に答える