컴퓨터 그래픽스 시스템
수업 2주차. 그래픽스가 물리적으로 구현되는 하드웨어 스택 과 이를 추상화하는 소프트웨어 스택 을 한 번에 훑습니다. 개념·용어·연도 암기가 많은 장.
1. 그래픽스 시스템의 구성
그래픽스 시스템은 Hardware · Program · Database 세 축으로 구성됩니다.
1.1 Graphics Hardware
- Processor: CPU 와 Graphics Accelerator (GPU).
- Memory: System Memory 와 Frame Buffer (화면 이미지 저장).
- 출력장치: 모니터, 프린터 등.
- 입력장치: 마우스, 태블릿, 3D 스캐너 등.
1.2 Graphics Program
- 그래픽스 응용 프로그램.
- 일반적으로 그래픽스 라이브러리(API: Application Program Interface) 를 이용해 개발.
1.3 Graphics Database
- 2차원 / 3차원 물체와 주변 환경을 기술하는 데이터.
2. 디스플레이 장치
2.1 CRT (Cathode Ray Tube) 모니터의 원리
TV와 유사하게 전자총(Electron Gun) 에서 전자빔(Cathode ray) 을 스크린에 주사.
- 주요 속성: 해상도(Resolution) · 스캔라인(Scan Line) · 종횡비(Aspect Ratio).
- 발광체의 지속성 (Persistence of Phosphors):
- Flicker 현상을 방지하기 위해 CRT screen을 주기적으로 Refresh.
- Low persistence: 애니메이션에 바람직 (잔상 적음).
- High persistence: Highly complex · Static picture 에 적합.
2.2 벡터 모니터 (Random-Scan Monitor)
- Line-drawing application 에 적합, realistic shaded scene 에는 부적합.
- Raster-scan monitor 보다 high-resolution 가능.
- Smooth line drawing 가능.
- Line-drawing commands (Display file program) 로 제어.
2.3 래스터 모니터 (Raster-Scan Monitor)
대부분의 현대 디스플레이가 이 방식이며, Shading & Coloring 에 적합.
- 이미지 단위 계층: Pixel (Picture Element) → Scan Line → Raster (set of horizontal scan lines).
- 앨리어싱(Aliasing): 지그재그(Jaggies) 현상 → 앤티앨리어싱(Antialiasing) 으로 완화.
- Raster: 생성된 그래픽 이미지를 Frame Buffer 에 저장.
- Frame Buffer 의 Depth (비트 깊이) 가 표현 가능한 색상 수를 결정.
- 스캔변환 (Scan Conversion, Rasterization): 벡터 명령 → 픽셀로 변환.
2.4 컬러 모니터 (Color Monitor)
두 가지 방식.
| 방식 | 원리 | 사용처 |
|---|---|---|
| Beam Penetration | 2 Layers of Phosphor — 전자빔 세기로 층 침투 깊이 조절 | Random-scan monitor |
| Shadow Mask | 전자총이 R, G, B 세 개, 마스크를 거쳐 각 형광점에 정확히 도달 | Raster-scan monitor (일반적) |
2.5 평판 디스플레이 (Flat-Panel Display)
- LCD (Liquid Crystal Display)
- LED (Light Emitting Diode)
- OLED (Organic LED) — 자발광으로 LCD 대비 명암비·응답속도 우수
2.6 3D 디스플레이
단순히 색상만 표시하는 것을 넘어 입체감(depth) 을 느끼게 해주는 장치.
입체감 지각 원리
인간의 좌우 눈은 약 65mm 떨어져 있어, 두 눈이 미세하게 다른 각도의 영상을 본다. 이 두 이미지가 시신경을 통해 뇌의 시피질(visual pathway) 로 전달되어 하나의 영상으로 융합되는 과정에서 입체감(양안시차, binocular disparity) 이 지각됩니다.
구현 원리
두 개의 카메라 렌즈로 좌·우 영상을 동시에 촬영, 좌·우 눈에 대응 영상을 개별적으로 표시하여 재생. 촬영 리그는 수평/수직/수직-거울 방식 등.
세 가지 분리 기법 ⭐️
| 방식 | 원리 |
|---|---|
| 애너글리프 (Anaglyph) | 가장 오래된 방식. 왼쪽은 청색, 오른쪽은 적색 으로 생성해 겹쳐 재생, 적/청 안경으로 분리 |
| 편광 (Passive) | 디스플레이에 편광 필터로 좌/우 영상 분리, 사용자도 편광 필터 안경 착용 (영화관 3D) |
| 셔터 (Active) | 전자 제어 셔터 안경 이 디스플레이와 동기화되어 좌/우를 번갈아 가림 |
입체 영상 파일 포맷
Line-by-line, Side-by-side-half, Above-below (Top/Bottom), Checkerboard — 한 프레임 안에 두 눈 영상을 담는 방식들.
VR HMD
오큘러스·HTC Vive 같은 헤드셋은 본질적으로 두 개의 디스플레이로 좌우 눈에 각각의 영상 을 송출.
3. 그래픽스 프로세서
3.1 래스터스캔 시스템 (Raster-Scan System)
그래픽스 명령어 → 픽셀 이미지 형태로 프레임버퍼에 저장.
- 흐름: Pixel → Scan line → Raster → Frame Buffer.
- 스캔변환 (Scan Conversion, Rasterization) 단계가 핵심.
- 비디오 제어기 (Video Controller) 가 프레임 버퍼 내 데이터를 초당 수십 회 이상 모니터에 갱신.
3.2 GPU 와 GPGPU ⭐️
| 구분 | 설명 |
|---|---|
| GPU (Graphics Processing Unit) | 프레임 버퍼에 그래픽 이미지를 빠르게 생성/처리 하기 위한 프로세서 |
| GPGPU (General Purpose computing on GPU) | 수백~수천 개 코어 의 병렬성을 범용 연산에 활용. 그래픽스 외 과학·딥러닝·시뮬레이션에 활용 |
예시: NVIDIA GTX 1080 = 2560 개 CUDA Core. Quad-core CPU 대비 수백 배의 병렬 처리 단위.
4. 입력 장치
4.1 2차원 입력 장치
| # | 장치 | 특징 |
|---|---|---|
| 1 | 마우스 (Mouse) | 1968년 12월 9일 더글러스 엥겔바트 가 발명. 1984년 애플 매킨토시 로 대량 보급. Relative 좌표 입력. 3D 마우스도 존재 |
| 2 | 그래픽스 태블릿 (Tablet) | 핸드커서(Hand Cursor) 나 Stylus 사용. 마우스와 달리 Absolute Position 장치 → CAD·GIS 에 적합 |
| 3 | 조이스틱 (Joystick) | 게임·시뮬레이터에서 주로 사용 |
| 4 | 라이트 펜 (Light Pen) | 초기 그래픽스 시스템(Sketchpad 포함) 에서 사용되던 포인팅 장치 |
4.2 3차원 입력 장치
- 3D 디지타이저 / 3D 스캐너: 3차원 물체의 (X, Y, Z) 좌표 입력. 예: David 조각상 스캔.
- 모션캡처 (Motion Capture): 사람·동물의 움직임과 같은 동적 데이터 입력.
- 기계식 · 자기적(Magnetic) · 광학식(Optical) · 관성식(Inertial) — 특히 광학/관성식이 현대 표준.
- 기타: RGBD Cameras (Azure Kinect), VR/AR Controllers (HTC Vive, Oculus), Facial Capture (iPhone ARKit).
5. 하드카피 장치
5.1 프린터 (Printer)
| 분류 | 예시 | 해상도 |
|---|---|---|
| Impact Printer | Dot matrix | 60~180 dpi |
| Nonimpact Printer | Ink-Jet, Laser | 600+ dpi |
- Laser Printer 는 벡터 방식 인쇄를 위해 PostScript (PS) 표준을 따름.
- 컬러 프린터: CMY / CMYK 컬러모델 사용 (모니터의 RGB 와 정반대).
5.2 플로터 (Plotter)
- Drum Plotter / Flat-bed Plotter 방식.
- Line-drawing 소프트웨어 명령어 필요, 펜이 4~16 방향 으로 이동.
- 선 그리기 방식이므로 smoothly shaded region 이나 raster image 에는 부적합.
5.3 3D 프린터
- 3D Model 로부터 물리적 형태를 빠른 시간 내에 제작 (Rapid Prototyping).
- 활용: 상품 프로토타입, 기계부품, 데이터의 3D 시각화, 의학용 모델링, 문화유산 재현 등.
- 레이어 제조기법 (LM: Layered Manufacturing) 세 가지:
- SLA (StereoLithography Apparatus) — 광경화 방식
- Powder-based 3D Printing
- FDM (Thermoplastic Fused Deposition Modeling) — 필라멘트 열압출
6. 그래픽스 소프트웨어
6.1 그래픽스 API 의 기능
- Output primitives 의 생성과 Attribute 지정: Line, Polygon, Circle, Curved line, Character string 등.
- 그래픽 객체의 모델링, 기하변환, 뷰잉변환.
- 객체의 Shading 및 Rendering.
- 논리적 그림 단위 정의: Segment (GKS), Structure (PHIGS), Object (OpenGL).
- 입력장치로부터의 상호대화식 데이터 입력.
- 제어 기능.
6.2 주요 API의 역사적 계보 ⭐️
CORE (ACM SIGGRAPH, 1979)
↓ [Hierarchical Grouping]
GKS (ISO, 1984) → PHIGS (ANSI, 1988)
↓ [Object-oriented Graphics]
GL (Silicon Graphics) → OpenGL (1992) → Open Inventor
↓ [Scene Graph]
VRML (1997) → X3D (2004)
↓ [VR]
Java 3D (Sun, 1998)
주요 표준 상세
| API | 연도 | 특징 |
|---|---|---|
| CORE | 1977 제정 / 1979 개정 | SIGGRAPH 가 정한 Graphics package 초기 표준 |
| GKS | ISO(1984), ANSI(1985), GKS 3D(1988) | 공인된 국제 표준 |
| PHIGS | ANSI(1988) | 그래픽을 계층적(Hierarchical) 으로 구성. CAD/CAM, 지휘·통제, 분자 모델링 |
| OpenGL | 1992 | Silicon Graphics 의 GL 로부터 플랫폼 독립 개발. 지금은 산업계 실질적 표준 (de facto standard) |
| Java 3D | 1998 | Sun Microsystems. OpenGL 보다 high-level, Scene Graph 개념 (VRML 계열) |
| OpenGL ES | 2003 (1.0) / 2007 (2.0, 셰이더 기반) / 2012 (3.0) | Embedded Systems (모바일·임베디드) 용. 차세대는 Vulkan API |
| WebGL | 2011 | 웹 브라우저 상의 3D/2D JavaScript API. 1.0 = OpenGL ES 2.0 기반 + Canvas, 2.0 = OpenGL ES 3.0 기반. 수업 실습 환경 |
6.3 장치 인터페이스 (Device Interface)
- CGI (Computer Graphics Interface) — ANSI Standard.
- 가상 입출력장치(Virtual Device) 를 장치독립적으로 인터페이스.
- 물리적 I/O 장치(프린터·모니터·플로터·마우스) 마다 장치 드라이버(Device Driver) 개발 필요.
6.4 그래픽 데이터 교환 표준
| 표준 | 용도 |
|---|---|
| CGM (Computer Graphics Metafile) | ANSI Standard. 그래픽 정보를 파일에 저장·전송 |
| IGES | CAD/CAM 같은 Graphics Engineering Database 교환 |
| STEP | 설계·제조 관련 제품 데이터 교환 |
| glTF | 웹 환경 에서 3차원 그래픽 정보 표현 명세. "JPEG for 3D" |
| USD (Universal Scene Description) | Pixar 개발, 3D 장면 데이터 교환 오픈 프레임워크. VFX 업계 표준 |
📝 Checkpoint: 시스템 퀴즈
CRT 모니터에서 'High persistence' 형광체의 특성으로 옳은 것은?
Raster-scan monitor의 이미지 계층 구조 순서로 옳은 것은?
컬러 CRT 모니터의 'Shadow Mask' 방식의 특징으로 옳은 것은?
3D 디스플레이에서 '편광(Passive) 방식'과 '셔터(Active) 방식'의 핵심 차이는?
OpenGL의 역사적 계보에 대한 설명으로 옳은 것은?
다음 중 '그래픽 데이터 교환 표준'의 용도 매칭이 틀린 것은?
1968년 12월 9일, 최초의 마우스를 발명한 사람의 이름은? (영문 성만)
셰이더(Shader) 기반으로 전환된 OpenGL ES 버전은?
🔗 다음 학습
- 이전: 컴퓨터 그래픽스의 개요 (1주차)
- 다음: 래스터 알고리즘 (4주차) — 이제 실제 픽셀을 그리는 알고리즘으로 내려갑니다.
- 수학 기본기가 필요하면: 기초 수학