动态缓冲行为

时间:2013-02-16 06:58:25

标签: buffer direct3d directx-11

我有一个关于动态顶点和索引缓冲区的问题。我可以完全更改其拓扑吗?例如,在一个帧中具有一组顶点,将它们抛弃并使用它们自己的属性重新创建顶点,并且计数不等于先前的顶点计数。另外我想知道关于索引缓冲区的相同内容,我可以更改动态索引缓冲区中的索引数吗?

到目前为止,在我的应用程序中,当尝试更新大小更大的索引缓冲区时,我会收到警告: D3D11警告:ID3D11DeviceContext :: DrawIndexed:索引缓冲区空间不足! [执行警告#359:DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL]

1 个答案:

答案 0 :(得分:2)

无法在创建后更改缓冲区的大小。

动态缓冲区允许您更新数据。只要不超过缓冲区的大小,您就可以向其写入新数据。

但是缓冲区并不关心数据布局。大小为200字节的缓冲区可以容纳100个短路或50个浮点数或混合数据;任何小于或等于200字节的东西。