Version: 2022.2
言語: 日本語
ShaderLab: Category ブロックによるコマンドのグループ化
ShaderLab コマンド: Blend

ShaderLab コマンド: AlphaToMask

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 モードを有効または無効にします。

有効なパラメーター値

パラメーター   機能
状態 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
        {    
           // パスを定義する残りのコードをここに記述。
        }
    }
}
ShaderLab: Category ブロックによるコマンドのグループ化
ShaderLab コマンド: Blend
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961