我试图在DX11中使用D3DImage获取MSAA,但似乎是不可能的,因为共享多采样纹理是不允许的,如下所示:http://msdn.microsoft.com/en-us/library/windows/desktop/ff476531(v=vs.85).aspx
实际上,我使用了SharpDX实现的D3DImage,它可以很好的DX11和DX10,只要一个人可以离开没有反虚化。
这个线程描述了解决这个问题的方法:http://sharpdx.org/forum/5-api-usage/1000-d3d11-problem-with-usage-of-texture2d,但是没有成功。还有另一个线程在问类似的问题:Multisampling and Direct3D10 / D3DImage interop
最后,问题是,事实上,如果有人能够证实,使用D3DImage来呈现it 10/it 11中的反别名内容是绝对不可能的?
发布于 2012-11-05 19:30:20
正如microsoft链接中所说的(也尝试过几次),多样本共享纹理是不允许的(实际上纹理还必须没有mip级别,作为附加信息)。
共享纹理的唯一方法是创建一个非多采样版本(相同的格式/参数),然后使用
DeviceContext.ResolveSubresource在SharpDX中,要将msaa纹理转换为非多采样纹理,则可以共享该纹理的结果。
https://stackoverflow.com/questions/13238723
复制相似问题