2017-01-29 14 views
1

基本的な質問かもしれませんが、どこでも答えが見つかりませんでした。 シーン内のオブジェクトを翻訳したいとき、OpenGLが使用する座標は?OpenGL - 翻訳はどのように機能しますか?

Yには、-1,01,0がありますか? (だから私は-11の間の数字を使ってオブジェクトを動かさなければなりません)。 これはウィンドウサイズに依存しますか? (私は100や200のような数字を使うことができるので)。

サイズ500x500のウィンドウを作成すると、作成したオブジェクトが下部に配置されていることを確認するにはどうすればよいですか?

ありがとうございました。

答えて

1

OpenGLは常にX座標とY座標の両方の[-1.0,1.0]間隔でレンダリングします。独自の抽象化を作成して座標変換を行うことができます。変換は、OpenGL API呼び出しまたは頂点シェーダで行うことができます。 「頂点シェーダ」は、3Dレンダリングを行う場合に特に便利です。

この領域をマップする「矩形領域」は「ビューポート」として定義され、OpenGL関数を使用して、OpenGL空間にマップされる領域(ピクセル単位)を設定することができます[-1.0 、1.0]×[-1.0,1.0]である。

+0

[-1.0,1.0]座標系に関して、私が頂点シェーダ(変換、スケール..)で行う変換はどのようなものでなければなりませんか? – gambit20088

+0

いいえ、ANY座標系で実行できます。ピクセルでは、たとえば、望むならば...しかし、FINAL出力は[-1.0、1.0]の間になければなりません。 'xInOpenGL = xInPixel /(width/2.0) - 1.0'のように。 –

+0

ああ、ありがとう! – gambit20088

関連する問題