2012-10-03 3 views
1

나는 몇 가지 독특한 적을 가지고있는 XNA로 2D 게임을 만들었습니다. 나는 화면에 별도의 스프라이트를 그리는 데 어려움이 없으며, 다른 두 개의 적을 만들 필요가 없지만 적은 수의 스프라이트를 그리는 대신에 스프라이트를 하나의 스프라이트 시트로 병합하는 것이 더 효율적일 수 있다고 생각합니다.게임이 실행되는 동안 기존 스프라이트 시트에서 스프라이트 시트 만들기?

화면에 이러한 적을 많이 가지고 있다면 병합하면 성능을 향상시킬 수 있습니까? 그리고 이런 식으로 새로운 스프라이트 시트를 만들 수있는 간단한 방법이 있을까요? 아니면 아주 까다로운 대답입니까?

+0

이것은 성능 병목 현상을 측정하고 확인하지 않는 한, 아마도 가치있는 최적화는 아닙니다. 그것은 거의 이득을 얻지 못하는 일입니다. 일괄 처리의 개별 스프라이트는 매우 저렴합니다 (스프라이트 시트로 텍스처 변경을 피하면 - 자세한 내용은 http://gamedev.stackexchange.com/a/9289/288). –

+0

내 자신의 설명을 들어, 런타임에 스프라이트 시트를 동적으로 만들 것을 요구하고 있습니까? 스프라이트 시트를 컴파일하기 전에 생성하고 일반 내용 파이프 라인의 일부로로드하는 것이 가장 좋은 이유는 무엇입니까? –

답변

0

여러 스프라이트 대신 하나의 스프라이트를 그리는 것이 더 빠릅니다. 그러나 성능 문제가있는 경우에만 이것을 권장합니다. SpriteBatch을 사용하면 스프라이트 그리기가 매우 빠릅니다. 같은 텍스처의 그리기 호출을 그룹화하는 기능이있어 꽤 빠릅니다. 각각의 적을 위해 별도의 텍스쳐를 만들면이 기능을 잃어 버릴 수 있으며 이로 인해 성능이 저하 될 수 있습니다. 시트가 너무 커지지 않으면 큰 스프라이트 시트를 만드는 것이 좋습니다.

이러한 시트를 만들려면 텍스처/렌더 타겟을 만들어 렌더링해야합니다. Here은 XNA로이를 수행하는 방법입니다.

관련 문제