レンダリング方程式の変数変換
このページは レイトレ Advent Calendar 2017 の記事である. 本ページでは,レンダリング方程式の変数変換について考える.
記号について
本ページでは以下の記号は定義済として扱う.
記号 | 説明 |
---|---|
ωn | 単位法線ベクトル |
ωi | 入射方向の単位ベクトル |
ωo | 反射方向の単位ベクトル |
Lo | ある点からの反射光の放射輝度 |
Le | ある点が自発光している場合の放射輝度 |
Li | ある点への入射光の放射輝度 |
S2 | 半球上の微小立体角の集合 |
M | 空間中にある物体上の微小面積の集合 |
fr | BRDF |
微小立体角を積分する形のレンダリング方程式は式1で表される.
Lo(x,ωo)=Le(x,ωo)+∫S2fr(x,ωi,ωo)Li(x,ωi)cosθωndσ(ωi)
式1では, 方向 ωi を中心とした微小立体角を半球上で積分することによって 放射輝度の計算を行っている.
一方で,入射方向 ωi ,出射方向 ωo の代わりに, 下図のように空間中の3点を接続する形のレンダリング方程式を考えることもできる.
3点接続のレンダリング方程式では, 点 x″ を中心とした微小面積を 空間中の物体上で積分することで放射輝度の計算を行う.
微小面積の積分では,点 x から半球を通して見える範囲の微小面積のみを積分したい. そこで次の関数を導入する.
V(x↔x″)={1 (xとx″の間に遮蔽物が無い場合)0 (xとx″の間に遮蔽物がある場合)
この関数によって,点 x から半球を通して見えない微小面積をカットする.
次に,微小立体角 dσ と微小面積 dA の関係は,下図から式3のように表すことができる.
dσ=dAcosθωn″|x−x″|2
式2,3から,式1を基にして微小面積を積分する形のレンダリング方程式は
Lo(x→x′)=Le(x→x′)+∫Mfr(x′→x→x″)L(x←x″)V(x↔x″)cosθωncosθωn″|x−x″|2dA(x″)
となる.
まとめ
本ページではレンダリング方程式の変数変換について簡単にまとめた. 積分の変数変換ができれば,論文の式の検証ができたり自分で新しい式を考えることができて 便利です.
参考文献
- James T. Kajiya: The rendering equation (1986)