カラーチャンネル書き込みマスクを設定し、GPU がレンダーターゲットのチャンネルに書き込むのを防ぎます。
デフォルトでは、GPU はすべてのチャンネル (RGBA) に書き込 みます。ある効果では、特定のチャンネルを変更しないでおきたい場合があります。例えば、色のレンダリングを無効にして色のない影を描画するなど、です。また、色の書き込みを完全に無効にして、他のバッファに書き込まずに 1 つのバッファにデータを集めることができます。例えば、レンダーターゲットに書き込まずに、ステンシルバッファに収集する、などです。
機能名 | ビルトインレンダーパイプライン | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP |
---|---|---|---|---|
ColorMask | あり | あり | あり | あり |
このコマンドは、レンダー状態の変更を行います。Pass
ブロックで使用すると、そのパスのレンダー状態を設定することができます。また、SubShader
ブロックで使用すると、そのサブシェーダー内のすべてのパスのレンダー状態を設定することができます。
シグネチャ | 構文例 | 機能 |
---|---|---|
ColorMask <channels> |
ColorMask RGB |
デフォルトのレンダリングターゲットの指定されたチャンネルに書き込みます。 |
ColorMask <channels> <render target> |
ColorMask RGB 2 |
上と同様ですが、指定されたレンダーターゲットに対して実行されます。 |
パラメーター | 値 | 機能 |
---|---|---|
render target | 0 から 7 の整数 | レンダーターゲットのインデックス |
channels | 0 |
R、G、B、A の各チャネルへの色の書き込みを有効にします。 |
R |
赤チャンネルへの色の書き込みを有効にします。 | |
G |
緑チャンネルへの色の書き込みを有効にします。 | |
B |
青チャンネルへの色の書き込みを有効にします。 | |
A |
アルファチャンネルへの色の書き込みを有効にします。 | |
R 、G 、B 、A をスペースなしで組み合わせたもの。例: RB
|
指定されたチャンネルへの色の書き込みを有効にします。 |
Shader "Examples/CommandExample"
{
SubShader
{
// SubShader を定義する残りのコードをここに記述
Pass
{
//このパスの RGB チャネルへの書き込みのみを有効にします。これにより、アルファチャネルへの書き込みが無効になります。
ColorMask RGB
// Pass を定義する残りのコードをここに記述
}
}
}
このサンプルコードでは、SubShader ブロックでこのコマンドを使用するための構文を示しています。
Shader "Examples/CommandExample"
{
SubShader
{
// この Subshader の RGB チャネルへの書き込みのみを有効にします。これにより、アルファチャネルへの書き込みが無効になります。
ColorMask RGB
// SubShader を定義するのころのコードを個々に記述
Pass
{
// Pass を定義する残りのコードを個々に記述
}
}
}