[Unity] URP 셰이더 Gamma Correction
2023. 7. 11. 19:48ㆍUnity
728x90
반응형
이전 글에서도 Gamma에 대한 설명을 적었지만 더 쉽고 추가적 해석이 있어서 적어본다.
위의 사진을 보면 [Vector 3], [Color] 두 노드 각각 중간 값인 0.5의 회색을 나타낸다. 이 둘을 [Add] 노드로 더해보면 "0.5 + 0.5 = 1"의 값이 나오므로 흰색이 나올 것임을 예상할 수 있다. 하지만 아래쪽 [Color] 노드로 더한 값은 흰색이 나오지 않고 밝은 회색으로 나타났다.
[Preview] 노드로 살펴보면 각각의 회색이 밝기가 다른 것을 확연히 볼 수 있다.
위와 같은 결과가 나오는 이유는 사진이나 텍스트처럼 "컬러"라고 판단되는 이미지를 저장할 때 sRGB 공간이라는 밝은 영역으로 내부적으로 저장되는데 셰이더로 불러오는 과정에서 감마가 연산되어 원래 색이 화면에 나타나게 된다. 위에서 [Color]로 연산된 값은 sRGB로 밝게 처리하는 과정 없이 Gamma 공간에 있으므로 더 어두운 값이 나오게 된다.
여기서 [Color] 노드를 제대로 Linear 공간으로 만드려면 [Colorspace Conversion] 노드를 사용하면 된다.
"Linear" to "RGB"로 sRGB 변환하는 것처럼 색상을 밝게 올려버린다.
참고자료
728x90
반응형
'Unity' 카테고리의 다른 글
[Unity] URP 셰이더 Lerp 노드 응용 (0) | 2023.07.12 |
---|---|
[Unity] URP 셰이더 흑백 만들기 (Saturation) (0) | 2023.07.11 |
[Unity] URP 셰이더 그래프 Combine, Swizzle 노드 (0) | 2023.07.10 |
[Unity] URP 셰이더 그래프 기초 개념2 (Graph Inspector - Node Settings 인터페이스) (0) | 2023.07.10 |
[Unity] URP 셰이더 퐁(Phong), 블린 퐁(Blinn Phong), 프레넬(Fresnel), Vertex Shader 연산(Gouraud Shading) (0) | 2023.06.13 |