-
Unity] 색을 숫자로 표현하기, 빛의 삼원색Unity 2024. 12. 13. 08:23
색의 기본 원리
- 가산 혼합 : 빛의 삼원색. RGB로 이루어진 색을 더하면 더할수록 밝아지며, 모두 더하면 흰색이 되는 색 체계. 우리가 사용하는 모니터와 스마트폰 화면에서 표현되는 색이다.
- 감산혼합 : 색의 삼원색. RGB를 더하면 더할수록 색이 어두워짐. 물감이나 잉크에서 볼 수 있다.
- 모니터 화면에서의 RGB
- 일반적인 컬러 모니터는 RGB(빨강, 초록, 파랑)로 구성되어 있는 3개의 서브픽셀(SubPixel)로 이루어져 있다.
- 아주 작아서 잘 보이지 않으며, 이 서브픽셀로 색을 구성해 우리가 보는 화면을 다양한 색으로 보여준다.
- 한 픽셀의 색을 결정하는 코드인 ‘픽셀 셰이더’ 작업을 하려면 색을 숫자로 연산할 줄 알아야 한다.
색을 숫자로 계산하기
- RGB의 각 밝기를 최대 100%로 추정(100%, 100%, 100%)하고 이를 float 값으로 바꾼다
- 흰색 : Float3(1.0, 1.0, 1.0)
- 검은색 : Float3(0, 0, 0)
- 노란색 : Float3(1.0, 1.0, 0)
- 회색 : Float3(0.5, 0.5, 0.5)
- Float3(1.0, 1.0, 1.0) == 포토샵(8비트) (255, 255, 255)
- Float3 에서 1을 넘어간 수는 거의 무의미하다. 1을 최댓값으로 보기 때문. 반대로 0도 같다. 0이 최솟값이기 때문에 -1은 표현이 되지 않는다.
- RGB는 합쳐 놓으면 컬러로 보이지만 , 따로 놓고 보면 흑백으로 표현된다.
- RGB의 숫자 값은 컬러를 나타내는 것이 아닌 ‘강도’를 표현하는 것
- 붉은 색은 R 1.0 이고 G 0.0, B 0.0 값도 들어가야 붉은 색으로 표현 됨
- 포토샵 - Channel 참고
https://chulin28ho.tistory.com/740
컬러 연산
- Add (Linear Dodge)
- RGB의 각 자리를 더한다.
- 회색 + 회색 : Float3 (0.5, 0.5, 0.5) + Float3 (0.5, 0.5, 0.5) = Float3 ( 1.0, 1.0, 1.0) == 흰색
- Multiply
- RGB의 각 자리를 곱한다. (나눈다)
- 회색 * 회색 : Float3 (0.5, 0.5, 0.5) * Float3 (0.5, 0.5, 0.5) = Float3 (0.25, 0.25, 0.25) == 어두운 회색
- Invert
- 색 반전
- 1에서 값을 빼주면 된다.
- Float ( 1, 0, 0) 의 반전 : 1 - Float3(1, 0, 0) == Float3 (0, 1, 1) 빨간색의 반전은 하늘색
반응형'Unity' 카테고리의 다른 글
Unity] Unity Shader Graph 사용해보기 (0) 2024.12.16 Unity] 모바일광고 넣기 - 1: Google AD 사용하기 (2) 2024.12.12 Unity] Rendering Pipeline : 렌더링 순서 (0) 2024.12.06 Unity] 셰이더 그래프(Shader Graph) (0) 2024.12.04 Unity] Shader 와 URP (1) 2024.12.03