실시간 DXT 압축

김포프 2010-06-14
최근에 이 페이퍼를 읽을 기회가 있었습니다. 게임 속에서 실시간 또는 오프라인에서 노말맵을 DXT로 압축하는 방법을 설명합니다. 탄젠트 공간과 오브젝트 공간을 모두 다룹니다.



DXT 압축은 품질저하가 있는 압축기법이지만 다음과 같은 이유로 거의 모든 게임이 사용한다고 해도 과언이 아닙니다.
  • 사이즈 절약 효과가 뛰어납니다. 알파채널이 있으면 1/4, 알파채널이 없으면 1/8
  • 거의 모든 그래픽스 카드가 하드웨어 레벨에서 DXT 포맷을 지원합니다. (따라서 성능저하가 거의 없습니다)
단 문제점은 압축하는데 시간이 꽤 걸린다는 것이죠. 하지만 위의 페이퍼를 사용하면 품질은 보통 DXT보다 저하되지만 그래도 쓸만한 효과를 얻을 수 있습니다. 저 스스로도 이 방법을 사용해서 이미 Xbox 360 및 PS3용 게임을 출시했고 현재도 사용하고 있습니다. PS3외의 하드웨어에서는 GPU 버전이 더 빠를겁니다. (PS3는 SPU를 이용하는 DXT압축 라이브러리가 있습니다)

다음의 Albedo 맵을 압축하는 기법을 설명하는 다음의 페이퍼들도 참고하세요