Some links of diffuse reflection

よくある質問・ 答えが載っている記事・簡単な説明の追記

  • ※ 上の資料を理解するには 少なくても 高校 2 年の数学ぐらいの知識が必要になります. (積分が出てくるので)
  • Q ディフューズ反射のエネルギー保存則とは何か?
    • A. 上の (A)
    • 例えば完全なディフューズ反射面のアルベドの反射率が 100% だとします.
    • この面に真上から垂直に 100 個の光の粒子をぶつけた場合, それら 100 個は吸収で減ることもなく 100 個とも半球状に散ります.
    • この面をある視点から見た場合, その一部が実際に目の方に飛んでくるので, ある一方向に飛んでくる光の粒子の数は 100 個より小さくなっているはずです.
    • 例えば, 真上方向に立体角は 1 sr の範囲に飛んでいく光の粒子の数が何個かというと 100 個 × ( 1 / π ) = 31.83 個 です.
    • この ( 1/ π) はディフューズ反射のエネルギー保存のために必要な固定値で, これを正規化係数と言います.
    • ちなみに真上ではなく, 斜め 45 度の方向に立体角は 1 sr の範囲に飛んでいく粒子の数は 100 個 × ( 1 / π ) * cos 45 ° = 22.5 個になります.
  • Q. ディフューズ反射のエネルギー保存則のためにどうして 1/π が出てくるのか?
    • A. 上の (A)
    • ディフューズ反射時の Radiant intensity (W/sr) は cosθで 分布
    • それを半球面の座標系で定積分して正規化係数を求めると 1/π
  • Q. ディフューズ反射時に, どの視点から見ても 同じ放射輝度に見える理由は何か ?
    • A. 上の (B),(C)
    • ディフューズ反射時の Radiant intensity (W/sr) は cos θで分布
    • それを見た際の Radiance (W /( sr*m^2) )については 見かけの面積が dA cos θ なので, 前述の Radiant Intensity をこれで割り算すると cos θが打ち消しあって同じ放射輝度(Radiance)に見える
  • Q. 今までのゲームのライティングでは 1/π を乗算しなかったのはなぜか?
    • A. 上の (D)
    • アーティストがマテリアルを調整しやすいようにするため
      • 白いアルベドテクスチャが貼られている面に対して垂直に, インテンシティ 1.0のディレクショナルライトを当てた際に 白いアルベドテクスチャに見せるため
    • あるいは プログラマがエネルギー保存をまだ意識していなかったから
  • Q. Punctual Light を扱うときに π を乗算するのはなぜか?
    • A. 上の (D), (E)