float|vector shadowmap(string filename, vector Pndc, float spread, float bias, float quality, ...)
float|vector shadowmap(string filename, vector Pndc, float spread, float bias, float quality, ...)
vector shadowmap(string filename, vector Pndc1, vector Pndc2, vector Pndc3, vector Pndc4, float spread, float bias, float quality, ...)
独自のサンプリング矩形を指定することができます。 シャドウマップのフィルタリングが不要、または独自の微分を計算出来ないなら、同じベクトルを4回渡すことでフィルタリングを実行しないようにすることができます。
shadowmap
関数は画像が光源からレンダリングされているかのようにシャドウマップを扱います。
この関数を使えば、ディープマップとディープシャドウマップの両方にアクセスすることができます。
どちらの場合も、そのカラーのポイントへの光源の可視性を持つ各カラーコンポーネントを意味するvectorを返します。
filename
シャドウマップまたはデプスマップのパス。
Pndc
ライトの投影のNDC空間にシェーディングされているポイントの位置。
spread
シャドウの柔らかさのコントロール。
bias
デプスサンプルが必要な精度を制御します。
quality
サンプリングを増減するための一般的なコントロールで、1
がデフォルトの品質です。
Returns
サンプルポイントに到達するイルミネーションの浮動小数点の量。 例えば、そのポイントが完全にシャドウ内にあれば、戻り値は0です。そのポイントが完全に照明されていれば、戻り値は1です。
shadowmap()関数はtexture()と同じ可変長引数を受け取ります。詳細は、textureを参照してください。
ディープカメラマップチャンネル ¶
シャドウマップがディープカメラマップなら、shadowmap
関数にオプションの"channel"
を追加し、その後にマップ評価内のチャンネルの文字列名を追加します。
shadowmap(mapname, pz, spread, bias, quality, "channel", channel);
これは同じ不透明セマンティクスを使うので、実際のカラーの補色を返します。つまり、正確な結果を取得するには、通常は以下のように評価します:
{1,1,1} - shadowmap(...);
See also | |
file | |
map | |
shadow |