Computer Graphics Applications Graphics Systems and Models 정보의표시 (Information Visualization) 설계 (Design) 시뮬레이션 (Simulation), 애니메이션 (Animation) 사용자인터페이스 (User Interfaces) 321190 2014년봄학기 3/07/2014 박경신 2 Computer Graphics Main Theme 이미지 (Imaging) 2차원이미지를효과적으로표현 모델링 (Geometric Modeling) 가상 3차원물체를효과적으로표현 렌더링 (Rendering) 3 차원모델에서 2 차원이미지로사진과같이사실적으로표현 애니메이션 (Animation) 시간에따른움직임을자연스럽게표현 AGraphicsSystem PC CPU Memory Disk Graphics card Sound card Peripherals: keyboard, mouse, monitor Network Graphics card GPU Memory Video output 3 4
AGraphicsSystem Cathode-Ray Tube (CRT) Output device Input devices Image formed in FB Output devices 5 컴퓨터의출력은디지털아날로그변환기 (digital-to-analog converter) 에의해 x,y ( 수직, 수평 ) 편향판사이의전압으로변환. 충분한양의전자선이형광물질에도달하면 CRT 표면에서빛이방출. CRT는 a line-drawing device (calligraphic) 로사용되거나프레임버퍼 (raster mode) 출력에사용 6 Shadow Mask CRT Liquid Crystal Display (LCD) www.lgphilips-lcd.com Triad 방식 Strip 방식 7 최근널리쓰는 TFT LCD 는박막트랜지스터와화소전극이배열되어있는하판과색상을나타내기위한컬러필터및공통전극으로구성된상판, 그사이에채워져있는액정으로구성. 그리고두유리기판의양쪽면에는가시광선을선형편광하여주는편광판이각각부착되어있고, 8 상하판전극사이의액정으로축전기 (capacitor) 가형성되고이곳에영상정보가저장.
Vector Graphics System Raster-based Graphics System Vector display, Calligraphic Display Oscilloscope, Radar, Plotter, Evans/Sutherland PS Series 화소 (pixel) 개념이없음 무한해상도 ( 전자빔의폭이해상도 ) Aliasing 없음 프레임버퍼없음 디스플레이리스트명령어집합 9 10 Raster-based Graphics System 그래픽스시스템안의프레임버퍼 (frame buffer) 에서화소 (pixel) 의배열 (array) 인래스터 (raster) 로생성 Rasterization 래스터화 (Rasterization) = 주사변환 (Scan Conversion) 기하학적인도형을프레임버퍼안의픽셀의색과위치로변환시키는작업 물체좌표에서화면좌표로 부동소수좌표에서정수좌표로 Aliasing ( 계단모양의거친경계선 ) 발생 11 12
Interlacing 비월주사 (Interlacing, Interleaving) NTSC TV 표준 : 60 Half Frame/Sec, 525 Scan Line, 4:3 Aspect Ratio Interlacing Interlaced vs. Non-interlaced (Progressive) TV 에서화면을표시할때쓰는방식인인터레이싱 컴퓨터의모니터에서화면을표시할때쓰는방식인프로그래시브 래스터영상, 화소, 주사선사이의관계 13 14 Raster Image 래스터이미지 (Raster Image) 직사각형형태의이미지영역을화소 (pixel) 라부르는조그마한영역으로나누어각화소를해당영역을대표하는색깔로칠함 연속적인영상을유한개의화소를사용하는영역으로표현하므로오차가발생 - aliasing 화소 (Pixel = picture element) 프레임버퍼 (Frame buffer) 화면에출력되는래스터이미지에대한픽스맵데이터는프레임버퍼 (frame buffer) 라고불리는메모리한부분에저장되어야함 해상도 (resolution) 은프레임버퍼의픽셀수 640x480, 1024x768.. 프레임버퍼의깊이 (depth of frame buffer) 는시스템이얼마나많은색을한픽셀에서표현할수있는지를결정 Eg., 8 bits: 256 colors 15 Frame Buffer 넓은의미로프레임버퍼 (Frame Buffer) 는화면에도시할래스터이미지뿐만아니라그러한이미지를생성하는데필요한여러부류의정보를저장해주는포괄적의미의그래픽스전용메모리 (Video Memory) 를뜻함. 색깔버퍼 (Color buffer) 더블버퍼 (double buffer) 스테레오버퍼 (stereo buffer) 알파버퍼 (alpha buffer) 깊이버퍼 (Depth buffer) 스텐실버퍼 (Stencil buffer) 축적버퍼 (Accumulation buffer) 픽셀버퍼 (Pixel buffer) 등 16
Double Buffering 비디오제어기가항상완성된이미지를도시하도록함. 이를위하여프로세서는이미지의내용을계산하여후면버퍼에축적 그동안비디어제어기는전면버퍼의내용을읽어화면에이미지도시함 싱글버퍼링보다훨씬부드러운애니메이션생성 더블버퍼링을사용할경우버퍼가하나더필요함. 필요에따라주어진색깔버퍼를두개로나누어야함. 실제 frame rate 이낮아질수있음. Images 컴퓨터영상 (Computer-generated images) 는물체가실제존재하지않는다는점에서인공영상임. 컴퓨터가영상을생성하는방법은인간의시각시스템과같은전통적인영상생성방법과흡사함. Object ( 객체 ) 는영상생성과정이나관측자와관계없이공간에존재. Viewer ( 관측자 ) 는물체의영상을형성하는것. 인간시각시스템에서는망막, 카메라에서는필름에영상형성. Light ( 광원 ) 이없다면객체는어둡게되고영상에서는아무것도보이지않는다. 17 18 Human Visual System 19 Human Eye 빛은각막 (cornea) 을통해눈에들어옴. 홍채 (iris) 는동공을통해눈으로들어오는빛의양을조절. 동공 (pupil) 은눈의중앙에검게보이는부분으로열린틈. 동공을통과한빛은수정체 (lens) 를통과하여눈후면의감광표면인망막 (retina) 의중심부근, 황반 (fovea) 에초점을맞춤. 사람의수정체는관찰자와물체사이의거리에따라수정체에붙어있는모양근이수축하거나이완하여초점에맞도록함. 물체가가까우면이근육이수축하여수정체가불룩해짐. 물체가멀면이근육이이완하여수정체가평평해짐. 망막은카메라의필름같은역할. 망막은두가지광수용기 (Photoreceptor), 즉간상체 (Rods) 와원추체 (Cones) 로되어있음. 20 망막은빛을신경신호로바꿔서뇌로보내줌.
Photoreceptors (Rods & Cones) 간상체 (rods) 주로어두울때활동 흑백의음영 (Luminance) 망을구분함 밝은곳에있다가어두운곳에갑자기들어가면처음에는아무것도보이지않다가차차주위가보이기시작. 처음 7~8분동안은원추체가작용하여어두운곳의대상들을보게되며, 그다음약 40분정도까지간상체가작용하여대상들을분명히식별하게됨. 간상체는파란색스펙트럼에민감함 원추체 (Cones) 밝은환경에서작용 원추체의밀집이바로시력 (i (visual acuity) 을결정 원추체에는세가지가있는데, 각각삼원색 (red, green, blue) 에대응하는빛의파장범위에대하여민감함. [Young-Helmholtz 설 ] 색깔을보려면원추체가활성화되어야하므로, 어두운 21 상태에서는색각 (color vision) 이존재하지않게됨. Rods/Cones Distribution 간상체와원추체의분포 망막표면에서원추체와간상체의분포는균일하지않음. 600만 ~700만개의원추체가황반 (fovea) 에집중. 간상체는황반으로부터약이십도떨어진곳에서부터말초에이르기까지밀집해있음 황반 (Fovea) 원추체만다량존재 간상체는없음 S-cones (blue 원추체 ) 는없음 시력이가장예민함 맹점 (Blind Spot) 간상체와원추체없음 신경절세포 (ganglion cells) 만구성되어뇌로전달 22 Visual Acuity 최소분간시력 가장통용되는시력척도는최소분간시력 (minimum separable acuity), 눈이검출할수있는과녁의최소특징또는과녁의부분사이의최소공간을말함. Vernier 시력 Vernier 시력은한선과다른선의측방향변위 (lateral displacement), 즉미소한치우침을분간하는능력임. 최소지각시력, 입체시력 최소지각시력 (minimum perceptible acuity) 은배경으로부터한점 ( 가령둥근점 ) 을분간하는능력. 또깊이가있는단일물체의차이를분간하는능력을입체시력 (stereoscopic acuity) 이라함. 2 feet 떨어진곳에서 1280x1024, 17 모니터를보면 1 pixel 당 1.4 arc-minutes을시력을제공해준다. 23 Color Perception 사람이인식할수있는가시분광 (Visible spectrum) 은 400 nm( 보라색 )~700 nm ( 빨강색 ) 사이에펼쳐져있다. 세상의물체들은극단적인경우를제외하고여러파장들을반사하므로망막의동일지점이이들에의해자극을받는다. S, M, L 세가지원추체가있는데각각파랑색, 초록색, 빨강색에대응하는빛의파장범위에대하여민감한데색깔의지각은이세가지원추체의동시작용의결과이다. 색맹 (Color blindness) 는이세가지원추체가부족할때나타나는현상이다. 컬러텔레비전은빨강, 초록, 파랑점들의가산적혼합으로대부분의색깔을나타낸다. 24
Chromatic Color 색상 (Hue) 우리가색깔이라고부르는시각경험 채도 (Saturation) 색깔의채도란그색이흰색 / 회색때문에그순수성이떨어지는정도 진한색 ( 빨강색, 파랑색 ) 은채도가높은것. 회색으로부터멀리있음. 파스텔톤 ( 분홍색, 하늘색 ) 은채도가낮은것. 회색에가까워짐. 명도 (Brightness) 빛자극의물리적강도가감각되는명도를결정. 명도의차원은흑색에서부터색상이없고명도가최대인백색까지변함. 25 Color Model 색깔을어떤모델을사용하여수치적으로표현할것인가? RGB CMY HSV/HSB YUV/YIQ PAL/NTSC Television 26 RGB 빛의삼원색으로컬러디스플레이시스템에적합 RGB 컬러모델은각화소값이그화소에칠할 (RED, GREEN, BLUE) 값을더해표현하는방식 n R : # of bits for R channel n G : # of bits for G channel n B : # of bits for B channel n = n R + n G + n B 2 n = 2 (nr + ng + nb) 개의색깔표현가능 Examples Black (0, 0, 0), White (1, 1, 1) Red (1, 0, 0), Green (0, 1, 0), Blue (0, 0, 1) Cyan(0, 1, 1), Magenta (1, 0, 1), Yellow (1, 1, 0) 27 CMY 색의삼원색으로프린팅에적합. CMY 컬러모델은 RGB의보색인 Cyan, Magenta, Yellow을사용. 흰색에서 RGB를빼서표현하는방식. Cyan = 1 red d( (green&blue 만남음 ) Magenta = 1 green (red & blue 만남음 ) Yellow eo = 1 blue bue(ed (red & green gee 만남음 ) Examples Black (1, 1, 1), White (0, 0, 0) Red (0, 1, 1), Green (1, 0, 1), Blue (1, 1, 0) Cyan (1, 0, 0), Magenta (0, 1, 0), Yellow (0, 0, 1) RGB/CMY 변환 CMY = (1, 1, 1) RGB RGB = (1, 1, 1) CMY CMYK는검정색 (Black, K) 를추가, 인쇄에서주로28 사용.
HSV/HSB HSV 컬러모델은색상 (Hue), 채도 (Saturation), 명도 Value/Brightness) 색상은 0 ~ 360 도의범위각도 0 - 빨간색, 120 - 녹색, 240 - 파란색 채도는 0 ~ 1 범위의반지름 0 - 명도의명암도 ( 무채색 ) 1 - 컬러는원뿔모형기반의꼭대기가장자리 100% 채도 명도는 z 축에서의위치 0 - 검정 1 - 흰색 29 YUV/YIQ YUV 컬러모델은 TV에서 RGB 신호를영상의명암을나타내는명도 (Luminance) (Y) 와두개의색차 (Chrominance) (U, V) 로변환하여표시하는방법. Y: 밝기를 0 ~ 1 의수로표현 U: 푸른정도를 -0.5 ~ 0.5의수로표현 V: 붉은정도를 -0.5 ~ 0.5 의수로표현 RGB->YUV Y = 0.299 R + 0.587 G + 0.114 B U = -0.147 R 0.289 G + 0.436 B V = 0.615 R 0.515 G 0.100 B YUV->RGB R = Y + 1.140 V G = Y (0.396 U + 0.581 V) 30 B = Y + 2.029 U U-V Color Plane Luminance 색의밝기 (brightness) RGB 컬러에서명암도로변환 NTSC 표준명암도 = 0.299 * R + 0.587 * G + 0.114 * B 명도에대한 NTSC 표준에따름 평균명암도 = 0.33 * R + 0.33 * G + 0.33 * B RGB 영상으로부터 HSV 영상으로변환 31 직접입력 Synthetic Imaging Process 점광원 (point light source) 은한지점에서모든방향으로무한진행빛을방출 관측자 (Viewer) 는카메라반사투영 광선 (ray) 은한점에서시작하여임의방향으로무한히진행하는반직선. 광선추적 (Ray tracing) 또는광자매핑 (photo mapping) 은이런영상모델을기반으로하여제작한기법 라디오시티 (radiosity) 는면에입력된광선이모든방향으로똑같이반사되는물체에가장적합. 에너지바탕 32 기법. 빛을모든방향으로반사
Pinhole Camera Pinhole camera 는상자의한쪽면에작은구멍이나있고필름이안쪽의반대쪽면에놓인상자 (x p, y p, -d) 는 (x, y, z) 가투영된점 카메라의시야는필름면에맺힐수있는가장큰크기의객체에의해만들어지는각도 Synthetic-Camera Model Pinhole camera model에서 image plane을앞으로움직인것 클리핑윈도우 (Clipping window) 합성카메라에서는시야에따른영상크기의제한을고려해야함 COP (Center of Projection) 영상면을카메라앞으로이동 카메라후면에생성된영상 33 34 Synthetic-Camera Model Clipping 클리핑윈도우의초기위치 클리핑윈도우의이동 35 36
3D Graphics API Low-level graphics libraries OpenGL, Direct3D Scene graph libraries SGI Performer, Open Inventor, Open Scene Graph, Java3D Scientific visualization & advanced graphics toolkits OpenDX, AVS Low-level 3D Graphics API 기본적으로제공하는명령어 : 점, 선, 폴리곤, 곡선과곡면 (points, lines, polygons, curves and surface) 기하학적모델링 위치, 회전, 크기지정 컬러지정 조명 (light (g sources) 지정 재질 (material properties) 지정 관측 (view) 카메라위치 (camera position: center of projection), 방향 (camera coordinate system), 초점거리 (i (size of the image), 필름면 (height and width of the back of the camera) 텍스쳐로딩 (texture loading) 37 38 Scene Graph API 장면그래프 (scene graph) 는그래픽을표현하는데쓰이는트리 (tree) 임 노드 (node) 는그룹, 변환, 조명, 기하 (group, transformation, light, geometry) 등을표현하는데쓰임 주요요소 : Standard data structures for geometry & graphics state Automatic, optimized rendering View culling Level of detail Model loaders Math: vectors, matrices, quaternions Intersection testing Multiprocessing Graphics Pipeline 그래픽스파이프라인은 PC 메모리에있는프로그램과데이터 CPU가프로그램을실행하여그래픽스명령어를처리함 명령어와데이터가그래픽스카드로보내짐 영상 (Images) 는그래픽스카드메모리에서렌더링됨 CPU 와그래픽스카드를연결해주는인터페이스 PCI AGP PCI Express 그래픽스카드와디스플레이를연결해주는인터페이스 VGA DVI Composite, S-Video 39 40
Graphics Architecture 초기그래픽스시스템 Pipeline Architecture 그래픽파이프라인 (Graphics pipeline) 구조 정점처리 (vertex processing) 클리핑과기본요소로조립 (clipping and primitive assembly) 래스터화 (rasterization) ti 단편처리 (fragment processing) 디스플레이프로세서구조 디스플레이프로세서에서리스트안에있는프로그램을실행하여 scan conversion 하여디스플레이로보내줌 응용프로그램 정점처리 클리핑과기본요소로조립 래스터화 디스플레이 41 42 Vertex Processing 각정점의좌표변환을수행하고색을계산처리 행렬변환 (matrix transformation) 을통하여좌표계변환을계산 Model transformation Viewing transformation 광원의특성과객체표면의물리적인특성을고려한물리적인음영모델을이용하여색을계산 Clipping and Projection 투영 (projection) 은관측자가구도를잡았을때물체를구성하는 3차원공간의점이 2차원평면인화면의어느지점으로투영되는지결정 원근투영 (Perspective projection) 평행투영 (Parallel projection) 카메라앞에피라미드같은클리핑볼륨 (clipping volume) 을두어윈도우밖에투영되는객체는영상으로나타나지않고클리핑됨. 43 44
Primitive Assembly 클리핑은정점단위로이루어지기보다는기본요소단위로이루어짐 파이프라인의클리핑단계에서는클리핑이이루어지기전에정점의집합을아래와같은기본요소단위로조립함 선분 (Line segments) 다각형 (Polygons) 곡선과곡면 (Curves and surfaces) Rasterization 클리핑기로부터나온기본요소는아직정점으로표현되어있는데프레임버퍼의픽셀로변환되어야함. 래스터기의출력은각기본요소단편 (fragments) 의집합 단편은색과위치정보를전달하는잠정적인픽셀 단편은주어진픽셀에대해서현재의단편이이미래스터화된단편의뒤에놓여있는지를결정하기위한깊이 (depth) 정보 45 46 Fragment Processing 래스터기에서생성한단편 (fragments) 을받아들여프레임버퍼안에있는픽셀을갱신 단편에대응하는픽셀의색은프레임버퍼로부터읽혀지거나또는반투명의효과를주기위하여단편의색과혼합 단편의색은택스쳐매핑혹은범프매핑으로바꾸거나, 또는정점의색으로보간. 카메라에서가까운단편은다른단편을보이지않게할수있음. 은면제거 (Hidden-surface removal) Programmable Pipeline 최근 NVIDIA와 ATI 등그래픽스카드제조회사에서발표하고있는 GPU (Graphics Processing Unit) 에서사용하고있는구조 렌더링파이프라인의일부분을프로그래머가 vertex shader와 pixel/fragment shader를통하여원하는방식으로프로그래밍을할수있음. 과거에는불가능하였던다양한실시간렌더링효과를유연하게생성할수있음. 47 48
Computer Graphics: 1980-19901990 Realism comes to computer graphics Computer Graphics: 1980-19901990 Special purpose hardware Silicon Graphics geometry engine VLSI implementation of graphics pipeline Industry-based d standards d PHIGS RenderMan Networked graphics: X Window System Human-Computer Interface (HCI) Smooth shading Environment mapping Bump mapping 49 50 Computer Graphics: 1990-2000 OpenGL API Completely computer-generated feature-length movies (Toy Story) are successful New hardware capabilities Texture mapping Blending Accumulation, stencil buffers Computer Graphics: 2000- Photorealism & Non-Photorealism Graphics cards for PCs dominate market Nvidia, ATI Game boxes and game players determine direction of market Computer graphics routine in movie industry Maya, Lightwave Programmable pipelines Cg, GLSL, HLSL 51 52