UNIV

2022-04-11 07:05

컴퓨터그래픽스 - 5강. 그래픽스 기본요소의 속성 (1)

색 모델

  • 가시광선
    • 사람의 눈으로 볼수 있는 일정 주파수 범위의 전자기파
  • 색의 성질
    • 색의 3요소
      • 색조: 빛의 색을 결정하는 요소
        • 지배 주파수에 해당되는 색 성분
      • 채도: 색이 순수한 스펙트럼 색에 얼마나 가까운가를 나타내는 요소
        • Ep - Ew가 클수록 채도가 높음
      • 명도: 빛의 전체적인 에너지 크기에 해당되는 요소
  • 원색 (primary colors)
    • 삼원 자극 이론 (tri-stimulus theory)
      • 원추세포: 사람의 시각세포 중 색을 감지하는 역할을 함
      • 두 빛에 감지되는 r, g, b의 양이 서로 같다면 색을 구성하는 주파수 성분이 다르더라도 같은 색으로 인지될 수 있음
    • 색 합성을 위한 원색
      • R, G, B의 세가지 파장의 빛을 혼합하여 색을 표현
    • 색 정합 실험
    • CIE XYZ 색 모델
      • 인간의 시각 특성에 맞게 정의된 X, Y, Z라는 가상 표준의 원색
      • X, Y, Z는 각각 R, G, B에 해당
      • Y는 밝기값이 되도록 설계
      • X, Y, Z는 가상 원색을 혼합하여 평균적인 인간의 눈에 보이는 모든 색 표현 가능
      • 색 성분 정규화
      • C 지점: 태양빛에 해당되는 백색광
      • 가장자리 지점: 스펙트럼 색에 해당되는 순수한 색상
      • 평균이 C인 지점은 두 색상의 보색관계
      • 스펙트럼 색은 C 지점과 스펙트럼 색을 잇는 선상의 색에 대한 지배주파수 색

색 모델의 종류

  • RGB 색 모델
    • 가산색 모델
    • 스스로 빛을내어 색을 표현하는 출력장치에 적합한 모델
  • CMY 색 모델
    • 청록, 자홍, 노랑 (Cyan, Magenta, Yellow)을 삼원색으로 하는 색 모델
    • C, M, Y는 각각 R, G, B 원색의 색상을 흡수
    • 감산색 모델
    • 외부로부터 가해진 빛을 반사하는 형태의 출력에 적용
  • CMYK 색 모델
    • K (key) 성분: 회색의 농도를 설정
    • CMY 모델에 비해 회색의 표현에 용이
  • HSV 색 모델
    • 사람이 생각하는 직관적인 개념에 보다 근접한 모델
    • H (Hue, 색조), S (Saturation, 채도), V (Value, Brightness, 명도)

색 속성의 지정

  • 프레임 버퍼에 색을 저장하는 방법
    • 각 픽셀의 RGB 색 정보를 프레임 버퍼에 직접 저장하는 방법
    • 색 부호를 별도의 테이블에 넣고, 이 테이블의 색 항목을 지정하는 인덱스를 프레임 버퍼에 저장하는 방법
  • 색 깊이 (color depth)
    • 하나의 픽셀을 표현하는데 사용되는 비트 수
  • OpenGL에서의 색 지정
    • 실수 자료형: 0부터 1까지의 값을 사용
      • GLclampf: (1.0f, 0.0f, 0.5f)
    • 정수 자료형: 0부터 그 자료형의 최대값까지를 사용

색 혼합

  • 알파 성분
    • 색의 투명도 등을 표현하기 위한 목적으로 사용할 수 있는 보조 데이터
  • OpenGL에서의 색 혼합
    • 목적지의 색 성분
    • 목적지의 혼합 인수
    • 소스 색 성분
    • 소스 혼합 인수
    • 색 혼합기능의 활성화 및 비활성화
      • glEnable(GL_BLEND)
      • glDisable(GL_BLEND)
    • 색 혼합 함수
      • void glBlendFunc(Glenum sFactor, Glenum dFactor);
      • sFactor, dFactor: 소스 및 목적지 혼합 계수

점과 선의 속성

  • 점 크기
    • 기본적으로 1개의 픽셀로 표현
    • 큰 점의 표현
      • 정사각형
  • 점 속성
    • 점 크기: void glPointSize(GLFloat size);
    • 점 안티 에일리어싱 활성화 및 해제
      • glEnable(GL_POINT_SMOOTH);
      • glDisable(GL_POINT_SMOOTH);
  • 선 속성
    • 기울기가 1.0 이하인 경우 직선 경로의 위와 아래로
    • 1.0보다 클 경우 좌우로 선의 폭만큼 픽셀을 추가
  • 선 폭 속성
    • 선분의 굵기가 기울기에 따라 차이가 있음
    • 선 굵기에 해당되는 직사각형을 그리는 방법
  • 선분캡
    • 굵은 선분의 끝 모양을 다듬는 방법에 대한 속성
    • 사각캡, 원형캡, 돌출 사각 캡
  • 선분 연결
    • 두개의 굵은 선분의 연결 부분을 다듬는 방법에 대한 속성
    • 연귀연결, 원형연결, 사선연결
  • 선 스타일
    • 실선, 파선, 점선 등
    • 일정 구간의 픽셀을 그리거나 건너뛰는 것을 반복하여 그림