开启Direct3D之旅
在Windows应用商店的应用程序中,避免渲染不必要的帧尤为重要,因为游戏可能运行在移动设备上,玩家可不希望因渲染无用帧而大量耗电。下面我们来详细了解Direct3D的初始化过程以及图形处理流程和游戏循环机制。
渲染目标、深度模板和视口
首先,要获取交换链中后台缓冲区的引用。通过调用 GetBuffer() 方法从交换链获取后台缓冲区纹理,代码如下:
ComPtr<ID3D11Texture2D> backBuffer;
m_swapChain->GetBuffer(
0,
__uuidof(ID3D11Texture2D),
&backBuffer
);
Direct3D 10及更高版本使用视图来访问不同的图形资源。视图可告诉API如何使用资源,并在创建后提供访问途径。接下来创建渲染目标视图( ID3D11RenderTargetView ),它能让我们访问渲染目标,代码如下:
m_d3dDevice->CreateRenderTargetView(
backBuffer.Get(),
nullptr,
&m_renderTargetView
);
有了渲染目标视图后,可让图形上下文将其作为后台缓冲区开始绘制。同时,为了让游戏有深度效果,需要创建深度缓冲区纹理和视图。
深度缓冲区是一
超级会员免费看
订阅专栏 解锁全文
403

被折叠的 条评论
为什么被折叠?



