[ 대마왕의 유니티 URP 셰이더 그래프 스타트업 1 ] Part06
Part5. Shader Graph 기본 조작하기 2
: 분해와 재조립 / 노드와 색상 연산과 감마 코렉션
1. 노드의 값을 분해하고 재조립하기
split/ combine
swizzling
Flip
2. 노드(숫자)의 연산
덧셈/ 곱셈/ 뺄셈/ 나눗셈
반전(OneMinus)
0~1사이를 넘어가는 연산
각종 블렌딩 연산
3. Color의 연산과 감마 코렉션
Color 연산
Color 노드끼리의 덧셈도 벡터의 덧셈과 비슷한 결과가 나온다.
비슷할 뿐이지 같지는 않다...!
그 이유는 바로바로
감마 코렉션
이 있기 때문이다.
자 이렇게 회색 컬러끼리 더했을 때와 회색 벡터끼리 더했을 때 프리뷰 결과가 다른 것을 볼 수 있다.
감마코렉션이란?
검정색 - 흰색의 그라데이션을 보았을 때
리니어한 그라데이션은 수학적으로 정확한, 완전한 그라데이션이다.
감마코렉팅된 그라데이션은 인간의 눈에 균일해 보이도록 보정이 들어간 그라데이션이다.
- 모니터·TV 같은 디스플레이는 밝기를 선형(Linear) 로 표시하지 않는다.
사람이 느끼는 밝기와 실제 전압 사이에는 대략 전압^2.2 같은 비선형 관계가 있다. - 그래서 이미지를 파일에 저장할 때는 거꾸로 이 비선형(≈ 감마 2.2)을 입혀 둔다.
→ 이렇게 저장된 값이 흔히 말하는 sRGB(= 감마 공간) 이다. - GPU 셰이더에서 조명·블렌딩 등 물리 계산을 하려면 선형(Linear) 로 변환해서 연산해야 결과가 맞다.
위의 두 노드 연산에 대한 자세한 흐름을 챗지피티o3에게 물어보았다.
Color노드는 sRGB 기준으로 입력되고, 선형 변환 후 연산이 되는데
Vector노드는 그냥 바로 연산에 적용된다.
그래서 정확한 연산을 위해서는 리니어한 Vector 노드를 사용하거나 Color 노드에 ColorspaceConversion(변환 노드)를 함께 사용해야 한다.
책에 첨부된 추가 공부용 주소를 첨부..
감마와 리니어 칼라 스페이스 - https://chulin28ho.tistory.com/741
감마와 리니어 칼라 스페이스
https://www.youtube.com/watch?v=Xwlm5V-bnBc https://www.youtube.com/watch?v=oVyqLhVrjhY https://www.youtube.com/watch?v=lUvsEfqOkUo 출처: https://chulin28ho.tistory.com/657 [대충 살아가는 게임개발자:티스토리]
chulin28ho.tistory.com