OpenGL - 3 그래픽 컬러 처리
01 컬러이론
빛은 전자기파의 일종이다. 전자기파에서 빛 에너지의 세기는 장의 세기를 말하며, 이는 주기적으로 크고 작아지기를 반복한다. 장의 세기가 초당 몇 번이나 바뀌는지를 나타낸 것이 주파수(Frequency)다.
주파수와 파장(Wave Length)은 서로 역수 관계이므로 주파수가 높을수록 파장의 길이는 작아진다.
두가지 색을 동일한 양으로 섞었을 때 결과색이 백색이면 각각을 보색(Complementary Colors)라고 한다.
02 컬러 모델
RGB 컬러 모델 - 우리 눈이 주로 빨강, 녹색, 청색 파장에 가장 민감하게 반응한다는 것에서 도출 되었다.
우리 눈이 주로 이 세 가지 파장의 빛의 세기를 합성하여 색을 인식한다는 삼중 자극 이론(Tri - stimulus Theory)를 따른다. RGB 모델을 가산 모델(Additive Model)이라고도 한다.
일반적인 컬러 모니터는 RGB모델을 사용한다. 그러나 RGB 모델로 사람이 인식할 수 있는 모든 색을 표현하기는 불가능이다.
컴퓨터 모니터에는 RGB에 대한 표준이 없어서 서로 다른 RGB색 공간을 지닌다. 따라서 컴퓨터 모니터 마다 같은 물체의 색이 다른것이다.
CMY 컬러 모델 - CMY 컬러 모델(CMY Color Model)은 RGB(빛의 합성에 대한 모델) 과 달리 빛이 물체 표면에 반사 되었을 때의 색에 관한 모델이다.
CMY를 사용한 빼기 계산으로 필요한 색을 만들어 낸다. 이러한 점에서 CMY 모델을 감산 모델(Subtractive Model) 이라고 한다.
CMYK 컬러 모델(CMYK Color Model)은 CMY 모델을 확장한 것이다. 회색 농도(K : Chromatic)을 포함하여
CMY 감산 시 좀 더 편하게 함. 직접 흑색 잉크를 칠함으로써 어떤 색 내부의 회색 농도를 좀 더 정밀하게 표현이 가능하다.
HSV 컬러 모델 - Hue, Saturation, Value Color Model or HSB(Hue, Saturation, Brightness) - 색상, 채도, 명도를 명시하여 색을 지정하는 방법이다.
YUV 모델과 YIQ 모델 - Y(명도) U,V는 색상 정보를 나타낸다.
03 컬러모드
컬러 모드는 컬러 모델과는 별개의 개념이다. 프레임 버퍼의 내용이 R, G, B 직접 담고 있는 경우를 RGB 컬러 모드(RGB Color Mode)라 한다.
프로엠 버퍼의 비트값이 R, G, B 컬러 값이 아니라 컬러 보기표의 첫 칼럼인 인덱스 값을 의미하는 것은 인덱스 컬러 모드(Index Color Mode)라 한다.
인덱스 컬러 모드는 그림의 색조가 유사할 때 효과적이다. ex) 청개구리 + 잎 녹색계통 등…
04 하프 토우닝과 디더링
출력장치에서 인쇄할 수 있는 색은 제한적이다. 그러나, 사람의 눈이 지닌 속성을 이용한다면 제한된 장비에서
더욱 다양한 색상이 보이게 할 수 있다.
위의 사진은 흑색 잉크 한 가지로 인쇄 되었지만, 보이는건 회색처럼 보인다.
이러한 눈의 특성을 이용해서 색을 느끼게 하는게 하프 토우닝(Half Toning) 기법이라 한다.
컴퓨터 화면의 점 크기는 고정되어 있어, 그 점을 활성화 하거나 비활성화 하는 방식 밖에 없는데, 이를
디지털 하프 토우닝(Digital Half Toning)이라 한다.
05 감마수정
감마 수정(Gamma Correction)이란, 사용자가 모니터에 출력하기 원하는 명도값이 실제 기댓값이랑 다른 것을 수정하기 위한 작업을 말한다. 이에 따른 수식이 존재하고 이 수식에 값을 넣는다.
감마 값은 모니터의 종류에 따라 다르고, 이 경우 감마 수정은 하드웨어 또는 소프트웨어에 의해 이루어진다.
하드웨어 스스로 감마 값 수정을 자동으로 실행하는 것을 하드웨어 감마(Hardware Gamma)라 부른다.
IBM PC에는 일반적으로 하드웨어 감마 수정 기능이 없다. 따라서 소프트웨어에 의해 감마 수정을 해야한다.
이를 시스템 감마(System Gamma)라 한다.
파일감마(File Gamma)는 파일 자체에 해당 그림의 감마를 저장한 것이다.
3장 연습문제
- 1 백색광에는 모든 가시광선의 모든 주파수 성분이 동일한 양으로 분포한다. (True/False)
-> True
- 2 RGB 컬러 모델을 사용하는 컴퓨터 모니터로 모든 자연색을 표시할 수 있다. (True/False)
-> False 모든 자연색을 표시할 순 없다.
- 3 셰이딩을 가하면 채도가 감소하며, 틴팅을 가하면 채도가 증가한다. (True/False)
-> False 셰이딩은 어떤 색상에 흑색을 섞어 명도와 채도를 낮추고, 틴팅은 백색을 섞어서 명도는 높이지만, 채도는 낮춘다.
- 4 인덱스 컬러 모드를 적용하더라도 한 화면에 동시에 그릴 수 있는 컬러 수는 프레임 버퍼 용량에 의해 결정된다. (True/False)
-> True
- 5 인덱스 컬러 모드에서 표현할 수 있는 색상은 프레임 버퍼 용량과 무관하다. (True/False)
-> True
- 6 디더링 결과 실질적 화면 해상도는 줄어든다. (True/False)
-> False 디더링은 하프 토우닝에 비해 화면 해상도는 냅두는걸 목적으로 하는 기법이기에 줄어들지 않는다.
- 7 감마 수정이 가해지지 않으면 모든 색은 실제보다 밝게 표현된다. (True/False)
-> False 어둡게 표현된다.
- 8 빛의 삼원색은 ()이며, 물감의 삼원색은 ()이다.
-> RGB, CMY
- 9 HSV 컬러 모델에서 각도 값으로 표시되는 것은 색상, 명도, 채도 중 () 이다.
-> 색상
- 10 YUV 컬러 모델에서 명도 정보는 ()에 포함되어 있다.
-> Y
- 11 RGB의 보색은 () 이다.
-> CMY
- 12 CMS는 ()의 약자이다.
-> Color Management System
- 13 회색도 1.0으로 정규화 되었을 경우를 가정하고 CMY 모델에서 (C, M, Y) = (0.3, 0.4, 0.5)인 색이 있다. 이 색을 RGB 모델로 변환했을 경우 (R, G, B) 값은 () 이다.
-> (0.7, 0.6, 0.5)
- 14 1,024 X 768 화면에서 2X2 화소 단위로 하프 토우닝을 적용하면 실질적 해상도는 ()로 바뀐다.
-> 512 X 384
- 15 3X3 화소를 한 단위로 취급할 때, 다음 행렬로 표시된 하프토우닝 패턴을 모두 그려보라.
-> ?
- 16 2X2 화소를 한 단위로 취급할 때 줄무늬가 일어날 수 있는 하프토운 행렬을 모두 나열해보라.
-> ?
- 17 RGB = (0, 255, 127)인 화소가 있다. 감마 수정을 가하지 않을 때 가장 영향을 받는 컬러 값은 ()이다.
-> B(청색)
- 18 하드웨어 감마가 1.4인 모니터에서 최종 감마를 2.5로 하려면 시스템 감마를 ()로 설정해야 한다.
-> 1.8 총체적인 감마 수정은 (1*?) * (1/1.4) = 2.5 수식을 만족해야 하기 때문이다.