私は単純な3Dレンダリングエンジンを作成しています。
私の3D処理の最終結果はピクセルデータです。次に、GDI +で画面に表示する必要があります。
私はWinFormsとVisual Basicを使用しています。私はフォームのClientRectangleに直接描画しています。GDI +でピクセルデータを表示
私はいくつかの質問があります。
ピクセルを処理した後は、各ピクセルをGDI +に個別に送信するのではなく、最初にピクセルデータをバッファに書き込む必要がありますか?
- そうなら、一度にどれだけの画面をバッファする必要がありますか?全画面、半分、四半期、8分?私はそこにRAMの使用/パフォーマンスのトレードオフがあるかもしれないと思う。
- ピクセルバッファの最適なデータ構造は何ですか?
- ピクセルバッファ(または個々のピクセル)をレンダリングするのにどのGDI +コマンドを使用しますか?中間ステップとしてビットマップを作成し、ピクセルデータを直接スクリーンに送ることは避けられますか?
最大画面サイズ1600x1200が予想されます。 RAMは1GBの低さになる可能性があります。
ありがとうございました。
最初にメモリバッファに書き込む必要があります。個々のピクセルを描画するのは、バッファを描画する場合に比べて非常に効率が悪いです。あなたには十分な余裕があるはずです。画像全体をバッファリングしない理由はありません。 – comingstorm
OK、私は、バイトの配列または32ビット整数の配列、またはピクセルデータを表す構造体の配列、ピクセルあたり4バイトを持っています。このデータを画面に送る効率的な方法は何でしょうか? – mcu
@ananthonlineによると、32ビット/ピクセルのRGBAバッファで始めてください。 'Bitmap'クラスは、さまざまなデータバッファ[formats](http://msdn.microsoft.com/en-us/library/ms534412(v = vs.85).aspx)に基づいてビットマップを作成することを可能にします。おそらく 'PixelFormat32bppARGB'か' PixelFormat32bppPARGB'を試してみるべきです。 – comingstorm