具有D3DImage共享资源的DirectX11/DirectX10的多重采样(MSAA)

Der*_*zem 5 directx wpf msaa sharpdx d3dimage

我试图使用D3DImage在DX11中获得MSAA,但似乎是不可能的,因为不允许共享多重采样纹理,如下所述:http://msdn.microsoft.com/en-us/library/windows/桌面/ ff476531(v = vs.85)的.aspx

实际上,我使用了D3DImage的SharpDX实现,它可以很好地用于DX11和DX10,因为只要有人反对就可以离开.

解决这个问题的方法在这个主题中描述:http://sharpdx.org/forum/5-api-usage/1000-d3d11-problem-with-usage-of-texture2d,这些方法都没有成功.还有另一个线程提出了类似的问题:多重采样和Direct3D10/D3DImage互操作

最后,问题实际上是,如果有人能够确认,那么绝对不可能使用D3DImage来渲染DX10/DX11的抗锯齿内容吗?

cat*_*ier 6

如微软链接中所述(也尝试了几次),不允许多重采样共享纹理(实际纹理也必须没有mip级别,作为附加信息)

共享纹理的唯一方法是创建非多重采样版本(相同的格式/参数),然后使用

 DeviceContext.ResolveSubresource
Run Code Online (Sandbox Code Playgroud)

在SharpDX中将msaa纹理转换为非多重采样纹理,然后您可以共享其结果.