我一直在Windows Phone 7上进行一些XNA编程(DirectX),并注意到VertexBuffer类比DynamicVertexBuffer类快30倍。两者之间有什么区别?为什么在使用VertexBuffer时显着提高速度?

最佳答案

MSDN entry for the DynamicVertexBuffer Class指出:


  “使用DynamicVertexBuffer进行动态
  顶点数组和VertexBuffer
  非动态顶点数组...在
  您的游戏经常出现的情况
  修改顶点缓冲区,它是
  建议将缓冲区
  实例化或派生自
  DynamicVertexBuffer而不是
  VertexBuffer类。
  DynamicVertexBuffer针对
  频繁修改顶点数据。”


因此,大概是通常的权衡取舍,例如固定分配的数组表示形式与动态列表。

07-26 02:07