1 / 63

컴퓨터 그래픽스

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

Download Presentation

컴퓨터 그래픽스

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 기본 개념 • 디지털 정보의 표현은 점(point), 선(line), 다각형(polygon)을 만들 수 있으며, 다각형은 하나의 평면(plane)을 구성하며 이로부터 2차원 이미지로 표현이 가능 • 2차원 이미지가 Z축상으로 연속된 이미지로 이어진다면 이는 입체적으로 표현이 가능한 하나의 3차원 이미지를 생성 • 이러한 과정에서 이미지를 생성시키는 학문분야를 컴퓨터 그래픽스라고 정의 • 컴퓨터 그래픽스는 이미지를 생성시키는 기법과 표현(Visualization) 으로 시작 • 프로그램 라이브러리로는 OpenGL(Open Graphical Library)을 주로 사용하며, 복잡하고 많은 계산을 요하기 때문에 그래픽 가속기에 영향을 받음 • 산업디자인, 웹디자인을 비롯하여 영화에 응용

  3. 그래픽스(Graphics) • 2D 그래픽 : 모델로부터 필요한 기하학적 변환 등을 거쳐 디스플레이 장치의 뷰포트(viewport)에 출력 • 3D 그래픽 : 모델로부터 사실감 있는 그림을 만드는 과정을 흔히 렌더링(rendering)이라 하는 데, 물체의 원근, 음영, 질감 등의 표현을 위해 렌더링 과정을 수행함 • 그래픽스 소프트웨어 • 하드웨어 종속적인 패키지로부터, 응용 프로그램의 호환성을 위하여, 장치 독립적인 고급 패키지로 발전해 옴 • 법적 표준 (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을 제공함

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

  5. 대화형 그래픽스 시스템 프레임워크 • 컴퓨터 그래픽스 : 컴퓨터를 이용하여 실제 그림이나 수학적인 모델과 같은 고차원의 추상적인 그래픽들을 생성, 저장, 처리 • 대화형 그래픽스 시스템 : 사용자가 컴퓨터와의 상호작용을 할 수 있는 키보드, 마우스, 스캐너 등과 같은 장치를 이용하여 디스플레이 상에서 그래픽스의 내용, 포맷, 크기, 컬러 등을 제어할 수 있는 시스템 • 응용모델(application model) : 스크린 상에 그려질 데이터나 객체를 나타냄 • 응용 프로그램(application program) • 화면에 그려질 데이터와 객체를 나타내는 응용모델 제작: 정보 저장 및 정보 획득, 사용자의 입력처리 • 그래픽스 시스템(graphics system) • 상세 그래픽 기술(description)에 따라 그림 생성 • 사용자 입력을 응용 프로그램에게 전달함 • 입력 및 출력에 대한 변환기능 수행

  6. 윈도우(window)과 뷰포트(viewport) 개념 • 윈도우(window) : 세계 좌표계에서 지정된 사각 부분 • 뷰포트(viewport) : 윈도우가 옮겨지는 출력 장치(화면)의 사각영역 • 세그먼트, 구조 : 하나의 그룹으로 분류되어 레이블이 붙은 일단의 출력 요소

  7. 3차원 그래픽스의 개념 • 2D + 원근, 음영, 질감(texture) 처리 등 복잡한 고속 연산 • 면 단위로 처리되어 최종적으로 다면체 데이터 생성 • 처리 픽셀의 수: 프레임 당 면의 수 * 면 당 픽셀 수 * 프레임 수 • 3D 그래픽스 처리 • 모델링: 스크린 상에 그려질 객체와 데이터 생성 (CPU) • 기하처리: 시점, 광원, 스크린 정의 , 투영 (CPU) • 랜더링: 은면 제거,음영 및 색상 처리, 질감 처리 (3D 엑셀레이터)

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

  9. 3D 그래픽 개념 • 1) 3D에서 뷰잉(Viewing in 3D) : 기하 처리 • ① 투영양식 설정(specification of projection) : 3D를 2D로 • 원근 투영(perspective projection) • 평행 투영(parallel projection) • ② 뷰잉 매개변수 결정 : 뷰포트 위치 결정 • ③ 3D 에서의 절단(clipping) • ④ 투영과 디스플레이 : 투영된 것을 뷰포트로 변환 (cf.) 2D 뷰잉 세계 좌표계에 존재하는 물체들이 세계 좌표계의 윈도우로 절단되고 디스플레이를 위해 뷰포드로 매핑됨

  10. 3D 그래픽 개념 • 2) 은면(Hidden surface) 및 은선(Hidden edge) 제거 • 연산시간은 물체 수의 2배에 비례 • Z 버퍼 방법 : 실제 픽셀의 값 (R, G, B) 외에 각 픽셀의 깊이 Z 값을 보존함 • 3) 음영(Shading) 및 색상 • 현실감 있는 물체의 그래픽을 위해 음영과 색상 패턴을 적용시킴 • 음영 모형 : 물체의 표면을 바라볼 때의 빛의 광도 계산 (면의 광학적 성질, 면의 상대적인 위치 및 광원에 대한 방향이 고려됨) • 4) 텍스처링(Texturing) : 면에 재질감을 내는 것 • 텍셀(Texel; 텍스쳐 맵 데이터의 픽셀) 정보 + 음영처리된 픽셀정보  프레임 버퍼  디스플레이 • point sample texturing, bilinear texturing 등

  11. 곡선 및 곡면의 표현(모델링) • 수학식 이용 : 정현파 곡선(y = sin x) 이용 • 사용자가 지정한 점들을 이어 만듦 • 베지어 곡선(Bezier curve) • 스플라인 곡선(spline curve) 방식 • 곡면 표현방법 • 다각형 메쉬 곡면(polygon mesh surface) • 매개변수 곡면(parametric surfaces) : 3차원 곡면 • x(s,t) = r sin (s) cos(2t) • y(s,t) = r sin (s) sin(2t) • z(s,t) = r cos (s) cos(2t) • 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

  12. 3차원 입체 표현(3D Modeling ) • 캡쳐에 의한 3D 모델링(Solid modeling) • 다각형면 또는 곡면들을 모아서 근사법으로 그리는 방식(surface modeling) • 3D 입체를 2D 곡면의 회전으로 형성 • 선화(線畵) 모델링(wire frame modeling)

  13. 프랙탈 • 프랑스의 수학자인 만델브로트(Mandelbrot)는 1967년 영국에서 발행되는 과학 잡지인 '사이언스'에 「영국을 둘러싸고 있는 해안선의 총 길이는 얼마인가」라는 제목의 글을 발표했다. • 이 글에서 만델브로트는 영국의 해안선의 길이는 어떤 자로 재느냐에 따라 얼마든지 달라질 수 있다고 주장했다. 1m 단위의 자로 재었을 때와 1cm 단위의 자로 재었을 때는 둘레의 길이가 엄청난 차이를 낳을 것이라는 것이다. • 프랙탈(fractal)이라는 용어는 만델브로트가 IBM에서 연구원으로 근무하던 중 자신이 연구하던 것들을 책으로 출간하기 위해 책의 제목을 생각하다가 라틴어의 fractus라는 낱말을 발견하여 fractal이라는 용어를 만들었다는 설도 있고, 프랙탈 기하학이 정수가 아닌 분수(fractional)차원을 가진다는 의미에서 fractal이라는 용어를 만들었다는 설도 있다.

  14. 프랙탈 • 프랙탈(fractal)이 무엇인지를 알기 위해서 먼저 차원의 개념을 보게되면, 점은 0 차원, 선은 1 차원, 면은 2 차원, 공간은 3 차원이 되겠다. 이를 다시 정의해보면, 각 차원을 대표하는 도형을 각각 1 차원은 선분, 2 차원은 정사각형, 3 차원은 정육면체로 하면 자기 닮은 도형을 확대하는데서 공통성을 찾을 수 있을 것이다. • 프랙탈의 속성은 자기 유사성(self-similarity)과 순환성(recursiveness)이라는 특징을 가지고 있으며, 프랙탈은 컴퓨터의 발전과 더불어 더욱 알려지게 되었으며, 비록 몇 줄 되지 않는 프로그램이지만 그 속에 숨어 있는 물리적, 기하학적, 철학적 내용은 앞으로 우리가 연구해야 할 과제이다

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

  16. 프렉탈: Deterministic IFS(Iterated Function System)예1

  17. 프랙탈: Deterministic IFS(Iterated Function System)예2

  18. 프랙탈: Random IFS(Iterated Function System) 예3 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 = newx y = newy if n > 10 then pset (x,y) iterations next end

  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')로 바꾸어 줌

  20. 기하 변환의 이해 x’ a11 a12 v1 x’ y’ = a21 a22 v2 *y’ 1 0 0 1 1

  21. 기하 변환의 이해

  22. 보간법 • 보간법(Interpolation)에는 크게 선형보간법(Linear Interpolation)과 큐빅보간법(Cubic Interpolation)으로 나눔 • 선형보간법은 선상에서 두 점 사이에 새로운 포인트를 생성하는 것이며 큐빅보간법은 3차원 공간상에서 8개의 포인트를 고려하여 하나의 새로운 포인트를 생성하는 것

  23. 보간법 • 엘리어싱(aliasing)현상은 보간법(interpolation)을 통하여 다시 보정을 하여야만 보다 자연스러운 선으로 표현이 가능 • 레이 캐스팅(ray casting)은 볼륨 렌더링에서 최종 픽셀 값을 결정하기 위해서 사용 • 각각의 레이가 복셀(voxel: volume element)들 사이를 지나갈 때 샘플링과 합성(compositing)과정을 거치면서 최종 픽셀 값을 결정 • 레이는 각각의 슬라이스 이미지의 픽셀들 사이를 지날 때도 있는데, 이럴 경우에는 샘플링을 통하여 레이와 교차하는 지점에 새로운 픽셀 값을 생성

  24. 이미지 평면에 투영되는 레이 캐스터에서의 복셀 보간법

  25. 조명과 음영 • 사실감 있는 실제 장면을 생성하기 위해서는 광원 모델(Lighting Model)과 조명 모델(Illumination Model) 효과를 적용 • 물체가 한가지 색으로 표현하는 것보다는 사실감과 입체감을 주기 위하여 조명과 음영처리를 하게 됨 • 더욱 외양을 색상, 텍스처, 광원에 따른 빛의 반사율, 관찰자의 위치와 방향에 따라서 처리하게 된다면 물체의 성질이 확연하게 달라짐 • iIlumination = 분위기빛(ambient reflection) + 산란빛(diffuse reflection) + 거울반사(specular reflection)

  26. 조명과 음영 • 빛은 크게 분위기 빛(ambient light), 방향성 빛(directional light), 스포트라이트(spotlight), 점광(point light)등으로 나눔 • 분위기 빛이란 여러 종류의 광원에서 나오는 빛의 반사와 산란으로 생기며 방향성 빛은 불규칙하게 퍼지지 않으며 객체를 정확하게 조절될 수 있는 조명이 필요하면 방향성 빛을 사용하는 것이 편리 • 스포트라이트는 최대한 현실감과 조절감을 주도록 혹은 원추모양으로 빛을 보낼 때 사용하므로 무대조명 등으로 사용하며, 점광은 백열전구와 같은 빛을 말함 • 이러한 것은 많은 계산량을 요구하기 때문에 컴퓨터 용량 및 속도에 크게 영향

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

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

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

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

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

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

  33. 렌더링 • 렌더링이란 3차원 그래픽에서 점, 선, 삼각형 등과 같은 기본 다면체들을 변환, 광원, Rasterization과 같은 과정을 거쳐서 2차원 평면에 사실감 있는 3차원 장면을 생성해내는 과정 • 렌더링 과정은 다음과 같다. • 점, 선, 삼각형 등과 같은 기본 다면체들을 3차원 공간에 투영시키기 위해서 변환과 광원과 같은 기하학적인 처리단계를 거친다. • 이미지를 생성하기 위해서 기하학적 처리단계에서 얻어진 정보를 rasterization과정에서 픽셀정보로 변환한다. • 혼합(blending)과 깊이(depth) 같은 정보를 픽셀 정보와 같이 계산해서 최종 픽셀 값으로 결정한다. 이런 픽셀 값을 모니터에 투영하기 위해서 비디오 장치에 픽셀 값을 기록하면 3차원 이미지가 화면에 투영되는 것이다.

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

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

  36. 라디오시티 • 라디오시티(radiosity)는 빛을 받는 표면(surface)들이 사실상 현실 세계에서처럼 광원의 역할을 함으로서 실내 구석구석까지 자연스럽게 밝아지는 매우 효과적이면서도 사실적인 결과물을 얻을 수 있다. (a) 하나의 조명 (b) 방안의 오브젝트에 의해 빛이 반사

  37. 볼륨 렌더링 • 볼륨 렌더링은 연속적인 2차원 슬라이스들을 기본으로 하기 때문에 슬라이스 이미지들을 조합하는 방식에 따라서 여러 가지 방법이 있음 • 대표적으로 이미지공간(image space) 렌더링 방법과 물체공간(object space) 렌더링 방법 • 이미지 공간 렌더링 방법은 뷰잉(viewing) 시점을 결정하고 이미지 평면(image plane)의 각 픽셀에 레이를 통과시켜서 일정한 간격으로 픽셀 값과 위치를 샘플링 할 때, 각각의 레이가 일직선상에 놓이는 복셀들의 명도와 불투명도를 합성해서 이미지를 생성해내는 알고리즘 • 대표적인 렌더링 방법에는 광선 추적법(ray tracing)이 있음 • 이미지공간 렌더링 방법에는 볼륨 데이터를 순차적으로 순회하면서 복셀을 이미지 평면으로 투영하여 이미지를 생성하는 알고리즘으로 splatting이 이에 속함

  38. 볼륨 렌더링 • 일반적으로 볼륨 렌더링은 음영(shading)단계에서는 복셀의 명도값을 결정 • 분류(classification)단계에서는 복셀의 불투명도를 결정하는 단계이며, 객체 내부의 서로 다른 재질로 인해서 불투명도 값이 다양하게 변하는데, 이런 정보들을 모아서 렌더링 할 때 내부 경계 영역을 구분할 수 있게 함으로써 객체의 내부 모습을 가시화 할 수 있음 • 합성은 음영과 분류단계에서 얻어진 값들을 최종적으로 누적해서 하나의 최종 픽셀치로 결정하는 단계

  39. 볼륨 렌더링 볼륨 데이터의 구조

  40. 볼륨 렌더링 볼륨렌더링의 결과 이미지

  41. 볼륨 렌더링 볼륨 그래픽스 시뮬레이션

  42. 볼륨 렌더링 • 유리와 같은 얇은 객체만 가능하고 반투명하고 일정한 형태가 없는 구름, 연기, 불 등과 같은 객체는 폴리곤으로 표현 할 수 없음 • 이러한 문제는 불투명 객체인 비행기와 반투명적인 구름 객체가 같이 섞어 있는 경우에는 더욱 명백해짐 • 그림에서 보듯이 비행기가 구름 속을 뚫고 지나가는 장면은 현재의 3D 그래픽 가속 카드로는 불가능한 부분

  43. 컬러모델 • 1931년에 조명을 위한 국제위원회(CIE: Commission Internationale de ㅣ껬clairage)에서 인간의 컬러인지를 감안하여 3차원 모델을 소개 • 가시광선은 파장이 380nm에서 789nm까지를 말하며 적색은 r = 700nm, 녹색은 g = 546.1, 청색은 b = 435.8의 파장 • 하이컬러(High color)라고 알려진 16 비트의 컬러를 사용할 경우 적색, 녹색, 청색 중의 한 가지 원색에 대해 32 가지색의 처리를 따로 표현 • 8비트 컬러를 사용할 경우, 최대한 사용할 수 있는 색상은 2^8 즉, 256가지로 제한

  44. 컬러 모델 • 이미지에서 비교적 자주 사용되는 색상 256개를 선정하여 선정된 색상만을 사용하도록 하며 이러한 색상 표시 방식을 팔레트 방식 컬러 스펙트륨 밴드

  45. HLS 컬러 모델 • 적색, 녹색, 청색을 색조(hue), 명도(lightness), 채도(saturation)로 변환이 가능 • 시각적인 표현상에서 각각의 장단점이 있으나 직관적인 표현에서는 RGB에서 분간하기 힘든 것이 HLS로 표현하여 줌으로서 두드러지게 나타나는 부분이 있음 • 색조와 채도는 0에서 1까지 표현하며 색조는 0도에서 359도까지의 각도로 표현 • 채도는 명도 축에서부터의 거리이므로 모니터상에 표현한다면 256 픽셀치로 비율 축적

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

  47. CMYK 컬러 모델 • 그림 물감의 3원색으로 청록색(cyan), 심홍색(magenta), 노란색(yellow)이 있으며 물감을 합치게 되면 검은색(K)이 되며, 프린트를 할 경우에 이러한 컬러 염료를 사용 • RGB의 색으로부터 CMY로 변환이 가능하며 간단한 수식으로 표현이 가능 • 청록색은 1에서 빨강을 뺀 값이 되며, 심홍색은 1에서 녹색을 뺀 값이 되며, 순수 노랑은 1에서 청색을 뺀 값

  48. CMYK 컬러 모델 RGB와 CMY의 상관관계

  49. YIQ 컬러 모델 • YIQ 모델은 주로 TV 방송에 사용되며 조명 변화에 따른 인간의 시각 시스템을 색조나 채도보다도 잘 반영한 것 • 광휘를 나타내는 Y는 색상을 나타내는 I나 Q보다도 넓은 대역폭을 갖는다는 것이 하나의 장점 • 행렬식 계수를 사용하며 역변환도 RGB의 표현도 가능

  50. 팔레트 • 팔레트(Palette)란 이용자가 이미지를 표현하는데 필요한 색상만을 모아놓은 컬러 테이블 • 팔레트를 사용하지 않는 이미지를 팔레트 방식으로 바꾸기 위해서는 해당 픽셀과 가장 가까운 컬러를 팔레트에서 찾아 그 컬러 값을 표현

More Related