我正在学习Directx11。在使用以下代码初始化Directx 11时应检查多重采样:

UINT m4xMsaaQuality;
HRESULT hr = md3dDevice ->CheckMultisampleQualityLevels(DXGI_FORMAT_R8G8B8A8_UNORM, 4, &m4xMsaaQuality);

在创建交换链时,需要m4xMsaaQuality。代码如下:
DXGI_SWAP_CHAIN_DESC sd;
sd.BufferDesc.Quality = m4xMsaaQuality -1;

这些代码来自教科书,我不知道为什么质量应该比m4xMsaaQuality小1。

最佳答案

CheckMultisampleQualityLevels返回质量级别的数量,而不是最高级别。

如果返回“n”,则这些级别编号为0到n-1。例如,如果返回4,则它们的编号为0、1、2、3-如果要获得最高的1,则始终比级别数少1

10-08 07:57