Direct3D基础与2D精灵绘制入门
1. Direct3D基础操作
在使用Direct3D时,如果要清空整个屏幕,可以通过指定零个脏区域来实现。之后,可使用交换链中的 Present1() 方法进行提交:
m_swapChain->Present1(1, 0, ¶meters);
这里,第一个参数定义了同步间隔,可用于启用或禁用垂直同步(VSync)。该间隔可以是任意正整数,表示在交换发生前需要完成的刷新次数。值为0时,VSync将被禁用;值为1时,呈现速率将锁定为监视器的刷新速率。也可以使用大于1的值,此时刷新速率将除以该间隔。例如,对于60Hz刷新率的监视器,值为1时以60Hz呈现,值为2时以30Hz呈现。
此外,生成的代码中还会添加以下两行:
m_d3dContext->DiscardView(m_renderTargetView.Get());
m_d3dContext->DiscardView(m_depthStencilView.Get());
这两行代码的作用是提示驱动程序,在当前帧之后不会再使用后缓冲区的内容,从而可以进行一些优化。即使不添加这两行代码也不会影响程序运行,但添加后可能会带来性能提升。
2. 绘制2D精灵
大多数游戏通过图形界面向玩家展示游戏状态,因此需要将图像显示在屏幕上。这里可以借助Microsoft提供的开源库DirectXTK来
超级会员免费看
订阅专栏 解锁全文

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



