Global Illumination 入門




     出典: http://graphics.ucsd.edu/~henrik/

第14回 名古屋CV・PRML勉強会
  野田雅文(@miyabiarts)
目次
•   レンダリング
•   Local Illumination
•   光の物理量
•   BSSRDF/BRDF
•   レンダリング方程式
    – 古典的レイトレーシング
    – モンテカルロレイトレーシング
    – フォトンマップ
参考文献




                  Realistic Image Synthesis
CG Magic:レンダリング                               Physically Based Rendering
                  using Photon Mapping
Global Illuminationとは
どちらがCGでしょう?
      実物                                       CG




       出典:http://www.graphics.cornell.edu/online/box/compare.html

実世界と見分けがつかないような画像をレンダリングする技術の一つ
レンダリング
• 3次元空間中の物体を画面上に表示


      3次元空間        画面(2次元)


カメラ




              光源
ラスタライズ vs レイトレーシング




プリミティブ単位でレンダリング   ピクセル単位でレンダリング




                         画像面
Global Illumination
• 光源から視点に至る光の伝播を物理法則
  に基づきシミュレーション




                 出典: http://graphics.ucsd.edu/~henrik/
Local vs Global

Local                 Global

光線




Local + Local + ・・・ + Local + α = Global
Local Illumination
• 局所的な物体表面に入射した光が、どの
  ように出力されるかを計算


 入射光              出射光
 位置・方向・放射輝度       位置・方向・放射輝度




                     物体表面
光の物理量
 放射エネルギー     Radiant energy      J
 放射束         Radiant flux        W
 放射照度        Irradiance
 放射強度        Radiant intensity
 放射輝度        Radiance

単位時間あたりの
光のエネルギー                      単位立体角あたり
                             の放射束




       単位面積あたり             単位面積・単位立体
       の放射束                角あたりの放射束
Local Illumination
• 局所的な物体表面に入射した光が、どの
  ように出力されるかを計算
 入射光              出射光
 位置・方向・放射輝度       位置・方向・放射輝度




                     物体表面
BSSRDF
• Bidirectional Scattering Surface Reflectance
  Distribution Function
  – 双方向散乱面反射率分布関数
     • 入射した光が出てくる位置と方向の分布を示す
     • 物体内部の光の散乱を考慮




                                  物体表面
BRDF
• Bidirectional Reflectance Distribution Function
  – 双方向反射率分布関数
• BSSRDFを簡略化
• 入射点と出射点が同じ位置




                   物体表面
BRDFを用いたLocal Illumination



    移項して、積分
BRDFモデル
•        を表面特性に応じて自由に設計
    – 物理的な制限
BRDFモデル
• 様々なモデルが提案
 – Phong
 – Phong-Blinn
 – Trans-Sparraw
 – Oren-Nayer
 – Ward
 – Poulin-Fournier
 – Schlick
最も単純なBRDFモデル




           Diffuse   Specular



反射の強さの分布
Diffuse(拡散反射)

半球状のどの方向に対しても、同じ放射輝度で反射




      入射方向・出射方向に依存しない定数
Specular(完全鏡面反射)
入射角と面、反射角と面の角度が同じとなる反射
屈折
異なる物体間の特性の違いによって発生
実は反射の特殊な場合に起こる現象

          入射角により、一部反射・一部屈折
          も起こり得る(フレネル反射)
Local vs Global

Local                 Global

光線




Local + Local + ・・・ + Local + α = Global
レンダリング方程式




     どうやって求める?
レンダリング方程式




 具体的にはどのように計算する?
言い換えると
グローバルイルミネーションとは、




1. この積分を正確かつ効率的に求めること
2. BRDFを尤もらしく設定すること
レンダリング方程式の解法
• 古典的レイトレーシング
• モンテカルロレイトレーシング
 – パストレーシング
 – 双方向パストレーシング
 – メトロポリス光輸送法
• フォトンマッピング
古典的レイトレーシング




    出典: http://graphics.ucsd.edu/~henrik/
古典的レイトレーシング
• 視点から反対向きに光線を追跡
 – 拡散反射:放射輝度を計算し、追跡を終了
 – 鏡面反射:反射方向に光線を追跡
拡散面における放射輝度



光源からの直接光のみを考慮して近似


      定数    可視関数:
            光源が見えていれば、1
             見えていなければ、0
古典的レイトレーシング




    出典: http://graphics.ucsd.edu/~henrik/
問題点
 • 間接照明を考慮していない
近似(古典的レイトレーシング)   実際




    直接光が届かなくても、間接的に光は届く
間接照明
真面目に解くことを考える




入射する放射輝度の分布が複雑であるため、解析的
に求めることは極めて困難
モンテカルロ法
• ランダムサンプリングに基づく数値計算
  手法
 – 例:面積の計算
  • 大量のサンプルをランダムに散布
  • 領域内に入っているかどうかの判定は可能
モンテカルロレイトレーシング
• 半球状に光線をサンプリング
 – 各光線は再帰的にサンプリング




     サンプリングした光線の放射輝度の総和で近似
モンテカルロレイトレーシング
• 単純にサンプリングすると計算量が爆発

      計算量




近似の精度を落とさず、計算量をいかに削減するか
モンテカルロレイトレーシング
• パストレーシング
• 双方向パストレーシング
• メトロポリス光輸送法
パストレーシング
• 同じピクセルを通り、光源へ至る経路を
  ランダムに多数生成
• 各経路から得られる放射輝度を平均して、
  画素の値を求める
パストレーシング




   出典: http://graphics.ucsd.edu/~henrik/
古典的レイトレーシング vs パストレーシング




             出典: http://graphics.ucsd.edu/~henrik/
パストレーシング
• 利点
 – 視点から光源に至る経路を全て扱うことがで
   きるため、レンダリング方程式を完全に解く
   ことができる


• 欠点
 – 十分高精度に近似するためには多数のサンプ
   リングが必要
   • レンダリング時間が莫大
パストレーシングの欠点
 • 偏った経路が存在する場合に弱い




出典: http://graphics.ucsd.edu/~henrik/
双方向パストレーシング
• 光源の方からも経路をランダムに生成
• 光源からの経路上の点から、視点からの
  経路上の点へ放射輝度を伝播
メトロポリス光輸送法
• 生成した経路をランダムに摂動させるこ
  とで、新しい経路を作成
 – 尤もらしい経路ならば採用して更に繰り返し
 – 尤もらしくない経路ならば棄却
メトロポリス光輸送法
• 小さな穴が含まれるシーンに有効
フォトンマッピング
• 2段階の追跡手法
 – 1段階目:光源からフォトン(光子)を散布
 – 2段階目:視点から光線追跡し、フォトンから
   放射輝度を算出




              フォトン
パストレーシング vs フォトンマッピング


     数十時間                               15秒




            出典: http://graphics.ucsd.edu/~henrik/
オープンソース
• YafRay
• Cycles
• Vidro(http://www.vidro-project.com/)
製品
•   Mental-ray(mental images GmbH)
•   V-Ray(Chaos Group)
•   Maxwell Render(Next Limit S.L.)
•   lucile(Fixstars Corp.)
    – http://www.fixstars.com/ja/lucille/
今回話さなかった内容
• 確率的サンプリングの詳細
    – 重点サンプリング
    – 層化サンプリング
•   放射照度キャッシング
•   ボリュームレンダリング
•   パーティシペイティングメディア
•   レンダラの実装法

Global Illumination