1

OpenGL で 4 分割ビューアーを開発しています。1 つの図は斜視図で、もう 1 つの図は正射影 (正面、左、上) 用です。

(-1,-1,-1) から (1,1,1) までの立方体を描画するメソッドを作成しました。パース ビューではうまく機能しますが、使用するビューでは機能しません。 glOrtho(...)。

今、私は次のように設定しました:

    glOrtho(0, width, height, 0, 0, 1);

面白いことに、ビューにはキューブがまったく表示されません。ただし、正しく表示される OpenGL のビューの境界線を実装しました。

私は Qt を使用しており、QGLWidget の派生クラスを作成しました。

4

1 に答える 1

1

glOrthomodel transformと の後に、ビュー スペースで 6 つのクリッピング プレーンを定義しますview transform。したがって、glOrtho のパラメータはEye Spaceではなくで指定する必要がありますScreen Space。あなたの場合、それは、が入っていて、あなたがでglOrtho(-width/(float)height, width/height, -1.0f, 1.0f, -1.0f, 1.0f)あると仮定する必要があります。ニアプレーンがビューアの背後にある場合 (目の位置) 、 のパラメータは負でなければなりません。glOrthoをマンしたいかもしれません。の第 4 章では、、、、および など、さまざまな座標空間の変換に関する詳細な情報を提供できます。eye position(0.0, 0.0, 0.0)viewportwidthheightNearValglOrthoCg tuturialObject SpaceWorld SpaceEye SpaceClip spaceNormalized Device SpaceWindow Space

于 2012-05-17T11:40:56.123 に答える