慎重なラスタライゼーションを有効または無効にします。
ラスタライゼーションとは、三角形に覆われたピクセルを判断して、ベクトルデータ (三角形の投影) をピクセルデータ (レンダーターゲット) に変換するレンダリング手法です。通常、GPU は、ピクセル内の点をサンプリングして三角形で覆われているかどうかを判断することによって、ピクセルをラスタライズするかどうかを判断します。十分に覆われていれば、GPU はピクセルが覆われていると判断します。慎重なラスタライズとは、覆われる度合いにに関係なく、三角形で部分的に覆われているピクセルをラスタライズすることです。これは、オクルージョンカリング、GPU の衝突検出、可視性検出を行う場合など、確実性が求められる場合に役立ちます。
慎重なラスタライゼーションは、GPU が三角形のエッジ/辺でより多くのフラグメントを生成することを意味します。これは、より多くのフラグメントシェーダの呼び出しにつながり、GPU フレームタイムの増加につながります。
機能名 | ビルトインレンダーパイプライン | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP |
---|---|---|---|---|
Conservative | あり | あり | あり | あり |
このコマンドは、レンダー状態の変更を行います。Pass
ブロックで使用すると、そのパスのレンダー状態を設定することができます。また、SubShader
ブロックで使用すると、そのサブシェーダー内のすべてのパスのレンダー状態を設定することができます。
SystemInfo.supportsConservativeRaster API を使って、ハードウェアのサポートを確認します。このコマンドがサポートされていないハードウェアでは、この API は無視されます。
シグネチャ | 構文例 | 機能 |
---|---|---|
Conservative <enabled> |
Conservative True |
慎重なラスタライゼーションを有効または無効にします。 Requires DX 11.3+ or GL_NV_conservative_raster |
パラメーター | 値 | 機能 |
---|---|---|
enabled | True |
慎重なラスタライゼーションを有効にします。 |
False |
慎重なラスタライゼーションを無効にします。 |
Shader "Examples/CommandExample"
{
SubShader
{
// SubShaderを定義する残りのコードはここに記述します。
Pass
{
// このパスの慎重なラスタライゼーションを有効にします。
Conservative True
// パスを定義する残りのコードはここに記述します。
}
}
}
このサンプルコードでは、SubShader ブロックでこのコマンドを使用するための構文を示しています。
Shader "Examples/CommandExample"
{
SubShader
{
// この Subshader の慎重なラスタライゼーションを有効にします。
Conservative True
// The rest of the code that defines the SubShader goes here.
Pass
{
// パスを定義する残りのコードはここに記述します。
}
}
}