1

XNA ゲーム用に大量のテクスチャをメモリにロードし、何らかの方法でメモリ例外から抜け出すことができないかどうか疑問に思います。

具体的には、実行時にファイル ストリームからテクスチャをロードします。

4

1 に答える 1

5

これを行うことは、アドレス可能なシステムメモリの量とは関係のない理由で恐ろしい考えです(XNAが32ビットライブラリであるという事実により、これは約2GBに制限されています)。

レンダリングするには、テクスチャをグラフィックカードのビデオメモリにロードする必要があります。最近では、ハイエンドのデスクトップグラフィックカードの容量は約2〜3GBです。ローエンドおよびミッドエンドのカードはかなり少なくなっています。このメモリは、テクスチャだけでなく、頂点バッファなど、ビデオカードに存在するすべてのオブジェクトに使用されます。また、排他モードで実行していない場合、このメモリは複数のアプリケーション間で共有される可能性があります。使用可能なビデオメモリの量を超えると、スワッピングによりパフォーマンスが大幅に低下します。

そのビデオバッファをいっぱいにすることに本当に熱心な場合(たとえば、AAAゲーム用の超ハイエンドグラフィックモードを作成している場合)、Win32APIを含む高度なメモリアドレス指定技術を採用する必要があります。システムメモリにコピーを保持せずに、テクスチャをグラフィックデバイスにロードします。これらの手法はXNAの範囲外です。

于 2012-07-29T15:30:09.343 に答える