GPU の Alpha-to-coverage モードを有効または無効にします。
Alpha-to-coverage モードは、植生シェーダーなど、アルファテストを使用するシェーダーでマルチサンプリングアンチエイリアス (MSAA) を使用する場合に発生する過剰なエイリアシングを軽減することができます。これを実現するために、Alpha-to-coverage モードは、フラグメントシェーダー出力のアルファ値に比例させて、マルチサンプルカバレッジマスクを修正します。
このコマンドは、MSAA との併用を想定しています。MSAA を使用しないときに Alpha-to-coverage モードを有効にすると、予測しない結果になることがあります。これは、グラフィックス API や GPU によって処理が異なるためです。
機能名 | ビルトインレンダーパイプライン | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP |
---|---|---|---|---|
AlphaToMask | はい | はい | はい | はい |
このコマンドは、レンダー状態の変更を行います。Pass
ブロックで使用すると、そのパスのレンダー状態を設定することができます。また、SubShader
ブロックで使用すると、そのサブシェーダー内のすべてのパスのレンダー状態を設定することができます。
シグネチャ | 構文例 | 機能 |
---|---|---|
AlphaToMask <state> |
AlphaToMask Off |
Alpha-to-coverage モードを有効または無効にします。 |
パラメーター | Value | 機能 |
---|---|---|
状態 | On |
Alpha-to-coverage モードを有効にします。 |
Off |
Alpha-to-coverage モードを無効にします。 |
Shader "Examples/CommandExample"
{
SubShader
{
// SubShaderを定義する残りのコードをここに記述。
Pass
{
// このパスの Alpha-to-coverage モードを有効にします
AlphaToMask On
// パスを定義する残りのコードをここに記述。
}
}
}
このサンプルコードでは、SubShader ブロックでこのコマンドを使用するための構文を示しています。
Shader "Examples/CommandExample"
{
SubShader
{
// このサブシェーダーの Alpha-to-coverage を有効にします。
AlphaToMask On
// サブシェーダーを定義する残りのコードをここに記述。
Pass
{
// パスを定義する残りのコードをここに記述。
}
}
}