2009-05-08 8 views
3

こんにちは私はSlimDXでスプライトを正しくレンダリングできません。これは、.NET Drawing DrawImageUnscaledのようにちょっとしたスケーリングを描きます。私は変換を使用していません。SlimDXで2Dを描画する

INIT:

Vector2 position; 
Sprite sprite; 
Size size; 
Texture texture; 
sprite = new Sprite(Device); 
string filename = /*some bitmap*/; 
using (Image b = Bitmap.FromFile(filename)) 
    size = b.Size; 

position = new Vector2(550, 230); 
texture = Texture.FromFile(Device, filename); 

レンダリング:

Device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0); 
Device.BeginScene(); 
sprite.Begin(SpriteFlags.None); 
sprite.Draw(texture, new Vector3(size.Width/2, size.Height/2, 0), new Vector3(position, 0), Color.White); 
sprite.End(); 
Device.EndScene(); 

EDIT:あなたは間違ってレンダリングを想像する方法がわからない場合は、ここで私がレンダリング得るものであり、基準は、(その白い色を無視透明なPNGです)。最初のイメージは Wrong Correct

答えて

4

スケーリングされ、それはあなたのグラフィックカードがNPOT-テクスチャ(2の非電源)描画の問題を持っている可能性があることに注目してください。その場合は、テクスチャサイズを次のPOTに増やします。これは私のために多くの描画問題を解決しました(SlimDXも使用しています)。

Btw ...私は2DレンダリングにもSlimDXを使用しましたが、スプライトは使用していませんが、すべてのものを「プリミティブ」として描画し、頂点バッファを使用します。おそらくこれもオプションになる可能性があります

2

スプライトの初期化時にアルファブレンドを追加します。

関連する問題