XNA 4.0에서 스프라이트 스케일링에 대한 텍스처 필터링을 어떻게 비활성화합니까?


22

XNA에서 스케일 업하려고하는 스프라이트가 있지만 XNA는 일종의 텍스처 필터링을 적용하여 매끄럽게 보이게 만듭니다. 보간 대신 픽셀 배가를하고 싶습니다. 어떻게하면 되나요?

답변:


28

샘플러 상태를 설정해야합니다. SpriteBatch의 기본값은 SamplerState.LinearClamp(즉 : 선형 보간-매끄 럽거나 흐릿한 것)입니다.

중 하나를 선택 SpriteBatch.Begin소요 통화 SamplerState및 전달 SamplerState.PointClamp(즉 precice "지점"에서의 화소를 선택한다).


13

다른 누군가가 스프라이트 배치 외부 에서이 작업을 수행하는 방법을 궁금해하는 경우 기본 요소를 렌더링하기 직전 에이 작업을 수행합니다.

this.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;

렌더링 파이프 라인에이 값을 변경하는 다른 항목 (예 :)이있는 경우 모든 프레임에서 수행해야합니다 SpriteBatch.


3
네! 그리고 완벽을 기하기 위해 SamplerState.PointWrap텍스처 래핑을 원한다면 (텍스처 필터링을 비활성화하는 동안)도 있습니다. 또는 고유 한 사용자 지정 동작이 필요한 경우 SamplerState모든 사용자 지정 요구에 맞는 새 개체를 만들고 Filter속성을로 변경할 수 TextureFilter.Point있습니다.
David Gouveia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.