Share via


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 パラメーターは、遠方クリッピング平面の位置を指定します。 zNearzFar はどちらも正である必要があります。 対応するマトリックスを次の図に示します。

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

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

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

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