Gamma에 관하여
들어가기 전
- sRGB인 1이미지 저장공간과 수식에 따른 선형적 표현이 이루어지는 개발툴 간의 차이에서 생기는 혼란
- TV와 모니터에서 밝기의 표현 공간 차이가 존재하고
- 두가지 디스플레이를 오가는 콘솔 개발에서 생길 수 있는 어려움
을 나름대로 정리하기 위해 작성한 글로 틀린 부분이 있을 수 있음.
인간의 시각이 밝기를 선형적으로 인식하지 못하기 때문에 디스플레이 화질을 보정하기 위해 감마 보정(Gamma Correction)이라는 개념이 나왔다. 2
감마(Gamma)는 디스플레이에 입력되는 신호의 밝기(Gray Level)와 화면상에 나타나는 영상의 휘도 간 상관 관계를 결정하는 수치이다.
아래 그래프는 입력되는 신호의 밝기(Gray Level)와 출력되는 휘도의 관계에 따른 감마를 보여 주는 그래프이다.
X축이 입력되는 Gray Level, Y축이 출력되는 휘도(%), 그리고 기울기가 바로 감마값. Gray Level은 디스플레이의 bit에 따라(주로 8 bit이며, 이 경우 256 단계의 Gray로 표현이 가능함), Black에서 White까지 균등한 간격으로 나눈 명암 표현 수치이다.
0 Gray부터 255 Gray까지 단계별로 한 칸씩 각각의 밝기를 지정하고, Gray가 올라갈수록 해당되는 Gray의 휘도가 점점 높아지게 설정한다. 만약, 감마값이 1이라면 Gray Level에 따른 휘도 값이 정비례하게 나타나게 된다. 하지만, 인간의 눈은 어두운 곳의 차이는 잘 구분하지만 밝은 곳의 차이는 잘 구분하지 못하기 때문에 감마값을 1로 정비례하게 설정을 해 놓는다면 높은 Gray로 갈수록 밝은 색을 잘 구분하지 못하게 된다.
이를 보완하기 위해 인간의 눈에 최적화시킨 감마값을 맞추어야 하는데 그 값이 NTSC(National Television System Committee) 표준 감마값인 2.2이다. (출처)
이를 이해한 후 아래 영상을 참고.
게임그래픽은 실시간으로 계산되는 컴퓨터 그래픽이기 때문에 RGB (0~255, 8bit=2^8=256)
게임하는 것을 촬영했다면 Y'cbcr (16~235)
엑박의 표준, 플스의 제한은 RGB공간을 가진 게임 그래픽을 Y'cbcr로 변환해주는 옵션.
1. Unite 2018 강연자료인 이 슬라이드를 참고
모니터는 어두운 곳에 민감한 인간의 감각에 맞춰 어두운 부분의 밀도를 올림. (디스플레이 공간의 Gamma는 어둡다)
그러나 이미지를 촬영(저장)할 때 밝게 저장하기 때문에 우리가 모니터에서 이미지를 볼 때 어둡다고 느끼지 않음. (저장 공간인 sRGB에는 밝게 저장된다)
<슬라이드 p.38 참고>
2. 감마 보정(Gamma Correction)에 대한 이해 (1)
3. 감마 보정(Gamma Correction)에 대한 이해 (2)
UI작업자 외의 아트파트에서는 작업공간을 추가로 세팅할 필요까진 없음.
6. 색재현율
7. 휘도