-1

Unity で、シャドウ キャスティングが原因で、トップダウン ビューまたはアイソメ ビューでオフカメラ オブジェクトをカリングできないという問題が発生しました。

ディレクショナル ライトは対角線であるため、ライトが来る方向でカメラ ビューの外側にあるオブジェクトは、カメラ ビューに影を落とす可能性があります。実際には、これらのほとんどすべてのオブジェクトは、カメラ ビュー内のはるか下の地面に影を落とすだけなので、実際にレンダリングする必要はありません。ただし、Unity はそれを認識せず、とにかくそれらの影をレンダリングするため、パフォーマンスが大幅に低下します。

ここに画像の説明を入力

これをオクルージョンカリングで解決してみました。地面に巨大な平面を作成し、静的としてマークし、このオブジェクトのオクルージョン カリングをベイク処理して、地面の下にあるものがレンダリングされないようにしました。残念ながら、これは役に立たず、影が地面の下のカメラ ビューに入る可能性のあるすべてのオブジェクトがまだレンダリングされています。

別の解決策として、オブジェクトごとに生成される影の範囲を制限することもできます。これらのオブジェクトの多くは非常に低く、常に地面にあるため、それらの影がオブジェクトから 1 ~ 2 メートル以上離れている可能性はありません。しかし、ユニティがこれをカリングに使用できるように、そのような値を定義する方法を見つけることができませんでした。

この問題を克服する方法に関する他のアイデアはありますか?

注: シーン全体がプロシージャルに生成されるため、地面自体を除き、静的オクルージョン カリングは使用できません。

4

1 に答える 1

0

カリングプロセスに関する情報は、何をする必要があるかを理解するのに役立つかもしれません:

  1. オブジェクトがフラスタムを離れると、Unity はそれをカリングします。まだ存在する残りのトリスはすぐにシャドウに属します。
  2. オブジェクトが錐台を離れても、まだ影を落としています。内部的に、Unity はオブジェクトの Cast Shadows モードを「Shadows Only」に変更します。これは、オブジェクト自体はカリングされますが、シャドウはカリングされないことを意味します。
  3. シャドウは、錐台の外に出たときに即座にカリングされるわけではありません。カメラの視野、ファー クリッピング プレーン、ディレクショナル ライト クォータニオンの組み合わせを使用して、いつカリングするかを決定します。
  4. テッセレーションのない巨大なオブジェクトもオクルージョンを台無しにします
  5. これはすべてエディターの観点からであり、ビルドは完全に異なる動作を示すことがよくあります。

次に、シャドウ カスケード、シャドウ距離、角度の少ないディレクショナル ライト、カメラ パースペクティブ、およびファー クリップ プレーンを減らすと、すべてカリング プロセスに役立ち、\ またはシャドウからのトリス数を減らすことができます。

ところで、オクルージョン カリングは有効なソリューションですが、システムに慣れていない場合は簡単には使用できません。

于 2021-02-08T13:00:52.883 に答える