Direct3D アプリケーション (マネージ) では、デバイスを紛失するたびに頂点バッファーを再作成する必要がありますか?
私が開発しているアプリケーションは、Windows CAD アプリケーションです。ゲームではありません。3D モデルが変更されたときに頂点バッファーを生成できると考えていました。しかし、デバイスを紛失したときにやり直す必要がありますか?それとも古いデバイスの頂点バッファを再利用できますか?
Direct3D アプリケーション (マネージ) では、デバイスを紛失するたびに頂点バッファーを再作成する必要がありますか?
私が開発しているアプリケーションは、Windows CAD アプリケーションです。ゲームではありません。3D モデルが変更されたときに頂点バッファーを生成できると考えていました。しかし、デバイスを紛失したときにやり直す必要がありますか?それとも古いデバイスの頂点バッファを再利用できますか?
頂点バッファーを再作成する必要がある場合は、それらを作成したプールによって異なります。
D3DPOOL_MANAGED プールに存在する Vertes バッファーは、directx によって自動的に再作成されます。システム メモリ内のバフは失われないため、これらを再作成する必要もありません。
デバイスを紛失するたびにビデオ メモリの内容が失われるため、ビデオ メモリに完全に存在するバッファのみを再作成する必要があります。
すべての静的オブジェクトにマネージド プールを使用することをお勧めします。これにより、必要なメモリ量が少し増えますが、ビデオ メモリの不足、バッファの再作成の喪失などの面倒な詳細を気にする必要はありません。