2010年5月28日金曜日

物理挙動っぽいカメラを作ってみた

以前からフォトリアルな画作りにはカメラ(リアル・CGとも)の勉強がもっと必要だと
感じていたので、実際の制作に役立つかはさておき、自由研究的なノリで作ってみた。
画角、トーンマップ、被写界深度が正しく連動するカメラ。



内部的にでたらめな計算が多いので、物理的(Physical)というよりは現象的、
「Phenomenon Camera」と言った方が正確かもしれない。 詳細は以下に。


【制作目的】
 HDR環境下で、実在のスチルカメラと同じ設定のみを用いて、現実に近い
 レンダリングイメージが作れるカメラを目指す。
 現実のカメラの知識のみで絵作りが出来る事が目標。
 画角・トーンマップ・被写界深度の物理的な相互連動に加え、クオリティと
 計算負荷の自動コントロールも行う。

【条件・設定】
 光源はHDR。マテリアルは物理的に正しいシェーダを用いて、正しい
 ダイナミックレンジを持ったシーンを用意する。

 レンズは14~54mm、f2.8~3.5のズームレンズという設定。
 ズームに合わせてリニアにf値が変化するものとする。
 Aimカメラをベースとし、オートフォーカスを実現する。
 カメラシェイプノードに、一般的なスチルカメラの設定項目を
 エクストラ・アトリビュートとして追加。
 そのパラメータを使って各アトリビュートのエクスプレッションを作成していく。
 追加アトリビュートは以下の5つ。

 ・焦点距離
 ・開放F値
 ・絞り値
 ・シャッター速度
 ・フィルムのISO感度


【エクスプレッションの構築】
 エクスプレッションで以下のように計算を行い、関連付けしていく。

  ・焦点距離 から 開放F値 を算出
  ・開放F値絞り値 から 最終的なF値 を算出
  ・合焦距離焦点距離最終的なF値 から 被写界深度 を算出
  ・最終的なF値シャッター速度ISO感度 から トーンマップを算出
  ・被写界深度 から レイサンプル数 を算出
 
 最後の項目はカメラと関係なく、クオリティと負荷のバランスのための設定。
 レンダー結果を比較すると、ボケの面積が広いほどノイズが多かったので
 被写界深度が浅い(ボケが多い)ほどサンプル数が上がるように設定した。
 
 
【完成したカメラでのレンダリング】
 いろいろな設定でのレンダー結果。
 
F001
① f=32mm,1/140sec,F1.4,ISO100,距離113.5cm
 
F060
② f=14mm,1/140sec,F1.4,ISO100,距離113.5cm
 
F120
③ f=54mm,1/140sec,F1.4,ISO100,距離113.5cm
 
F180
④ f=20mm,1/140sec,F1.4,ISO100,距離40.2cm
 
F240
⑤ f=20mm,1/140sec,F1.4,ISO100,距離63.8cm
 
F300
⑥ f=20mm,1/140sec,F1.4,ISO100,距離19.1cm
 
F360
⑦ f=20mm,1/140sec,F1.4,ISO100,距離67.5cm
 
F420
⑧ f=20mm,1/140sec,F4.0,ISO100,距離67.5cm
 
F480
⑨ f=20mm,1/140sec,F1.0,ISO100,距離67.5cm
 
・レンズが広角になるほど画面が明るく、被写界深度が浅くなる(①②③)
・被写体(合掌距離)が近いほど、被写界深度が浅くなる(④⑤⑥)
・絞りが大きいほど画像が暗く、被写界深度が深くなる(⑦⑧⑨)
 
というような連動が割と自然に実現できた気がするので、今後しばらく使ってみて、
さらに精度を上げてみようと思う。



10 件のコメント:

  1. どうも初めまして。Maya体験中の初心者です。
    カメラの知識は全然なにのですが、とてもいい感じに見えますね。
    是非参考にしたいのですが、良かったらサンプルシーンをアップして頂くことは可能でしょうか?

    返信削除
  2. サンプルシーンをアップしましたので、下記URLからどうぞ。
    http://maya-memo.blogzine.jp/blog/files/phy_cam_sample.zip
    Mayaのバージョンは2011、ファイル形式はmaになります。
    IBLに使用するHDR画像は付属していませんので、各自でご用意ください。

    返信削除
  3. 頂きました。ありがとうございます!
    参考にさせていただきます。

    返信削除
  4. 初めまして
    ��AYAの被写界震度について調べていたらここにたどり着きました。
    動画の出来が素晴らしいですね。私も是非参考にさせていただきたいのですが、サンプルシーンをいただけますでしょうか?

    返信削除
  5. サンプルシーンを再アップしました。下記URLからどうぞ。
    http://maya-memo.blogzine.jp/blog/files/phy_cam_sample.zip
    詳細は以前と同様になります。

    返信削除
  6. ありがとうございます。
    エクスプレッションとても参考になりました。デフォのFストップは使ってないんですよね?
    貴重なデータを頂き、感謝いたします。

    返信削除
  7. カメラシェイプのF Stopですよね?
    あの被写界深度の設定はMayaレンダーのみ有効で、mental rayの場合は効果がなかったと思います。

    返信削除
  8. こんにちは。Mayaでレンダリングを勉強しています。
    すごく魅力的な動画ですね。どんなエクスプレッションの式を書いてらっしゃるのかとても興味があります。
    もしよろしければサンプルシーンを頂くことはできませんか??
    よろしくお願いします。

    返信削除
  9. サンプルシーンを再アップしました。下記URLからどうぞ。
    http://maya-memo.blogzine.jp/blog/files/phy_cam_sample.zip
    詳細は以前と同様になります。

    返信削除
  10. ありがとうございます!勉強させて頂きます。

    返信削除