我正在编写一个directx应用程序,并希望在场景的前面叠加网格。网格可能会更新每一帧,但会有20条水平线和20条垂直线(LineList)。
我试图了解这种情况(少量顶点频繁更新)是否意味着动态缓冲区比静态缓冲区更合适?
有人能就此提出建议吗?我无法找到两者之间差异的低级别解释 - 听起来像动态是'更容易'到CPU并且需要一些锁定语义而静态则不太容易访问。
干杯
答案 0 :(得分:1)
答案 1 :(得分:1)
如果要每帧更改缓冲区,请使用动态缓冲区。
每次更改缓冲区时,使用静态缓冲区都会导致GPU停止运行,从而导致性能崩溃。
我不确定direct3d10中的动态缓冲区,名称似乎来自direct3d9。 Direct3D10有一个更复杂的创建“动态”缓冲区的方案,但你不应该在任何情况下都使用静态缓冲区。