2016-12-07 9 views
-1

最近、glmライブラリを使った正投影を使用する必要があります。しかし、正投影の場合、私のシーンはビューポートの中央にレンダリングされません。正射投影が正しく設定されていますか?

マイ・シーンは単なる立方体であり、glm :: perspectiveを使ってうまくレンダリングしていました。私はあまりにも数学的なものを理解していない、私はglm :: ortho関数を使用しています。

したがって正射投影を正しく設定するにはどうすればよいですか?ここで

は、私がやったコードです。次に

mat4 projection=ortho(0.0f, 800.0f, 600.0f, 0.0f,-1000.0f, 1000.0f); 
mat4 view=lookAt(vec3(0,0,1),vec3(0,0,0),vec3(0,1,0)); 
mat4 model=mat4(); 

私はシェーダにこれらの3つの行列を送った私の画面中央のクワッドでなければなりません透視投影did.Itと同じであるが、私のプログラムでそれは画面の左上隅に嘘をつき、四半期のようになります。

+0

キューブにはどの座標がありますか? – BDL

答えて

1

キューブは、正投影によって指定された座標空間の起点である(0,0,0)であるため、画面の左上隅に表示されます。

以前のパースペクティブプロジェクションでは、おそらく画面の中央に原点がありました。あなたの正射影投影の値を変更することでそれに戻ることができます:

ortho(-(800.0f/2.0f), 800.0f/2.0f, 
     600.0f/2.0f, -(600.0f/2.0f), 
     -1000.0f, 1000.0f); 
+0

私はそれを得た、あなたはまったく正しい。 glm :: ortho関数は、左に - (screenwidth/2)、右にscreenwidth/2、下に半分のスクリーンの高さ、topとして - (スクリーン高さ/ 2)を使用してパラメータを取る必要があります。 – Zain

関連する問題