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

时间:2012-11-05 19:11:17

标签: wpf directx sharpdx msaa d3dimage

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

实际上,我使用的是D3DImage的SharpDX实现,它适用于DX11和DX10,因为只要没有反替代就可以离开。

解决问题的方法在此主题中描述:http://sharpdx.org/forum/5-api-usage/1000-d3d11-problem-with-usage-of-texture2d但未成功。还有另一个线程提出了类似的问题:Multisampling and Direct3D10 / D3DImage interop

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

1 个答案:

答案 0 :(得分:5)

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

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

 DeviceContext.ResolveSubresource
在SharpDX中

将msaa纹理转换为非多重采样纹理,然后你可以分享它的结果。