スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ステレオカメラリグ更新メモ: 画角が合わない・・・

ちょっと困っていることがありまして。

 

ブログで公開しているステレオカメラリグを近々更新しようと思って最近進めているのですが、V-Rayにも対応させたいのでカメラをvrayPhysicalCameraに載せ替えたバージョンも作成しようとしているのですが、ここで問題が生じました・・・・

 

HITへの対応は、vrayPhysicalCameraにはオフセットの機能があったので対応は思ったよりも簡単だったのですが、カメラの画角で躓きました。3ds maxの標準カメラとvrayPhysicalCameraとで、同じFocal Length値でも、画角が違ってしまうようなのです。

standerd_vs_vrayPhysicalCamera_01

上図のように、同じFocal Length値でも、FOV値がそれぞれ違ってしまっています。実際に、カメラビューを確認すると微妙に画角が違うようです。

 

ステレオカメラリグではFOV値を入力して、その値をそれぞれのカメラを渡しています。標準カメラはFOV値を受け取るようになっているので単に数値を渡しているのですが、vrayPhysicalCameraは簡単にいきませんでした。

 

困っているのは、V-Ray1.5です。V-Ray2.0からはFOV値を受け取れるのですが、1.5はfocal lengthでしか画角のコントロールができません。そこで、


focal length = film gate/(2*tan(FOV/2)) = 36/(2*tan(32.072/2)) = 62.625


※3dsmaxのtan()は"角度"を入れる仕様になっています。

という計算をスクリプトコントローラ上でやるようにしました。このようにしてfocal lengthの値を求めてそれをvrayPhysicalCameraに渡そうと思ったのですが、その値を入れてもFOVが狙いと違ってしまったわけです。最初は1.5で作業していたのでFOV値が見えず、どうしてズレるのか分からなかったのですが、2.0で開いてみたところ上図の赤枠のようにFOVの数値が違っていたため気がつくことができました。

 

なぜなの・・・V-Ray・・・

 

V-Ray2.0であれば、focal lengthで数値を渡すのではなく、FOVで入力できるようになっているので、その値を入れれば画角は狙い通りにピタリといきました。でも1.5では、それができないので困ってしまっているのです・・・ FOVが正しくないと、視差量の計算が狂うのでとてもマズイのです。

 

そのズレに何か法則性があれば、スクリプトで吸収できるかなとも思ったのですが力尽きました・・・ Focal lengthに対してそれぞれのFOVの数値を取って、標準カメラとvrayPhysicalCameraの比をグラフにしてみたりして何か見いだせないか検討しましたが、反比例であることはわかるものの、そこから先が分からず・・・

 

standerd_vray_graph


※縦軸が比、横軸がレンズのmm数です。

 

1.5を捨ててしまえばいいのですが、何か釈然とせず・・・

1.5使うこともありますからね・・・

むむむ。

スポンサーサイト

テーマ: 3DCG - ジャンル: コンピュータ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。