SRP Batcher

スクリプタブルレンダーパイプライン (SRP) 使用時に、複数のレンダリングコマンドを効率的にバッチ処理し、CPU の負荷を軽減する仕組みである。マテリアルとシェーダーのプロパティを一度に処理し、CPU と GPU 間の通信を減らすことができる。使用環境にも依るが、レンダリング速度はおよそ1.2倍から4倍高速化される。

リンク:

SRP Batcher – レンダリングをスピードアップ | Unity Blog [公式]

ドキュメント:

スクリプタブルレンダーパイプラインバッチャー | Unity マニュアル [公式]

使い方

参考:

SRP Batcher について勉強してみる | かもそば

SRP Batcher についてまとめる | tuu33

SRP Batcher の対応方法/利用上の注意点などまとめ | アマガミナブログ

SRP Batcher 良き良き | enrike3 のブログ

SRP Batcher に対応した Unity Shader Variables | Nyahoon Games Pte. Ltd.

I need help to make my shader SRP Compatible – Unity Forum

SPR batcher on hand-written shader in URP – Unity Forum

How to make a Default Unlit Shader compatible? – Unity Forum

Material property is found in another cbuffer 警告

現象:

プロパティが適切な定数バッファに存在しない旨の警告が表示される。

Material property is found in another cbuffer than "UnityPerMaterial" (_PropertyName)

対処法:

CBUFFER_START 及び CBUFFER_END を用いて、プロパティを適切な定数バッファグループ内に宣言する。

CBUFFER_START(UnityPerMaterial)
    float4 _ColorProperty;
    float _ScalarProperty;
CBUFFER_ENDCode language: Arduino (arduino)

ドキュメント:

定数バッファマクロ | Unity マニュアル [公式]

シェーダー定数 | Microsoft Learn [公式]

定数変数のパッキング規則 | Microsoft Learn [公式]

参考:

意外と難しかった SRP Batcher 対応 | Nyahoon Games Pte. Ltd.

SRP Batcher について勉強してみる | かもそば

SRP Batcher が有効な URP 向けのシェーダを書く | e.blog

URP shader warning: Material property is found in another cbuffer than “UnityPerMaterial” – Unity Forum

互換性

参考:

What makes a shader SRP batcher incompatible? – Unity Forum

Node is not compatible with SRP batcher? – Unity Forum

not compatible, Not initialized on URP – Unity Forum

Shader loses SRP Batcher compatibility if Texel Size node is used in Shader Graph- Unity Issue Tracker

まとめ

SRP Batcher まとめ – Dynamic Baching や GPU インスタンシングとの違い/シェーダの書き方まで | LIGHT11

デモ

Benchmark (Official)

記事をシェアする:
タグ:

コメントを残す

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

Protected by reCAPTCHA