【问题标题】:Enabling antialiasing in Windows Store Apps在 Windows 应用商店应用中启用抗锯齿
【发布时间】:2013-11-28 05:08:47
【问题描述】:

我有一个用于 Windows 应用商店的 D3D11 应用程序,目前不使用抗锯齿功能,我想启用它。

根据 MSDN,MSAA is disabled in Windows Store apps

DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
使用此标志指定翻转表示模型,并指定 DXGI 在调用 IDXGISwapChain1::Present1 后保留后台缓冲区的内容。此标志不能用于多重采样。
注意 Windows 应用商店应用必须使用 DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL。

因为这个限制只适用于后台缓冲区,听起来最好的解决方法是创建一个新的离屏渲染目标,在其上启用 MSAA,将所有内容渲染到它,然后在 Present 之前,blit 离屏目标到后台缓冲区(可能是ResolveSubresource)。

我已经开始实现这个,但我不确定如何修改我的交换链和渲染目标视图。有人可以告诉我这里正确的操作顺序吗?

【问题讨论】:

    标签: c++ windows-store-apps directx-11


    【解决方案1】:

    您的建议是正确的。使用 CreateTexture2D 创建 MSAA 渲染目标,然后使用 CreateRenderTargetView。 D3D11_TEXTURE2D_DESC 的 DXGI_SAMPLE_DESC 字段包含 MSAA 设置。然后将您的场景渲染到此渲染目标,并将 ResolveSubresource 渲染到后台缓冲区。交换链无需更改。

    【讨论】:

    • 请注意,这在MSDN 上有更详细的介绍。上面写着“Windows phone 8”,但它适用于 Windows 应用商店、通用 Windows 平台 (UWP) 应用、Xbox One 和 Direct3D 12——这些情况都需要“翻转”风格的 DXGI 交换效果DXGI_SWAP_EFFECT_FLIP_SEQUENTIALDXGI_SWAP_EFFECT_FLIP_DISCARD不支持旧的“bitblit”样式交换效果的“隐式解析”行为(DXGI_SWAP_EFFECT_DISCARDDXGI_SWAP_EFFECT_SEQUENTIAL
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多