5

我正在尝试使用 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不成功。还有另一个线程问类似的问题:Multisampling and Direct3D10 / D3DImage interop

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

4

1 回答 1

6

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

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

 DeviceContext.ResolveSubresource

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

于 2012-11-05T19:30:20.957 回答