gluPerspective

gluPerspective




視界を決定する!

GLU#gluPerspective( GL10 gl, float fovy, float aspect, float zNear, float zFar )

gluPerspectiveは視野角、奥行きの最大、最小距離を設定します。
gluPerspectiveで設定した範囲外のポリゴンは基本的に描画されません。

gl使用するGL10のインスタンスを指定します。
fovy縦の視野角を”度”単位で設定します。
aspect縦に対する横方向の視野角の倍率を設定します。
zNear一番近いZ位置を指定します。
zFar一番遠いZ位置を指定します。

aspectは通常 スクリーン幅 / スクリーン高さ を入れます。

gluPerspectiveで決定される視界は↓図のようになります。

gluPerspectiveのイメージ

  1. 横の角度、aspectで求まる角度
  2. 縦の角度、fovyで設定
  3. 一番近いZ位置、zNear
  4. 一番遠いZ位置、zFar

gluPerspectiveの使用例

基準画像

gluPerspective( gl, 60.0f, 1.8f, 1.0f, 10000000.0f );
とした時。
これを基準とします。

fovyを120にしてみた

gluPerspective( gl, 120.0f, 1.8f, 1.0f, 10000000.0f );
とした時。
縦の角度が2倍になったのでモデルが小さく見えるようになります。
また、横の角度は縦の角度との比で決まるので横の角度も広がります。

aspectを3.6にしてみた

gluPerspective( gl, 60.0f, 3.6f, 1.0f, 10000000.0f );
とした時。
横の角度を2倍にしたので横が縮んだように見えます。
縦は影響を受けません。

zNearとzFarは見た目に変化が出ません。
奥行きの切れ方が変わるのでパフォーマンスと遠くの方の見た目によって決めるといいでしょう。