포토샵에서 TIFF 알파 채널이 보이지 않는 이유

Mazeline·2025년 10월 29일
0

TA 가이드

목록 보기
9/9
post-thumbnail

텍스처 아틀라스 툴을 개발하면서 예상치 못한 문제를 마주했습니다. Unity 엔진에서는 완벽하게 보이는 RGBA 텍스처의 알파 채널이, 포토샵에서는 아예 표시되지 않는 것이었습니다. 같은 TIFF 파일인데 왜 다르게 보이는 걸까요?

문제의 시작

툴에서 생성한 Mask Map(M 텍스처)은 RGB 채널에 다양한 물리 기반 정보를, 알파 채널에는 Smoothness 값을 담고 있습니다. Unity에서 이 텍스처를 열면 4개 채널이 모두 정상적으로 보입니다. 그런데 아티스트가 포토샵으로 열면 알파 채널이 존재하지 않는다고 나오는 것이었습니다.

처음에는 단순히 TIFF 파일의 메타데이터 문제라고 생각했습니다. TIFF 포맷에는 ExtraSamples라는 태그가 있어서, 4번째 채널을 어떻게 해석할지 정의합니다:

  • UNSPECIFIED(0): 용도 미지정
  • ASSOCALPHA(1): 사전 곱셈된 알파
  • UNASSALPHA(2): 일반 알파

분명 이 값을 조정하면 해결될 거라 생각했습니다. 여러 조합을 테스트해봤지만 결과는 동일했습니다. 포토샵은 여전히 알파 채널을 인식하지 못했습니다.

실마리를 찾다

돌파구는 의외의 곳에서 찾을 수 있었습니다. 아티스트가 포토샵으로 직접 만든 RGBA TIFF 파일을 분석해보기로 했습니다. 같은 4채널 TIFF인데 포토샵이 만든 파일은 알파가 보이고, 툴이 만든 파일은 안 보인다면 분명 차이점이 있을 것이라 생각했습니다.

두 파일의 메타데이터를 비교한 결과, 여러 차이점을 발견했습니다:

툴이 생성한 파일:

  • BitsPerSample: 8
  • Compression: 5 (LZW)
  • ExtraSamples: 0 (UNSPECIFIED) 또는 누락

포토샵이 생성한 파일:

  • BitsPerSample: 16
  • Compression: 1 (무압축)
  • ExtraSamples: 2 (UNASSALPHA)

여러 요소가 다르게 설정되어 있었습니다.

문제의 핵심

실험을 거듭한 결과, 포토샵이 TIFF 파일의 알파 채널을 제대로 인식하려면 다음 조건들이 함께 충족되어야 했습니다:

  1. ExtraSamples 태그가 명시적으로 1 또는 2로 설정
  2. 16-bit 비트 뎁스
  3. 무압축 또는 특정 압축 방식

흥미롭게도, 일반적으로 포토샵은 8-bit RGBA TIFF도 인식할 수 있습니다. 하지만 이번 케이스에서는 툴이 생성한 8-bit TIFF에서 ExtraSamples 태그가 제대로 설정되지 않았거나, PhotometricInterpretation과 같은 다른 메타데이터가 표준을 완전히 따르지 않았을 가능성이 높습니다.

🍃

결과적으로 16-bit로 전환하면서 TIFF 저장 로직을 전체적으로 재작성했고, 이 과정에서 모든 메타데이터가 올바르게 설정되면서 문제가 해결된 것으로 보입니다. 16-bit 자체가 필수 조건이라기보다는, 16-bit 워크플로우로 전환하면서 TIFF 포맷 표준을 더 정확히 준수하게 된 것이 핵심이었습니다.

해결 과정

문제를 이해하고 나니 해결책은 명확했습니다. M 텍스처를 가져올 때 8-bit에서 16-bit로 변환하고, 동시에 모든 TIFF 메타데이터를 올바르게 설정하는 것이었습니다:

# 0-255 범위를 0-65535 범위로 변환
value_16bit = value_8bit × 257

왜 256이 아니라 257을 곱하는지 궁금하실 수 있습니다. 정확한 범위 매핑을 위해서입니다:

  • 255 × 256 = 65,280 (최댓값이 65,535에 미치지 못함)
  • 255 × 257 = 65,535 (정확히 16-bit 최댓값)

이렇게 변환된 16-bit TIFF를 적절한 메타데이터와 함께 무압축으로 저장하니, 포토샵에서 알파 채널이 완벽하게 표시되었습니다.

트레이드오프: 품질 vs 용량

물론 이 해결책에는 대가가 따릅니다. 2048×2048 RGBA 텍스처 하나를 기준으로 비교하면:

  • 8-bit LZW 압축: 약 4.2 MB (압축률은 텍스처 내용에 따라 다름)
  • 16-bit 무압축: 32 MB (2048 × 2048 × 4채널 × 2바이트)

약 7~8배의 용량 증가입니다. 256개 슬롯을 사용하는 프로젝트라면 약 8GB의 저장 공간이 필요합니다.

하지만 이는 충분히 받아들일 만한 트레이드오프였습니다. 아티스트가 포토샵에서 텍스처를 열어 알파 채널을 확인하고 수정할 수 있다는 것은, 작업 효율성 측면에서 훨씬 더 중요하기 때문입니다. 또한 Unity의 고품질 압축 포맷(BC7, ASTC 등)은 16-bit 소스를 더 잘 활용할 수 있어, 최종 빌드 품질도 향상됩니다.

배운 교훈

이번 문제를 통해 "작동한다"와 "모든 곳에서 작동한다"는 다르다는 것을 다시 한번 깨달았습니다. TIFF는 표준 포맷이지만, 각 소프트웨어는 표준을 미묘하게 다르게 해석하며, 특정 메타데이터 조합에서 예상치 못한 문제가 발생할 수 있습니다.

문서만으로는 이런 차이를 파악하기 어렵습니다. 실제로 타겟 소프트웨어에서 생성한 파일을 분석하고, 직접 테스트하는 것이 가장 확실한 방법입니다.

그리고 무엇보다, 사용자(아티스트)의 피드백이 가장 중요한 테스트였습니다. "포토샵에서 알파가 안 보여요"라는 한 마디가, 며칠간의 디버깅보다 더 명확하게 문제를 정의해주었습니다.


이제 툴은 포토샵과 완벽하게 호환되는 TIFF를 생성합니다. 작은 파일 포맷 하나에도 이렇게 많은 고려사항이 숨어있다는 것, 그것이 기술 개발의 매력이자 도전입니다.

profile
테크아트 컨설팅 전문 회사 "메이즈라인" 입니다.

0개의 댓글