Dynamic Shadow Projector にはいくつかのプロジェクター用のシェーダーが含まれています。これらのシェーダーには2つのバージョンがあり、ひとつは Dynamic 用、もうひとつは非 Dynamic 用です。 非 Dynamic 用のものは普通のプロジェクターに、Dynamic 用のものを Dynamic Shadow Projector のプロジェクターに使います。これらの2つのバージョンにはコード上の違いはまったくありません。違いは、Dynamic 用のバージョンでは Dynamic Shadow Projector のコンポーネントによってコントロールされるいくつかのパラメータが隠されていることだけです。この事は、Gitなどのバージョン管理システムを使っている場合に有用です。なぜなら、Dynamic Shadow Projector のコンポーネントは実行時にこれらのパラメータを書き換えてしまうので、パラメータが隠されていなければバージョンの履歴を汚してしまうからです。
projectorshaders

また、いくつかのシェーダーには2つのバリエーション、with Linear Falloff と without Falloff があります。Standard Assets の Effects パッケージに付属の “Projector/Multiply” シェーダーとは異なり、Dynamic Shadow Projector に付属のシェーダーはフォールオフテクスチャを必要としません。Linear falloff を持つシェーダーは、Standard Assets に含まれている標準のフォールオフテクスチャとほぼ同じ振舞いをします。

Light シェーダーと Light x Shadow シェーダーはスポットライトを投影するのに使うことができます。投影されるスポットライトに影を付けたい場合は、2つのプロジェクターを用意して、ひとつを影を受け取るオブジェクト用に、もうひとつを影を投影するオブジェクト用にします。そして、影を受け取る側のプロジェクーに Light x Shadow シェーダーを使い、影を投影する側に Light シェーダーを使います。詳しくは Spotlight サンプルを参照してください。
lightxshadow

Shadow シェーダーはハードエッジの影(右)やぼんやりした影(左)のために使うことができます。そして、Mipmapped Shadow シェーダーは Percentage Closer Filter 風なソフトシャドウ(真ん中)を実現するために使います。詳しくはチュートリアルを参照してください。
shadow

Mipmapped Shadow シェーダーはフォールオフのバリエーションがありません。その代わりに、ミップレベルそれぞれにフォールオフを設定できます。詳しくは Shadow Texture Renderer コンポーネントを参照してください。

また、Mipmapped Shadow シェーダーはシェーダーモデル 3.0 (DirectX)、もしくは OpenGL ES 3.0、もしくは OpenGL ES 2.0 + texture lod 拡張を必要とし、古いデバイスでは正しく動作しないかもしれません。Mipmapped Shadow Fallback コンポーネントを使用して、それらのデバイス用のフォールバックを準備しておいてください。

Links

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Anti Spam Code *