【问题标题】:Multiple RenderTarget in DirectX 11 (C++)DirectX 11 (C++) 中的多个 RenderTarget
【发布时间】:2012-10-04 14:56:31
【问题描述】:

我想渲染一个场景并将其显示在监视器上,同时将另一个场景渲染到纹理上。 我需要创建两个交换链吗?在这种情况下如何创建第二个交换链?我试图调用 CreateSwapChainForCoreWindow 但得到内存访问异常。

【问题讨论】:

    标签: c++ directx


    【解决方案1】:

    交换链实际上只是用于显示内容。

    要渲染某些东西,您必须通过 OMSetRenderTargets() 调用向设备添加渲染目标视图。您可以通过 CreateRenderTargetView() 创建渲染目标视图,它将资源作为输入。纹理也是资源...您只需使用 D3D11_BIND_RENDER_TARGET 标志创建它们。

    这只是一些提示,应该能够为您指明正确的方向。

    顺便说一句,Swapchains 有缓冲区,它们也是用于创建渲染目标视图的资源。这就是你渲染到交换链的方式;它实际上与“交换链”根本没有任何关系。

    【讨论】:

    • 谢谢!现在我对此有了更好的理解。渲染到纹理和渲染到后台缓冲区之间没有区别。另外,我在这里找到了一个很好的例子:rastertek.com/dx11tut22.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多