2012-03-15 19 views
0

OpenGLの頂点座標はどのように-1から1になりますか?画面と同じ座標を使って頂点座標を指定できる方法はありますか?OpenGLでの頂点座標

ので、代わりの:

float triangleCoords[] = { 
     // X, Y, Z 
     -0.5f, -0.25f, 0, 
     0.5f, -0.25f, 0, 
     0.0f, 0.559016994f, 0 
    }; 

私は

float triangleCoords[] = { 
     // X, Y, Z 
     80, 60, 0, 
     240, 60, 0, 
     0, 375, 0 
    }; 

を持つことができますちょうど私はちょうどので、私はいくつかの頂点座標でハードコードをできる電卓を取得する必要があることを少しくらいのようです。私は物事を敷き詰めようとしているようには思えません。「そうだよ、そうだね(0、0.559016994)、完璧に見えるでしょう...」

答えて

3

これは投影行列のためのものです。座標系から正規化された座標に投影されます。

ピクセルで頂点を自由に設定することはできますが、適切な投影行列とペアを組むだけで、それらの座標を画面に変換する方法をopenglに伝える必要があります。

はあなたの例を考える:

float triangleCoords[] = { 
    // X, Y, Z 
    80, 60, 0, 
    240, 60, 0, 
    0, 375, 0 
}; 

あなたは、あなたの三角形について説明ピクセル座標で描画するglOrtho(0, width, 0, height, -1, 1)によって生成されたものと同様の正射影行列(、でこれをペア場合