IT/컴퓨터그래픽스

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

Nellie29 2024. 4. 2. 00:05


1️⃣ 그래픽 하드웨어 종류와 작동 원리

💜 그래픽 하드웨어 종류

  • 그래픽 시스템
    • 입력 장치 (마우스, 키보드…)
    • 그래픽 컨트롤러 (그래픽 카드)
      • 그래픽 프로세서
      • 그래픽 메모리
    • 출력장치 (모니터)

💜 진공관 모니터(CRT) 기본 원리

  • 래스터 그래픽 방식 & 벡터 그래픽 방식 존재

  • 필라멘트
    • 전자총
    • 전자를 쏨
  • 제어 그물
    • 그 전자의 양을 조절함
    • 밝기는 전자의 양으로 조절
  • 집속 양극
    • 내가 원하는 픽셀에 가지 않는 전자들 차단
  • 수직 편향판 (상하), 수평 편향판 (좌우)
    • 전자 방향 조절
  • 화면
    • 인이 발라져 있음
    • → 곡선: 전자가 모든 화면에 잘 닿게 하도록

2️⃣ 래스터 그래픽 장치

💜 래스터 그래픽 장비

  • 래스터=픽셀=화소
    • 화면은 화소로 구성
    • 화소는 인점으로 구성
    • 1픽셀 = 3인점
  • 화면 종횡비
    • 화면의 세로: 가로 비율
    • 4:3
    • 16:9

💜 래스터 그래픽 장치의 컬러 모니터 화소 구성

  • 트라이어드 방식
    • 모든 색상이 엇갈리게 배치 (빨강 주변에 빨강 X)

  • 스트라이프 방식 (LCD, LED)
    • 상하는 같은 색

  • 해상도: 선명도
    • 픽셀의 개수에 따라 결정
    • 선명도가 낮으면 계단현상 발생
    • 1024 (가로로 1024개) * 768 (세로로 768개) 픽셀 존재

💜 화면 선명도

  • 섀도 마스크 (화면 선명도와 직결되어있음)
    • 섀도 마스크가 없으면, 빨간 원점을 향하는 전자빔이 휘어버릴 수 있음
      • 다른 점 자극 가능 
    • 트라이어드 방식
      • 주변 픽셀로 전자가 가지 않게 동그랗게 막아줌 
  • 애퍼처 그릴
    • 스트라이프 방식
      • 주변 픽셀로 전자가 양옆으로 가지 않게 막아줌
      • 섀도 마스크 방식보다 밝고 선명한 영상

💜 Scan Line & Interlacing

  • Scan Line
    • 주사선
  • Interlacing
    • 인터레이싱
    • 홀수줄 → 짝수줄 왔다 갔다 하는 거
    • 7개의 픽셀 존재
    • 수평 귀환과 수직 귀환에서는 전자총을 쓰지 않음
    • 1에서 주사선을 통해 전자총을 쏨
  1. 1에서 주사선을 통해 전자총을 쏨
  2. 밝히고자 하는 픽셀을 밝힘
  3. 수평 귀환으로 3으로 감 (전자총 안씀)
  4. 3에서 주사선을 통해 전자총을 쏨
  5. 수평 귀환으로 5로 감 (전자총 안쏨)
  6. 홀수줄 끝나면 수직 귀환으로 2로 감
  7. 다시 진행

💜 Non-Interlacing vs Interlacing

  • Non-Interlacing
  • 0.5초가 지나면 커피잔이 반 밖에 안보임
  • Interlacing
  • 0.5초가 지나면 전체적인 형태를 보임

전체적인 형태를 볼 때는 인터레이싱이 있는게 좋음

💜 래스터 그래픽 디스플레이

  • 래스터 그래픽스란?
    • 직사각형 격자의 화소, 색의 점을 모니터, 종이 등의 매체에 표시하는 자료 구조
  • 화소단위 컬러링을 하면 계단현상이 발생
    • 무한 해상도인 실제 선을 유한 면적을 지닌 화소 단위로 근사시켜서 발생 
    • 계단 현상은 해상도를 늘리면 없어짐
  • 래스터 장치는 래스터 변환 (스캔 변환) 필수
    1. 물체 좌표 → 화면 좌표 변환
      • 물체에 대한 좌표계를 모니터의 좌표계에 일치시켜야 함
      • 화면의 (n,n) 에 물체를 위치시킬것이다!
    2. 부동 소수 좌표 → 정수 좌표 변환
      • 선분을 모니터에 출력을 하고 싶음
        • 픽셀은 1개, 2개, 3개로 표시
          • (0.3, 0.5) 에 선이 있으면 이를 정수 좌표로 변환 필요
          • 채움 다각형 : 선의 내부에 있는 영역이 더 많으면 칠함
            → 해당 픽셀을 밝힐건지, 밝히지 않을건지에 따라 결정

💜 프레임 버퍼

  • Frame Buffer = Color Buffer = Video Memory
    • 래스터 주사 방식에서 화면에 나타날 영상 정보를 일시적으로 저장하는 기억 장치.
  • 디지털 데이터
    • 컴퓨터에 0과 1의 형태로 기억장치에 저장되는 데이터
    • 이산적 (0과 1으로 처리할 수 있는 데이터) 형태의 데이터이다.
    • ex) 컴퓨터
  • 아날로그 데이터
    • 사람의 목소리는 말을 했을 때 공기 중에 연속적인 파형이 생기는데 이것이 아날로그 데이터
    • 연속적인 형태의 데이터이다.
    • ex) 목소리, 온도
  • 비디오 컨트롤러 내부 DA 변환기
    • 프레임 버퍼의 디지털 정보 → 아날로그 전압 변환
    • 매우 빠르게 실시간으로 거의 동시에 변환됨

💜 비트 평면

  • 프레임 버퍼의 용량은 색상의 종류와 연관
    • 프레임 버퍼에 화소의 색상이 저장
  • 9비트 (R, G, B) = (3, 3, 3)
    • R, G, B 각각 000~111 의 값을 할당할 수 있음
  • 24비트 (R, G, B) = (8, 8, 8)
    • R,G,B 각각 2의 8승 256 회색도
      • 회색도 : 주어진 색상의 밝기
    • 총 256 * 256 * 256 의 색을 나타낼 수 있음
  • 1024 x 1024 해상도의 24비트
    • 1024 * 1024 * 24 = 3MB

3️⃣ 벡터 그래픽 장비

💜 백터 그래픽 장치

  • 백터 그래픽 장치 (Vector Display, Calligraphic Display, Stroke Display, Random Display)
  • 화소 개념 X
    • 무한 해상도 (전자빔의 폭 → 해상도)
    • 전자총이 닿는 곳 마다 빛이 밝혀지는 선을 긋는 형식
    • 에일리어싱 없음
      • 계단 현상 X
  • 벡터 그래픽 장비에는 프레임 버퍼 대신 디스플레이 리스트 존재
    • 디스플레이 리스트: 명령어의 집합 저장
      • 디스플레이 리스트의 명령어가 계속 활성화
        • 화면에 세모가 계속해서 그려지게 됨
  • 빔 투과 방식
    • 전자총의 세기로 색을 조절함
      • 살살 쏘면 초록이 보임
      • 중간 쏘면 초록과 빨강 중간 색이 보임
      • 세게 쏘면 빨강이 보임
  • 오실로스코프, 레이더 등에 사용

💜 레스터 장치 vs 벡터 장치


4️⃣ 그래픽 출력 장치

💜 평판형 디스플레이 : LCD

  • Liquid Crystal Display
    • 컬러 = 액정의 배열 상태 변화로 나타냄
    • 블라인드 커튼 사용
  • 뒤쪽 편광기는 세로방향
    • 빛이 세로방향으로 가게 만들어줌
  • 앞쪽 편광기는 가로방향
    • 빛이 가로방향으로 가게 만들어줌
  • if 액정에 전극을 가하지 않음
    • 빛이 앞쪽 가로방향 편광기를 뚫지 못해 어두움
  • if 액정에 전극을 가함
    • 액정이 눕게되면, 빛도 눕게 됨 → 빛이 앞쪽 가로방향 편광기를 뚫을 수 있음
  • 액정에 전류를 흘려 액정의 배열 상태를 바꿈으로 빛의 각도를 조절 가능
  • 액정이 약간 누우면 빛 조금만 통과 → 약간 밝음
  • 액정이 완전히 누우면 빛 전체 통과 → 아주 밝음
  • 액정의 배열상태를 바꿈으로 빛의 투과성을 조절해 밝기 조절
  • (b) 에서 나온 빛은 정면에선 잘 보이지만 좌우에서는 잘 보이지 않음
      • 편광기 = 블라인드 커튼
         

💜 LCD vs CRT

💜 평판형 디스플레이 : PDP

  • 오래된 기술
  • Plasma Display Panel (플라즈마 사용)
    • 표면 방전에 의한 번개
    • ex. 형광등
    • 화소 크기 1mm
      • 계단현상 보임
      • 멀리서 볼 수 있는 대형 스크린에 사용
  1. 전극에 전류를 흘려보냄
  2. 표면이 방전됨
  3. 가스가 플라즈마 상태가 됨 (번개침)
  4. 플라즈마에서 자외선이 발생함
  5. 자외선이 적색 인을 때림
  6. 빛남

💜 PDP vs LCD

💜 평판형 디스플레이 : LED, OLED

  • Light Emitting Diode (LED)
    • 발광 다이오드 이용
      • 스스로 빛을 내는 반도체 소자
        • 인 때리는 방식 X, 빛을 직접 냄
    • 다이오드 종류에 따라 R, G, B 의 색 결정
    • 장점: 처리 속도 ↑, 전력 소모 ↓, 수명 ↑ 등
  • Organic Light Emitting Diode (OLED)
    • 유기 복합물을 발광 레이어로 사용 (발광 다이오드 X)]
      • 유기물: 탄화수소 + 산소 or 질소 or 황등의 원자 주입
    • 유기물의 종류에 따라 빛 색상 결정
    • 단점: 유기물의 산화, 환원 반복으로 LCD, LED 보다 수명 ↓

💜 입체 영상

  • 좌우 눈은 시야각이 다름
    • 이 인식 차이를 이용

💜 입체 영상 : 3D TV

  • 편광 안경 방식 (좌우에 보이는 그림을 다르게 하자!)
    • 디스플레이 표면에 Patterned Retarder Plate 붙임
    • 좌우 영상 번갈아 출력 (두 영상 동시 출력)
    • 왼쪽 영상 (홀수줄) + 오른쪽 영상 (짝수줄)
    • 분리된 좌우영상이 사용자가 쓴 편광 안경을 통해 눈에 전달
      • 양안시차 발생, 입체감 느낌
    • 장점: 개발 쉬움, 저비용
    • 단점: 3D 시야각 협소, 수직 해상도가 절반 → 영상 품질 ↓
      • if 세로축 (수직) 픽셀이 14개
        • 홀수/짝수 각각 7픽셀씩 할당 → 해상도 ↓
  • 셔터 글래스 방식
    • 고속 구동 패널
      • 깜빡이는 화면
      • 뇌가 인식 못하게 빠르게 동작
      • 좌우 영상을 교차 출력
    • 셔터 글래스 안경 사용
      • 좌/우 측을 교차하며 빛의 투과 & 차단을 빠르게 반복
        • 양안 시차 발생
    • 장점: 수직 해상도 높음
      • 한 화면에 좌/우 영상이 온전
    • 단점: 셔트 글래스 안경이 비쌈, 고속 구동 패널이 설치되어있어야 함, 사람마다 초점이 달라 멀미를 느낄 수 있음

5️⃣ 그래픽 프로세서

💜 그래픽 프로세서

  • 그래픽 카드 = 그래픽 프로세서 = 그래픽 가속기
  • 시스템 버스 하단이 그래픽 카드
    • 수학적 처리 담당
  • 메인메모리 or CPU 에서 시스템 버스를 통해 GPU로 명령어를 내림
    • GPU는 이를 해독하고 실행하여 프레임 버퍼 내용을 작성
  • AGP
    • 가속 그래픽 포트
      • 그래픽 카드에서 수학적 연산을 하지 않고 메인메모리 내에 있는것을 바로 프레임 버퍼에 올리고 싶을 때 사용
        • 가속 그래픽 포트를 통해 프레임 버퍼에 올림
  • GPU (그래픽 카드)
    1. 디스플레이 프로세서
      • 2차원 기하처리
      • 3D 일부 작업
        • 다각형 채움, 텍스쳐 매핑 (질감, 실감나게 만들어 줌)
    2. 지오메트리 프로세서
      • 3차원 기하처리 가속
      • 3D 기하 변환 빠르게
        • 3D 물체를 이동 계산
        • 3D 물체에 조명을 비췄을 때 광원에 따른 그림자 계산으로 명암 조절 계산
        • 물체의 자른 단면, 물체에 힘을 줬을 때 확대 축소 계산
          • CPU에서 할수는 있는데 느림
          • → 빠르게 하기 위해 지오메트리 프로세서 사용
    • GPU의 역할
      • 수학적 연산을 빠르게 하는 것
      • 그래픽은 모든것이 수학 연산
      • CPU는 속도가 느림
        • 그래픽적 요소들은 전부 그래픽 카드에서 처리!
    • 그래픽 카드에서 2차원 3차원 영상들 처리
    • → 디스플레이 메모리에 값을 올려줌
  • 디스플레이 메모리
    • 레스터 그래픽 장치는 프레임 버퍼 가짐
    • 백터 그래픽 장치는 디스플레이 리스트 가짐
    • 그림은 프레임 버퍼 기준으로 비디오 컨트롤러를 통해 디지털을 아날로그로 변경
  • 비디오 컨트롤러
    • LUT (Look Up Table, 전압 보기표)
      • “프레임 버퍼에 값이 010 이 들어오면 전압을 이런식으로 발생시켜주세요” 라는 표
      • 1:1 로 매핑을 시켜주는 역할
      • input → output
    • DAC’s
      • 보기표를 읽어 실제 아날로그 전압을 발생

💻 Reference

 

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

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

m.hanbit.co.kr