GLFRUSTUM

Section: Misc. Reference Manual Pages (3G)
索引 xjman
 

名前

glFrustum - 現在の行列に透視射影行列を掛ける

 

書式

void glFrustum( GLdouble left,

                  GLdouble right,
                  GLdouble bottom,
                  GLdouble top,
                  GLdouble near_val,
                  GLdouble far_val )

delim $$  

引き数

left, right
右および左の垂直クリッピング平面の座標を指定する。
bottom, top
上および下の水平クリッピング平面の座標を指定する。
near_val, far_val
ニア側およびファー側の深さクリッピング平面への距離を指定する。 どちらの距離も正の値でなければならない。
 

説明

glFrustum は、透視射影を生成する透視射影行列を記述する。 現在の行列(glMatrixMode を参照)に対してこの行列が掛けられ、 その結果が現在の行列と置き換えられる。 これは、次に示す行列を引き数として glMultMatrix が 呼ばれた場合と同様の結果となる:


down 150 {left [ ~~~ { down 165 matrix {
   ccol { {{2 ~ "near_val"} over {"right" ~-~ "left"}} above 0 above 0 above 0 }
   ccol { 0 above {{2 ~ "near_val"} over {"top" ~-~ "bottom"}} ~ above 0 above 0 }
   ccol { A ~~~~ above B ~~~~ above C ~~~~ above -1 ~~~~}
   ccol { 0 above 0 above D above 0} }} ~~~ right ]}


down 130 {A ~=~ {"right" ~+~ "left"} over {"right" ~-~ "left"}}


down 130 {B ~=~ {"top" ~+~ "bottom"} over {"top" ~-~ "bottom"}}


down 130 {C ~=~ -{{"far_val" ~+~ "near_val"} over {"far_val" ~-~ "near_val"}}}


down 130 {D ~=~ -^{{2 ~ "far_val" ~ "near_val"} over {"far_val" ~-~ "near_val"}}}

普通は、行列モードは GL_PROJECTION である。 (left, bottom, -near_val) および (right, top, -near_val) は ニアクリッピング平面上にあり、ウィンドウの左下隅および右上隅にマッピングされる点を指定する。 この際には眼点は (0, 0, 0) にあるものとする。 -far_val はファークリッピング平面の位置を指定する。 near_valfar_val はどちらも正でなければならない。 現在の行列をスタックを使って保存・復元する場合には glPushMatrix および glPopMatrix を使う。  

注意

深さバッファの精度は near_val および far_val に 対して指定された値の影響を受ける。 far_valnear_val に対する比が大きいほど、 深さバッファにおいてお互いに近い面を区別する際の効率が悪くなる。 もし

$r ~=~ "far_val" over "near_val"$

ならば、深さバッファのおよそ $log sub 2 (r)$ ビットの精度が失われる。 near_val が 0 に近づくにつれて $r$ は無限大に近づくので、 near_val に 0 を設定してはならない。  

エラー

GL_INVALID_VALUE: near_val または far_val が正の値でない場合、 left = right である場合、bottom = top である場合に起こる。 GL_INVALID_OPERATION: glBegin と、その対になる glEnd の間で glFrustum が 実行されると起こる。  

関連する取得値

引き数に GL_MATRIX_MODE を指定した glGet
引き数に GL_MODELVIEW_MATRIX を指定した glGet
引き数に GL_PROJECTION_MATRIX を指定した glGet
引き数に GL_TEXTURE_MATRIX を指定した glGet
引き数に GL_COLOR_MATRIX を指定した glGet  

関連項目

glOrtho(3G), glMatrixMode(3G), glMultMatrix(3G), glPushMatrix(3G), glViewport(3G)


 

Index

名前
書式
引き数
説明
注意
エラー
関連する取得値
関連項目

jman



Time: 07:01:07 GMT, January 12, 2009