Domanda

Ciao, ho problemi a renderizzare correttamente lo sprite con SlimDX. Disegna un po 'ridimensionato proprio come fa NET Drawing DrawImageUnscaled. Non sto usando alcuna trasformazione.

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);

Rendering:

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: se non sai come immaginare un rendering sbagliato, ecco cosa mi viene reso e riferimento (ignoro quel colore bianco, è solo PNG trasparente). Nota come viene ridimensionata la prima immagine Wrong Corretto

È stato utile?

Soluzione

È possibile che la tua scheda grafica abbia problemi a disegnare trame NPOT (senza potenza di due). In tal caso, aumentare le dimensioni della trama al POT successivo. Ciò ha risolto molti problemi di disegno per me (usando anche SlimDX).

A proposito ... Ho anche usato SlimDX per il rendering 2D, ma non ho fatto uso di sprite, ma ho disegnato tutte le cose come " primitives " e usando un buffer di vertici. Forse questa potrebbe anche essere un'opzione

Altri suggerimenti

Aggiungi la fusione alfa durante l'inizializzazione dello sprite.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top