많은 작은 BMP 파일과 같은 게임 그래픽을 배송 할 때 최첨단 기술은 무엇입니까? [닫은]


9

작은 BMP 파일이 많으므로 큰 TAR / ZIP / 무엇으로 결합하면 복사하기가 더 쉽다고 생각합니다.

게임 그래픽 배송에서 최첨단 기술은 무엇입니까?

우리는 C #을 사용하고 있으며 zlib을 알고 있습니다. zlib보다 더 나은 다른 솔루션이 있는지 확인하기 위해 브레인 스토밍하십시오.

답변:


7

SharpZipLib 또는 DotNetZip을 살펴볼 수도 있습니다. DotNetZip을 사용하면 Stream직접 액세스 할 수 있습니다. 이는 파일과 달리 스트림에서로드 할 수있는 대부분의 C # 라이브러리에 도움이됩니다. 또한 DotNetZip은 법적으로 의심되는 예외를 제외하고 GPL 대신 Ms-PL (BSD-Like)을 사용합니다.

또 다른 옵션은 텍스처 아틀라스 를 사용 하는 것입니다. 많은 작은 이미지에는 몇 개의 큰 이미지가 있습니다. 이것들은 실제로 조금 더 빠르게로드되고 당신이 그리는 방법에 똑똑하면 런타임에 약간 더 빠릅니다.

마지막으로 관련 무손실 압축기 (PNG, FLAC 등)를 통해 각 자산 유형을 실행하고 플랫 파일 (기본적으로 압축이 비활성화 된 zip 파일)에 저장할 수 있습니다. 압축 된 데이터를 압축하지 마십시오 . 대부분의 경우 크기 가 커집니다 .

일부 선행 기술 :

  • MPQ : 아마도 게임 자산에 비해 좋은 검색 속도는 디스크 기반 해시 테이블 등으로 빠르게 설계되었습니다. 지원되는 각 파일 형식에는 고유 한 압축기가 있습니다.
  • Quake PAK : 기본적으로 플랫 파일 구조입니다.
  • Doom WAD : Doom 에만 해당되지만 살펴볼 가치가 있습니다.

1

옵션은 압축 텍스처를 만드는 데 사용하는 것과 동일한 압축 형식으로 이미지를 저장하는 것입니다. 이것은 하나의 손실 형식을 다른 형식으로 변환하지 않지만 데이터를 손실 형식으로 저장한다는 이점이 있습니다. 텍스처에 따라 이러한 파일을 압축 된 아카이브에 저장하면 얻을 수있는 것이 여전히 있습니다.

압축 된 텍스처에 대한 자세한 정보는이 답변을 참조하십시오 : https://gamedev.stackexchange.com/a/5177/3505


0

ZLIB는 좋은 해답이 될 수 있지만, 사람들이 애셋을 가져 오는 것을 알고 있다면 애셋을 저장하기위한 고유 한 파일 형식을 만들 수도 있습니다.

그것을 만드는 방법은 다음과 같습니다 .

C #이지만 C #은 C 및 C ++과 비슷하기 때문에 배우기가 어렵지 않아야합니다.

물론, 여전히 지식이 높은 사람들은 리소스를 확보 할 수 있습니다. 원하는 경우 암호화를 거의 추가하지 않아도됩니다.

이것은 매우 유용 할 수 있지만 파일을 결합 할뿐입니다. 압축에도 두 가지 선택이 있습니다.

  1. 전체 자원 파일을 작성하고 압축하여 배송하십시오.
    이 방법은 쉽지만 그리 좋지는 않지만 하나의 리소스 만 사용하려면 모든 것을 압축 해제해야합니다.

  2. 모든 리소스를 압축하고 리소스 파일에 압축을 추가하십시오.
    각 파일이 개별적으로 압축되기 때문에 방법 1 옆의 크기가 약간 증가하지만 유연성을 원한다면 더 좋습니다.

각 방법에는 고유 한 단점이 있으므로 현명하게 선택해야합니다. 일반적으로 게임의 리소스 수가 매우 적 으면 방법 1이 더 좋을 것입니다. LOTS를 사용하는 경우 모든 리소스의 크기가 함께 얻는 추가 용량을 압도하기 때문에 방법 2가 적합해야합니다.

압축 라이브러리의 경우 다음이 있습니다.

  • 가장 유명한 매체 Zlib
  • 감압이 더 빠른 LZO
  • 뛰어난 압축비, 7-Zip

게임 내에서 빠른 액세스를 원한다면 LZO와 함께 갈 것이므로 실시간 압축 해제에 대해 걱정할 필요가 없으며 균형 잡힌 압축 해제 비율과 크기를 원할 경우 파일을 축소하거나 Zlib 자체로 축소하려면 7-Zip을 두려워하지 않아도됩니다.
선택은 당신입니다 : D

아, 물론 데이터를 압축하는 다른 알고리즘이 있으며 그 인터넷 검색을 찾을 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.