오다기리 박의 알고리즘 노트

[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 02. 그래픽 하드웨어 본문

컴퓨터 그래픽스/OpenGL

[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 02. 그래픽 하드웨어

오다기리 박 2019. 2. 14. 21:05

OpenGL로 배우는 3차원 컴퓨터 그래픽스


Chapter 02. 그래픽 하드웨어

Section 01. 그래픽 하드웨어

  • 하드웨어 구성

    • 최근 들어 하드웨어의 처리속도 향상으로 인해 범용 워크스테이션이나 개인용 컴퓨터만으로도 상당 수준의 그래픽 처리가 가능해졌다.

  • 컴퓨터 모니터의 기본 원리

    • 필라멘트(전자총)

      • 필라멘트에 전류를 흘리면 가열되어 전자가 방출됨

      • 화면 바로 뒤의 금속판에 20,000V 플러스 전압을 걸면 화면 쪽으로 전자가 끌려감

    • 제어그물(Control Grid)

      • 여기에 마이너스 전압을 걸면 전자총에서 나오는 연속적인 전자 흐름의 양을 조절할 수 있음. 그러면 화면 밝기가 조절됨

    • 집속 양극 (Focusing Anode)

      • 정확히 가운데로 향하지 않는 전자빔들을 차단

    • 편향판

      • 양쪽에 다른극의 전압을 가해 전자빔의 방향을 휘는데 사용

    • 화면

      • 인(Phosphor)이라는 형광물질이 입혀져 있음.

      • 전자의 운동에너지가 형광물질을 구성하는 전자들에게 전달 -> 형광물질이 고에너지 상태로 됨 -> 불안정한 고에너지 상태에서 안정된 상태로 떨어질 때 그 에너지 차이가 빛의 형태로 발산 -> 우리 눈에 도달

    • 화면 재생률 (Refresh Rate)

      • 초당 몇 번 화면을 재생시키는가를 나타냄.

      • 빛의 지속시간이 짧을 수록 화면 재생률을 높여야함

      • 애니메이션 : 화면 지속시간 짧은 것이 좋음

      • 정지화면 : 화면 지속시간 긴 것이 좋음


Section 02. 래스터 그래픽 장치

  • 컬러 모니터

    • 화면은 화소(래스터)로 구성됨

    • 한 화소의 색상은 세 가지 인점의 밝기를 합쳐서 결정됨

    • 해상도,선명도(Resolution) : 화소 수에 의해 결정됨

    • 섀도우 마스크

      • 섀도우 마스크 기술은 화면의 선명도와 직결

      • 애퍼져 그릴 방식의 컬러 모니터의 경우 더욱 밝고 선명한 영상

  • 주사선과 인터레이싱

    • 래스터 장치는 화소단위로 디스플레이 된다.

    • 하나의 화소 내부의 인점 색은 모두 동일한 밝기(Intensity)로 빛난다고 간주한다.

    • 주사선(Scan Line) : 화면의 가로 방향 화소를 따라서 진행하는 선. 전자빔을 화면 화소를 읽어가면서 빔을 쏜다.

    • 화면에 영상을 뿌리기 위해서 주사선은 화소마다 그 화소의 색상에 해당하는 세기로 빔을 쏘아서 화소 내부 인점을 밝혀야 한다.

    • 넌 인터레이싱

      • 전체 화면을 초당 30번 재생 요구 => 전체 프레임을 30번 주사

      • 화면 재생속도가 늦어짐 => 화면간 시간적 간격이 길어짐 => 화면 깜빡거림 발생

    • 인터레이싱(Interlacing)

      • 주사선이 화면을 반쪽씩 교대로 그려내는 방식

      • 전체 화면을 초당 30번 재생 요구 => 반쪽 프레임을 60번 주사

      • 두 배 속도로 뿌려지기 때문에 부드럽게 느껴짐

  • 래스터 장치의 기본구조

    • 래스터 장치에서는 스캔 변환(래스터 변환)이 필수적

    • 래스터 변환 : 물체의 수학적 표현으로부터 화면화소 단위의 표현으로 변환하는 과정

    • 래스터 변환 알고리즘 : 래스터 변환을 하는 경우 어떤 화소를 밝혀야 하는지 또 밝히자면 어느 정도 밝기를 줄 것인지 등에 관한 알고리즘

    • 프레임 버퍼(=컬러버퍼=비디오메모리) : 프레임 즉 그림을 저장하는 메모리

    • 비디오 컨트롤러 내부에는 DAC(Digital to Analog Converter)가 내장되어 있어서 전자 빔이 어떤 화소를 주사할 때 프레임 버퍼의 디지털 비트 값에 비례하는 아날로그 전압으로 변환시켜 해당 화소의 밝기를 조절할 수 있게 한다.

    • 프레임 버퍼의 용량은 해상도와 관련됨 (ex. 1024 x 768 해상도에 화소당 24비트 할애시 프레임 버퍼 용량 = 1024 x 768 x 24비트= 2.4MB)


Section 03. 벡터 그래픽 장치

  • Vector Display, Calligraphic Display, Stroke Display, Random Display

    • 벡터 그래픽 장치에는 화면 전체에 인이 칠해져 있기 때문에 전자총이 닿는 곳마다 화소가 밝혀진다.

    • 오실로스코프 : 전압, 전류를 측정하기 위한 계측장치. 전기적 신호의 파형을 선으로 그려내는 장치

    • 벡터 그래픽 모니터에는 빔 투과 방식이 사용된다. (가속 전압이 약하면 녹색, 중간이면 황색, 강하면 적색 나타남)

    • 그래픽 처리속도의 향상과 저가의 메모리 출현에 따라 그래픽 시장은 래스터 그래픽이 점유하게 됨


Section 04. 그래픽 출력 장치

  • LCD(Liquid Crystal Display)

    • 액체와 고체의 중간 형태인 액정이 지닌 전기적 광학적 특성을 이용한 것

    • 모니터 표면에는 R, G, B 컬러 셀(인 사용X)이 입혀져 있음

    • 항상 켜져 있기 때문에 CRT처럼 깜빠임이 없음

    • 액정

      • 화면 바로 뒤에 있음

      • 결정 형태의 규칙적인 배열

      • 외부 전압에 따라 서기도 하고 눕기도 함.

      • 배열상태를 바꿈으로써 후광을 차단하거나 투과하는 밸브의 역할

      • 빛의 양윽 조절할 뿐

      • 화소마다 액정의 배열상태를 바꿈으로써 빛의 세기를 조절

  • PDP(플라즈마 디스플레이 패널)

    • 대형 디스플레이가 필요할 경우 사용

    • 전극에 전압이 걸리면 표면 방전에 의해 번개가 치며 이에 의해 내부에 채워진 네온 / 크세논 가스가 플라즈마 상태로 변한다. 이 플라즈마에서 발생되는 자외선이 인 표면을 자극하고 인에서 나오는 빛이 전면을 향한다.

  • 3차원 입체 영상 (Stereoscopic View)

    • 왼쪽 눈과 오른쪽 눈이 인식하는 영상의 차이에 의해 이루어짐

    • 왼쪽, 오른 쪽 눈에 비친 두 개의 평면 영상을 만든 후 실제로 화면을 볼 때 각각의 눈이 해당 영상만을 보도록 하면 입체영상이 가능하다.

    • 편광 안경 (Polarized Glasses)

      • 화면에 두 영상을 겹쳐서 보이되 편광 현상을 이용하여 한쪽 렌즈에는 한쪽 영상만 보이게 한것

      • 액정 셔터 안경 (LCD Shutter Glasses)

        • 화면에 양쪽 영상을 번갈아 보여주되 왼쪽 영상이 나올 때는 오른쪽 안경 렌즈를 닫고 오른쪽 영상이 나올 떄는 왼쪽을 닫아버리는 방식

    • 렌즈 배열 방식 (Lenticular Array) 모니터

      • L : 왼쪽 영상 부분, R : 오른쪽 영상 부분

      • 화면 표면에 반구형의 렌즈를 붙임으로써 왼쪽 오른쪽 영상이 서로 다른 방향으로 진행

      • 왼쪽 영상이 모아져서 왼쪽 눈에, 오른쪽 영상이 모아져서 오른쪽 눈에 도달

    • 홀로그래피 (Holography)

      • 레이저와 육각렌즈를 이용하여 어떤 방향에서 보더라도 입체감을 느끼는 기술


Section 05. 그래픽 프로세서

  • 그래픽 프로세서( = 그래픽 보조 프로세서 = 그래픽 가속기 = 비디오 카드 = 비디오 보드 = 비디오 어댑터 = 그래픽 보드)

    • 그래픽 카드의 기본적인 역할 : 컴퓨터에 의해 생성된 디지털 정보를 최종적으로 아날로그 신호로 변환하여 화면에 그림을 그리는 것

    • 그래픽 프로세서는 드라이버 소프트웨어에 의해 그리기 명령어를 해독하고 실행, 최종적인 그림을 프레임 버퍼에 기록

    • CPU는 그리기 명령어를 그래픽 카드에 넘겨주고 다른 일을 처리한다.

  • 그래픽 카드의 구조

    • GPU : CPU가 시스템 버스를 통해 전달한 명령어를 해독, 실행하여 프레임 버퍼 내용을 작성

      • 지오메트리 프로세서 : 3차원 물체의 그래픽 처리 작업

      • 디스플레이 프로세서 : 2차원 영상처리와 연관된 연산 수행

    • AGP : 메인 메모리 내용을 프레임 버퍼로 직접 가져갈 때 사용

    • 드라이버 프로그램 : CPU가 전달한 명령어를 GPU가 직접 하드웨어를 통해 실행할 수 있는 명령어로 번역

    • VRAM : 2중 포트로 한쪽 포트가 메인 메모리 내용을 옮겨 적는 동시에 다른 포트는 현재 그래픽 메모리의 내용을 읽어간다. 즉 디스플레이 프로세서가 프레임 버퍼에 새로운 내용을 기억시키는 도중에 비디오 컨트롤러는 현재 기록된 내용을 읽어서 화면에 뿌린다.

    • RAMDAC : LUT(전압 보기표)를 이용하여 프레임 버퍼 내용을 CRT에 뿌리는 역할. 램댁의 처리속도는 화면 재생률을 결정