아래 이미지는 배경 위에 포인트 샘플링으로 렌더링 된 두 개의 스프라이트를 보여줍니다.
- 왼쪽 두개골에는 회전 / 크기 조정이 적용되지 않으므로 모든 픽셀이 배경과 완벽하게 일치합니다.
- 오른쪽 두개골이 회전 / 확대 되어 더 이상 축 정렬 되지 않은 더 큰 픽셀 이됩니다 .
변환 된 스프라이트를 나머지 장면과 동일한 크기의 축 정렬 픽셀로 렌더링하는 픽셀 쉐이더를 어떻게 개발할 수 있습니까?
이것은 Monkey Island와 같은 오래된 게임에서 스프라이트 스케일링이 구현 된 방법과 관련이있을 수 있습니다. 그것이 달성하려는 효과이지만 회전이 추가 되었기 때문입니다.
편집하다
kaoD의 제안에 따라 문제를 사후 프로세스로 해결하려고했습니다. 가장 쉬운 방법은 먼저 별도의 렌더 타겟으로 렌더링하고 (원하는 픽셀 크기에 맞게 다운 샘플링) 두 번째로 렌더링 할 때 업 스케일링하는 것입니다. 위의 요구 사항을 해결했습니다.
먼저 나는 그것을 시도 Linear -> Point
했고 그 결과는 다음과 같습니다.
왜곡은 없지만 결과는 흐리게 보이며 대부분의 하이라이트 색상이 손실됩니다. 내 생각에 그것은 내가 필요한 복고풍의 모습을 break습니다.
두 번째로 시도한 Point -> Point
결과는 다음과 같습니다.
왜곡에도 불구하고 모션에서보다 정지 이미지로 더 잘 보이지만 내 필요에 충분하다고 생각합니다.
시연하기 위해 YouTube에서 픽셀을 필터링했지만 효과에 대한 비디오는 다음과 같습니다.
그러나 누군가가 움직일 때 왜곡의 양을 줄이면서 선명한 모양을 유지하는 더 나은 샘플링 솔루션을 고안 할 수 있도록 며칠 더 질문을 열어 두겠습니다.
SpriteBatch
즉시 모드를 사용해야하므로 문제가되지 않습니다. 나는 이것과 함께 갈 것이다 :)