2009-05-08 4 views
3

안녕하세요. SlimDX로 스프라이트를 올바르게 렌더링하는 데 문제가 있습니다. .NET Drawing DrawImageUnscaled처럼 작은 스케일을 사용합니다. 나는 어떤 변형도 사용하지 않고있다.SlimDX로 2D 그리기

초기화 :

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

편집이 : 잘못된 렌더링을 상상하는 방법을 모르는 경우, 여기에 내가 렌더링 및 참조받을 것입니다 (즉, 무시 화이트 색상 , 그것은 단지 투명한 PNG입니다.) 첫 번째 이미지는 Wrong Correct

답변

4

조정됩니다 그것은 당신의 그래픽 카드가 NPOT - 텍스처 (두 비 파워) 그리기 문제가 있음을 가능하는 방법을 알 수 있습니다. 그렇다면 텍스처 크기를 다음 POT으로 늘리십시오. 이것은 나를 위해 많은 그림 문제를 해결했습니다 (SlimDX도 사용).

Btw ... 또한 2D 렌더링에 SlimDX를 사용했지만 스프라이트를 사용하지 않았지만 모든 것을 "프리미티브"로 그리고 버텍스 버퍼를 사용하여 그립니다. 아마도 이것은 옵션이 될 수도 있습니다

2

스프라이트를 초기화 할 때 알파 블렌드를 추가하십시오.