본문 바로가기
전공/컴퓨터 그래픽스

컴퓨터 그래픽스 개론(2)_그래픽 하드웨어

by 임 낭 만 2023. 4. 2.

래스터 그래픽 장치

  • 화소 = Picture Element = Pixel = Raster
  • 인점 (Phosphor Dots)
  • 종횡비 (Aspect Ratio)
    • 4 : 3 TV
    • 16 : 9 HDTV
  • 해상도 (Resolution)
  • 도트 피치 (Dot Pitch)
  • 트라이어드 방식, 스트라이프 방식

인점 구성 방식 (a) : 트라이어드 방식 (b): 스트라이프 방식 / 화살표 : 도트 피

더보기
  • 래스터란 ? : 화면은 화소(그림의 기본 요소)로 구성. 한 화소는 3개의 인점(하나의 색 요소/ 색을 띠고 있다 R, G, B)으로 이루어져 있고, 한 화소의 색은 세 가지 인점의 밝기에 따라 결정됨
  • 인점 구성(배열) 방식에는 트라이어드(Triad)방식스트라이프 (Stripe) 방식으로 나누어짐 (LCD 모니터의 경우 스트라이프 방식 사용)
  • 해상도(Resolution, Definition) : 래스터 장치의 선명도 (화소의 수에 의해 결정됨). ex) 1024×768 해상도 : 가로 1024개의 화소 수, 세로 768개의 화소수
  • 도트 피치 (Dot Pitch) : 동일한 색상의 인점( Phosphor Dot) 사이의 거리. (일반적으로 0.27~0.44mm). 도트 피치가 작을 수록 작은 점을 찍을 수 있기 때문에 고해상도를 만들 수 있음. 
  • 종횡비 : 화면의 세로 대 가로 길이 비

인터레이싱

  • 주사선 (Scan Line)
  • 인터레이싱 (비월주사, Interlacing, Interleaving)
  • Hz : 30 Full Frame/Sec 보다는 60 Half Frame/Sec

수평 귀환 (Horizontal Retrace) : 1번 주사선의 끝에서 3번 주사선의 처음으로 되돌아가는 것 / 수직 귀환 (Vertical Retrace) : 마지막 7번 주사선 끝에서 2번 주사선의 처음으로 되돌아가는 것
Non-Interlacing 과 Interlacing

더보기
  • 래스터 장치의 경우 화소 단위로 디스플레이 
  • 주사선 (스캔라인, Scan Line) : 화면의 가로 방향 화소를 따라서 진행하는 선.(1024×768의 해상도이면 주사선은 768개임) 실제로 화면을 만들어 낼 때 짧은 시간에 주사선을 여러 개 그려서 만들어 냄. (뉴스같이 고성능 카메라에 찍힌 모니터를 보면 검은 선이 위아래로 왔다갔다 하는 것을 볼 수 있음).
  • 인터레이싱 (비월주사, 짜집기) : 홀수번째 주사선과 짝수번째 주사선을 교대로 번갈아가며 화면을 그려내는 것. 이로 인해 하드웨어의 부담을 줄일 수 있음. (사람의 눈은 잔상 효과 때문에 매우 민감하지 않으면 차이를 못 느낌). 재생 속도가 빠름.

래스터 그래픽 디스플레이

  • 화소단위 컬러링
  • 계단현상 = Jaggies = Alias
  • 래스터 화 (Rasterization) = 스캔 변환 (Scan Conversion)
    • 물체 좌표에서 화면 좌표로
    • 부동 소수 좌표에서 정수 좌표로

(a) 실제는 곧바른 모양의 선이 거칠게 표시됨 (b) 채움 삼각형 (Filled Triangle) 역시 실제 삼각형을 화소 단위로 근사화하여 표현할 수 밖에 없기 때문에 삼각형의 경계선 부분이 거칠게 보이게 됨.

더보기
  • 래스터 장치의 기본 구조 : 래스터 장치에서의 화면은 사각형 모양의 화소 단위로 표현됨. 따라서 계단 현상 (에일리어스, alias)이 나타날 수 밖에 없음. 이를 해결하고자 나온 것이 벡터 방식.
  • 스캔 변환 (= 래스터 변환) : 물체의 수학적 표현으로부터 화면 화소 단위의 표현으로 변환하는 과정 (스캔 변환 알고리즘은 이 경우에 어떤 화소를 밝혀야 하는지, 어느 정도 밝기를 줄 것인지 등에 관련된 것)

프레임 버퍼

  • Frame Buffer = Color Buffer = Video Memory
  • DA 변환기
    • 프레임 버퍼 (디지털 정보) → 아날로그 전압
    • 거의 동시 (매우 빠름)

프레임 버퍼 : 백색은 비트 값 1로, 흑색은 비트 값 0으로 표시 가능. 이 경우 그림은 흑백 (Monochrome)으로 표시됨.

더보기
  • 프레임 버퍼 = 컬러 버퍼 = 비디오 메모리 : 래스터 장치의 화면 그림은 프레임 버퍼에 저장되어 있음. 그래픽 프로세서 (그래픽 카드)에 내장된 메모리로서 화소 당 밝기(즉, 색상)을 저장하는 곳. 후에 모니터에 출력할 때 DAC (Digital to Analog Converter)를 통해 출력.
  • 프레임 버퍼는 프레임, 즉 그림을 저장하는 메모리. 그림이 바뀔 경우 호스트 컴퓨터는 프레임 버퍼의 내용을 바꾸기만 하면 됨. 이 바뀐 내용을 화면에 뿌리는 것은 "비디오 컨트롤러"가 함. 비디오 컨트롤러의 내부에 DA 변환기가 존재. 프레임 버퍼의 디지털 비트 값에 비례하는 아날로그 전압으로 변환시켜 해당 화소의 밝기 조절 가능.

비트 평면

  • 24비트 (R, G, B) = (8, 8, 8)
    • R, G, B 각각에 대해 256 회색도 (Gray Level)
    • 총 몇 컬러? 256×256×256≒1600만 (full color)
  • 1280 by 1024, 총 512 컬러
    • 프레임 버퍼 용량은? 1280×1024×9 bits

(a) (R, G, B) = (1, 0, 1)이므로 적색과 청색의 혼합색임. / (b) R, G, B를 각각 3비트씩 할애하여 밝기 세분화하기

더보기
  • 프레임 버퍼의 용량 (Capacity)은 색상의 종류와 연관됨. ex) 화소당 1비트를 할애하면 흑백 정보밖에 저장할 수 없음.
  • 비트 평면 (Bit Plane) : 1비트 프레임 각각
  • 회색도 (그레이 레벨) : 주어진 색상의 밝기
  • 화소당 24비트를 할애한 프레임 버퍼의 경우 R, G, B를 각각 8비트씩 할애할 수 있고, 밝기는 10진수 0부터 255까지 256가지로 구분 가능. ex) 순수 적색 : (255, 0, 0) / 순수 백색 : (255, 255, 255)
  • 프레임 버퍼의 용량해상도와도 연관되어 있음. 예를 들어 1024×768 해상도의 그림은 1024×768개의 화소로 구성되어 있음. 화소당 24비트를 할애하면 프레임 버퍼의 용량은 1024×768×24bits≒2.4MB가 됨.

벡터 그래픽 장치

  • Vector Display, Calligraphic Display, Stroke Display, Random Display
  • 화소개념 없음
    • 무한 해상도 (전자빔의 폭 → 해상도)
    • 에일리어싱 없음
    • 전자총의 움직임

삼각형과 선분을 그리기 위한 전자총의 움직임을 나타낸 것. 삼각형이 완전히 그려진 후에 전자총의 방향이 선분의 아래쪽으로 이동할 때는 전자빔이 나오지 않음. 벡터 그래픽 장치에서는 빛의 지속 시간이 끝나면 화면 재생을 위해 주사선이 물체 윤곽선을 따라 움직임.

  • 프레임 버퍼 없음
  • 디스플레이 리스트 : 명령어 집합

벡터 그래픽 장치의 구조를 예시한 것. moveto는 전자총을 해당 좌표로 이동하는 명령어로, 이동 중에는 전자빔을 쏘지 않음. lineto는 현재 위치에서 파라미터로 제시된 좌표로 이동하면서 전자빔을 쏘아 그리라는 명령어임. 예시의 리스트에서는 한 번 그려진 삼각형을 계속 재생하기 위해 goto 명령어에 의한 루프 구조를 사용함.

  • 오실로스코우프, 레이다, 플로터

벡터 그래픽 렌더링 / 오실로스코프 (Oscilloscope)

더보기
  • 벡터 그래픽 장치 (Vector Display, Calligraphic Display, Stroke Display, Random Display)에는 화소의 개념이 없음. 화면 전체에 인(Phosphor)이 칠해져 있어 전자총이 닿는 부분마다 밝혀지게 됨 (래스터 장치는 화소 면적 단위로 밝혀짐)
  • 벡터 그래픽 장치에는 에일리어싱이 일어나지 않음. 에일리어싱은 무한 해상도를 지닌 실체의 선을 유한 면적을 지닌 화소 단위로 근사시키는 과정에서 일어남. 벡터 그래픽 장치에서는 화소 개념이 없기 때문에 이 경우의 해상도는 무한대임. 전자총이 닿은 아주 작은 부분에 한해서 빛이 밝혀지므로 에일리어싱이 일어나지 않음.
  • 벡터 그래픽 장치에는 화소 개념이 없어서 프레임 버퍼에 화소의 색상이 저장되는 래스터 장치와는 다름. 대신 디스플레이 리스트라는 메모리에 해당 물체를 그리기 위한 명령어를 저장함. 메모리 면에서 디스플레이 리스트는 프레임 버퍼에 비해 분량이 매우 적음. 화소 단위로 저장하는 것에 비해 명령어를 문자 형태로 저장하는 것이 용량 면에서 훨씬 유리하기 때문.
  • 벡터 그래픽 모니터는 화면에 적색과 녹색의 인층을 겹쳐서 칠하고 전자빔을 가속 시키는 전압의 세기에 따라 어느 층을 자극할 지 결정함.
  • 등고선 플롯 (Contour Plot)이나 레이더 (Radar) 등과 같이 선을 위주로 하는 그림이라면 벡터 그래픽 장치가 적합함. 고해상도로 매우 정밀한 선을 그릴 수 있기 때문임.

래스터 그래픽 vs. 벡터 그래픽

래스터 그래픽 대 벡터 그래픽 // 벡터 그래픽은 채움 삼각형 처럼 내부 면을 그려야 할 경우 그 면을 수없이 많은 선들로 다시 근사화해야 하기 때문에 많은 처리 시간이 필요함. 한편 래스터 그래픽에서는 면을 구성하는 몇몇 화소들만 밝히면 되기 때문에 빠른 속도로 그려낼 수 있음. 그래픽 처리 속도의 향상과 저가의 메모리 출현으로 그래픽 시장은 거의 래스터 그래픽이 점유하게 됨.
(a) 래스터 장치를 사용하면 선분은 화소 면적의 집합으로 표현됨. 적색 선은 인터레이싱 일 때의 주사선 움직임을 나타낸 것임. 래스터 장치에서 주사선은 이처럼 왼쪽 위에서 오른쪽 아래로 일정한 패턴을 따라 움직임 / (b) 전자총이 A점부터 B점 사이를 왕복하며 정확히 주사된 선이 닿은 부분만 밝혀지게 되면서 선분이 그려짐. 벡터 그래픽 장치의 주사선은 선분의 모양을 따라 움직임. 이처럼 벡터 그래픽 장치에서의 주사선 움직임은 래스터 장치와 다름


입체 영상

  • 좌우 눈의 인식 차이
    • 서로 다른 2차원 영상이 뇌에서 조합되어 3차원적인 깊이를 느낌

[입체 영상의 원리] 3차원 입체 영상 (Stereoscopic Viw)은 왼쪽 눈과 오른쪽 눈이 인식하는 영상의 차이에 의해 이루어짐. 왼쪽 눈에 보이는 영상과 오른쪽에 눈에 보이는 영상은 다 같이 2차원 영상이지만 서로 다름. 따라서 왼쪽, 오른쪽 눈에 비친 두 개의 평면 영상을 만든 후 실제로 화면을 볼 때 각각의 눈이 해당 영상만을 보도록 하면 입체 영상을 구현할 수 있음.

 

편광 안경 (Polarized Glasses)은 화면에 두 영상이 겹쳐 보이게 하되, 편광 현상을 이용하여 왼쪽 렌즈에는 왼쪽 영상만 보이게 한 것임. 가상 현실 기법에 자주 사용되는 액정 셔터 안경 (LCD Shutter Glasses)은 화면에 왼쪽, 오른쪽 영상을 번갈아 보여주되, 왼쪽 영상이 나올 때는 오른쪽 안경 렌즈를 닫아버리고, 오른쪽 영상이 나올 때는 왼쪽 안경 렌즈를 닫아버림. 이 경우 셔터가 매우 빠른 속도로 번갈아 닫히기 때문에 보는 사람은 셔터의 움직임을 거의 느낄 수가 없음.
[렌즈 배열 방식(Lenticular Array] 입체 영상 장비에는 여러 가지 방식이 사용됨. 렌즈 배열 방식의 모니터를 사용하면 안경을 착용하지 않고 입체 영상을 볼 수 있음. L은 왼쪽 영상 부분들을, R은 오른쪽 영상 부분들을 나타냄. 이 경우 화면 표면에 반구형의 렌즈를 붙이면 왼쪽과 오른쪽 영상이 서로 다른 방향으로 진행하도록 할 수 있음. 이렇게 되면 왼쪽 영상이 모아져서 왼쪽 눈에, 오른쪽 영상이 모아져서 오른쪽 눈에 도달하게 됨.

  • 홀로그래피 (Holography)
    • 모든 방향에서 3차원 뷰
    • 레이저와 육각렌즈 사용

홀로그래피를 사용하여 3차원 물체 모습을 공간에 투사하기도 함. 레이저와 육각 렌즈 (Hexagonal Lens)를 이용해 셔터 안경과는 달리 어떤 방향에서 보더라도 입체감을 느끼게 함.

댓글