13

gluPerspective関数をglFrustumにどのように変換しますか?この式を使用しようとしましたが、gluPerspectiveの場合と同じ画像が生成されなかったため、うまくいきませんでした。

上=tan(fov * 3.14159 / 360.0)*下の近く= -top

左=アスペクト*右下=アスペクト*上

視野を正しく変換できないようです。たとえば、私のFOVが45だった場合、Frustum呼び出しの「トップ」パラメータは何でしょうか。

4

1 に答える 1

32

ここに行きます-あなたは:の代わりとして次の方法を使うことができますgluPerspective

void perspectiveGL( GLdouble fovY, GLdouble aspect, GLdouble zNear, GLdouble zFar )
{
    const GLdouble pi = 3.1415926535897932384626433832795;
    GLdouble fW, fH;

    //fH = tan( (fovY / 2) / 180 * pi ) * zNear;
    fH = tan( fovY / 360 * pi ) * zNear;
    fW = fH * aspect;

    glFrustum( -fW, fW, -fH, fH, zNear, zFar );
}

コードの詳細については、neheページを参照してください。

于 2012-10-17T21:11:51.590 に答える