ユーザーの位置に応じて画面のコンテンツが変化する軸外投影効果を取得しようとしています。これは、このビデオで行われていることと似ています:
http://www.youtube.com/watch?feature=player_embedded&v=Jd3-eiid-Uw
上記の効果を達成するために軸外投影が適切な方法である理由がわかりません。1) glFrustum を使用する 2) lookAt() を使用
する 上記のアプリケーションでは、「カメラ」は基本的にユーザーの位置に従って移動します。透視投影の ( 、、、、 )のglFrustum
座標は、ユーザーが移動したときに別の位置から表示されるように、画面上のオブジェクトを変更するために指定されています。left
right
bottom
top
near
far
同時に、これはカメラをユーザーの位置に変換し、カメラの中心に を与えることに非常に似ていると思いgluLookAt(centerPosition)
ますlookAt
。しかし、これでは必要な効果が得られず、なぜこれが起こっているのか知りたいと思っていました.
上記の2つの違いは何ですか?
軸外投影は、OpenGL で次のように実現されます。
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(fNear*(-fFov * ratio + headX),
fNear*(fFov * ratio + headX),
fNear*(-fFov + headY),
fNear*(fFov + headY),
fNear, fFar);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(headX*headZ, headY*headZ, 0, headX*headZ, headY*headZ, -1, 0, 1, 0);
glTranslatef(0.0,0.0,headZ);
上記のgluLookAt(...)のポイントは何ですか?カメラを使用しようとしていて、それをlookAt point
画面の中心として与えていたときではありませんか?