Application-Managed资源和分配策略 (Direct3D 9)

无法通过在创建时指定D3DUSAGE_DYNAMIC来声明托管顶点缓冲区或索引缓冲区资源动态。 每次修改顶点缓冲区内容时,这都需要额外的副本。 动态顶点缓冲区用于呈现从二进制空间分区树或其他可见性数据结构中提取的动态几何图形和数据。 这可以通过预先分配所需格式的缓冲区来实现。 然后,这些资源由应用程序内的资源管理器进行分包,以支持应用程序需求。 动态顶点缓冲区的总数很小,因为应用程序将只同时使用几个不同的顶点步幅,并且只有唯一步幅需要不同的顶点缓冲区。 以这种方式管理动态资源时,请确保对资源的高频率需求不会显著降低应用程序的性能。

使用由 Direct3D 和应用程序管理的资源时,请在创建 Direct3D 托管资源之前,在 D3DPOOL_DEFAULT 内存中分配应用程序管理的资源。 这使内存管理器能够维护可用内存的准确计数。

Direct3D 资源