> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12XBOX_MSAA_PARAMETERS (XBOX One 系列)

> XBOX One 系列上的 D3D12XBOX_MSAA_PARAMETERS 深度區塊 MSAA 設定：樣本數、PS 反覆運算、過度光柵化，以及質心遮罩行為。

控制深度區塊中多重取樣消除鋸齒 (MSAA) 的設定。

## 語法

```cpp theme={null}
typedef struct D3D12XBOX_MSAA_PARAMETERS {  
    union  
    {  
        struct   
        {  
            UINT NumSamplesMsaaLog2 : 3;  
            UINT MaxSampleDistanceInSubpixels : 4;  
            UINT NumSamplesMsaaExposedToPSLog2 : 3;  
            UINT DetailToExposedMode : 2;  
            UINT ApplyMaskAfterCentroid : 1;  
        };  
        UINT Dword0;  
    };  
    union  
    {  
        struct   
        {  
            UINT MaxAnchorSamplesLog2 : 3;  
            UINT NumSamplesForPSIterationLog2 : 3;  
            UINT NumSamplesForMaskExportLog2 : 3;  
            UINT NumSamplesForAlphaToMaskLog2 : 3;  
            UINT HighQualityIntersections : 1;  
            UINT Reserved0 : 1;  
            UINT InterpolateCompZ : 1;  
            UINT InterpolateSrcZ : 1;  
            UINT StaticAnchorAssociations : 1;  
            UINT Reserved1 : 1;  
            UINT Over-rasterizationAmount : 3;  
            UINT EnablePostZOver-rasterization : 1;  
        };  
        UINT Dword1;  
    };  
} D3D12XBOX_MSAA_PARAMETERS  
```

### 成員

*NumSamplesMsaaLog2*\
類型：UINT

指定要用於 MSAA 取樣的樣本數。此值以 log2 表示；也就是說，0 = 一個樣本，1 = 兩個樣本，2 = 四個樣本，依此類推。

*MaxSampleDistanceInSubpixels*\
類型：UINT

指定像素中心與最外側子像素樣本之間的最大距離 (以 1/16 子像素為單位)。未進行消除鋸齒時，請設定為 0。

*NumSamplesMsaaExposedToPSLog2*\
類型：UINT

指定像素著色器可從像素中基本型別涵蓋範圍看到的樣本數。

*DetailToExposedMode*\
類型：UINT

指定從較高的 **NumSamplesMsaaLog2** 轉換為 **NumSamplesMsaaExposedToPSLog2** 期間所要使用的模式：

| 值 | 描述 |
| - | - |
| 0 | 遮罩掉較高的樣本。如果結果為空，則將較高位元以 OR 運算併入較低的樣本。 |
| 1 | 遮罩掉較高的樣本。 |
| 2 | 將較高的樣本以 OR 運算併入較低的樣本。 |
| 3 | 保留；請勿使用。 |

*ApplyMaskAfterCentroid*\
類型：UINT

指定要在質心判定之前或之後套用 MSAA 遮罩。

*Dword0*\
類型：UINT

保留。

*MaxAnchorSamplesLog2*\
類型：UINT

指定允許 CB 使用的錨點樣本數上限。若要減少 CB 在建立非錨定片段後必須將其捨棄的需求，請將此值設定為 DB 表面所配置的最小樣本數。

*NumSamplesForPSIterationLog2*\
類型：UINT

指定啟用每個樣本執行時要反覆運算的樣本數，藉此設定超級取樣的量。一般而言，這是向應用程式公開的樣本數。不支援大於深度表面樣本數的值。

*NumSamplesForMaskExportLog2*\
類型：UINT

指定要用於著色器遮罩匯出的樣本數。

*NumSamplesForAlphaToMaskLog2*\
類型：UINT

為 Alpha 對遮罩所產生的品質樣本數。

*HighQualityIntersections*\
類型：UINT

如果未設定此成員，則所有完全涵蓋的圖格都會以圖格速率經過細節查核器。只有在稍後，如果 DB 的表面速率存在且深度測試結果未知，它們才會減慢為該表面速率；或者，如果著色器執行，它們會減慢為像素速率。

設定此成員只會加快具有已知 Z 測試結果的完全涵蓋圖格。它仍會允許可能有 Z 交集的圖格以細節速率執行，因此可以取得經過消除鋸齒的交集。

若要獲得最佳品質，請搭配 INTERPOLATE\_COMP\_Z 使用。

*Reserved0*\
類型：UINT

保留。

*InterpolateCompZ*\
類型：UINT

允許未錨定的樣本從壓縮的 Z 平面內插唯一的 Z。在每個像素的第一個交集上產生良好的消除鋸齒交集。會導致結果與延遲相關。

*InterpolateSrcZ*\
類型：UINT

即使目的地 Z 未壓縮，也強制未錨定的樣本內插唯一的來源 Z，讓即使是未壓縮的 Z 也能有更平滑的交集。由於會與未內插的目的地 Z 進行比較，可能會導致在未壓縮的 Z 上搭配 ZFUNC==EQUALS 的混色失敗。除了實驗用途之外，可能永遠不會設定此成員。

*StaticAnchorAssociations*\
類型：UINT

強制複寫的目的地資料一律來自靜態關聯的錨點樣本，而不是嘗試從基本型別內最接近的錨點樣本提取目的地資料。設定時，可能會造成額外的一致性停滯，並降低相鄰三角形的品質。

*Reserved1*\
類型：UINT

保留。

*Over-rasterizationAmount*\
類型：UINT

針對過度光柵化減少樣本遮罩次數的 log2 值。

*EnablePostZOver-rasterization*\
類型：UINT

在 PostZ (也就是在著色器之後) 啟用過度光柵化。

*Dword1*\
類型：UINT

保留。

## 備註

[RSSetMSAAParametersX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_rssetmsaaparametersx) 會使用此結構。

## 需求

**標頭：** d3d12\_x.h

**支援的平台：** XBOX One 系列

## 另請參閱

[d3d12\_x](/zh-TW/reference/graphics/d3d12_x/d3d12_x_members)


## Related topics

- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [NDA topic directory - live Microsoft Learn links](/nda/nda-topic-directory.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [NDA 主题目录 - Microsoft Learn 在线链接](/zh-CN/nda/nda-topic-directory.md)
- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
