IBL再び

by ますお

どうやら仕事でIBL担当になりました.

IBL担当ってなんだよって事ですが,要はHDRIがあるから,ちゃんとプロダクションでIBLが使えるようにしろって事みたいです.今までのは無視でイチから整備しろと.

とりあえずPRManでサポートされているenvironment mapのimportance samplingを試してみましたが,これがなかなか厳しい. プロダクションレベルのジオメトリで許容する品質にしようと思うと,時間がかかり過ぎてとても使えません.keyとfillが分けられないのも辛い.

つー事で,しょうがないから自前でどうにかしようと思います.目標は満足できる品質内での高速化と利便性です.いくつかアイディアはありますが,果たしてどこまで上手く行くか.

何はともあれ,まずはHDRIのサンプリングです.最近はIBLと無縁だったので,少しリサーチしてみましたが,今は便利なツールがあるんですねー.

LightGen Plugin
Light Map Gen

こういうの使ってもいいんですが,光源を別で生成しなきゃいけないのはパイプライン的によろしくない.変更も面倒になります.やっぱり光源のサンプルはon the flyでやってくれるのが理想なので,自前のlight shaderを書く事にします.

サンプリング方法は色々とあるようですが,やっぱりオラァな人がベタ褒めしてるこれとかでやってみましょうかね.

Recursive Wang Tiles for Real-Time Blue Noise

HDRIをcosine-lobeとspecular kernelでconvolutionしておく事も考えましたが,これもやはり変更が面倒な点でパイプラインに易しくないので,まずは全てレンダリング中に解決してしまう方法を試そうと思います.

久しぶりにまともなR&Dが出来そうで楽しみです.