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_val と far_val はどちらも正でなければならない。
現在の行列をスタックを使って保存・復元する場合には
glPushMatrix および glPopMatrix を使う。
注意
深さバッファの精度は near_val および far_val に
対して指定された値の影響を受ける。
far_val の near_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
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 注意
-
- エラー
-
- 関連する取得値
-
- 関連項目
-
Time: 07:01:07 GMT, January 12, 2009