1

私は OpenGL を学んでいて、座標系の明確な定義を見つけるのに苦労しています。

ビューポートに表示される値の数値範囲をどのように判断できますか?

4

2 に答える 2

4

-1.0 ~ +1.0 (すべての変換が適用された後)。

この情報は、やや回りくどい方法でglViewportドキュメントに埋め込まれています。MSDN 版のドキュメントを選択するのは、他のオンライン ソースが HTML への変換中に数式を台無しにしているからです (これは正しい数式ですが、認識できません)。

適切なスケーリングと変換係数を適用することで、必要な変換前の座標系を取得できます。 glOrthoGL 1.x - 2.x ではこれが簡単になります。OpenGL 3.x では、頂点シェーダーを使用して変換を行います。

于 2011-02-27T21:38:25.393 に答える
1

表示される頂点値の範囲は、ModelViewProjectionの 2 つの変換行列によって管理されます。ModelViewマトリックスは、演算の種類で構築されglRotate射影マトリックスは、またはで作成されます。glTranslateglOrthoglPerspectivegluLookAt

頂点 V は、以下の変換を使用してビューポート座標に変換され、非表示部分はターゲット空間でカリングされます (すべての軸で [-1,1])。

V'' = Projection * ModelView * V

ただしglOrthoglPerspectiveモデルビュー空間で与えられた入力として可視範囲を取得します。これらの範囲は、変換された頂点と同等です。

V' = ModelView * V

単位行列を として使用している場合、頂点値をまたはModelViewに与えられた値と比較できます。glOrthoglPerspective

于 2011-02-27T21:42:21.857 に答える