2010-12-07 16 views
1

私が取り組んでいるプロジェクトでは、画像の4隅のいずれかを変換する必要があります。残念ながら、GDI +にはこの機能がないため、DirectXの3Dグラフィックスを使用しています。DirectX 3Dグラフィックスを画像に直接レンダリングするC#

私はテクスチャを使って正方形のメッシュを画面上に表示していますが、背景を透明に設定してこのレンダリングからイメージを生成できる必要があります。効率的にこれを達成する方法はありますか?

好ましくは、デバイスを初期化するためにコントロールを使用しないでこれを行うことを望みます。また、私のためにイメージを生成するカスタムの、目に見えないコントロールを作成するオプションは気にしません。

編集

は実は、私は透明な背景が厳密には必要ではないが、それは我々のプロジェクトビットのパフォーマンスを実現役立つだろう。

とにかく、私はこのようなことをする運があったが、それは遅すぎる。おそらくもっと良い方法がありますか?

// Create a surface to render an image to 
Surface mSurface = mDevice.GetRenderTarget(0); 

// Render the visualization 
mDevice.Clear(ClearFlags.Target, Color.Transparent, 1.0f, 0); 
mDevice.BeginScene(); 

/* Do some amazing stuff */ 

// Exit rendering 
mDevice.EndScene(); 
mDevice.Present(); 

// Render the bitmap images 
GraphicsStream mGraphics = SurfaceLoader.SaveToStream(
     ImageFileFormat.Bmp, mSurface); 
Image mImage = new Bitmap(mGraphics, false); 
+0

Surfaceコンストラクタがビットマップを取り込むことに気付きました。メモリにBitmapを持つSurfaceを作成した場合、このSurfaceにレンダリングすると保持されているBitmapも更新されますか? – Japtar

+0

サーフェスを構築し、同じストリーム情報を持つビットマップがうまくいくかどうかは不思議だった... – Japtar

答えて

0

D3Dを使用して画面に最終的なレンダリングを行っても、レンダリングからテクスチャの使用について簡単に話すことができます。

+0

私はそれを調べるつもりですが、気にしない場合はいくつかの例を挙げることができますか? – Japtar

関連する問題