nytr: シェーダ実装構想
シェーダクラスに必要なメソッド:
- L(x->Θ)
- シェーディング点のDifferential GeometryからのRadiance計算
- tracePhoton:: ωi, Radiance -> ωo, Radiance
- PhotonのTracing用関数。ロシアンルーレットでRay Splitは起こらない。計算はてきとー
シェーダ関数 L, tracePhoton内で可能なこと:
現時点での問題点
- 純Path Tracingが無理
- どうしてもRayがSplitしてしまう。Russian Roulette無理(tracePhotonを使えば可能だが精度落ちる)
- MicroThreadのコンテキストスイッチがどうしても環境依存
- インラインアセンブリ使わないと無理