D3D9 使用多重采样渲染到纹理

发布于 2024-11-27 07:40:02 字数 205 浏览 0 评论 0原文

我想使用多重采样渲染到纹理,然后使用纹理四边形将其渲染到后台缓冲区(通过像素着色器传递它)。没有多重采样一切都工作正常,但我只是不知道如何设置它以使用多重采样。

我尝试了 CreateDepthStencilSurface() 但我真的不知道如何处理该表面,或者这是否是我应该做的。

请帮忙。

PS - 我正在使用 DX9、Win32 和 C++

I want to render to a texture using multisampling, then render that to the back buffer using a textured quad (passing it through a pixel shader.) Everything works fine without multisampling but I just can't figure out how to set it up to use multisampling.

I tried CreateDepthStencilSurface() but I don't really know what to do with that surface, or if tat's even what I should be doing.

Please help.

PS - I'm using DX9, Win32 and C++

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

野稚 2024-12-04 07:40:02

你不能,无论如何不能直接。以下是常规解决方法:

  1. 使用 IDirect3DDevice9::CreateRenderTarget
  2. 创建一个简单的纹理
  3. 渲染到您的多重采样渲染目标
  4. 使用 IDirect3DDevice9::StretchRect 用于位块传输多重采样内容进入纹理的一个表面
  5. 现在继续按计划使用该纹理。

You can't, not directly anyway. Here is the regular workaround:

  1. Create a multisample render target using IDirect3DDevice9::CreateRenderTarget
  2. Create a simple texture
  3. Render to your multisample render target
  4. Use IDirect3DDevice9::StretchRect to blit your multisampled content into one of the surfaces of your texture
  5. Now proceed to use that texture as planned.
梦屿孤独相伴 2024-12-04 07:40:02

-创建 RenderTarget 和 DepthStencilSurface - 它们必须具有相同的多重采样选项集(相同的 SampleDescription)

-将 DepthStencilSurface 设置为 DepthStencilView

-DepthStencilSurface 必须至少具有与 RenderTarget 一样高的分辨率

-最高 SampleDescription -设置迄今为止大多数卡的支持8 样品和质量 32

-To blit RenderTarget 在 DX9 上使用 StretchRect,在 DX10 和 DX11 上使用 ResolveSubresource

-Create a RenderTarget and DepthStencilSurface - these must have the same multisampling options set (same SampleDescription)

-Set the DepthStencilSurface as your DepthStencilView

-DepthStencilSurface must have at least as much resolution as the RenderTarget

-Highest SampleDescription-setting most card's support as of today is 8 Samples and Quality 32

-To blit the RenderTarget use StretchRect on DX9 and ResolveSubresource on DX10 an DX11

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文