お世話になっております。
<br/>
プロジェクトにて平面反射の使用を検討しておりまして、負荷についての質問をさせてください。
<br/>
平面反射を使うにあたって、プロジェクト設定の「平面反射のグローバルクリッププレーンをサポート」を有効にした場合、平面反射を使わない(PlanarReflectionのアクタを配置しない)状態でも、処理負荷は増加するのでしょうか。
ツールチップには「平面反射がアクティブかどうかに関わらず、BasePassトライアングルのコストが最大15%増加します。」とありますが、実際に有効にしてコンソール機にてBasePassの負荷を見た限りでは、増えている様子は見受けられません。
<br/>
平面反射を使っていなくてもシチュエーションによっては増えることがあるのか、現世代のコンソール機などではそこまで増えないのかなど、何か情報をお持ちでしょうか。
お手数おかけしますが、ご確認のほどよろしくお願いいたします。
情報共有になりますが、プロジェクト設定でGlobalClipPlaneを使用する状態にした時点で機能の使用の有無に関わらずオーバーヘッドは発生していると思います。
詳細はr.AllowGlobalClipPlaneとUSE_GLOBAL_CLIP_PLANEでコードを調べると詳細が出てくるのですが、コメントに
> Enables mesh shaders to support a global clip plane, needed for planar reflections, which adds about 15% BasePass GPU cost on PS4.
とありますので15%の数値は世代的にはひとつ前になると思います。
自分は現世代機できちっと計測したことがないので細かい数値を持っていないのですが、SV_ClipDistanceが追加されるコストはターゲットコンソールや計測シーンによっても変わってくると思うのでCitySampleなどでON/OFFしてみて比較してみると良いのかもしれません。
あと、こちらの記事に特定のマテリアルのみGlobalClipPlaneの有無を操作することでチューニングした事例があるので不必要なものにオーバーヘッドが生まれる状態を打破したいときは参考になりそうです。
[mention removed]
情報共有ありがとうございます。いつも大変助かっております。
[mention removed]
こちらはご指摘いただいているようにSV_ClipDistanceによる負荷が発生します。
対象プラットフォームやコンテンツ次第では問題となる可能性もありますので、プロファイル頂いたうえで対応を検討いただけますと幸いです。
よろしくお願いいたします。
[mention removed] [mention removed]
お世話になっております。
ご回答いただきありがとうございます。
また、情報提供していただきありがとうございます、負荷が増える理由なども把握できました。
SV_ClipDistanceが増えるということで、基本的には恒常的に負荷増加が発生するということかと思いますが、
どれくらい増加するかについては現世代コンソール機では実際に測ってみるのが良さそうですので、
実際に測って数値を確認した後、採用するかどうか検討させていただきます。
ご対応いただきありがとうございました。