我一直在Windows Phone 7上进行一些XNA编程(DirectX),并注意到VertexBuffer类比DynamicVertexBuffer类快30倍。两者之间有什么区别?为什么在使用VertexBuffer时显着提高速度?
最佳答案
MSDN entry for the DynamicVertexBuffer Class指出:
“使用DynamicVertexBuffer进行动态
顶点数组和VertexBuffer
非动态顶点数组...在
您的游戏经常出现的情况
修改顶点缓冲区,它是
建议将缓冲区
实例化或派生自
DynamicVertexBuffer而不是
VertexBuffer类。
DynamicVertexBuffer针对
频繁修改顶点数据。”
因此,大概是通常的权衡取舍,例如固定分配的数组表示形式与动态列表。