ページ 11

3D空間でカメラを狙った位置に置けるように一発で計算したい

Posted: 2015年12月26日(土) 11:52
by shang
人の作ったプログラムを弄って画面に画像を表示しています。画面解像度640*480で座標変換後にちょうどスクリーンの左上に画像がぴったり表示されます。それを解像度1920*1080にするとどのくらいカメラを引いたらぴったり左端になるのか計算方法がよくわかりません。色々な解像度に対応したいので一発でスマートに計算できる方法が知りたいです。

640*480だとカメラのz座標は-1.158になってました。1920*1080でも無理やり合わせるとカメラのzは-2.608でぴったりになるようです。
視野角は45度に設定してありました。sin,cos,tanとかを使って計算出来そうだけどイマイチやり方がわかりません。

一発でカメラのz座標を計算できる方法を教えてもらえないでしょうか。

Re: 3D空間でカメラを狙った位置に置けるように一発で計算したい

Posted: 2015年12月26日(土) 19:12
by shang
アスペクト比が同じだったら解像度が違ってもこれで大丈夫なんですが。
出来ればアスペクト比が違う場合でも一発で計算したいです。

WW=画面幅、HH=画面高さ

アスペクト比16:9の場合(基準を1920で計算)
camera.z = -2.608 / (1920 / WW);

アスペクト比4:3の場合(基準を640で計算)
camera.z = -1.158 / (640 / WW);