Scroll to navigation

GLUPERSPECTIVE(3G) GLUPERSPECTIVE(3G)

名前

gluPerspective - 透視射影行列を設定する
 

書式

void gluPerspective( GLdouble fovy,
	GLdouble  aspect,
	GLdouble  zNear,
	GLdouble  zFar )
 

引き数

fovy
y 方向の視野角を指定する。 単位は度数である。
aspect
アスペクト比を指定する。 この値は x 方向の視野を決める。 アスペクト比は x (幅)と y (高さ)の比である。
zNear
視点と、視点に近い側のクリッピング平面の距離を指定する(常に正である)。
zFar
視点と、視点から遠い側のクリッピング平面の距離を指定する(常に正である)。

説明

gluPerspective は、視野角錐体(viewing frustum)をワールド座標系 に対して指定する。 一般的には、 gluPerspective で指定するアスペクト比は、 これに対応するビューポートのアスペクト比と同じになるべきである。 例えば "aspect" ~=~ 2.0 ならば、観測者のx方向の視野角はy方向の視野角の2倍になる。..ビューポートの幅が高さの2倍ならば、画像は歪むことなくビューポートに表示される。.P..gluPerspectiveが作った行列には、現在の行列が掛けられる。これはgluPerspectiveが作った行列を引き数にglMultMatrixを呼び出した場合と同様の動作である。..乗算を行うのではなく、透視射影行列を現在の行列スタックにロードするには、gluPerspectiveの前にglLoadIdentityを呼び出しておくこと。.P.f.sp.ce.EQf=cotangent(fovy2) のように定義されている場合、 生成される行列は次のようになる:
 
faspect0000f0000zFar+zNearzNearzFar2*zFar*zNearzNearzFar00-10
 

注意

デプスバッファの精度は、 zNear および zFar に指定した 値の影響を受ける。 zNear に対する zFar の比率が大きいほど、 互いに近い曲面をデプスバッファが区別する際の効率は悪くなっていく。 もし
 
r=zFarzNear
 
ならば、 デプスバッファの精度はだいたい log2r ビット失われる。 zNear が 0 に近付いていくと r は無限大に近付いていくため、 zNear は 0 に設定してはならない。

関連項目

glFrustum, glLoadIdentity, glMultMatrix, gluOrtho2D