如何使用翻转模式在DirectX11中消除别名?

如何使用翻转模式在DirectX11中消除别名?,directx,directx-11,Directx,Directx 11,我知道建议使用翻转显示模式(DXGI\u SWAP\u EFFECT\u flip\u DISCARD),但它似乎不支持多重采样。那么如何进行抗锯齿呢?现代的“翻转”模式(DXGI\u SWAP\u EFFECT\u flip\u DISCARD和DXGI\u SWAP\u EFFECT\u flip\u SEQUENTIAL)实施了一些新的使用规则。具体来说,您不能创建MSAA backbuffer或\u SRGB格式backbuffer 实际情况是,当使用传统的“blt”样式模式(DXGI\

我知道建议使用翻转显示模式(
DXGI\u SWAP\u EFFECT\u flip\u DISCARD
),但它似乎不支持多重采样。那么如何进行抗锯齿呢?

现代的“翻转”模式(
DXGI\u SWAP\u EFFECT\u flip\u DISCARD
DXGI\u SWAP\u EFFECT\u flip\u SEQUENTIAL
)实施了一些新的使用规则。具体来说,您不能创建MSAA backbuffer或
\u SRGB
格式backbuffer

实际情况是,当使用传统的“blt”样式模式(
DXGI\u SWAP\u EFFECT\u DISCARD
DXGI\u SWAP\u EFFECT\u SEQUENTIAL
)时,您根本无法创建MSAA backbuffer。它只是隐式地创建了一个backbuffer示例和一个MSAA渲染目标,并“通过魔术”进行了解析

在大多数“真实世界”渲染解决方案中,您(a)不只是执行解析,而且(b)不立即渲染MSAA渲染目标的解析内容。后处理、自定义抗锯齿和后解析UI合成都在显示结果之前进行。因此,“神奇”解决方案仅对琐碎的样本有用


查看此博客系列:

@user7860670对于非UWP桌面应用程序,有什么理由不使用翻转模式就这样做吗?好吧,如果不需要对翻转模式的支持(以及它带来的好处),那么可能就没有了。@user7860670我认为翻转模式的好处只是你现在没有执行表面复制。但如果需要执行曲面复制来执行AA,那么我看不出翻转模式的任何原因。多采样AA通过渲染每个渲染目标像素的几个像素并计算平均值来工作,因此它本质上等同于曲面复制。他们刚刚把它分为两步。我认为这种分离形式也适用于Nvidia DLSS和类似技术。(至少我是这么看的)