Loading video...

Video Failed to Load

Go Home

Unity URP上でLTC(Linearly Transformed Cosines)によるエリアライトを実装してみました。 パストレーシングと同じようなクオリティのエリアライトがリアルタイムで動作して感動しました!発明された方は偉大!

54,433 views • 1 year ago •via X (Twitter)

9 Comments

がむ's profile picture
がむ1 year ago

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

がむ's profile picture
がむ1 year ago

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

がむ's profile picture
がむ1 year ago

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

がむ's profile picture
がむ1 year ago

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

がむ's profile picture
がむ1 year ago

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

がむ's profile picture
がむ1 year ago

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

がむ's profile picture
がむ1 year ago

ブログも更新しました!

sherrice's profile picture
sherrice1 year ago

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

シンプルスター's profile picture
シンプルスター1 year ago

なんというブレークスルー…

Related Videos