2013-11-27 40 views
1

我有一個適用於Windows Store的D3D11應用程序,目前不使用抗鋸齒功能,我想啓用它。在Windows應用商店應用中啓用抗鋸齒

根據MSDN,MSAA is disabled in Windows Store apps

DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
使用該標誌來指定翻轉演示模型,並指定DXGI堅持後臺緩存的內容,你叫IDXGISwapChain1 ::存在1之後。該標誌不能用於多重採樣。
注意 Windows應用商店應用必須使用DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL。

由於這種限制僅適用於後臺緩衝區,它聽起來就像是最好的解決方法是創建一個新的屏幕外的渲染目標,上啓用MSAA,使一切它,並立即之前存在,位塊傳輸的關閉屏幕目標到後臺緩衝區(可能與ResolveSubresource)。

我已經開始實施這個,但我不知道如何修改我的交換鏈和呈現目標視圖。任何人都可以告訴我這裏的正確操作順序嗎?

回答

2

你的建議是正確的。使用CreateTexture2D和CreateRenderTargetView創建一個MSAA渲染目標。 D3D11_TEXTURE2D_DESC的DXGI_SAMPLE_DESC字段包含MSAA設置。然後將您的場景渲染到此渲染目標,並將ResolveSubresource解析到後臺緩衝區中。交換鏈不需要改變。

+0

請注意,這在[MSDN](https://msdn.microsoft.com/en-us/library/windows/apps/jj681697.aspx)上有更詳細的介紹。它說「Windows phone 8」,但它適用於Windows應用商店,通用Windows平臺(UWP)應用程序,Xbox One和Direct3D 12 - 這些情況都需要「翻轉」式DXGI交換效果「DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL」或「 'DXGI_SWAP_EFFECT_FLIP_DISCARD''不支持舊的'bitblit'樣式交換效果(''DXGI_SWAP_EFFECT_DISCARD''或''DXGI_SWAP_EFFECT_SEQUENTIAL'')的'隱式解析'行爲 –