glFrustum 関数

glFrustum 関数は、現在の行列にパースペクティブ 行列を乗算します。

構文

void WINAPI glFrustum(
   GLdouble left,
   GLdouble right,
   GLdouble bottom,
   GLdouble top,
   GLdouble zNear,
   GLdouble zFar
);

パラメーター

left

左垂直方向のクリッピング平面の座標。

right

右垂直方向のクリッピング平面の座標。

下部

下水平方向のクリッピング平面の座標。

top

下水平方向のクリッピング平面の座標。

zNear

近深度クリッピング平面までの距離。 正である必要があります。

zFar

遠深度クリッピング平面までの距離。 正である必要があります。

戻り値

この関数は値を返しません。

エラー コード

glGetError 関数では、次のエラー コードを取得できます。

名前 意味
GL_INVALID_ENUM
zNear または zFar が事後処理されませんでした。
GL_INVALID_OPERATION
この関数は、 glBegin の呼び出しと glEnd の対応する呼び出しの間で呼び出されました。

解説

glFrustum 関数は、パースペクティブ プロジェクションを生成するパースペクティブ マトリックスを記述します。 (左、 下、 zNear) パラメーターと (右、 上、 zNear) パラメーターは、目が (0,0,0) にあると仮定して、ウィンドウの左下隅と右上隅にマップされるニア クリッピング平面上のポイントを指定します。 zFar パラメーターは、遠方クリッピング平面の位置を指定します。 zNear と zFar はどちらも正である必要があります。 対応するマトリックスを次の図に示します。

パースペクティブ プロジェクションを生成するパースペクティブ マトリックスを示す図。 パースペクティブ 行列を記述する glFrustum 関数を示す数式。

glFrustum 関数は、現在の行列にこの行列を乗算し、結果は現在の行列を置き換えます。 つまり、M が現在の行列であり、F が視錐台パースペクティブ 行列である場合、 glFrustum は M を M F に置き換えます。

glPushMatrix と glPopMatrix を使用して、現在のマトリックス スタックを保存および復元します。

深度バッファーの有効桁数は、 zNear と zFar に指定された値の影響 を受けます。 zFar と zNear の比率が大きいほど、深度バッファーは互いに近いサーフェスを区別する効果が低くなります。 If

遠対近の比率を示す数式。

約 ログ2 (r) ビットの深度バッファー精度が失われます。 zNear が 0 に近づくと r は無限大に近づくため、zNear を 0 に設定しないでください。

次の関数は 、glFrustum に関する情報を取得します。

引数GL_MATRIX_MODEを含む glGet

glGet と引数 GL_MODELVIEW_MATRIX

glGet と引数 GL_PROJECTION_MATRIX

glGet と引数 GL_TEXTURE_MATRIX

必要条件

要件 値
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

関連項目

glBegin

glEnd

glGet

glMatrixMode

glMultMatrix

glOrtho

glPopMatrix

glPushMatrix

glViewport