본문 바로가기
유니티 엔진

Linear에서 sRGB이미지의 알파는 어떻게 되는가

by 대마왕J 2018. 4. 19.

알다시피 텍스쳐는 sRGB 처리가 되면서 Gamma Correction 을 거치기 위해 (뭐 정확히 그것만을 하기 위해서는 아니지만 하여간) 내부적으로 밝아지게 된다. 


그리고 Linear Pipeline에서는 이 텍스쳐는 다시 원래 '선형' 으로 돌아온다. 즉 어두워진다. 그리고 계산된다. 



근데 일단 이건 RGB를 말하는 거다. 


만약 이 이미지에 있는 알파 채널은 어떻게 될까? 예상컨데 동일하게 작동될 것이라 생각할 수 있다. 


즉 회색(감마 코렉션에서 차이가 가장 큰)을 리니어 처리하면, 

회색 - 밝은 회색을 거쳐 - 다시 회색

으로 돌아오므로 

RGB도 A도 동일하게 작동될것이라고 상상할 수 있을 것이다. 


즉 RGB를 회색으로 만들고 A도 회색으로 만들면, 


RGB나 A나 전부 저렇게 반응할 것이라고 생각할 수 있을 것이다. 


sRGB니까. 



그럼 테스트를 해보자. 



포토샵에서 그레이RGB와 그레이A 를 만들었다. 


         


둘은 아무리 봐도 똑같이 생겼다. 


그리고 유니티로 넘겨보자. 


위 가정대로라면 유니티로 넘겨도, RGB와 A가 같은 색이어야 할거다. 



그리고 결과. 



   



놀랍게도 A가 더 밝다! 분명히 전환하면 반짝 하면서 밝아진다!! 




자세히 재 보진 않았지만 느낌적으로 이건 밝아진 상태 그대로이다! 그것도 알파만! 


즉 이런거다. 


sRGB로 이미지를 만들었고 이미지에 sRGB 옵션을 켰다 하더라도 


sRGB는 RGB에만 적용되는거고 

A 는 Linear로 동작하고 있다는 말이 된다. 


즉 RGB만 '이미지' 로 취급하고 있고, A만 '데이터' 로 취급하고 있다는 말이다. 


어쩐지.. 

아래에 보이는 Albedo의 A를 Smoothness에 사용한다는 말이 영 걸리더라... 

그랬더니 지금과 같은 결과가. 

그래 이렇게 되는 거면 저기다 넣어도 아무 문제 없다는 말이다... ㄷㄷㄷㄷ 




반응형

댓글