c++ - 为什么 SampleDesc 的质量应该比 Directx11 中的 Msaaquality 小 1?

标签 c++ directx

我正在学习 Directx 11。使用以下代码初始化 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

关于c++ - 为什么 SampleDesc 的质量应该比 Directx11 中的 Msaaquality 小 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678110/

相关文章:

c++ - 用c/c++实现实时最佳拟合内存分配算法

C++代码无法编译

c++ - 将值传递给着色器的问题

directx - HLSL 纹理采样器中尖括号和圆括号之间的区别

c++ - 为模板参数使用类型定义的默认类型

c++ - `volatile` 是否允许使用 union 进行类型双关?

c++ - 创建高阶映射函数时,我应该使用指针、引用还是值?

c++ - 使用 directX 和 Visual Studio 2010 的链接器错误

没有循环包含的C++调用成员函数

c++ - 如何在 DirectX 11.1 中部分更新常量缓冲区