3Dのゲームにおいて、影は重要な意味を持ちます。影があることで、プレイヤーはオブジェクトが3次元空間の中のどの位置にあるのかをはっきりと認識することができるからです。しかしながら、影の描画はGPUに大きな負荷をかけます。とりわけ、スペックの低いスマートフォンなどの携帯端末で大きな問題となります。Fast Shadow Receiverは影が描画される面積を最小化することで、影の描画を高速化します。

また、Fast Shadow Receiverはメッシュ探索用の探索木であるMesh Treeを提供します。このMesh Treeは影の落ちているポリゴンを探索するために用いられていますが、その他にも、ライトの投影や弾丸の跡、AIの実装などのために用いることも可能です。

特徴

  • Unity 4.3以降が必要です
  • Unity Proは必要ありません
  • Blob Shadow Projector や シャドウマップ と一緒に使います
  • 平面以外に影を落とすことも可能です
  • テレインもサポートしています
  • 低スペックの携帯端末でも高速に動作します
  • 高速化された(ただし距離減衰のない)Projector用のシェーダーが付属しています
  • 複数のProjectorやシャドウキャスターを扱うことができます
  • マルチコアプロセッサに最適化されています

リリースノート

高速化のしくみ

通常のゲームシーンでは地面のような大きな背景オブジェクトが存在しますが、このようなオブジェクトに影を描画するとパフォーマンス上の問題が発生します。なぜなら、地面のような大きなオブジェクトはスクリーンの大きな部分を占めていて、そのピクセルひとつひとつに影を描画するシェーダーを走らせるとGPUに大きな負荷がかかるためです。

そのため、地面のような大きな背景オブジェクトには直接影を落すのをやめて、代わりにShadow ReceiverをBlob Shadow Projectorとペアにして配置し、Shadow Receiverに影を落すようにします。Shadow ReceiverはProjectorからの影を受け取るのに必要最小限のメッシュを生成するので、GPUの負荷を大幅に削減できます(下の図を参照)。

Fast Shadow ReceiverはBlob Shadow Projectorと一緒に使うように設計されていますが、シャドウマップと一緒に使うこともできます。しかしながら、通常のライティングの中で影を描画するのではなく、影ポリゴンを背景とプレンドしたり、背景と乗算したりして影を描画します。そのため、通常のシャドウマップ程リアルな影を描画できるわけではありません。

Fast Shadow ReceiverはProjectorのパフォーマンスを向上させるものなので、影だけでなくライトや弾痕の投影にも適用できます。
LightProjector BulletMarks

Documents

Links

コメントを残す

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

Anti Spam Code *