Fast Shadow Receiverは少し複雑です。なぜなら影の落ちる環境オブジェクトや影を落とすProjectorと関連付けられて動作するからです。そのためFast Shadow Receiverをシーンに導入するには、これらの関係をセットアップする必要があり、次のような手順を行なうことになります。
- パフォーマンスの問題となっている大きな環境オブジェクトを選ぶ。
- 大きな環境オブジェクトから影を取り除く。
- Shadow Receiverオブジェクトを作成し、環境オブジェクトに関する情報をセットアップする。
- Shadow ReceiverオブジェクトにProjectorを割り当てる。
もし既にBlob Shadow Projectorを使っているのであれば、Easy Setup Wizardを使うことができます(Version 1.4.0以降)。Wizardの指示に従うだけで全てのセットアップが完了します。詳細についてはEasy Setup WizardでProjector Managerをセットアップする を参照してください。
もしシャドウマップをお使いの場合、もしくは何らかの理由でWizardを使いたくない場合は従来通り下記のリンクを参照の上、Inspector Viewでセットアップしてください。Easy Setup Wizardをご利用になる場合でも、下記のリンクは詳細を理解するのに役に立ちます。
- シーンの中に少数のProjectorしか存在しない場合: Projectorと一緒に使う場合の手順
- シャドウマップを使いたい場合: シャドウマップと一緒に使う場合の手順
- シーンの中に大量のProjectorが存在する場合、もしくは動的に生成されるProjectorが存在する場合: 多数のProjectorと一緒に使う場合の手順.
ライトの投影を行なう場合も、影の投影と手順は同じです。違うのはProjectorに持たせるマテリアルだけになります。マテリアルのシェーダーには”FastShadowReceiver/Projector/Light x Shadow”を使うことができます。このシェーダーはライトと同時に影を投影することもできます。影を投影するには、Light Projector Shadow ReceiverコンポーネントをProjectorオブジェクトに、Light Projector Shadow Casterコンポーネントを影の元になっているオブジェクトに追加します。詳しくはSpotLights + Fake Shadowsデモを参照してください。
弾痕の投影も同じ手順で実現することも可能ですが、大量の弾痕を投影するために大量のProjectorを用意するのは大変ですし、あまり効率も良くありません。BulletMarksデモではひとつのCustom Projectorだけで弾痕をたくさん生成するサンプルになっています。このデモで使われているスクリプトを参考に、アプリケーションの仕様に合うようにスクリプトをカスタマイズしてお使いください。
マルチスレッドでメッシュにレイキャストをするためにMesh Treeを使いたい場合には、Multithreaded Raycastデモを参考にして下さい。また、Mesh Treeの作成もご覧下さい。