2010년 6월 20일 일요일

이것 저것: 현 샤도우 매핑 기법들

2010년 6월 14일 월요일

실시간 DXT 압축

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



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

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

2010년 6월 12일 토요일

이것 저것: 데칼로 자동차 뽀작내기

최근에 발견한 흥미로운 토픽들:

  • Game Developer 잡지 2010년 7월판에 Decal Tessellation이라는 기사가 실렸습니다. 데칼(decal)을 이용해서 자동차를 뽀작내는군요. DirectX 11 카드가 필요합니다. FPS 게임을 하다보면 벽에 총을 쏘면 벽에 총알 맞은 자국이 생기죠? 그런게 데칼입니다. PS3용 게임 Little Big Planet에서 스티커 붙이는 것도 데칼입니다.
  • PS3 하고 Xbox360 둘다 3차원 TV지원을 한답니다.  매우 소규모 시장인 것도 문제고, 3차원 TV보면 두통이 나므로 아직은 성공하기엔 시기상조 같네요.
  • 샤도우 맵에 Percent Coverage Filtering를 사용하신다면 샤도우 마스킹 테크닉을 통해 성능향상을 꾀할 수 있습니다. 단 이 페이퍼에 실린 측정수치는 그다지 믿을만 한게 못됩니다. 일부로 간단한 장면에서 테스트를 했고, 화면의 절반을 스카이박스가 덮고 있네요. 좀 현실적인 장면으로 테스트를 했었으면 하는 바램입니다.