베개발

(게임개발용) png, tga 차이 (+jpeg, exr/tiff, psd) 본문

3D/공부 메모

(게임개발용) png, tga 차이 (+jpeg, exr/tiff, psd)

rusal0204 2024. 9. 12. 01:01

아트스테이션 블로그에 마침 궁금했던 주제의 글이 있길래

3D공부+영어공부 겸 직접 번역 후 백업

오역이 있을 수 있음...

 

https://www.artstation.com/blogs/ericcorreia/boP81/which-texture-format-for-muhh-project-advantages-and-disadvantages-of-texture-formats-for-games

 

 


요약

  • TGA가 일반적인 RGB 채널 외에, 네 번째 채널을 사용해서 알파 값을 위한 마스크를 포함한다는 점
    반면에 PNG는 RGB 내부의 '누락된' 정보를 사용해 알파 값을 저장함
  • 게임에서는 보통 UI 요소 등에 PNG를 선호하는데, 4번째 채널이 다른 채널들과 일치하는지 신경 쓸 필요가 없기 때문에 다루기가 더 쉬움
  • 하지만 3D 모델의 텍스처에는 TGA(또는 TIFF 같은 비슷한 파일 형식)가 더 좋음
  • 알파 밑에 있는 모든 정보에 여전히 접근할 수 있어서, 나중에 수정하거나 셰이더를 통해 컷오프나 알파 값을 조정할 수 있음
  • 나뭇잎처럼 컷오프 알파를 사용하는 물체를 먼 거리에서 볼 때 밉맵 처리와도 더 잘 맞고, 흰색 윤곽선이 생기지 않도록 해줌

 

(추가로 찾아본 자료)

https://www.reddit.com/r/gamedev/comments/p00xwy/why_would_you_use_tga_files_for_texturing_instead/

레딧 찾아보면 재밌는거 많은듯


 

png는 가볍지만 알파채널 제어 등이 어려움, 알파 마스킹 등을 할 때 약간의 손실이 눈에 띌 수 있음, 용량 예측이 어려움

tga는 비교적 무겁지만 알파채널 제어가 쉽고, 용량 예측이 비교적 쉬우며 완전 무손실이지만 8비트 색상까지만 지원함


PNG

PNG는 매우 가볍지만 약간의 손실(무시할 수 있는 정도)이 있을 수 있음.
16비트 텍스처를 활용할 수 있으며, 노멀 맵에 매우 유용
그러나 TGA와 같은 알파 채널 지원이 없다는 게 단점

장점

  • 훨씬 작은 파일 크기(무손실 압축), 원래 텍스처용으로 만들어진 형식은 아님
  • UI 요소나 스프라이트에 PNG를 사용하는 것이 유리함(텍스처에서 빈 정보를 사용하여 투명성이 기본적으로 포함되므로 컷아웃/투명성을 제어하는 명시적인 마스크 채널에 신경 쓸 필요가 없음)
  • 16비트 깊이를 활용 가능, 노멀 맵에 적합(컬러 밴딩을 크게 줄임)


단점

  • 디스크 공간 크기가 예측하기 어려움. 각 채널에 포함된 색상 정보의 양에 크게 의존
  • 거의 검은색/빈 4k 텍스처는 몇 킬로바이트일 수 있지만, 4k 노멀 맵은 50MB 이상일 수 있음
  • 엔진이 읽기 전에 압축을 풀어야 하므로 시간이 소요됨
  • 텍스처 마스킹과 투명성 제어가 어려움/ 알파 채널 패킹 기능이 없어 별도의 채널로 저장되지 않음
  • 그 결과, 알파/마스크용 텍스처를 별도로 만들어야 함 (이건 포토샵이나 이미지 편집 소프트웨어의 문제가 아니라, 많은 이미지 편집 소프트웨어에서 동일함)
  • 투명성 처리를 수정하고 이해하는 것이 직관적이지 않음
  • SuperPNG와 같은 서드파티 도구로 해결할 수 있을 수 있으나, 고유한 문제가 발생할 수 있어 TGA 텍스처 하나를 사용하는 것이 더 안전함
  • 컷아웃을 위한 투명성을 사용할 때 시각적으로 마스크가 적용된 부분의 경계가 눈에 띄게 퀄리티가 낮아질 수 있음 = PNG는 완전히 무손실이 아니며 압축되기 때문에 발생

TGA

Targa 파일은 디스크에서 더 크고 고정된 파일 크기를 가지고 있음
(예: 2K는 항상 12MB, 4K는 48MB 등)
완전 무손실이어서 세밀한 디테일을 유지하는 데 좋지만, 16비트 색상 깊이를 지원하지 않는다 (png는 지원함)

장점

  • 3D 그래픽/텍스처용으로 만들어짐 / 무손실 및 비압축 파일 형식
  • RGB 채널과 독립적인 별도의 알파 채널을 사용하므로 알파 채널에 대한 완전한 제어 가능
  • 포토샵에서 알파채널 수정이 쉽고 직관적
  • 알파 처리 방식이 훨씬 간단하며, 마스크나 알파 지원이 필요한 3D CG에 주로 사용됨
  • 텍스처 저장/반복 작업이 빠름(포토샵과 엔진/렌더러 간 전환 시 효율적)
  • 엔진이 밉맵 설정, 텍스처 프로파일, 필터링 처리 시 TGA를 잘 인식하고 처리
  • TGA는 밉맵을 저장할 수 있으나, PNG는 그렇지 않음
  • 게임 파이프라인에서 더 빠르고 효율적으로 사용 가능하며, 엔진이 파일을 읽기만 하면 되므로 압축을 풀 필요가 없음

단점

  • 큰 고정 파일 크기 때문에 프로젝트의 디스크 공간/저장소 공간을 많이 차지할 수 있음
  • 16비트 지원 없음(본질적으로 8비트 파일 형식)

* tga 파일 알파포함해서 저장할때 32bit 랬는데?

→ 그건 R채널 + G채널 + B채널 + 알파채널 각각 8비트씩이라 합해서 32비트인것!

 


 

다른 주목할 만한 파일 형식들



JPEG


장점

  • 디스크에서 가장 작은 파일 크기
  • 텍스처 형식을 결정할 때 쉽게 기각될 수 있음 (?? 그대로 번역함)

단점

  • 매우 손실이 크며, 시각적인 품질이 쉽게 예측할 수 없게 저하될 수 있음  
  • 알파 채널 지원 없음 / 오직 RGB 채널만 존재
  • 그냥 사용하지 않는 게 좋음 (!)


EXR/TIFF

  • 선형(리니어 linear) 색 공간을 사용함
  • 매우 정밀한 텍스처에 좋음. 다른 RGB 형식은 왜곡이나 아티팩트가 발생할 수 있음
  • 빌드와 디스크에서 가장 큰 파일 크기지만, (아마도) PNG보다 더 빠름
  • HDR profile을 지원함 (큐브맵 같은거?)
  • EXR의 유일한 사용 사례는 라이트맵/베이크된 조명, 스카이박스 텍스처, 큐브맵/리플렉션 프로브 등. 이런 분야에서 뛰어남

PSD

 

장점

  • 파일 크기가 다양하며, 완전 무손실 및 비압축
  • 매우 유연하고 보존적 방식 / 가져온 PSD는 개별 레이어와 조정 필터를 모두 포함할 수 있음

단점

  • 다른 파일 형식만큼 엔진에서 잘 처리되거나 읽히지 않을 가능성 있음
  • 포토샵이 필요하며, Adobe를 사용하지 않는 팀에게는 단점으로 여겨질 수 있음  

 

회사에선 tga만 썼었는데 이유를 어느정도 알 것 같다.

 

+ 좀더 검색해보니 더 잘 설명해주신 블로그 발견

https://chulin28ho.tistory.com/362

 

(수정) "유니티에서는"어째서 PNG보다는 TGA가 더 쓸모있는 파일 포맷인가?

(수정)"유니티엔진에서는" 어째서 PNG보다는 TGA가 더 쓸모있는 파일 포맷인가?로 정정합니다. -> 그럼에도 불구하고 유니티에서 왜 PNG가 왜 좋은가?? 로 이어집니다. 알파가 있고 퀄리티가 좋은 텍

chulin28ho.tistory.com

 

'3D > 공부 메모' 카테고리의 다른 글

(3D 뷰어) fbx 안열리고 벌 나올때 해결법  (2) 2024.09.13
노말맵이 파란색인 이유  (0) 2024.09.12
3ds max 타블렛 세팅하기  (0) 2021.09.07
돌 재질에 대해  (0) 2021.09.04
라이팅 팁  (1) 2021.08.26