2010年3月31日水曜日

透明な物体のレンダリング

Translate_004_2



透明な質感をレンダリングする場合、不透明の場合に比べて注意する点が多い。
その中でも特に基本的な、レイトレースの反射・屈折の設定について。



透明な質感をレンダリングする場合、レンダリングするシーンに応じて
レイの反射/屈折/最大トレースデプス を設定する必要がある。
それぞれの値が大きければ正しく描画される可能性は高いが、その分
レンダリング負荷が増すので、必要最低限の数値設定を行うことが重要。



サンプル画像では球体に[mia_material]のプリセット[GlassSolid]を使用している。







1.正しく評価できる環境を作る

 レイが屈折の上限を超えた箇所は黒く描画されるので、
 シーン内に黒い場所があると評価が難しくなる。
 そこでカメラのバックグラウンドを白くするなどし、効果を明確にする。



Tranclate_002




2.メンタルレイの[Quality Preset]が[Draft]の状態でレンダリング

 [Raytracing]欄内の設定は、
  Reflection(反射回数): 1
  Refraction(屈折回数): 1
  Max Trace Depth(最大トレース回数): 2

 [Max Trace Depth]は1本の光線に反射・屈折合わせて何回までトレースするかの設定。



Translate_001
(サンプル:屈折回数が少ないので透明箇所が黒くなる)




3.反射・屈折が正しく描画されるまで数値を上げる


 透明な筈のボールが黒いのは光線のトレース回数が少なく、途中で計算が終わっている為。
 これらの回数を、不当に黒い部分がなくなるまで以下の手順で上げていく。
  1.[Max Trace Depth]に適当に大きな値(20など)を入れる。
  2.[Reflection]の値を、レンダー結果に変化がなくなるまで1ずつ上げていく。
  3.2で変化がなくなったら、次は[Refraction]を同様に上げていく。
  4.2、3を交互に変化がなくなるまで続ける
  5.最後に[Max Trace Depth]を[Reflection]+[Refraction]以下の数値で
   変化の起きない値まで下げる
 
 サンプルでは、
  Reflection(反射回数):1
  Refraction(屈折回数):2
  Max Trace Depth(最大トレース回数):3

 となった。もっと複雑なシーンであればこれらの数値も増える。



Tranclate_005



0 件のコメント:

コメントを投稿