63
컴컴컴 컴컴컴컴 컴컴컴 컴컴컴컴 컴컴 컴컴 컴컴컴컴 컴컴 컴컴컴 컴컴컴 컴컴 컴컴 컴컴 컴컴컴컴 컴컴컴컴 컴컴컴컴 컴컴컴컴 컴컴 컴컴 컴컴 컴컴컴컴 컴컴 컴컴컴컴 컴컴컴 컴컴컴 컴컴컴 컴컴컴컴컴 컴컴컴컴 .

컴퓨터 그래픽스

Embed Size (px)

DESCRIPTION

컴퓨터 그래픽스. 최근 첨단 기술이라 하면 새로운 기술로 빠른 시간 안에 이미지를 생성하고 이미지의 변환이나 컬러 매핑 혹은 가시화를 위한 렌더링의 기술을 디지털 컴퓨터 그래픽으로 정의한다. 기본 개념. 디지털 정보의 표현은 점 (point), 선 (line), 다각형 (polygon) 을 만들 수 있으며 , 다각형은 하나의 평면 (plane) 을 구성하며 이로부터 2 차원 이미지로 표현이 가능 - PowerPoint PPT Presentation

Citation preview

Page 1: 컴퓨터 그래픽스

컴퓨터 그래픽스컴퓨터 그래픽스

최근 첨단 기술이라 하면 새로운 기술로 빠른 시간 안에 이미지를 생성하고 이미지의 변환이나 컬러 매핑 혹은 가시화를 위한 렌더링의 기술을 디지털 컴퓨터 그래픽으로 정의한다 .

Page 2: 컴퓨터 그래픽스

2

디지털 정보의 표현은 점 (point), 선 (line), 다각형 (polygon)을 만들 수 있으며 , 다각형은 하나의 평면 (plane) 을 구성하며 이로부터 2 차원 이미지로 표현이 가능

2 차원 이미지가 Z 축상으로 연속된 이미지로 이어진다면 이는 입체적으로 표현이 가능한 하나의 3 차원 이미지를 생성

이러한 과정에서 이미지를 생성시키는 학문분야를 컴퓨터 그래픽스라고 정의

컴퓨터 그래픽스는 이미지를 생성시키는 기법과 표현 (Visualization) 으로 시작

프로그램 라이브러리로는 OpenGL(Open Graphical Library) 을 주로 사용하며 , 복잡하고 많은 계산을 요하기 때문에 그래픽 가속기에 영향을 받음

산업디자인 , 웹디자인을 비롯하여 영화에 응용

기본 개념기본 개념기본 개념기본 개념

Page 3: 컴퓨터 그래픽스

3

그래픽스그래픽스 (Graphics)(Graphics)그래픽스그래픽스 (Graphics)(Graphics) 2D 그래픽 : 모델로부터 필요한 기하학적 변환 등을 거쳐 디스플레이 장치의

뷰포트 (viewport) 에 출력 3D 그래픽 : 모델로부터 사실감 있는 그림을 만드는 과정을 흔히 렌더링 (rend

ering) 이라 하는 데 , 물체의 원근 , 음영 , 질감 등의 표현을 위해 렌더링 과정을 수행함

그래픽스 소프트웨어 하드웨어 종속적인 패키지로부터 , 응용 프로그램의 호환성을 위하여 , 장치

독립적인 고급 패키지로 발전해 옴 법적 표준 (de jure)

GKS (Graphical Kernel System) : 2D GKS-3D PHIGS (Programmer’s Hierarchical Interactive Graphics System) : 3D PHIGS+ : PHIGS + rendering SPHIGS (Simple PHIGS)

업계 표준 (de facto) Adobe 사의 PostScript Silicin Graphics 사의 OpenGL, MIT 의 X Window System, PEX (PHIGS Extension to X) SRGP(Simple Raster Graphics Package)

윈도우즈에서의 그래픽스 구현 응용 프로그래머를 위해 하드웨어 독립적인 GDI(Graphics Device Interface) 제공 그래픽 속도가 중요한 응용을 위해 , DirectDraw(2D 그래픽만 지원 ), Direct3D(3D 그래픽

지원 ), OpenGL 을 제공함

Page 4: 컴퓨터 그래픽스

4

윈도우즈 그래픽 지원 구조윈도우즈 그래픽 지원 구조윈도우즈 그래픽 지원 구조윈도우즈 그래픽 지원 구조

GDIVideo forWindows

OpenGLDirect3D

GDIDriver

DirectDraw 3D Driver

비지니스 프로그램 게임 프로그램 멀티미디어 프로그램 3D 응용

Page 5: 컴퓨터 그래픽스

5

대화형 그래픽스 시스템 프레임워크대화형 그래픽스 시스템 프레임워크대화형 그래픽스 시스템 프레임워크대화형 그래픽스 시스템 프레임워크 컴퓨터 그래픽스 : 컴퓨터를 이용하여 실제 그림이나 수학적인 모델과 같은

고차원의 추상적인 그래픽들을 생성 , 저장 , 처리 대화형 그래픽스 시스템 : 사용자가 컴퓨터와의 상호작용을 할 수 있는 키보드 ,

마우스 , 스캐너 등과 같은 장치를 이용하여 디스플레이 상에서 그래픽스의 내용 , 포맷 , 크기 , 컬러 등을 제어할 수 있는 시스템

응용모델 (application model) : 스크린 상에 그려질 데이터나 객체를 나타냄 응용 프로그램 (application program)

화면에 그려질 데이터와 객체를 나타내는 응용모델 제작 : 정보 저장 및 정보 획득 , 사용자의 입력처리

그래픽스 시스템 (graphics system) 상세 그래픽 기술 (description) 에 따라 그림 생성 사용자 입력을 응용 프로그램에게 전달함 입력 및 출력에 대한 변환기능 수행

ÀÀ¿ë ¸ðµ¨ ÀÀ¿ë ÇÁ·Î±×·¥ ±×·¡ÇÈ ½Ã½ºÅÛ ±×·¡ÇÈ Çϵå¿þ¾î

Page 6: 컴퓨터 그래픽스

6

윈도우윈도우 (window)(window) 과 뷰포트과 뷰포트 (viewport) (viewport) 개념개념윈도우윈도우 (window)(window) 과 뷰포트과 뷰포트 (viewport) (viewport) 개념개념

세계 좌표계

윈도우

화면 좌표계

1 뷰포트

2 뷰포트

윈도우 (window) : 세계 좌표계에서 지정된 사각 부분 뷰포트 (viewport) : 윈도우가 옮겨지는 출력 장치 ( 화면 ) 의 사각영역

세그먼트 , 구조 : 하나의 그룹으로 분류되어 레이블이 붙은 일단의 출력 요소

Page 7: 컴퓨터 그래픽스

7

33 차원 그래픽스의 개념차원 그래픽스의 개념33 차원 그래픽스의 개념차원 그래픽스의 개념

모델링 클리핑 광원계산

좌표변환

은면 처리

휘도 및 색상 처리

텍스처링

기하 처리 렌더링 디스플레이

2D + 원근 , 음영 , 질감 (texture) 처리 등 복잡한 고속 연산 면 단위로 처리되어 최종적으로 다면체 데이터 생성 처리 픽셀의 수 : 프레임 당 면의 수 * 면 당 픽셀 수 * 프레임 수

3D 그래픽스 처리 모델링 : 스크린 상에 그려질 객체와 데이터 생성 (CPU) 기하처리 : 시점 , 광원 , 스크린 정의 , 투영 (CPU) 랜더링 : 은면 제거 , 음영 및 색상 처리 , 질감 처리 (3D 엑셀레이터 )

Page 8: 컴퓨터 그래픽스

8

3D 3D 그래픽스 하드웨어 시스템구성의 예그래픽스 하드웨어 시스템구성의 예3D 3D 그래픽스 하드웨어 시스템구성의 예그래픽스 하드웨어 시스템구성의 예

CPU LSI전용

버퍼메모리

텍스처메모리

프레임버퍼

DAC

메인메모리

1∼2M바이트

2∼16M바이트

1∼2M바이트

- 게임 프로그램- 기하 연산- 데이터베이스 매니지먼트

- (Z )은면제거 버퍼- ·색 휘도계산- 텍스처- 프레임 버퍼 컨트롤

Page 9: 컴퓨터 그래픽스

9

3D 3D 그래픽 개념그래픽 개념3D 3D 그래픽 개념그래픽 개념 1) 3D 에서 뷰잉 (Viewing in 3D) : 기하 처리

① 투영양식 설정 (specification of projection) : 3D 를 2D 로 원근 투영 (perspective projection) 평행 투영 (parallel projection)

② 뷰잉 매개변수 결정 : 뷰포트 위치 결정 ③ 3D 에서의 절단 (clipping) ④ 투영과 디스플레이 : 투영된 것을 뷰포트로 변환

(cf.) 2D 뷰잉세계 좌표계에 존재하는 물체들이 세계 좌표계의 윈도우로 절단되고 디스플레이를 위해 뷰포드로 매핑됨

ºä º¼ ·ý¿¡´ë ÇØÀý ´Ü

À©µµ¿ì ·ÎÅõ ¿µ

2 Â÷¿ø È ̧éÀ»À§ ÇÑ

ÀåÄ¡ ÁÂÇ¥°è ÀÇ ºäÆ÷Æ®·Î º¯È¯

3 차원 세계 좌표에서

정의된 기본 객체

2 차원 장치 좌표계

Page 10: 컴퓨터 그래픽스

10

3D 3D 그래픽 개념그래픽 개념3D 3D 그래픽 개념그래픽 개념 2) 은면 (Hidden surface) 및 은선 (Hidden edge) 제거

연산시간은 물체 수의 2배에 비례 Z 버퍼 방법 : 실제 픽셀의 값 (R, G, B) 외에 각 픽셀의 깊이 Z 값을 보존함

3) 음영 (Shading) 및 색상 현실감 있는 물체의 그래픽을 위해 음영과 색상 패턴을 적용시킴 음영 모형 : 물체의 표면을 바라볼 때의 빛의 광도 계산 ( 면의

광학적 성질 , 면의 상대적인 위치 및 광원에 대한 방향이 고려됨 ) 4) 텍스처링 (Texturing) : 면에 재질감을 내는 것

텍셀 (Texel; 텍스쳐 맵 데이터의 픽셀 ) 정보 + 음영처리된 픽셀정보

프레임 버퍼 디스플레이 point sample texturing, bilinear texturing 등

Page 11: 컴퓨터 그래픽스

11

곡선 및 곡면의 표현곡선 및 곡면의 표현 (( 모델링모델링 ))곡선 및 곡면의 표현곡선 및 곡면의 표현 (( 모델링모델링 )) 수학식 이용 : 정현파 곡선 (y = sin x) 이용 사용자가 지정한 점들을 이어 만듦

베지어 곡선 (Bezier curve) 스플라인 곡선 (spline curve) 방식

곡면 표현방법 다각형 메쉬 곡면 (polygon mesh surface) 매개변수 곡면 (parametric surfaces) : 3 차원 곡면

x(s,t) = r sin (s) cos(2t) y(s,t) = r sin (s) sin(2t) z(s,t) = r cos (s) cos(2t)

2 차 곡면 (second-order surfaces) : 구면 (x – a)2 + (y – b) 2 + (z – c) 2 – r 2 = 0

불규칙한 곡선과 면 재생 프랙탈 (fractal) 기하학 이용

재귀적 과정을 무한히 반복 복잡한 곡선이나 면을 같은 모양을 갖는 선 또는 면들의 축소 또는 확대를 이용하고 이들을 조합한 형태로 표현함

참고 사이트 : http://www.arcytech.org/java/fractals/koch.shtml

Page 12: 컴퓨터 그래픽스

12

33 차원 입체 표현차원 입체 표현 (3D Modeling )(3D Modeling )33 차원 입체 표현차원 입체 표현 (3D Modeling )(3D Modeling )캡쳐에 의한 3D 모델링 (Solid modeling) 다각형면 또는 곡면들을 모아서 근사법으로 그리는 방식 (surface modeling)

3D 입체를 2D 곡면의 회전으로 형성 선화 (線畵 ) 모델링 (wire frame modeling)

Page 13: 컴퓨터 그래픽스

13

프랙탈프랙탈프랙탈프랙탈 프랑스의 수학자인 만델브로트 (Mandelbrot) 는 1967년

영국에서 발행되는 과학 잡지인 '사이언스 '에 「영국을 둘러싸고 있는 해안선의 총 길이는 얼마인가」라는 제목의 글을 발표했다 .

이 글에서 만델브로트는 영국의 해안선의 길이는 어떤 자로 재느냐에 따라 얼마든지 달라질 수 있다고 주장했다 . 1m 단위의 자로 재었을 때와 1cm 단위의 자로 재었을 때는 둘레의 길이가 엄청난 차이를 낳을 것이라는 것이다 .

프랙탈 (fractal) 이라는 용어는 만델브로트가 IBM 에서 연구원으로 근무하던 중 자신이 연구하던 것들을 책으로 출간하기 위해 책의 제목을 생각하다가 라틴어의 fractus라는 낱말을 발견하여 fractal 이라는 용어를 만들었다는 설도 있고 , 프랙탈 기하학이 정수가 아닌 분수 (fractional)차원을 가진다는 의미에서 fractal 이라는 용어를 만들었다는 설도 있다 .

Page 14: 컴퓨터 그래픽스

14

프랙탈프랙탈프랙탈프랙탈

프랙탈 (fractal) 이 무엇인지를 알기 위해서 먼저 차원의 개념을 보게되면 , 점은 0 차원 , 선은 1 차원 , 면은 2 차원 , 공간은 3 차원이 되겠다 . 이를 다시 정의해보면 , 각 차원을 대표하는 도형을 각각 1 차원은 선분 , 2 차원은 정사각형 , 3 차원은 정육면체로 하면 자기 닮은 도형을 확대하는데서 공통성을 찾을 수 있을 것이다 .

프랙탈의 속성은 자기 유사성 (self-similarity) 과 순환성 (recursiveness) 이라는 특징을 가지고 있으며 , 프랙탈은 컴퓨터의 발전과 더불어 더욱 알려지게 되었으며 , 비록 몇 줄 되지 않는 프로그램이지만 그 속에 숨어 있는 물리적 , 기하학적 , 철학적 내용은 앞으로 우리가 연구해야 할 과제이다

Page 15: 컴퓨터 그래픽스

15

프랙탈프랙탈프랙탈프랙탈

(a), (b), (c) 는 프랙탈 차원을 계산하기 위한 것이며 , (d) 는 프랙탈을 활용한 그림

Page 16: 컴퓨터 그래픽스

16

프렉탈프렉탈 : Deterministic IFS: Deterministic IFS(Iterated Function System)(Iterated Function System) 예예 11프렉탈프렉탈 : Deterministic IFS: Deterministic IFS(Iterated Function System)(Iterated Function System) 예예 11

Page 17: 컴퓨터 그래픽스

17

프랙탈프랙탈 : Deterministic IFS: Deterministic IFS(Iterated Function System)(Iterated Function System) 예예 22프랙탈프랙탈 : Deterministic IFS: Deterministic IFS(Iterated Function System)(Iterated Function System) 예예 22

Page 18: 컴퓨터 그래픽스

18

프랙탈프랙탈 : Random IFS(Iterated Function System) : Random IFS(Iterated Function System) 예예 33프랙탈프랙탈 : Random IFS(Iterated Function System) : Random IFS(Iterated Function System) 예예 33

for n=1 to numits/* 같은 확률로 1, 2, 3 중 하나 선택 */k = int (3 * rnd – 0.00001) +1/* affine transformation */newx = a[k]*x + b[k]*y + e[k]newy = c[k]*x + d[k]*y + f[k]x = newxy = newyif n > 10 then pset (x,y)

iterationsnextend

w a b c d e f P

1 0 0 0 0.16 0 0 0.01

2 0.85 0.04 -0.04

0.85 0 1.6 0.85

3 0.2 -0.26

0.23 0.22 0 1.6 0.07

4 -0.15

0.28 0.26 0.24 0 0.44 0.07

Page 19: 컴퓨터 그래픽스

19

기하 변환의 이해기하 변환의 이해기하 변환의 이해기하 변환의 이해 1) 2 차원 변환

2 차원상의 어파인변환 (Affine transformation) : 한 점 p=(x , y ) 를 2 차원 어파인 사상 (Affine mapping, 2 차원 어파인 변환식은 교재 표 2.4 참조 ) 에 의해 p'=(x' , y') 로 바꾸어 주는 변환

2) 3 차원상의 좌표변환 3 차원 어파인 변환 : 3 차원상의 한 점 p=(x, y, z) 를 형태의 3

차원 어파인 사상 (3 차원 어파인 변환식은 교재 표 2.5 참조 ) 에 의해 또 다른 한 점 p'=(x', y', z') 로 바꾸어 줌

Page 20: 컴퓨터 그래픽스

20

기하 변환의 이해기하 변환의 이해기하 변환의 이해기하 변환의 이해

x’ a11 a12 v1 x’

y’ = a21 a22 v2 * y’

1 0 0 1 1

Page 21: 컴퓨터 그래픽스

21

기하 변환의 이해기하 변환의 이해기하 변환의 이해기하 변환의 이해

Page 22: 컴퓨터 그래픽스

22

보간법보간법보간법보간법

보간법 (Interpolation) 에는 크게 선형보간법 (Linear Interpolation) 과 큐빅보간법 (Cubic Interpolation) 으로 나눔

선형보간법은 선상에서 두 점 사이에 새로운 포인트를 생성하는 것이며 큐빅보간법은 3 차원 공간상에서 8개의 포인트를 고려하여 하나의 새로운 포인트를 생성하는 것

Page 23: 컴퓨터 그래픽스

23

보간법보간법보간법보간법엘리어싱 (aliasing) 현상은 보간법 (interpolation) 을 통하여 다시 보정을 하여야만 보다 자연스러운 선으로 표현이 가능

레이 캐스팅 (ray casting) 은 볼륨 렌더링에서 최종 픽셀 값을 결정하기 위해서 사용

각각의 레이가 복셀 (voxel: volume element) 들 사이를 지나갈 때 샘플링과 합성 (compositing) 과정을 거치면서 최종 픽셀 값을 결정

레이는 각각의 슬라이스 이미지의 픽셀들 사이를 지날 때도 있는데 , 이럴 경우에는 샘플링을 통하여 레이와 교차하는 지점에 새로운 픽셀 값을 생성

Page 24: 컴퓨터 그래픽스

24

보간법보간법보간법보간법

이미지 평면에 투영되는 레이 캐스터에서의 복셀

Page 25: 컴퓨터 그래픽스

25

조명과 음영조명과 음영조명과 음영조명과 음영 사실감 있는 실제 장면을 생성하기 위해서는 광원 모델 (Li

ghting Model) 과 조명 모델 (Illumination Model) 효과를 적용

물체가 한가지 색으로 표현하는 것보다는 사실감과 입체감을 주기 위하여 조명과 음영처리를 하게 됨

더욱 외양을 색상 , 텍스처 , 광원에 따른 빛의 반사율 , 관찰자의 위치와 방향에 따라서 처리하게 된다면 물체의 성질이 확연하게 달라짐

iIlumination = 분위기빛 (ambient reflection) + 산란빛 (diffuse reflection) + 거울반사 (specular reflection)

Page 26: 컴퓨터 그래픽스

26

조명과 음영조명과 음영조명과 음영조명과 음영빛은 크게 분위기 빛 (ambient light), 방향성 빛 (directiona

l light), 스포트라이트 (spotlight), 점광 (point light) 등으로 나눔 분위기 빛이란 여러 종류의 광원에서 나오는 빛의 반사와

산란으로 생기며 방향성 빛은 불규칙하게 퍼지지 않으며 객체를 정확하게 조절될 수 있는 조명이 필요하면 방향성 빛을 사용하는 것이 편리

스포트라이트는 최대한 현실감과 조절감을 주도록 혹은 원추모양으로 빛을 보낼 때 사용하므로 무대조명 등으로 사용하며 , 점광은 백열전구와 같은 빛을 말함

이러한 것은 많은 계산량을 요구하기 때문에 컴퓨터 용량 및 속도에 크게 영향

Page 27: 컴퓨터 그래픽스

27

Ray Tracing 을 이용한 사실감과 입체감 표현

텍스처를 이용해서 실제 골프공과 비슷한 색상을 만들어 냈으며 , 분위기 빛 , 스포트라이트 광원을 이용해서 그림자와 입체감을 생성하여 실제로 잔디 위에 골프공이 있는 것처럼 사실성 있게 렌더링 된 것을 볼 수 있음

조명과 음영조명과 음영조명과 음영조명과 음영

Page 28: 컴퓨터 그래픽스

28

매핑매핑매핑매핑

6.4.1 투명매핑

(a) 이미지를 (b) 에 적용하여

표현한 투명 매핑기법

투명매핑 (transparency mapping) 이란 매핑된 이미지의 명도 단계에 따라 객체의 투명도를 조절하는 방식이다 . 옆 그림에서 보는 바와 같이 보통 흰색부분은 투명하게 검은색 부분은 불투명하게 처리

Page 29: 컴퓨터 그래픽스

29

범프 매핑범프 매핑범프 매핑범프 매핑

범프 매핑 (bump mapping) 이란 매핑 이미지의 명도 단계가 셰이딩 (shading) 할 때와 반영할 때에 표면 평균값에 영향을 미치도록 하여 마치 객체의 표면이 굴곡지거나 울룩불룩한 것처럼 보이도록 하는 방식

범프 매핑이 적용된 이미지

Page 30: 컴퓨터 그래픽스

30

디스플레이스먼트 매핑디스플레이스먼트 매핑디스플레이스먼트 매핑디스플레이스먼트 매핑

디스플레이스먼트 매핑 (displacement mapping) 은 범프 매핑과 거의 비슷한 효과를 생성하지만 셰이딩 할 때 실제로 오브젝트에 기하학적(geometrical) 영향을 주기 때문에 아래 그림에서 보는 바와 같이 물체의 외곽선까지 굴곡진 효과를 표현가능

(a) 의 이미지를 (b) 에 오브젝트에 디스플레이 매핑적용하여 (c) 와 같은 이미지를 생성

Page 31: 컴퓨터 그래픽스

31

반영 매핑반영 매핑반영 매핑반영 매핑

반영 매핑 (reflection mapping) 은 레이트레이싱 (ray tracing) 방식의 단점인 긴 렌더링 시간을 단축하면서도 그와 비슷한 표면의 반사 효과를 얻기 위해 쓰이는 매핑방식

반영맵핑을 사용한 오브젝트

Page 32: 컴퓨터 그래픽스

32

질감 매핑질감 매핑질감 매핑질감 매핑

질감 매핑 (texture mapping) 은 패턴 또는 무늬를 사용하여 단편 (fragment) 의 색을 결정한다 . 이렇게 결정된 패턴을 표면으로 사상 (매핑 : mapping) 시킴으로써 실제 모양과 비슷한 객체를 생성

와이어 프레임 모델에 질감매핑과 렌더링을 한 결과

Page 33: 컴퓨터 그래픽스

33

렌더링렌더링렌더링렌더링 렌더링이란 3 차원 그래픽에서 점 , 선 , 삼각형 등과 같은 기본 다면체들을 변환 , 광원 , Rasterization 과 같은 과정을 거쳐서 2 차원 평면에 사실감 있는 3 차원 장면을 생성해내는 과정

렌더링 과정은 다음과 같다 . 점 , 선 , 삼각형 등과 같은 기본 다면체들을 3 차원 공간에 투영시키기 위해서 변환과 광원과 같은 기하학적인 처리단계를 거친다 .

이미지를 생성하기 위해서 기하학적 처리단계에서 얻어진 정보를 rasterization 과정에서 픽셀정보로 변환한다 .

혼합 (blending) 과 깊이 (depth) 같은 정보를 픽셀 정보와 같이 계산해서 최종 픽셀 값으로 결정한다 . 이런 픽셀 값을 모니터에 투영하기 위해서 비디오 장치에 픽셀 값을 기록하면 3 차원 이미지가 화면에 투영되는 것이다 .

Page 34: 컴퓨터 그래픽스

34

레이 캐스팅레이 캐스팅레이 캐스팅레이 캐스팅 레이 캐스팅 (ray casting) 이란 관찰자의 시점에서 특정 레이를 통해 빛을 투시해서 그 빛이 물체에 닿거나 보이는 영역에서 벗어날 때까지 따라감으로서 그 해당 픽셀의 색을 결정하여 렌더링 이미지를 생성하는 방식

레이캐스팅의 기법을 사용한 한 장면

Page 35: 컴퓨터 그래픽스

35

레이 트레이싱레이 트레이싱레이 트레이싱레이 트레이싱 레이 트레이싱 (ray tracing) 방식의 알고리즘은 씬 (Scene) 을 구성하는 모든 객체들을 한꺼번에 다룬다 . 객체의 한 지점에서 색을 결정하기 위해서는 조명으로부터의 직접적인 빛 뿐만 아니라 다른 객체로부터의 반사나 굴절된 빛 혹은 그림자의 영향까지도 고려하여야 한다

조명으로부터 나온 빛이 투과되면서 생기는 caustics 를 레이트레이싱을 이용하여 표현

Page 36: 컴퓨터 그래픽스

36

라디오시티라디오시티라디오시티라디오시티 라디오시티 (radiosity) 는 빛을 받는 표면 (surface) 들이 사실상

현실 세계에서처럼 광원의 역할을 함으로서 실내 구석구석까지 자연스럽게 밝아지는 매우 효과적이면서도 사실적인 결과물을 얻을 수 있다 .

(a) 하나의 조명 (b) 방안의 오브젝트에 의해 빛이 반사

Page 37: 컴퓨터 그래픽스

37

볼륨 렌더링볼륨 렌더링볼륨 렌더링볼륨 렌더링

볼륨 렌더링은 연속적인 2 차원 슬라이스들을 기본으로 하기 때문에 슬라이스 이미지들을 조합하는 방식에 따라서 여러 가지 방법이 있음

대표적으로 이미지공간 (image space) 렌더링 방법과 물체공간 (object space) 렌더링 방법 이미지 공간 렌더링 방법은 뷰잉 (viewing) 시점을 결정하고

이미지 평면 (image plane) 의 각 픽셀에 레이를 통과시켜서 일정한 간격으로 픽셀 값과 위치를 샘플링 할 때 , 각각의 레이가 일직선상에 놓이는 복셀들의 명도와 불투명도를 합성해서 이미지를 생성해내는 알고리즘

대표적인 렌더링 방법에는 광선 추적법 (ray tracing) 이 있음 이미지공간 렌더링 방법에는 볼륨 데이터를 순차적으로 순회하면서 복셀을 이미지 평면으로 투영하여 이미지를 생성하는 알고리즘으로 splatting 이 이에 속함

Page 38: 컴퓨터 그래픽스

38

일반적으로 볼륨 렌더링은 음영 (shading) 단계에서는 복셀의 명도값을 결정

분류 (classification) 단계에서는 복셀의 불투명도를 결정하는 단계이며 , 객체 내부의 서로 다른 재질로 인해서 불투명도 값이 다양하게 변하는데 , 이런 정보들을 모아서 렌더링 할 때 내부 경계 영역을 구분할 수 있게 함으로써 객체의 내부 모습을 가시화 할 수 있음

합성은 음영과 분류단계에서 얻어진 값들을 최종적으로 누적해서 하나의 최종 픽셀치로 결정하는 단계

볼륨 렌더링볼륨 렌더링볼륨 렌더링볼륨 렌더링

Page 39: 컴퓨터 그래픽스

39

볼륨 렌더링볼륨 렌더링볼륨 렌더링볼륨 렌더링

볼륨 데이터의 구조

Page 40: 컴퓨터 그래픽스

40

볼륨 렌더링볼륨 렌더링볼륨 렌더링볼륨 렌더링

볼륨렌더링의 결과 이미지

Page 41: 컴퓨터 그래픽스

41

볼륨 그래픽스 시뮬레이션

볼륨 렌더링볼륨 렌더링볼륨 렌더링볼륨 렌더링

Page 42: 컴퓨터 그래픽스

42

유리와 같은 얇은 객체만 가능하고 반투명하고 일정한 형태가 없는 구름 , 연기 , 불 등과 같은 객체는 폴리곤으로 표현 할 수 없음

이러한 문제는 불투명 객체인 비행기와 반투명적인 구름 객체가 같이 섞어 있는 경우에는 더욱 명백해짐

그림에서 보듯이 비행기가 구름 속을 뚫고 지나가는 장면은 현재의 3D 그래픽 가속 카드로는 불가능한 부분

볼륨 렌더링볼륨 렌더링볼륨 렌더링볼륨 렌더링

Page 43: 컴퓨터 그래픽스

43

컬러모델컬러모델컬러모델컬러모델 1931 년에 조명을 위한 국제위원회 (CIE: Commission Inte

rnationale de ㅣ껬 clairage) 에서 인간의 컬러인지를 감안하여 3 차원 모델을 소개

가시광선은 파장이 380nm 에서 789nm까지를 말하며 적색은 r = 700nm, 녹색은 g = 546.1, 청색은 b = 435.8의 파장

하이컬러 (High color) 라고 알려진 16 비트의 컬러를 사용할 경우 적색 , 녹색 , 청색 중의 한 가지 원색에 대해 32 가지색의 처리를 따로 표현

8비트 컬러를 사용할 경우 , 최대한 사용할 수 있는 색상은 2^8 즉 , 256가지로 제한

Page 44: 컴퓨터 그래픽스

44

컬러 모델컬러 모델컬러 모델컬러 모델

이미지에서 비교적 자주 사용되는 색상 256개를 선정하여 선정된 색상만을 사용하도록 하며 이러한 색상 표시 방식을 팔레트 방식

컬러 스펙트륨 밴드

Page 45: 컴퓨터 그래픽스

45

HLS HLS 컬러 모델컬러 모델HLS HLS 컬러 모델컬러 모델 적색 , 녹색 , 청색을 색조 (hue), 명도 (lightness), 채도 (s

aturation) 로 변환이 가능

시각적인 표현상에서 각각의 장단점이 있으나 직관적인 표현에서는 RGB에서 분간하기 힘든 것이 HLS 로 표현하여 줌으로서 두드러지게 나타나는 부분이 있음

색조와 채도는 0에서 1 까지 표현하며 색조는 0도에서 359도까지의 각도로 표현

채도는 명도 축에서부터의 거리이므로 모니터상에 표현한다면 256 픽셀치로 비율 축적

Page 46: 컴퓨터 그래픽스

46

그래프상으로 표현한 RGB 와 HLS 컬러 모델

HLS HLS 컬러 모델컬러 모델HLS HLS 컬러 모델컬러 모델

Page 47: 컴퓨터 그래픽스

47

CMYK CMYK 컬러 모델컬러 모델CMYK CMYK 컬러 모델컬러 모델

그림 물감의 3 원색으로 청록색 (cyan), 심홍색 (magenta), 노란색 (yellow) 이 있으며 물감을 합치게 되면 검은색(K) 이 되며 , 프린트를 할 경우에 이러한 컬러 염료를 사용

RGB의 색으로부터 CMY로 변환이 가능하며 간단한 수식으로 표현이 가능

청록색은 1에서 빨강을 뺀 값이 되며 , 심홍색은 1에서 녹색을 뺀 값이 되며 , 순수 노랑은 1에서 청색을 뺀 값

Page 48: 컴퓨터 그래픽스

48

RGB 와 CMY의

상관관계

CMYK CMYK 컬러 모델컬러 모델CMYK CMYK 컬러 모델컬러 모델

Page 49: 컴퓨터 그래픽스

49

YIQ YIQ 컬러 모델컬러 모델YIQ YIQ 컬러 모델컬러 모델

YIQ 모델은 주로 TV 방송에 사용되며 조명 변화에 따른 인간의 시각 시스템을 색조나 채도보다도 잘 반영한 것

광휘를 나타내는 Y는 색상을 나타내는 I 나 Q보다도 넓은 대역폭을 갖는다는 것이 하나의 장점

행렬식 계수를 사용하며 역변환도 RGB의 표현도 가능

Page 50: 컴퓨터 그래픽스

50

팔레트팔레트팔레트팔레트

팔레트 (Palette) 란 이용자가 이미지를 표현하는데 필요한 색상만을 모아놓은 컬러 테이블

팔레트를 사용하지 않는 이미지를 팔레트 방식으로 바꾸기 위해서는 해당 픽셀과 가장 가까운 컬러를 팔레트에서 찾아 그 컬러 값을 표현

Page 51: 컴퓨터 그래픽스

51

( 좌 ) 포토샵에서의 팔레트 , ( 우 ) 파워포인트에서의 팔레트

팔레트팔레트팔레트팔레트

Page 52: 컴퓨터 그래픽스

52

시스템에서 임의로 정한 팔레트를 사용하면 컬러가 부족하여 원래의 픽셀에서 표현하고자 하는 컬러와 차이가 큰 컬러로 대체되는 경우가 자주 발생

이러한 문제를 일부나마 해결 커스텀팔레트 (Custom Palette) 를 사용 이미지를 가장 잘 표현할 수 있는 팔레트를 만들고 그 팔레트에 적합하게 컬러 수를 생성하는 방법

예를 들면 바다나 하늘을 표현할 적에는 푸른색 계통의 색을 많이 내포하고 있으므로 256가지의 색을 이곳을 집중적으로 분배하여 표현

컬러가 결정된 이후 이미지를 해당되는 팔레트에 적용하기 위해서 디더링 (dithering) 이 사용

원래의 값과 가깝고 팔레트에 포함된 두 개 이상의 컬러를 조합하여 특정 컬러를 표시하면 원래의 이미지와 좀더 가까운 이미지를 표현가능

팔레트팔레트팔레트팔레트

Page 53: 컴퓨터 그래픽스

53

픽셀은 화면에 표시될 경우 정사각형으로 표시 윤곽선이 대각선 형태인 경우 배경과 접촉면은 계단 형태로

표시 계단 형태의 경계선이 나타나는 것을 앨리어싱 (aliasing) 부자연스러움을 없애기 위해 앤티앨리어싱 (antialiasing)

이라는 기법이 사용 물체와 배경과의 경계면에 있는 픽셀을 경계선과 얼마나

많이 접촉하였느냐에 따라 물체의 색과 바탕면 색의 중간 값을 정하여 표시하는 방법

이미지에 텍스트로 된 설명을 추가할 때 텍스트의 대각선 경계면에 앤티앨리어싱을 사용하는 경우가 많음

팔레트팔레트팔레트팔레트

Page 54: 컴퓨터 그래픽스

54

해프톤닝해프톤닝해프톤닝해프톤닝 시스템에서 제공하는 팔레트를 사용하건 독자적으로 만든 커스텀 팔레트를 사용하건 , 팔레트에 포함될 컬러가 그림에서와 같이 잉크제트 프린터에서 겹친 부분에서의 화소의 컬러를 결정한다 . 이후 이미지를 해당되는 팔레트에 적용하기 위해서 디더링 (dithering) 이 사용된다 .

잉크제트 프린터에서 겹친 부분에서의 화소의 컬러결정

Page 55: 컴퓨터 그래픽스

55

해프톤닝해프톤닝해프톤닝해프톤닝 원래의 값과 가깝고 팔레트에 포함된 두 개 이상의 컬러를

조합하여 특정 컬러를 표시하면 원래의 이미지와 좀더 가까운 이미지를 표현할 수 있다 .

물론 프린트를 하기 위해선 위와 같은 방법으로 해프톤 (halftone)을 생성하게 되며 해상도를 DPI(Dots Per Inch) 로 나타낸다 .

그림에서와 같이 하나의 화소가 2x2 격자로 되어있다면 해프톤링 묘사로 5개의 밝기 (intensity) 단계로 표현할 수 있다 .

하나의 화소가 2x2 격자로 되어있다면 해프톤링 묘사로 5개의 밝기 단계로 표현

Page 56: 컴퓨터 그래픽스

56

그래픽 툴그래픽 툴그래픽 툴그래픽 툴코렐드로우

코렐드로우가 많은 사용자 층을 확보하고 있다는 사실은 코렐드로우가 그만큼 뛰어난 기능과 디자이너에게 특별한 매력을 준다는 사실을 입증

2000 년 11월 코렐드로우 10을 출시한 후에 드디어 새 버전 코렐드로우 11(Win/Mac) 이 1 년 8 개월 여 만에 영문버전으로 우선 그 모습을 들어냈으며 한글버전은 2003년 3월에 출시될 예정

새로 추가된 기능 중 Roughen/Smudge 에 두 가지 브러시로 자기 만에 독창적인 이미지를 만들 수 있으며 다선 (polyline) 툴을 가지고는 더욱 자연스런 곡선을 연출

Page 57: 컴퓨터 그래픽스

57

코렐드로우코렐드로우코렐드로우코렐드로우

코렐 드로우의 작업화면

Page 58: 컴퓨터 그래픽스

58

그누플롯그누플롯그누플롯그누플롯 그누플롯 (Gnuplot) 은 유닉스 , 도스 , VMS 등 여러

운영체제에서 사용이 가능한 명령 입력 형식의 대화형 그래픽 프로그램이다 . 이 프로그램은 저작권을 가지고 있지만 , 자유롭게 배포할 수 있다 .

이 프로그램은 최초에 과학자 및 학생들에게 함수와 데이터를 그래프로 보여줄 목적으로 개발되었다 .

그누플롯은 여러 타입의 터미널 , 플로터 , 칼라 프린터 및 LaTeX 에서 사용하는 가상 장치를 포함한 프린터 등을 지원하며 , 새로운 장치를 쉽게 추가할 수 있다 .

그누플롯으로는 곡선 (2 차원 ) 과 표면 (3 차원 ) 을 다룰 수 있다 . 표면은 특정 함수를 메쉬 (mesh) 포인트에 대응시키거나 , 3 차원 공간에 직접 그리거나 , X,Y 평면에 가장자리 플롯 (contour plot) 으로 나타낼 수 있다 . 2 차원의 경우 , 직선 , 점 , 직선 + 점 , error bar, impuls 등 많은 스타일로 그릴 수 있다 .

Page 59: 컴퓨터 그래픽스

59

그누플롯그누플롯그누플롯그누플롯

그누플롯을 사용하여 그린 수학적인 그래프

Page 60: 컴퓨터 그래픽스

60

일러스트레이터일러스트레이터일러스트레이터일러스트레이터

어도비 일러스트레이터 (Adobe Illustrator) 는 위의 포토샵과는 달리 벡터 방식을 사용하며 이는 확대와 축소시 이미지 손상이 적어 깔끔한 이미지를 만들어내며 , 3D 그래픽 모델링시 레이아웃 작업과 스케치 , 색상 유형은 CMYK(Cyan, Magenta, Yellow, Black) 모드로 이는 인쇄 컬러를 사용하여 인쇄 출력시 적합한 방식이다 .

필터링은 벡터용 필터와 비트맵 필터를 모두 지원하며 비트맵 필터의 경우 RGB모드로 전환 후 적용된다 . 캐릭터 , 글자 디자인 , 로고 디자인 , 제품 디자인 , 화상방송 ·회의 , 패키지 디자인 , 2D 애니메이션 , 웹 디자인 등 많은 분야에 사용할 수 있다 .

Page 61: 컴퓨터 그래픽스

61

일러스트레이터일러스트레이터일러스트레이터일러스트레이터

OpenGL 일러스트레이터의 작업화면

Page 62: 컴퓨터 그래픽스

62

OpenGLOpenGLOpenGLOpenGL

OpenGL 은 SGL 의 워크스테이션 IRIS 에서 구현된 그래픽 라이브러리로 시작하였으며 , Open Graphic Library 의 약자로 3 차원 그래픽을 이용하는 응용 프로그램을 만들기 위한 API 이다 .

따라서 그래픽 기초 이론만으로도 프로그램 작성이 가능하며 3 차원 그래픽 라이브러리를 제공하여준다 .

ANSI-C 로 구현되어 있으며 플랫폼이 독립적이다 .

Page 63: 컴퓨터 그래픽스

63

OpenGLOpenGLOpenGLOpenGL

OpenGL 을 사용한 심장 모델링