4

gluPerspective で OpenGL を使用していますが、原点が左下ではなく左上である軸システムを使用するにはどうすればよいですか?

4

2 に答える 2

2

射影行列を直接操作することは、この操作のクリーンな方法だと思います。しかし、万が一代替手段が必要な場合:

glScalef(1.f, -1.f, 1.f)軸を反転するために使用できます。

これは、GL_MODELVIEW または GL_PROJECTION マトリックス (現在アクティブなものは何でも) に対する操作でもあります。

于 2010-05-19T15:23:49.753 に答える
1

yこれを行うには、射影行列の軸を反転させます。そう:

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadMatrix( [1  0  0  0; 
               0 -1  0  0; 
               0  0  1  0; 
               0  0  0  1] ); 
            // ^ pseudo-code, replace with actual matrix

それでいいはずです。

( and thenglMultMatrixの代わりに) 同じ行列で呼び出しを使用することもできますが、この方法はより簡単に逆にすることができます (後でスタックを呼び出すだけです) 。PushLoadglPopMatrixGL_PROJECTION

同じ手法を使用して、他の軸を反転することもできます。適切な場所にマイナス記号を入れるだけです。

于 2010-05-19T15:14:35.547 に答える