Loading video...
Video Failed to Load
Unity URP上でLTC(Linearly Transformed Cosines)によるエリアライトを実装してみました。 パストレーシングと同じようなクオリティのエリアライトがリアルタイムで動作して感動しました!発明された方は偉大!
54,433 views • 1 year ago •via X (Twitter)
9 Comments

実装途中でバグった結果を供養しておきます🙏 行列の乗算順序が間違っているという凡ミスでした…

LTC(Linearly Transformed Cosines)についてざっくり解説 1/n GGXなどの複雑なBRDFの分布を解析的に半球面上の積分することは不可能なので、パストレーシング等で数値的に積分する必要があり、従来はリアルタイムなエリアライトの実装は困難でした。

2/n 一方で、clamped cosineの単純な分布であれば、解析的に積分ができます。 clamped cosineの分布を線形変換(行列変換)することでGGXの分布を近似します。 GGX近似の逆変換した領域内でclamped cosineのエリアライトの部分を積分することで、なんとGGX分布の近似を解析的に積分できます!!

3/n GGX近似の逆変換の行列をLUTとして事前に計算しておけば、ランタイム時にはclamped cosineの積分を計算するだけなので、エリアライトをリアルタイムに実装できます。 LUTは64x64の小さい2DのテクスチャでOK ・U方向はroughness、V方向はNdotVに対応した値 ・LUTの中身は変換行列(の成分の一部)

ちなみに、LTCを発表した Eric Heitz さんはUnity Technologies所属でしたが、今はIntel所属みたいですね。

ゆるゆるシェーダー交流会の発表資料を公開しました! LTC(Linearly Transformed Cosines)によるエリアライトのUnity URP実装の解説です。

ブログも更新しました!

20年程前に3DCGをかじった者からすると、このクォリティのものがリアルタイムで動作し結果が瞬時にわかるのは感動ものですね。出力しては数値をいじり微調整…なんてしてたころとは雲泥の差です。

なんというブレークスルー…
Related Videos
Sensitive content
ファンティアに投稿しました!「MMD ryona 崩壊スターレイルのカフカさんがクリームまみれにされてしまい、パフェの具材にされてしまう動画」 アンケートを取った動画をやっと作ることができました。参加してくださった方ありがとうございました。 #リョナ #messy
MKDR
13,057 views • 2 years ago

