Fascination
article thumbnail

Computer Graphics 2-1. Graphics System

숙명여자대학교 컴퓨터 그래픽스 수업 - 유석종 교수님


 

# Graphics Hardware

- 프로세서 CPU, 메모리

- 입출력 장치

- 비디오 프로세서 GPU

Grahpics Hardware

 

# Device

1) 물리적 장치

- 프로그램 밖

  > 하드웨어

2) 논리적 장치

- 프로그램 안

  > 논리 장치

 

 

# Physical Input Device

- Relative(상대적) 입력 장치

  > 마우스, 조이스틱, 트랙볼, 스페이스볼

  > map를 디지털화하기 위한 십자선 커서

- Absolute(절대적) 입력 장치

  > 태블릿, 스타일러스 펜

  > 터치 스크린

* 두 입력 장치의 차이점은 좌표가 상대적인지 절대적인지의 차이임

 

 

# Touch Screen

Resistive Touch screen: 압력

  > 단점: 살짝 누르면 인식이 안된다거나 하는 문제가 발생할 수 있음

- Capacitive Touch screen: 정전기

  > 정전 방식으로 정전기를 사용

  > 대표적인 예시로 스마트폰이 있음

touch screen

 

 

# Logical Input Devices

- 프로그램 내부에서 인식하는 입력 장치로 데이터의 종류에 따라 6가지 장치로 분류됨

- ex) Consider the code

cin>>x			// scanf("%d",&x);

  > 입력 장치는 무엇인가? 코드로부터는 알 수 없지만 아마 키보드, 파일, 다른 프로그램으로부터의 출력 결과 일 것

  > 코드는 물리적인 장치에 상관없이 논리적인 입력을 제공

  > 즉, 여러 개의 물리 장치로 입력받은 값들을 하나의 논리 장치로 처리할 수 있음

 

 

# Logical Devices

- 여섯가지 타입의 논리적 입력

  > Locator: 위치 (x, y)를 반환

  > Pick: 객체의 ID를 반환

  > String: 키보드로 입력되는 문자를 반환

  > Stroke: 마우스로 드래그할 때 지나가는 위치를 저장한 배열을 반환

  > Valuator: 부동 소수점들을 반환

  > Choice: 메뉴 아이템 n개 중 하나를 리턴

 

 

# CRT Display

- CRT Display

  > 빛이 발광하고 바로 사라지기 때문에 주기적으로 빛을 계속 쏴주어야 우리가 화면을 볼 수 있음

  > 즉, 주기적인 재활성률이 필요함

     * 재활성률: 60Hz, 1초에 60번씩 빛을 쏘는 것

CRT Display

 

 

# LCD

- Liquid Crystal Display

  > 현재 전류에 의해 재배열되는 Liquid crystal이 있음

  > 즉, 결정 물질(liquid crystal)은 전류에 의해 방향이 바뀌며 이로 인해 빛의 투과량이 달라짐

  > 색상판(color cell plane(R, G, B))에 닿는 빛의 양을 조절

  > ex) 모니터, 핸드폰

  > 가장 자리에서 뿌옇게 되는 현상이 있음

LCD

 

 

# LED

-  Light Emitting Diode

  > 위의 LCD 구조에서 맨 위쪽의 형광등 X

  > 다이오드 즉, 물질 자체가 발광하는 것

  > 명암표현에서 더 유리함

  > 골고루 색 표현력이 좋음

  > 가볍고 비쌈

* OLED: 유기 발광 다이오드

  > 다이오드가 유기 혼합물임

 

 

# Stereoscopic Image display

- 사람은 왼쪽과 오른쪽 눈의 이미지를 조합하여 3D 입체감을 느낄 수 있음

- polarized glass(편광 안경)

  > 왼쪽 렌즈: 오른쪽 눈에 대한 시각 필터링

  > 오른쪽 렌즈: 왼쪽 눈에 대한 시각 필터링

  > 필터링을 각각 해주어 뇌에서는 합성된 원래 이미지로 아래 겹쳐 보이는 사자를 제대로 인식할 수 있음

-

Stereoscopic Image display

 

 

# Hologram

- 어느 방향에서 봐도 영상을 볼 수 있음

- 기술 자체가 어려움, 제약 조건이 많음

- 1070년 스타워즈 영화에서 처음 등장

- 현재는 박물관, 전시관 등에서 사용

Hologram

 

 

# Graphics Software

- Drawing / Painting tools

  > Corel Painter: Raster 방식으로 object 단위로 분리 불가능

  > Adobe Illuster: Vector 방식으로 object 단위로 분리하여 편집 가능

                        → 일러스트: 점, 선, 면으로 구성

Drawing / Painting tools

- Image Editor

  > tool: Adobe Photoshop

Adobe Photoshop

 

 

# 3D Modeling and Animation

- ex) 마야, 3D MAX

1)  shape 만들기

2) 동작 삽입

 

 

# Raster Graphics (1)

- Pixel: Picture를 구성하는 요소

  > picture element: 래스터 구성단위

- Raster: 사진을 나타내는 픽셀들의 배열

  > DPI: 인치당 점의 개수

  > PPI: 인치당 픽셀의 개수

Raster

- resolution(해상도): 스크린 위의 픽셀의 개수

resolution

  

 

# Raster Graphics (2)

- 디지털 이미지는 픽셀의 배열. 즉, 레지스터로 표현됨

  > 처리 속도가 빠르다는 장점이 있음

Raster Graphics

- pixel: 래스터 이미지의 자동 유닛으로 색의 강도 값을 가짐 (0 ~ 255 혹은 0.0 ~ 1.0)

- Rasterization(래스터화)

  > 스캔 변환

  > 벡터에 상응되는 시스템 안에 객체는 픽셀에 상응되는 시스템으로 변환

  > 부동 소수점은 정수 숫자로 반올림됨

> P1(0.3,4.5) → P1'(0,5)

> P2(6.5,0.3) → P2'(7,0)

- Aliasing: 기울기에 따라 경계가 깨지는 현상이 일어날 수 있음

- Anti-aliasing: 선을 부드럽게 만드는 알고리즘

aliasing

 

 

# Frame Buffer

- 디스플레이로 보내지는 이미지 데이터를 완전히 저장하는 비디오 메모리 공간

  > color buffer라고도 부름

- Digital to Analog conversion(DAC)

  > 프레임 버퍼 안의 디지털 데이터/신호는 비디오 컨트롤러에 의해

     화면 위의 픽셀로 표현되기 위한 아날로그 신호(analog voltage)로 변환됨

 

 

# HCL

- ADC devices

  > 카메라, 스캐너(light), 마이크로폰(sound wave), 터치 스크린(static electricity)

- DAC devices

  > 모니터(light), 스피커(Sound), Motor(vibration)

HCL

 

 

# Bit Plane

- 픽셀의 색은 원색의 조합에 의해 결정되며 구성 요소(R,G,B) 또는 픽셀당 비트 평면임

bit planes

 

 

 

# Frame Buffer

- 512가지 색상을 가진 1280x1024 이미지의 최소 프레임 버퍼 크기 

  > 1280*1024*9 bits = 1.41 MB

- ex) 24비트 color를 가진 1024x768 이미지의 최소 프레임 버퍼 크기

  = 1024 * 768 * 3 bytes

  = 2,359,296 bytes

  = 2,304 KB

  = 2.26 MB

 

 

# Vector Graphics

- 객체는 벡터에 상응되는 시스템에서 점, 선, 면으로 그려짐

- 정점의 집합과 drawing command scripts에서 표현

- 이미지에 대한 정점 데이터와 명령문을 저장

vector 방식은 다시 계산하는데 시간이 더 걸림

- 이상적으로 10진수 공간의 무한 해상도임

- pixel과 aliasing side-effect에 대한 개념 없음

- contents의 복잡도에 따라 랜더링 시간이 달라짐

Vector vs. RASTER

- 정점의 집합과 scripts 명령어는 디스플레이 리스트 안에 저장됨

- 객체를 그래기 위해, GPU는 scripts 명령어를 정점 데이터를 가지고 해석해야 함

Frame buffer

> 물체를 한 번만 그릴 경우: 화면에서 물체가 사라지기 때문에 goto Loop으로 반복하여 그림

 

 

# Vector Graphics Devices

- Plotter, dscilloscope(voltage management)

Plotter, dscilloscope

 

 

# Raster vs. Vector Graphics

 

 

# Graphic Processor

GPU

- 비디오 board/adapter +) 그래픽 카드

- 프레임 버퍼 데이터는 디스플레이 디바이스에 변환됨 (DAC)

- Rasterization

  > 예전 컴퓨터는 CPU를 사용하여 소프트웨어 기반의 래스터화를 함

  > 현대 컴퓨터는 GPU를 사용하여 래스터화 속도를 가속화함

* CPU는 래스터화 외에도 할 일이 많기 때문에 GPU가 일을 분담하는 식으로 발전된 것

graphic processor

- GPU

  > 디스플레이 프로세서 + 기하학(geometry) 프로세서

  > HW 가속화

- 디스플레이 프로세서

  > 비트맵, 선 그리기, 색 채우기를 위한 2D 그래픽 프로세싱

- 기하학 프로세서

  > 정점에 기반한 3D 기하학 프로세싱

- AGP (Accelerated graphic port)

  > 메인 메모리와 비디오 메모리(프레임 버퍼) 간에 그래픽 데이터를 전달하는 데이터 버스라고 생각하면 됨

- Device driver program

  > CPU 명령어에 의해 제어되는 GPU

  > CPU 명령어를 GPU 명령어로 변환

  > ex)OpenGL

 

 

# NVDIA T4 for AI, CLOUD

- 딥러닝, 클라우드에서 사용

  > ex) 자율주행 자동차

- 행렬 데이터 형식으로 데이터를 삽입

T4

 

 

# Double Buffering

- 프레임 버퍼에서의 읽기와 쓰기

  > 래스터화 데이터는 프레임 버퍼에 기록되고 비디오 컨트롤러에 의해 읽힘

- 래스터화 지연으로 인해 쓰기 프로세스가 완료되기 전에 프레임 버퍼 데이터를 읽으면 어떻게 되는가?

  > 사용자가 보지 않아도 되는 화면을 봐야 하는 경우(c)가 생김

  > (b) 바로 뒤에 그려진다고 가정

  > 지연된 경우 (b), (c), (d)를 순서대로 그려 깜박임이 발생

flickering

- Front buffer: 데이터가 완료되서 video controller가 데이터를 읽어가게 함(read)

- Back buffer: GPU가 사용하는 buffer(write)

- Buffer swapping: back 버퍼에 데이터 쓰기가 완료되면 두 버퍼의 역할이 바뀌며 이 swapping은 애니메이션이 끝날 때까지 반복됨

Buffer swapping

'Study > Computer Graphics' 카테고리의 다른 글

[CG] 4. Geometry Transformation  (0) 2021.10.13
[CG] 3-2. OpenGL Event Handling  (0) 2021.10.08
[CG] 3-1. Graphic Library  (0) 2021.10.06
[CG] 2-2. Color Models  (0) 2021.10.04
[CG] 1. History and application  (0) 2021.09.14
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!