在 DirectX 11 中,getBuffer() 和 CreateRenderTargetView 有什么区别



我是DirectX11的新手,正在学习它。(我来自openGL背景)。

我很困惑,并试图了解以下 API 调用到底做了什么以及它们之间的区别是什么:

ID3D11Texture2D* pBackBuffer = NULL;
hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer );

hr = g_pd3dDevice->CreateRenderTargetView( pBackBuffer, NULL, &g_pRenderTargetView );
pBackBuffer->Release();

GetBuffer到底是做什么的?那么我们如何在CreateRenderTargetView中使用pBackBuffer呢?另外,有人可以解释或指出我一个链接来解释什么是渲染目标视图?msdn 文档对我来说没有多大意义。

我记得,GetBuffer()返回指向设备使用的内部后台缓冲区的指针。然后从那里创建一个可以绑定为"Real backbuffer"目标的RenderTarget

可以把它想象成: pBackbuffer = glBindFramebuffer(GL_FRAMEBUFFER, 0);

我就是这样记得的。(前段时间我用DX11做了这个)

编辑*而rendertargetview,就是framebuffer。它是一种纹理,您可以绑定以读取和写入。

相关内容

  • 没有找到相关文章

最新更新