SkinのLUTを作ってみた。Mappingについて。Otherリハビリ大分浦島太郎状態なので,リハビリのためのメモ。結論として,完全に理解できなかった(特に数式変形が...)。勉強成果としてメモだけを残しておく。間違っている可能性あり。2002]を見ると良い。1960]と同じ手順でやればよいが,この本では放射強度で導出しているので,レンダリング方程式を導出する際は放射輝度を用いて計算を進めればよさそう。radiationを考え,放射照度や放射束などを順次定義していく,次に媒質中を進むことを考えて,散乱現象を立式化する。散乱では,吸収と放出が発生するとし,どのぐらい吸収するか放出するかを示す吸収係数と放出係数を導入する。散乱するかどうかは媒質中の物質と当たるかどうかに依存するから,密度が高ければ当たる可能性が高いし,密度が低ければ当たる可能性は低くなるから,(密度)×(係数)で実際の値を求められるので,吸収はマイナス値,放出はプラス値として計算できる。散乱するということは物質なり粒子なりと衝突することと考えると,ボールを壁に投げて跳ね返るように,散乱現象によって方向が変わる可能性がある。どの方向にいくかを位相関数とし導入し,全方向についての積分をとることで値が求めることができる。ここまで,散乱について考えてる。黒体放射のような物質そのものによる光の放出は考えていなかったので,最後に自己照明要素を足して,ボリュームレンダリング方程式が導出できる。2014]でも取り上げられているように,どちらを選ぶか迷いどころ。照明器具などは測光量で取り扱われているものがおおいので,Frostbiteに習って測光量にするのが今時なのかもしれない。あのエンジンもそうだし,ドラゴンエンジンとかもそうなっていそうな話をちらりと聞いたり。IESプロファイル使っているところは大体そうなのかな?ちなみに放射量と測光量の違いは被視感度を物理量に掛けているかどうか。2016]を見るのが一番良い。この文献を見ると分かるが超絶詳しく説明されている感がある。これから実装するのであれば,次をサポートしておくのが良いのかもしれないです。2012]で発表されたモデルで数式で表すと次のようになります。baseColor\)は基本色,\(\theta_l\)は,法線とライトベクトルのなす角,\(\theta_v\)は法線と視線ベクトルのなす角,\(\theta_d\)はライトベクトルとハーフベクトルのなす角で,\(m\)は面の粗さを表現するパラメータです。Diffuseは下図のように,最大で1.5倍程度に値が増幅される恐れがあり,エネルギー保存が守られないという問題があります。2014]では1を下回るように調整を加えました。この調整は完全に1になるものではないですが,十分に1に近い値とのことです。この調整を加えた計算処理は次のようになります。energyFactor;}[/hlsl]Cook-TorranceCook-TorranceはPhongよりもより精密なモデルとされています。Cook-Torranceは金属の反射モデルに適しているとされています。Cook-Torranceモデルは次のように表されます。\theta_l}\end{eqnarray}ここで,\(F\)はフレネル項,\(G\)は幾何減衰項,\(D\)はマイクロファセット分布関数とします。一昔前のモデル一昔前までは,\(F\)はSchlickによる近似,\(G\)はTorrance・Sparrowによるモデル,\(D\)にはBeckmann分布を使用しました。これらを数式で表すと次のようになります。2013]では,\(F\)に球面ガウシアンによる近似,\(G\)はSchlickモデル,\(D\)にはTrowbridge-Reitzモデルを使用します。これらを数式で表すと次のようになります。1)^2}{8}\end{eqnarray}とします。Smith,\(D\)にはGGXを用います。Smith関数は次のようになります。0\)の場合に\(0\)となります。\frac{\alpha^2(1-\cos^2(\theta_m))}{\cos^2{\theta_m}}}}{2}\end{eqnarray}となります。B.に詳細な記載があります。2014]で,次のような実装コードが示されています。Furnace試験と呼ばれる方法が記載されています。function)とします。サーフェイスが放射輝度を吸収しないとすると,散乱の際に光線の放射輝度は完全に保たれます。したがって,マイクロファセットベースの散乱モデルによる検証すべき重要な性質は,サーフェイスの吸収がゼロであるときに,散乱された光線の分布が完全に正規化されることです。フレネル項が常に1の場合には,光線は透過しません(サーフェイスに入り込まない)。この場合において,光線はエネルギー損失無しで全て反射し,分布が正規化されます。Furnace試験方程式によってモデル化されます。1\end{eqnarray}直観的には,出射方向からのレイキャストが1度あるいは多数回散乱し,偶然サーフェイスから出ることを表します。一般的な解析的BRDFはマイクロサーフェイス上で複数回散乱するモデルではありません。シャドウイング関数によってBRDFから複数回のバウンスする光線は取り除かれます。Furnace試験方程式を満たしません。Furnace試験は使用できません。2014]にあります。Furnace試験方程式と呼ばれ,次式で与えられます。2014]の式(12)に掲載されています。難しそうなので,あとで時間をみてどっかでちゃんとまとめておきたいなぁ...。投稿ナビゲーションゲームプログラマーになります。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。コメントデータの処理方法の詳細はこちらをご覧ください。WordPress.com.。