アルファ出力
パフォーマンスを最適化し帯域幅の使用を最小限に抑えるため、HDRP はデフォルトにより画像フレームを R11G11B10 フォーマットでレンダリングします。ただし、このフォーマットはその他の画像に HDRP の出力を合成したいアプリケーションに必要となる可能性がある、アルファチャンネルを含みません。
HDRP がアルファチャンネルを出力するように設定するには、HDRP アセット (メニュー: Edit > Project Settings > Graphics > Scriptable Render Pipeline Asset) を開き、Rendering セクションへ行って、Color Buffer Format を R16G16B16A16 に設定します。ただし、このオプションを有効にするとパフォーマンスオーバーヘッドが発生することに注意してください。HDRP では、Alpha Clipping を有効にしない限り、不透明なマテリアルはアルファチャンネルで常に1を出力します。不透明なマテリアルのアルファをエキスポートしたい場合は、Alpha Clipping を有効化して Threshold を 0 に設定します。
さらに、ポストプロセスが有効化されている際は、アルファチャンネルでポストプロセス操作を適用するために、ポストプロセス操作の Buffer Format も、R16G16B16A16 に設定してください。これは HDRP アセットのポストプロセスセクションから選択できます。ポストプロセス形式が R11G11B10 に設定されている場合は、HDRP はアルファチャンネルのコピーをポストプロセスなしで出力します。
次の表では、出力フレームのアルファチャンネルに関する HDRP の動作を要約しています。
レンダリングバッファ形式 | ポストプロセスバッファ形式 | Alpha Output |
---|---|---|
R11G11B10 | R11G11B10 | アルファ出力なし |
R16G16B16A16 | R11G11B10 | ポストプロセスのないアルファチャンネル (AlphaCopy) |
R16G16B16A16 | R16G16B16A16 | ポストプロセスのあるアルファチャンネル |
なお、アルファ出力は Path Tracing でもサポートされます。
DoF と Alpha Output
アルファチャンネルのポストプロセスが必要となる可能性がある別のケースは、被写界深度を用いるシーンです。この場合、アルファが処理されていないと、合成の結果、ぼやけて見えるべきオブジェクトがシャープに切れて表示されます。詳しくは下の画像を見てください。
レンダリングおよびポストプロセス両方に R16G16B16A16 バッファ形式を使い、ソリッドカラーの青のバックグラウンド上で合成された、焦点の合っていないスフィア。この場合、DoF はアルファチャンネルに適用されており、適切な合成結果が得られる(合成に使用された出力アルファは画像解説で表示)。
AlphaCopy を使いソリッドカラーの青のバックグラウンド上で合成された、焦点の合っていないスフィア。この場合、DoF はアルファチャンネルに適用されておらず、合成スフィア周辺にシャープなアウトラインができる (合成に使用された出力アルファは画像解説で表示)。
Temporal Anti-Aliasing とアルファ出力
Temporal Anti-Aliasing (TAA) が有効化されている場合、アルファチャンネルにポストプロセスを有効化することが強く推奨されます (レンダリングおよびポストプロセスの両方に R16G16B16A16 フォーマット)。アルファチャンネルがポストプロセスされていなければ、下の画像のようにアルファマスクにジッターが生じます。
AlphaCopy を使い TAA でレンダリングされたスフィア、アルファチャンネルを用いてソリッドカラーの青のバックグラウンド上で合成。アルファチャンネルは TAA により一時的に安定化されておらず、最終画像にジッターが生じます。
TAA でレンダリングされたスフィア (レンダリングおよびポストプロセスの両方に R16G16B16A16 )、アルファチャンネルを用いてソリッドカラーの青のバックグラウンド上で合成。TAA もアルファチャンネルに適用されており、安定した合成結果が得られます。