动态或静态顶点缓冲区?
问题描述:
我正在写一个directx应用程序,并希望在场景的正面覆盖一个网格。网格可能会更新每一帧,但会像20条水平线和20条垂直线(LineList)。动态或静态顶点缓冲区?
我想了解,如果这种情况(少量顶点经常更新)意味着动态缓冲区比静态缓冲区更合适?
有人能够就此提供建议吗?我一直无法找到两者之间差异的底层解释 - 听起来动态对CPU而言“更易于访问”,并且需要一些锁定语义,而静态不易访问。
干杯
答
如果要更改每一帧缓冲,使用动态缓冲区。
使用静态缓冲区会导致GPU在每次更改缓冲区时停顿,这会导致性能下降。
我不确定在direct3d10中的动态缓冲区,名称似乎来自direct3d9。 Direct3D10有一个更复杂的创建'动态'缓冲区的方案,但在任何情况下都不应该使用静态缓冲区。
您正在使用哪种DirectX版本? – 2013-04-30 12:04:45
此刻DX10,但要评估切换到DX11 - 这些版本做这个回答不同? – user2152466 2013-04-30 21:14:13