Pergunta

Olá Estou tendo prestação problemas o sprite corretamente com SlimDX. Inspira-se um pouco escalado como .NET Desenho DrawImageUnscaled faz. Não estou usando quaisquer transformações.

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

renderização:

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 você não sabe como imaginar o processamento errado, aqui é o que eu recebo prestados e de referência (ignorar que a cor branca, é PNG apenas transparente). Note como a primeira imagem é dimensionada errada correta

Foi útil?

Solução

É possível que sua placa gráfica tem problemas de desenho NPOT-texturas (não-potência de dois). Se assim for, aumente o tamanho da textura para o próximo POT. Este resolvidos muitos desenho problemas para me (usando SlimDX também).

Btw ... Eu também usei SlimDX para renderização 2D, mas não fizeram uso de sprites, mas tirar todas as coisas como "primitivos" e usando um buffer de vértice. Talvez isso também poderia ser uma opção

Outras dicas

Adicionar alpha blend ao inicializar o sprite.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top