2012-04-06 4 views
6

저는 XNA 프로젝트에서 작업하고 있습니다. 약간 큰 텍스처를 사용하고 있습니다.이 텍스처는 Texture2D 오브젝트로 게임에로드하고,로드 된 것보다 훨씬 작은 화면을 그리게됩니다. 이것은 내가 다른 장소에서 다양한 크기로 그릴 필요가 있고, 여러 텍스처로이 작업을 수행 할 수 있지만 그렇게하는 것은 비현실적입니다.XNA : 2D 2D 앤티 앨리어싱을 축소 하시겠습니까?

내 문제는 XNA가 이러한 Texture2D 개체를 축소 할 때 앤티 앨리어싱을하지 않는 것입니다.

graphics.PreferMultiSampling = true; 

또한

spriteBatch.Begin(SpriteBlendMode.AlphaBlend); 

을하지만 아무 소용이 : 나는 설정했습니다. GraphicsDevice의 필터와 관련된 여러 가지 작업을 시도해 봤지만 솔직히 내가하는 일을 실제로 알지 못했습니다.

필자는 분명히 spriteBatch를 사용하여이 그림을 그렸지만 그 외에도 특별히 그리는 방법에 대해서는 흥미를 느꼈다. 여기

는 무슨 일이 일어나고 있는지의 (확대) 예, 그리고 내가 만들려고 일이 : 당신은 스케일링 할 때, XNA는 안티 앨리어싱을 제공하지 않습니다 볼 수 있듯이

Actual ResultDesired Result

이미지. 가장자리를 더 깨끗하게 보이도록하기 위해 그렇게 할 수있는 방법이 있습니까?

답변

2

GraphicsDevice을 만들기 전에 graphics.PreferMultiSampling = true;으로 전화 하시겠습니까? 생성하기 전에 Game 생성자 또는 Initialize() 생성자를 켜야합니다.

+0

GraphicsDeviceManager를 정의한 후 (분명히) 및 ApplyChanges()를 호출하기 전에 Game constructor에서 호출하고 있습니다. – Hoeloe

+0

내가 추가해도 아무런 차이가없는 것 같다. – Hoeloe