有没有办法在XNA中锁定VertexBuffers?

时间:2010-07-30 12:38:46

标签: c# xna msdn

查看MSDN文档,我找不到锁定VertexBuffers的方法,以便在设备上更改数据。这在XNA中是否可行?

1 个答案:

答案 0 :(得分:2)

您可以使用许多选项来修改XNA中的顶点缓冲区的内容:

  • VertexBufferSetData个成员。在任何可以激活Predicated Tiling的情况下,你都可以安全地在Draw之外使用它(所以最好总是在Draw之外完成它。)

  • DynamicVertexBufferVertexBuffer类似,但在设置内容时速度更快。但是它很容易丢失图形设备,必须处理这种情况。另请查看SetDataOptions

  • DrawUserPrimitives(和indexed版本)。这样做的好处是不会影响Predicated Tiling,也不会导致命令缓冲区刷新少量基元。

MSDN上有关于Dynamically Updating Vertices的更多信息。而且,XNA论坛上的this thread也值得一读。