1

在 Direct3D 应用程序(托管)中,是否应该在每次丢失设备时重新创建顶点缓冲区?

我正在开发的应用程序是一个 windows CAD 应用程序。不是游戏。我想我可以在我的 3D 模型更改时生成顶点缓冲区。但是当我丢失我的设备时我应该重做还是可以重用旧设备的顶点缓冲区?

4

1 回答 1

2

如果您必须重新创建顶点缓冲区,取决于您在哪个池中创建了它们。

驻留在 D3DPOOL_MANAGED 池中的顶点缓冲区将由 directx 自动重新创建。系统内存中的缓冲区不会丢失,因此您也不必重新创建这些缓冲区。

只有完全驻留在显存中的缓冲区需要重新创建,因为每次松开设备时显存的内容都会丢失。

我建议您只对所有静态对象使用托管池。这会稍微增加内存需求,但您不必关心令人讨厌的细节,例如视频内存不足、缓冲区娱乐丢失等。

于 2008-10-26T13:16:04.417 回答