IT/컴퓨터그래픽스

[Chapter 03] OpenGL로 배우는 3차원 컴퓨터 그래픽스

Nellie29 2024. 4. 2. 00:40


1️⃣ 그래픽 컬러 처리

💜 그래픽 컬러 처리

  • 빛은 전자기파 (=Electromagnetic Wave)의 일종
    • 빛 에너지 세기 = 전자기파 장의 세기
    • 주파수 = 초당 몇 번이나 장의 세기가 바뀌었는가?
    • 파장 = 1/주파수 (역의 관계)
    • 가시 광선 파장 : 390nm – 720nm

💜 색상, 명도, 채도

  • 우리가 색을 인식하는 과정
    • 광원이 물체에 부딪히면 어떤 주파수 성분은 흡수, 어떤 주파수 성분은 반사
      • 그 물체에서 반사된 빛이 눈으로 들어옴
  • 우세 주파수
    • 반사된 빛 중 가장 많은 에너지를 지닌 파장의 주파수
    • 색상 : 우세 주파수의 색
    • 여기서는 노랑임으로 색상은 노랑이 보일것
  • 명도 : 파형 아래의 면적
    • 색상에 무관하게 눈에 감지된 빛 에너지의 총량
      • 어두움 - 밝음
    • Ed
      • 우세 주파수 기준으로 선정
  • 채도 : Ed - Ew
    • 색의 선명도 or 순도
      • 색이 진함 - 연함
    • 그림의 채도는 노랑의 채도
    • 채도 증가법
      • Ed 증가 or Ew 감소
        • Ew 감소
          • 명도 저하 (어둡게 보임), 색상 인식이 어려움

2️⃣ 컬러 모델

💜 RGB 컬러 모델 = 가산 모델

  • 모델링에 있어 R, G, B를 x, y, z 축에 놓고 가중치에 따라 색을 정의
  • 광원에서 나오는 빛의 합성으로 색을 만듬
  • 색 범주는 상대적으로 제한됨
    • 컴퓨터 화면에 재현하기 위해 실제 색상을 단순화 함
      • ex. 컬러 모니터
  • RGB 컬러 모델은 삼중 자극 이론 (Tri-Stimulus Theory) 에 따름
    • 원추세포 (눈에 있는 색 분간 세포)가 가장 민감하게 반응 하는 색
      • 파장 630nm (빨강), 530nm (녹색), 450nm (청색)
      • 이 삼원색을 더하여 다른 색을 만들어냄
  • R+G = Y, G+B = C, B+R = M
  • RGB의 보색은 CMY

💜 CMY 컬러 모델 = 감산 모델

  • 빛이 물체 표면에 반사되었을 때의 모델
    • ex. 컬러 프린터
      • 잉크가 CMY로 이루어짐
  • 백색광이 입사되었을 때, 물체 표면에는 보색이 흡수됨
    • W - G (Complement of Magenta) = R + B = Magenta
    • (W - G) - R (Complement of Cyan) = Blue
    • (W - G - R) - B (Complement of Yellow) = Black
  • 이 모델에서 RGB는 CMY의 합성으로 표현
    • C+M+Y = Black
      • 반사되는 빛들이 없기 때문 (전부 흡수)
      • W - R - G - B = Black

💜 CMYK 컬러 모델

  • K for Chromatic (회색 농도)
    • C = 120, M = 80, Y = 200 == 400
    • C = 40, M = 0, Y = 120, K = 80 == 200
      • 회색도 추가 시 전체에 -80 가능
      • CMY가 다 섞이면 어차피 검정, 공통되는 80을 회색값으로 빼버리는 것
  • 장점
    • 잉크 건조 시간, 잉크 비용 ↓
    • 정밀한 회색 농도 표현

💜 HSV 컬러 모델

  • RGB 모델 단점
    • 직관적이지 않음
      • 보라색이 각각 RGB가 얼마인지 바로 떠올리기 불가
  • HSV (Hue, Saturation, Value) or HSB (Hue, Saturation, Brightness)
    • 색상(Hue), 채도(Saturation), 명도(Value, Brightness)
    • 화가의 직관적인 생각을 위해 개발
      • 셰이드(Shades) = 어떤 색상에 흑색을 섞음. 채도와 명도를 동시에 낮춤 (걍 참고)
      • 틴트(Tints) = 어떤 색상에 백색을 섞음. 채도는 낮추고 명도는 높임 (걍 참고)
  • 육각뿔
    • 색을 각도로 유추 
    • H: 각도
    • S: 명도 축에서 얼마나 멀리 떨어져 있는가?
      • 멀리 떨어질 수록 채도 UP
    • V: 명도 축

💜 HSV 컬러 모델 변형

  • 원뿔형 HSV
    • 색상을 둥글게 배치
  • HLS
    • 원뿔 2개를 붙임
    • 명도 범위를 2배로 확장

3️⃣ 컬러 모드

💜 RGB 컬러 모드

  • RGB 컬러 모드
    • 컬러모델과는 별개의 개념
    • 프레임 버퍼 내용이 직접적으로 R, G, B 값을 담고 있어, 색 결정
    • 프레임 버퍼 용량 ↑ 색 정밀도와 종류 ↑
    • 비트평면이 많을 수록 더 많은 색을 만들 수 있음
  • ex. 3비트 평면
    • G + B = Cyan

💜 인덱스 컬러 모드

  • 컬러 번역기
    • 프레임 버퍼 내용은 CLUT (Color Lookup Table, 컬러 보기표)의 인덱스
    • 실제 컬러는 CLUT의 우측 칼럼에 의해 결정
      • 칼럼에 비트를 할애해 주는 것
    • 제한된 프레임 버퍼 용량으로 다양한 색을 표현하기 위해 사용

  • 컬러 팔레트
    • 인덱스 컬러모드에서 컬러 보기표가 나타내는 색의 집합 
  • 유사한 톤의 표현에 유리
  • PNG, BMP, TGA, TIFF 지원
    • 파일 내부에 팔레트 정보를 포함
    • 컬러 룩업 테이블 저장
  • 팔레트만 교체하면 같은 그림을 바로 다른 색으로 표현 가능

💻 Reference

 

IT CookBook, OpenGL로 배우는 컴퓨터 그래픽스

그래픽스의 이론적 요소, 수학적 요소, 프로그램적 요소를 조합시켜 내용을 전개하고 있으며, OpenGL의 그래픽 파이프라인 처리 순서에 입각하여 좌표계 변환, 조명과 음영, 텍스쳐 등 컴퓨터 그

m.hanbit.co.kr