UDN
Search public documentation:

GammaCorrectionKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 렌더링 > UE3 의 감마 보정

UE3 의 감마 보정


문서 변경내역: Daniel Wright 작성. 홍성진 번역.

개요


인터넷에는 감마 보정이 무엇이며 왜 필요한지에 대한 정보가 수없이 많이 있습니다. 개요로서는 위키피디아의 감마 보정(영문), 더 자세히는 GPU Gems 3 장 을 참고하시기 바랍니다. 요약하자면 색을 감마 공간으로 변환해야 하는 데는 두 가지 이유가 있습니다:

  • 다양한 모니터의 (출력 휘도가 입력 강도에 비례하지 않는) 비선형 반응을 보정해 주기 위해.
  • 색을 양자화(quantize)시킬 필요가 있을 때 가장 문제가 되는 어두운 지역의 정밀도를 높이기 위해. 인간의 눈은 밝은 색 지역에서 보다 어두운 색 지역의 변화에 보다 민감하기 때문입니다.

UE3의 감마


모든 플랫폼에서 사용되는 UE3의 감마-보정 (즉 색에 대한 계산은 전부 선형 공간에서 이루어지는) 렌더링 파이프라인은:

  • 입력 색 텍스처는 어두운 부분의 정밀도를 높이기 위해 감마 공간(디퓨즈, 스페큘러 등)에 저장됩니다. 이런 텍스처는 sRGB 읽기로 (D3D9의 D3DSAMP_SRGBTEXTURE) 샘플링되는데, 그래픽 하드웨어를 사용해서 감마로부터 선형 공간으로의 변환을 공짜로 하게 됩니다. 이는 SRGB UTexture 속성을 통해 조절됩니다.
  • 선형 공간 색을 구하고 나면, 바라는 선형 결과를 내기 위해 다양한 라이팅 방정식에 사용할 수 있습니다.
  • 씬 색 렌더 타겟은 선형 색을 저장합니다. 이것이 중요한 이유는, 알파 블렌딩이 선형 공간에서 일어남을 뜻하기 때문입니다. 씬 색을 감마 공간에다 저장한다면, 알파 블렌딩은 그 해당 색 공간에서 일어나게 되는데, 그렇게 되면 예상 결과와 매우 달라지게 될 것입니다. 선형 공간에 씬 색을 저장할 때의 단점은 훨씬 높은 정밀도를 필요로 한다는 건데, 어두운 부분에서의 밴딩 현상을 피하려면 FP 16 렌더 타겟이 필요합니다.
  • 포스트 프로세스 체인의 끝에서 선형 씬 색이 감마 보정되는데, 이는 씬 색을 픽셀별 8비트 렌더 타겟/백버퍼에 쓰기 전에 보정됩니다. 이것이 일반 모니터의 비선형 반응을 보정하기 위한 표준 감마 보정입니다. 이는 포스트 프로세스 체인에 위버 포스트 프로세스 노드가 없을 경우, UberPostProcessBlendPixelShader.usf 또는 GammaCorrectionPixelShader.usf 에서 일어납니다.

여기서 예외가 한 가지 있었는데, UI는 하위호환성 때문에 감마 공간에서 블렌딩되고 있었습니다.

모바일에서의 감마


2011년 6월 이후

모바일 디바이스에 감마 보정이 지원되어, 여러 플랫폼에 걸쳐 라이팅이 일관된 레벨과 콘텐츠를 만들 수 있게 되었습니다.

mobile_gamma_results.jpg

모바일 감마 보정을 켜려면

모바일 플랫폼의 감마 보정은 디폴트로 켜져 있지 않습니다. 모바일 게임에 감마 보정을 활용하려면 맵의 월드 프로퍼티Use Gamma Correction (감마 보정 사용) 프로퍼티를 켜 줘야 합니다.

gamma_enabled.jpg

퍼포먼스 고려사항

모바일 디바이스에서의 감마 보정은 퍼포먼스에 꽤나 큰 영향을 끼칠 수 있습니다. 거의 미래의 모바일 디바이스에서 사용할 의도인 것입니다. 현재 감마 보정을 사용한 게임을 제대로 돌릴 수 있는 디바이스는 아이패드2가 전부입니다.