2012-09-04 37 views
3

我想呈現一個場景並將其顯示在顯示器上,同時將另一個場景渲染爲紋理。 我是否需要創建兩個交換鏈?在這種情況下,我如何創建第二個交換鏈?我試圖調用CreateSwapChainForCoreWindow,但得到了內存訪問異常。DirectX 11中的多個RenderTarget(C++)

回答

4

交換鏈只是爲了顯示內容。

要渲染某些東西,必須通過OMSetRenderTargets()調用將渲染目標視圖添加到設備。您可以通過CreateRenderTargetView()創建渲染目標視圖,該視圖將資源作爲輸入。紋理也是資源......您只需使用D3D11_BIND_RENDER_TARGET標誌創建它們即可。

這只是一些提示,應該能夠指引您進入正確的方向。

順便說一句,Swapchains有緩衝區,它們也是用來創建渲染目標視圖的資源。這就是你如何渲染交換鏈;它實際上完全不涉及「交換鏈」。

+1

謝謝!現在我對此有了更好的理解。渲染到紋理並渲染到後緩衝區沒有區別。另外,我在這裏找到了一個很好的例子:http://rastertek.com/dx11tut22.html – Zengbin