p5.js colorMode - RGB / HSB 알아보기 (feat. 색상 대비)
fill(), stroke(), background(), color() 함수에 색상을 채울 때 사용되는 기본 컬러 모드는 RGB 색상 모드로 설정되어 있다. 이 외에 colorMode(HSB)나 colorMode(HSL)로 설정하면 각각의 색상 모드로 변경할 수 있다.
RGB 색상만 알아도 충분히 표현은 가능하지만, 명도/채도 등의 색상에 대한 기본 속성을 알아두면 좀 더 조화롭게 배색하는 데 도움이 될 것이다.
RGB 색상 모드
컴퓨터가 색상을 보는 방식으로 빛의 3원 색인 빨강(RED), 초록(GREEN), 파랑(BLUE) 세 종류의 광원을 이용하여 색을 혼합하며, 색을 섞을수록 밝아지기 때문에 '가산 혼합'이라고 한다.
3 가지 색상 (빨강/녹색/파랑)은 각각 0 ~ 255 사이의 값으로 표시되며,
그 값이 0에 가까우면 광원이 약하고 255에 가까워질수록 광원의 세기가 강해진다.
예를 들어 검은색은 RGB 값 ( R = 0, G = 0, B = 0 ) 흰색은 ( R = 255, G = 255, B = 255)으로 표시된다.
아래와 같이 RGB 값을 조합하여 다양한 색상을 만들 수 있고,
각 값들을 조합하면 1600만 개 이상의 색상을 표현할 수 있다고 한다.
HSB 색상 모드
색의 3 속성인 색상(Hue), 채도(Saturation), 명도(Brightness)를 이용하여 색을 혼합한다.
colorMode(HSB)로 변경 후 사각형 도형에 채워질 색상을 fill(Hue, Saturation, Brightness) 순으로 채워 넣으면 되며 알파 값은 생략 가능하다.
* 알파 값이 0에 가까우면 투명해지고 1에 가까울수록 불투명해진다.
위의 예시 fill(153, 71, 89)에서 153/71/89는 Hue/Saturation/Brightness를 나타내며 각 값을 적절히 사용하여 원하는 색상 값을 도출하기 위해 아래 내용을 참고하기 바란다.
- 첫 번째 숫자(Hue) : 색상을 나타내며 값의 범위는 0 ~ 360 도이다 (아래 그림 참고)
- 두 번째 숫자(Saturation) : 색상의 맑고 탁한 선명도를 나타내는 채도로 값의 범위는 0 ~ 100까지의 백분율로 나타낸다. 이 경우 0은 색상 없음을 100은 전체 색상을 의미한다.
- 세 번째 숫자(Brightness) : 색상의 밝고 어두운 정도를 나타내는 명도로 값의 범위는 채도와 마찬가지로 0 ~ 100까지의 백분율로 나타낸다.
흰색을 추가하여 색상 밝기를 향상하거나 검은색을 추가하여 감소시킬 수 있으며, 이 경우 0은 검은색을 100은 흰색을 나타낸다. 따라서 명도의 값이 0이 될수록 색상이 더 어두워지고 100이 될수록 색상이 더 밝아진다.
명도와 채도에 따른 색상 변화 비교
색상 대비
1. 단색 대비
동일한 색상에 명도나 채도 값의 차이를 이용하여 변화를 주는 방법
2. 유사색 대비
색상환에서 가까운 위치에 있는 색상을 이용하여 변화를 주는 방법
3. 보색 대비
색상환에서 반대 위치에 있는 색상을 이용하여 변화를 주는 방법
어떤 색을 쓰는 게 좋을지 색 배치가 너무 어렵다면 Adobe 색상 휠을 조작해보면서 그 답을 얻어 보는 것도 괜찮을 것 같다.
색상 휠, 색상 팔레트 생성기 | Adobe Color
'지식 확장 > p5.js' 카테고리의 다른 글
p5.js 애니메이션을 위한 변형(transform) 함수 1 - 객체 위치 이동 translate() (0) | 2021.05.09 |
---|---|
K-MOOC] 예술가와 디자이너를 위한 아트 코딩 4주 차 실습 과제 (0) | 2021.05.02 |
KMOOC] 예술가와 디자이너를 위한 아트 코딩 2주 차 실습 예제 (0) | 2021.04.18 |
KMOOC] 예술가와 디자이너를 위한 아트 코딩 1주차 실습 예제 (0) | 2021.04.18 |
p5.js 기본 도형 그리기 - 호(arc) 그리기 (0) | 2021.04.18 |