2

ブルーブックの最初の章を読み始めたばかりで、射影行列を使用して、目的の座標系から実際の画面座標へのマッピングを変更できることを理解しました。次の例では、座標系をリセットし、左、右、上、下で -1 から 1 に変更するために使用できます (例として)。

glMatrixMode(GL_PROJECTION);
glLoadIdentity(); //With 1's in the diagonal of the identity matrix, the coordinate system is rest from -1 to 1 (and the drawing should happen then inside those coordinates which be mapped later to the screen)

別の例: (幅: 1024、高さ: 768、縦横比: 1.33) 座標系を変更するには、次のようにします。

glOrtho (-100.0 * aspectRatio, 100.0 * aspectRatio, -100.0, 100.0, 100.0, 1000.0);

OpenGL の座標系は、左が -133、右が 133、下が -100、上が 100 に変わると予想していました。これらの座標を使用すると、これらの座標内で描画が行われ、これらの座標の外にあるものはすべて切り取られることがわかります。

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
    glOrtho(-100 * aspectRatio, 100 * aspectRatio, -100, 100, 100, 1000);
glMatrixMode(GL_MODELVIEW);
    glRectf(-50.0, 50.0, 200, 100);

ただし、上記のコマンドでは、画面に何も出力されません。ここで何が欠けていますか?

4

1 に答える 1