본문 바로가기

General Theory

Color space와 Gamma, Linear workflow

Linear workflow, Gamma

 

실제 세상의 빛은 linear로 작용, 우리가 보는 빛의 양은 광원들의 빛의 양을 합친 값이다. 즉, 실제 세상에서는 input이 output과 일정, 동등하다. 이를 linear라고 한다.

 

 

하지만 모니터에서는 이와 다르게 아래 그래프처럼 표시한다.

모니터가 이미지를 표현하기 위해서는 전압이 공급(input)되고, 모니터는 이를 빛의 정도로 환산해서 이미지(output)로 표현한다. 하지만 컴퓨터 모니터는 우리의 눈이 받아들일 수 있는 빛의 양을 표현할 방법이 없기 때문에 컴퓨터는 눈에 보이는 것과 유사하게 표시한다. 이를 color space라고 부른다.

 

 

모니터들이 가장 많이 사용하는 color space는 sRGB(non-linear, 8bit, gamma 2.2) 안에서 이뤄진다. sRGB안에서는 gamma correction이라는 것이 작용하는데, 이는 우리가 본 luminance값을 비디오나 사진에서 암호화, 해독하던 방식을 말한다.

그래서 이를 다시 linear로 바로잡기 위해 의도적으로 수치값을 대입한다. 이 수치를 gamma라고 한다.

 

 

Gamma가 3D 프로그램에서 어떻게 적용될까?

 

HDR을 제외한 텍스쳐 이미지들이나 컬러 피커가 스크린에서 바르게 보일 수 있는 이유는 감마값이 미리 적용되어 있기 때문이다. 하지만 렌더 엔진들은 linear에서 작용하고 있다. 그렇기 때문에 텍스쳐 이미지들의 gamma 수치를 없애지 않고 linear로 작용하는 엔진에서 렌더한다면 감마가 섞인 결과물이 나오게 될 것이다. 최종 결과물인 텍스쳐 이미지에는 감마가 두배로 적용이 되는 것이다. 내가 예상했던 이미지와 다른 결과물이 나오게 될 것이다.

 

해결 방법

텍스쳐 이미지들과 컬러피커에서 gamma 수치를 뺀 후 (렌더엔진과 동일한) linear로 렌더, 최종 결과물에서 gamma를 다시 대입한다.

linear workflow는 씬 안의 모든 라이트, 텍스쳐, 머터리얼이 렌더할 때 같은 color space에서 존재함을 보장한다.

 

 


 

 

파일을 저장할 때 8bit, 16bit 두 가지 옵션의 차이

 

8bit

파일형식: jpg, bmp, tiff

2.2감마커브로 암호화 됨.

 

16bit

파일형식: exr, hdr, raw, tiff

1.0감마(linear)로 암호화. 더 상세한 데이터를 저장할 수 있다.

파일 텍스쳐를 위한 gamma correction

 

Linearize 필요한 맵

diffuse (color) /

색이 들어간 reflection / refraction /specular 등 렌더에서 색에 영향을 미치는 모든 맵들

 

Linearize 하지 말아야 할 맵

Bump / Normal / Displacement / Roughness / 흑백 Specular 등 렌더에서 색에 영향이 없는 맵들

'General Theory' 카테고리의 다른 글

3D 애니메이션 제작에서의 용어와 개념  (0) 2019.03.31
애니메이션의 12 원칙  (0) 2019.03.31