Radiative Backpropagation: An Adjoint Method for Lightning-Fast Differentiable Rendering
実装コードが 2020/08 月に公開されました.
Mitsuba2 と比較して, 最大 1000 倍早く収束する.
既存の back propagation で計算グラフを作って微分を取るばあい, レンダリング(Light Transport)用途では Jacobian などが大きくなってしまいメモリがたりなかったり state space が大きすぎて最適化がうまくいかなくなってくる.
光輸送積分式のレベルで微分を取ったりして中間的な微分計算グラフをなくす. adjoint でぺろぺろやることで効率的に back propagation する.
利点
アルゴリズムは GPU 化や並列処理がしやすい.
制約
unbias では, 計算量がパス(光路)の長さに quadratic に比例するので, 複雑なシーンは扱えない.
(レンダリング理論としては正確ではないが)bias モードにすることで効率的に計算できるようにして高速化する(そして奇妙なことに bias モードのほうが収束がよい)方法も提案している.
現状ではシェーダなどは変更できるが, visibility などは変えられないという制約がある(TODO).
その他
実装は Mitsuba2 を custom, GPU は OptiX を使っています. ただ, 現時点で公開されているコードでは, 古い mitsuba2 + OptiX 6.x API ベースになります.