草とその他の詳細について

SpeedTree/LOD による木

SpeedTree アセット (Unity 版の SpeedTree Modeler によって保存された .SPM ファイル) は、他のアセットと同じように Unity によって認識されインポートされます。間違いなく、プロジェクトフォルダーのテクスチャがアクセス可能で、各 LODのマテリアルが自動的に生成されるようにしておきます。.SPM アセットを選択するときインポート設定があり、生成したゲームオブジェクトとマテリアルを微調整できます。再インポートしても、Generate MaterialsApply & Generate Materials ボタンを押さない限りマテリアルは再生成されません。そのため、マテリアルのすべてのカスタマイズは維持されます。

SpeedTree インポーターは結局、LODGroup コンポーネント で構成されたプレハブを生成します。このプレハブはシーンの中で一般的なプレハブインスタンスとしてインスタンス化されたり、テレインとペイント上でツリープロトタイプとして大量に選択されたりします。さらに、テレインは、LODGroup コンポーネントと一緒のどんなツリーオブジェクトもツリープロトタイプとして受け入れ、使用されるメッシュサイズやマテリアル数に制限をもちません (Tree Creator によるツリーと対照的)。しかし、SpeedTree によるツリーは通常、3–4 の異なるマテリアルを使用するということに注意してください。その結果、すべてのフレームでドローコールが発生するので、ドローコールの回数に反応しやすいプラットフォームで LOD ツリーを多く使用することは避けたほうがよいでしょう。

リアルタイムでシャドウを投影する SpeedTree ビルボードの作り方

ビルボードで正しく投影するために、シャドウキャスターパスの間、ビルボードはカメラに正面を向けるのではなく、光の方向に (ポイントライトの場合は、光のある位置に) 正面を向けます。

オプションを有効にするために、.spm アセットのインスペクターで Billboard LOD レベルを選択し、Billboard OptionsCast ShadowsReceive Shadows をチェックし、Apply Prefab を押します。

インスタンス化した SpeedTree ゲームオブジェクトのビルボードシャドウオプションを変更するには、ヒエラルキーウィンドウで _Billboard オブジェクトを選択し、普通のメッシュレンダラーでするのと同じように、これらのオプションをビルボードレンダラーのインスペクターで微調整します。

テレインでペイントされたツリーは、プレハブからビルボードシャドウオプションを継承します。

BillboardRenderer.shadowCastingModeBillboardRenderer.receiveShadows を使って、ランタイムにそれらのオプションを変えることができます。

報告されている問題: 据え置きレンダリングの間、他のどんなレンダラーを使ってもReceive Shadows オプションの効果がないため、ビルボードは常に据え置きパスでシャドウを受信します。

5.3 でのパフォーマンスの向上

ビルボードのバッチパフォーマンスが 5.3 で向上しました。ビルボードの動的バッチコードを実行するために複数のコアが使用されています。

バッチ理論が簡易化されました。実用的には、ビルボードはほとんどバッチを共有しないため、現在、1つのバッチは 1つのタイプのビルボードしか呼び出しません。この変更に関してはSpeedTreeBillboard.shader を参照してください。以前のビヘイビアによって、シェーダーを改正する必要があることがあります。

草とその他の詳細について