2012-02-13 18 views
2

glVertex2f()を使用して配列内のいくつかの点を描画しています。逆さにする必要があります。 glViewport()で描画していますので、サイズを変更して移動することができます。しかし、私はそれを反転させる方法を知らない。glVertex2f()で描画された図面を反転しますか?

gluOrth2d()を使用する必要がありますか?私はgluOrth2d()とglViewport()の間の違いとそれをいつ使用するのかを完全に理解していません。

答えて

1

glViewport()はビューポートを設定します。つまり、描画全体が描画されるウィンドウの部分を設定します。浮動小数点数ではなく、整数を受け入れることに注意してください。なぜなら、レンダリングが行われる画面の部分と正確に一致する必要があるからです。

gluPerspectiveでglFrustrum e.t.c.ようgluOrtho投影台を設定するために使用されます。

プログラムでgluOrtho2D()を使用していなくても、常に自分で透視投影を設定する必要があるため、使用する必要があります。

EDIT:(コメントでは、ポインタに準拠するように修正)

シーン全体を反転させるためには、それはあなたが乗算されます。この

glScalef(1,-1,1); 

を行うことができ、2Dであると仮定すると現行のモデルビュー行列にスケーリング行列を設定し、効果的にシーンを反転させます。

Explains without lots of math

Explains with a bit more math

+2

'gluOrtho'は** perspective **投影を設定しません。これは単に投影を設定します。具体的には、 'gluOrtho'は* orthographic *投影行列を生成し、それを現在の行列に乗じます。それは、遠近法の投影ではなく、定義によるとかなりです。 –

+0

水平回転と垂直回転の両方を回転させませんか? –

+0

ダム私と私の英語。はいnicolこれは私が言いたかったものです... – Lefteris

2

あなたのシーンを垂直方向に反転します:

は、あなたは私が役立つかもしれない願っていますこれらの2つのリンクを提供したいOpenGLのマトリックスの使用を理解して助けを必要とするように見えるので、 (逆さま)を有する:

glScalef(1, -1, 1); 

または水平にそれを反転:

glScalef(-1, 1, 1); 
関連する問題