今日のShaderリーディング0718



例のごとくまずレイマーチで距離dを得る。レイマーチは連続的ノイズで十分にゆがめられた三次元スカラー場(d)を測定する。
その後オブジェクトに当たりそうなものの、dが遠い(大きい)ときに限り密度が低い(すぐレイマーチが通過した)と判断し、色が加算されず赤色かつ透明に仕上がる。

dが近い(小さい)ときに限り密度が高い(何回やってもレイマーチが進めない)と判断し、色が加算されて白色かつ非透明に仕上げる


レイマーチで
「Objに当たる方向であったが、dが大きくてObjを通過してしまった→赤黒系の色」
「Objにそもそも当たらなかった→そのピクセルには何も映らない」
「当たったが、dが小さすぎてレイマーチをたくさん繰り返してるうちに密度ldが高くなってsumが加算されて白くなった」
の三パターンに分かれる

遠距離の点光源:点光源からの距離(lDist)が長い場合、mainImage関数内の sum.rgb+=(lightColor/exp(lDistlDistlDist*.08)/30.); の行により、ピクセルの色が暗くなる。これは、物理的には光源から遠いところほど暗く見えることを表している。

この記事が気に入ったらサポートをしてみませんか?