2012-04-25 4 views
0

WWDC2010からサンプルコードGLVideoFrameを読んでいます。このコードは、OpenGL投影設定にglFrustum又はglOrthoような任意の関数を呼び出していないことglFrustumとglOrtho設定をしていない投影のビューボリュームはどのくらいですか?

static const GLfloat squareVertices[] = { 
    -0.5f, -0.33f, 
    0.5f, -0.33f, 
    -0.5f, 0.33f, 
    0.5f, 0.33f, 
}; 
... 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
glTranslatef(0.0f, (GLfloat)(sinf(transY)/2.0f), 0.0f); 
transY += 0.075f; 

... 
glVertexPointer(2, GL_FLOAT, 0, squareVertices); 

は注意:このサンプルでは、​​以下のようなコードを有しています。

gLoadIdentity()を呼び出すだけで、「デフォルト」のビューボリュームは何ですか?

これは、透視投影または正投影です。

編集: 具体的には、 は、3つの軸すべてで-1から1の範囲のビューボリュームの立方体ですか?

+0

誰かが私にこの質問が-1と投票された理由を教えてもらえますか?あまりにも愚かな質問?単純すぎます?私は実際に周りにグーグルで、数日 "赤い本"を読んで、何か手がかりを見つけられませんでした。誰かが私に答えを見つけるべき場所を指し示すことができて本当に感謝していますか? –

+0

Downvoteはその男の良心に基づいています:) 'gLoadIdentity()'は投影モードの単位行列を設定します。これはmodelview行列と同じものです。 'glFrustum'と' glOrtho'は異なる入力パラメータからこれらの行列を設定します。 Xcodeを使ってOpenGLフレームをキャプチャする際に、実行時にマトリックスを見ることができます(iPad 2/NewおよびiPhone 4Sデバイスで動作します)。 – brigadir

+0

"XcodeでOpenGLフレームをキャプチャするときに実行時に行列を見るかもしれませんが、これは私の質問には直接関係しませんが面白いと思います。あなたはどのように私にリンクを与えることができますか? –

答えて

0

OpenGLでは、ModelViewとProjectionの変換の後に、表示されるすべての要素がクリップ空間(またはNDC空間)にあるとみなします。それはキューブ[-1;+1]^3を使用します。マトリックスの内容は完全にあなたの責任です。恒等行列をロードするので、プロジェクションはまったくありません。

+0

これは私が探している正確な説明です。ありがとう! –

関連する問題