스프라이트 시트는 그만한 가치가 있습니까? zip이 좋은 대안입니까?

Aug 19 2020

스프라이트 시트가 그만한 가치가 있는지 궁금합니다. 저는 pixi.js로 게임을 만들고 있으며 자산 로딩부터 최적화에 대해 생각하고있었습니다. 나는 현재 모든 파일의 배열을 가지고 있고 PIXI.loader를 사용하고 있지만 이것이 오래 걸리는 모든 파일에 대해 웹 요청을 할 것이기 때문에 이것이 좋지 않다는 것을 알고 있으므로 하나의 웹 요청에서 파일을로드하는 방법을 찾아야합니다. 가장 먼저 생각한 것은 스프라이트 시트 였지만 "모든 것을 압축하고 JSZip과 같은 것으로로드하면 어떨까요?"라고 생각했습니다. 나는 이미 가능하다는 것을 알고 (zip에서 pixi 텍스처를로드하는이 프로젝트에서) 잠재적 인 좋은 것과 나쁜 것들이 무엇인지 나열했습니다.

좋은 포인트 압축 :

  • 압축은 자산의 빠른로드를 의미합니다.
  • 압축은 전자로 빌드를 만들 때 더 작은 빌드 크기를 의미합니다.

압축 불량 포인트 :

  • 별도의 라이브러리를로드해야하므로로드 시간이 늘어나고 RAM이 더 많이 사용됩니다.
  • 메모리 내 압축 해제가 필요하므로 로딩 시간이 증가합니다.

스프라이트 시트의 장점 :

  • 모든 개별 이미지 파일의 헤더가 없습니다.
  • 많이 사용되어 검증 된 기술

스프라이트 시트의 단점 :

  • 압축 없음 (또는 적어도 압축과 비교할 수 없음)
  • 전화 제한으로 인해 두 개 이상의 네트워크 호출로 인해 가끔씩 2024x2024px 이상의 파일로 인해 스프라이트 시트를 분할해야 함
  • 모든 이미지의 크기가 같지 않고 거의 항상 스프라이트 시트에 약간의 공간이 남아 있으므로 빈 구멍이 있습니다. 이는 여전히 네트워크를 통해 전송되는 쓸모없는 픽셀을 의미합니다.

저는 경험이 많은 개발자가 아니므로 몇 가지 질문이 있습니다.

  1. 위의 포인트를 놓쳤습니까?
  2. 스프라이트 시트는 일반적으로 그만한 가치가 있습니까?
  3. 둘 중 어느 기술이 더 가치가 있습니까? 둘 다 할 수는 있지만 먼저 하나에 집중하고 다른 하나는 목록에 남겨두고 싶습니다.

답변

4 Theraot Aug 19 2020 at 01:12

우선, 이미 압축 된 이미지 형식이 있습니다. 특히 PNG 형식은 무손실 압축을 지원합니다. 또한 PNG를 여러 개 가져와 압축하면 크기가 증가 할 수 있지만 텍스처 아틀라스 (스프라이트 시트 또는 유사)를 만들면 특히 PNG 압축 수준의 순위를 올릴 경우 비슷한 방식으로 크기가 줄어 듭니다. 이미지를 내보낼 때.

따라서 제대로 내 보낸 텍스처 아틀라스는 압축시 나열한 이점을 제공합니다.

이것은 모든 것을 하나의 스프라이트 시트로 만들어야한다는 것을 의미합니까? 아니요. 함께로드해야하는 것들을 모아야합니다.

이미지가 작고 일정한 크기 일 때 스프라이트 시트가 더 잘 작동한다는 점도 주목할 가치가 있습니다. 스프라이트 시트가 적합하지 않은 시나리오에서 작업 중일 수 있습니다.

그럴까요? 모르겠어요. 실험 해보세요. 결정하기 위해 두 가지 기술을 모두 시도하지 않으려면 엔지니어링 접근 방식에서 입증 된 방법을 사용하는 것이 좋습니다. 이는 텍스처 아틀라스가 될 것입니다.

텍스처 아틀라스의 구멍을 최소화 할 수있는 패킹 알고리즘에도 관심이있을 수 있습니다.