0

我正在编写一个 directx 应用程序,并想在场景的前面覆盖一个网格。网格可能会更新每一帧,但会像 20 条水平线和 20 条垂直线 (LineList)。

我试图了解这种情况(少量顶点频繁更新)是否意味着动态缓冲区比静态缓冲区更合适?

有人可以就此提供建议吗?我无法找到对两者之间差异的低级解释 - 听起来动态对 CPU 来说“更容易访问”,并且需要一些锁定语义,而静态则不太容易访问。

干杯

4

2 回答 2

2

如果您每帧都更改缓冲区,请使用动态缓冲区。

每次更改缓冲区时,使用静态缓冲区都会导致 GPU 停顿,从而导致性能崩溃。

我不确定direct3d10中的动态缓冲区,名称似乎来自direct3d9。Direct3D10 有一个更精细的创建“动态”缓冲区的方案,但在任何情况下都不应该使用静态缓冲区。

于 2013-04-30T21:22:29.327 回答
2

您可能希望使用动态顶点缓冲区。如果您想在每帧的基础上更新顶点,那么动态是要走的路。

有关更底层的描述,请参阅此 MSDN 文章

MSDN 文章

于 2013-04-30T13:07:04.497 回答