09/02/05 03:44:14 zs1Wdwif0
>>412
座標の図を書いて計算してるなら、ミスってない限り中心点はあってると思う。
ということで、映らない原因として考えられるケースを2つ。
考えられるケース1.「注視点の設定がおかしい」
「位置=注視点」になってしまうと、「どこも見てない」ってことになり、何も写らない。
注視点は必ず位置とはずらして設定しましょう。
考えられるケース2.「>>406に書いたようにカメラに近すぎてカットされている」
「カメラの位置」から「注視点方向にOpenGL座標距離で1進んだ位置」までの範囲の映像は、
カメラに近すぎるぜってことでカットされる。(クリッピングって言うんだっけ?)
例えばデフォルトのカメラは
位置(0,0,2)、注視点(0,0,0)
になってるけど、この場合、(Z <= 1)の範囲しか描画されない。
コンポジションが512x384なら、OpenGLの座標1=512/2=256ピクセル相当。
100x100ピクセルのカラーイメージで四角を作って、その中心にカメラを置いた場合、
正対する面とカメラの距離は50ピクセル(OpenGL座標距離にして50/256=約0.195)しかないので、
カット範囲に含まれてしまい、描画されない。
対応策としては、
・十分大きなカラーイメージで四角形を作る。
(512x512以上にすれば一応正対距離1になるが、回転させると切れる部分もあるので
もうちょっと大きめになるかな。)
または
・カメラのスケールを小さくする。
(カメラが縮む→50ピクセルという距離が相対的に大きくなる→
スケールを20%(1/5倍)にすれば、50ピクセルという距離は
カメラにとっては250ピクセル相当(5倍)という扱いになる→
スケールをもうちょい小さくすれば50ピクセルが256ピクセルよりも
大きいという扱いになり、その時点でカット範囲を抜け描画される)
(↑スモールライトで自分が小さくなればネズミも大怪獣になるぜ的な感じ)
わかりづらいけど、多分こんな感じ。