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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
shang

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

#1

投稿記事 by shang » 9年前

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

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

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

shang

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

#2

投稿記事 by shang » 9年前

アスペクト比が同じだったら解像度が違ってもこれで大丈夫なんですが。
出来ればアスペクト比が違う場合でも一発で計算したいです。

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

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る