シャドウ
シャドウはゲームにリアリズムを追加する優れた方法です。しかし、ダイナミック(リアルタイム)シャドウは、高コストでランタイムパフォーマンスが低下する可能性があります。シーンに静的なシャドウを追加するよりも性能が高い方法については、ライトマップをご覧ください。
PlayCanvasエンジンは、シャドウマッピングと呼ばれるシャドウのアルゴリズムを実装しています。完全にクロスプラットフォームであり、モバイルおよびデスクトップの両方で動作することが保証されています。
シャドウの有効化
デフォルトでは、PlayCanvasではシャドウキャストは無効になっています。自分で明示的に有効にする必要があります。幸いなことに、シャドウの有効化は簡単です。まず、シーンでシャドウをキャストするライトを特定します。 Hierarchyでライトを選択し、Inspectorパネルでプロパティを編集します。各ライトには「Cast Shadows」というオプションがあります。このオプションをチェックすると、シーン内のシャドウキャストグラフィカルオブジェクトにシャドウが生成されます。
次に、シーン内のどのグラフィカルオブジェクトがシャドウをキャストおよび受信するかを指定する必要があります。デフォルトでは、すべてのレンダリングおよびModelコンポーネントがシャドウをキャストおよび受信します。これらのプロパティを変更するには、Hierarchyでエンティティを選択し、InspectorでRenderコンポーネントまたはModelコンポーネントを検索し、「Cast Shadows」と「Receive Shadows」オプションを必要に応じてオフにします。
シャドウカスケード
大面積の方向性シャドウを使用すると、しばしばアンチエイリアシングが発生し、カメラの近くの影が低解像度になることがあります。単一のシャドウマップで影をキャプチャするには、この問題を改善するために非常に高い解像度が必要ですが、実用的ではありません。
シャドウカスケードは、この問題を解決するために、ビュー方向を沿ってカメラビューフラスタムを分割し、各分割に別個のシャドウマップを使用する方法です。これにより、近くのオブジェクトには1つのシャドウマップが割り当てられ、遠くのオブジェクトは別のシャドウマップがキャプチャされます。オプションで、その間にさらにシャドウマップを追加します。
ただし、シャドウキャスティングメッシュの数に影響を与えるため、シャドウカスケードの数はパフォーマンスに影響を与えます。
次のプロパティを使用して、シャドウカスケードを設定できます。
カスケード数
カスケード数は、ビューフラスタムの分割数を表し、1、2、3、4の値が設定できます。既定値の1は、単一のシャドウマップを表します。
単一のシャドウカスケードを示すスクリーンショット。
4つのシャドウカスケードを示すスクリーンショット。