次の形式で通常のアダプターを作成する directx9 ゲーム エンジンがあります: D3DFMT_X8R8G8B8 一部のオブジェクトをオフスクリーン レンダー ターゲットにライトマップとしてレンダリングするシステムがあります。次に、そのライトマップ データを使用してバック バッファーに合成し、フル スクリーンの「マスク」として機能させ、暗いシーンで松明やその他の光源の効果を得ることができるようにします。すべてがうまく機能します。問題は、大きな解像度の大きなオフスクリーン ライトマップ レンダー ターゲットがそれぞれ 16 MB であり、実際にはそれらから 8 ビットのデータ (グレースケール) しか必要としないため、32 ビット レンダー ターゲット メモリの 75% が無駄。(私は低スペックのカードをターゲットにしています)。レンダー ターゲットを D3DFMT_A8 として作成しようとしましたが、directx はサイレントに失敗し (CheckDeviceFormat() を追加すると発生することがわかります)、とにかく 32 ビットを作成します。
助けてくれてありがとう、私はレンダーターゲット関連のものが苦手です:)