Processing math: 100%

2017年12月17日日曜日

レンダリング方程式の変数変換

rendering_equation_jacobian

レンダリング方程式の変数変換

このページは レイトレ 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(xx)={1  (xx)0  (xx)

この関数によって,点 x から半球を通して見えない微小面積をカットする.

次に,微小立体角 dσ と微小面積 dA の関係は,下図から式3のように表すことができる.

dσ=dAcosθωn|xx|2

式2,3から,式1を基にして微小面積を積分する形のレンダリング方程式は

Lo(xx)=Le(xx)+Mfr(xxx)L(xx)V(xx)cosθωncosθωn|xx|2dA(x)

となる.

まとめ

本ページではレンダリング方程式の変数変換について簡単にまとめた. 積分の変数変換ができれば,論文の式の検証ができたり自分で新しい式を考えることができて 便利です.

参考文献

  1. James T. Kajiya: The rendering equation (1986)