Question

Bonjour, je ne parviens pas à rendre correctement le sprite avec SlimDX. Il dessine un peu à l'échelle tout comme le fait .NET Drawing DrawImageUnscaled. Je n'utilise aucune transformation.

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

Rendu:

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: Si vous ne savez pas comment imaginer un rendu erroné, voici ce que je reçois en tant que rendu et référence (ignorez cette couleur blanche, elle est simplement transparente au format PNG). Remarquez comment la première image est mise à l'échelle faux Corriger

Était-ce utile?

La solution

Est-il possible que votre carte graphique rencontre des problèmes pour dessiner des textures NPOT (non puissance de deux). Si c'est le cas, augmentez la taille de la texture au prochain pot. Cela a résolu de nombreux problèmes de dessin pour moi (avec SlimDX également).

Btw ... J'ai également utilisé SlimDX pour le rendu 2D, mais je n'ai pas utilisé les sprites, mais dessine toutes les choses comme & "; primitives &"; et en utilisant un tampon de vertex. Peut-être que cela pourrait aussi être une option

Autres conseils

Ajouter un dégradé alpha lors de l'initialisation de l'image-objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top