게임에 속도를 추가 한 후 텍스처가 왜곡되는 느낌이 듭니다. 마침내 스크린 샷으로 캡처 할 때까지 내 눈이라고 생각했습니다.
왼쪽에있는 것은 내 게임에서 렌더링되는 것입니다. 오른쪽에있는 것은 원래 스프라이트입니다. (이것은 6 배 확대 된 Photoshop의 스크린 샷입니다.)
가장자리가 앨리어싱임을 알 수 있습니다. 서브 픽셀 렌더링과 거의 같습니다. 사실, 정수 값을 사용하여 스프라이트 (위치와 속도가 int 인)를 강제로 그리지 않으면 MonoGame이 부동 소수점 값으로 그리기를 맹세합니다. 그러나 그렇지 않습니다.
흐릿하게 나타나는 원인은 무엇입니까? 속도를 적용하지 않으면 발생하지 않습니다.
정확하게 말하면, 내 SpriteComponent
수업에는 Vector2 Position
필드가 있습니다. 전화하면 Draw
기본적으로 new Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))
위치를 사용 합니다.
고정 된 객체조차도 지터가 발생하기 전에 버그가있었습니다. 이는 직선 Position
벡터를 사용 하고 값을 반올림하지 않기 때문 ints
입니다. 둥근 대신에 Floor
/ Ceiling
를 사용 하면 스프라이트가 가라 앉거나 호버링되지만 (어느 쪽이든 한 픽셀 차이) 여전히 흐릿합니다.