전자통신동향분석제 22 권제 4 호 2007 년 8 월 렌더링가속화기술동향 The Recent Trends of Rendering Acceleration Technologies 융합시대를주도할디지털콘텐츠기술특집 남승우 (S.W. Nam) 김해동 (H.D. Kim) 김성수 (S.S. Kim) 최진성 (J.S. Choi) 렌더링기술연구팀선임연구원렌더링기술연구팀선임연구원렌더링기술연구팀연구원렌더링기술연구팀선임연구원 목차 Ⅰ. 서론 Ⅱ. CPU 를이용한가속 Ⅲ. GPU 를이용한가속 Ⅳ. 전용하드웨어가속기술 Ⅴ. 결론 * 본연구는정보통신부및정보통신연구진흥원의 IT 신성장동력핵심기술개발사업의일환으로수행하였음. [2006-S-045-01, 기능확장형초고속렌더러개발 ] 컴퓨터그래픽스를이용한디지털콘텐츠를제작및생산함에있어서마지막단계에서렌더링과정을꼭거쳐야하기때문에렌더링부분은아주중요하다. 렌더링해야할디지털콘텐츠에는게임과같이실시간성이아주중요한콘텐츠가있으며, 영화와같이영상의높은품질을요구하는콘텐츠가있다. 본고에서는영화와같이고품질을요구하는콘텐츠에대한렌더링기술에대하여다루고자한다. 영화의한장면과같이복잡하며높은해상도를갖는영상을기존단일 CPU 및소프트웨어렌더러를이용하여렌더링하는데아주많은시간이걸린다. 본고에서는렌더링시간을줄이며높은품질의렌더링결과를얻는기술을 3가지부분에서소개하고자한다. 첫번째방법에는수십개에서수천개의 CPU를이용하거나 PC를클러스터링하는방법이고, 두번째는기존 GPU의기술이아주빨리발전하여 CPU 보다빠른성능을갖기때문에 GPU를활용하여가속화하는방법이있으며, 세번째는전용하드웨어를제작하여렌더링을가속하는방법이있다. 위의방법들에대한기술동향에대하여살펴보도록한다. 12
남승우외 / 렌더링가속화기술동향 I. 서론 화가는붓과물감으로캔버스에색을칠하여하나의작품을만들고, 카메라작가는카메라를이용하여필름에다가하나의작품을담듯이컴퓨터를이용하여하나의그림을만들어내는것이렌더링기술이다. 컴퓨터그래픽스기술은모델링, 애니메이션, 렌더링기술로크게분류할수있다. 모델링기술은실제물체와크기와모양이유사하게점, 면, 선등을이용하여물체의형태를만드는기술이고, 애니메이션기술은프레임 (frame) 마다물체의형태가움직이게하는기술이며, 렌더링기술은모델링된물체의표면에색을입히는기술이라할수있다. 색을입히기위하여필요한요소는광원, 매질, 카메라특성이다. 여기서빛을받아서물체의표면이어떻게반응하는가와같은물체표면특성을매질이라한다. 그러면렌더러라함은모델링데이터와위에서언급한색을입히기위한요소를입력으로받아서이차원의이미지를출력하는것이다. 기존상용렌더러중에서픽사 (pixar) 의렌더맨 (RenderMan) 은 REYES 구조 [1] 를계속발전시켜왔으나 2005 년을기점으로전역조명 (global illumination) 렌더링을위한광선추적법을추가하였다. 여기서 REYES 구조는광선추적법 (ray tracing) 보다계산량이많지않으므로속도가빠른장점이있어서아직도많이사용되고있다. 그러나최근이러한지역조명 (local illumination) 에기반한렌더링보다는전역조명에기반한렌더링이많이쓰이고있고, 전역조명에기반한렌더링이물리적으로빛과매질의상호작용을정교하게해석하기때문에지역조명에기반한방법보다좀더실사에가까운렌더링효과를얻을수있다. 전역조명에기반한렌더링의단점은지역조명에기반한렌더링보다시간이많이소요된다. 빛과매질의상호작용을물리적기반으로렌더링하는대표적인알고리듬으로는광선추적법이있다. 광선추적법은기본적으로시간이매우많이걸리는계산이어서광선추적법의시간을단축시키기위하여포톤맵과레디언스캐시 (radiance cache) 방법등이있다. 포톤맵을이용하더라도마지막에는 final gather 를하게되어시간이많이걸리는단점이있다. 본고에서는위의전역조명에기반한방법 ( 특히광선추적법중심 ) 을가속하기위한세가지면에서기술동향을설명하고자한다. 첫째는 CPU 를이용한가속방법, 둘째는 GPU를이용한가속방법, 셋째는전용하드웨어를이용한가속방법등에대하여설명한다. 위와같이나눈것은 Wald 등이유로그래픽스에발표한 STAR 논문을참조하였다 [2]. II장에서는병목이되는렌더링알고리듬에대하여살펴보고, CPU 기반의렌더링가속화기법을설명한다. III장에서 GPU를이용한렌더링가속기술에대하여기존연구들에대하여논하고, IV장에서는병목이되는알고리듬을전용하드웨어로설계하여가속화하는기술에대하여논하고자한다. 마지막으로 V장에서는앞으로의렌더링가속부분에서의전망과결론을맺는다. Ⅱ. CPU를이용한가속 1. 광선추적법 3차원장면 ( 물체, 조명, 카메라등으로모델링된장면 ) 이카메라를통해서 2차원영상을보여주는것은조명과물체가상호작용하여카메라를통하여빛이들어오는과정이며, 이러한과정을역으로카메라에서부터물체를향하여광선을쏘아이를추적하여영상에색깔을계산하는알고리듬이광선추적법이다. 광선이물체에충돌하면교차된물체표면에서모든방향으로광선을발생시키고 ( 이를 2차광선이라고하자 ) 2차광선들이또다른물체에교차하여 3차광선들을발생시킨다. 이때차수를더해갈수록광선의수는기하급수적으로많아지며계산량도기하급수적으로증가한다. 이러한계산량을줄이기위하여 2차광선은 3가지로형태로나누어발생시킨다. 하나는섀도광선을발생하고다른하나는표면에서반사하여반사광을발생하고, 마지막으로물체를투과하는투과광선을발생한다. ( 그림 1) 은광선 13
전자통신동향분석제 22 권제 4 호 2007 년 8 월 이표면이충돌할때발생하는 2차광선의예이다. 광선이물체표면과충돌하면표면에대한광량 (radiance) 을계산하는데식 (1) 과같다. L image plane ( p, 0 ) f ( p, ω, ω 2 0 1 s ω = ) L( p, ω ) cos( θ ) dω (1) (1) 로부터 2차광선을 3가지형태로발생시키되 ( 그림 1) 과같이각방향으로확률적으로분산광을발생시켜서광량을계산하면 (1) 이 (2) 와같이된다. L p, ω ) = L ( 0 + f + f ambient specular trans local shading + f direct L( p, ω L( p, ω normal intersect i L( p, ω trans specular ) reflect ( 그림 1) 광선추적법에서의 2 차광선발생 ) i light ) refract i (2) 여기에서 f 값은 BRDF 값이며, 즉표면에서입사빛에대한임의의방향으로방출되는빛의양이얼마인지를결정하는함수이고, L 값은 p 위치에서의색깔값이다. ( 그림 2) 는광선추적알고리듬을의사코드 (pseudo code) 로작성한것이다. 광선추적법은각픽셀마다샘플링을통하여광선을생성한다. 그리고교차점이있으면교차점에대한색깔값을가져오고교차점에서부터 2차광선을쏘아 2차 for each pixel for each sample ray generation ray-object intersection if(intersect) Id = local shading if(reflection) reflection ray generation Ir = trace ray endif if(refraction) refraction ray generation It = trace ray endif I = kd Id+kr Ir+kt It endif end for end for ( 그림 2) 광선추적알고리듬의의사코드 광선이교차하는점에서다시색깔값을가져오고 3 차광선도마찬가지로반복적으로수행한다. 각각의 1차 2차광선에서가져온값에 BRDF 함수값을곱하여모두더해주면현재픽셀에서의최종색깔값이된다. 여기서 kd, kr, kt는각각직접광, 반사광, 투사광에대한 BRDF 함수값이다. 2. CPU를이용한가속기술국내에서는일반적으로소프트웨어를이용한가속은첫번째, 소프트웨어를 CPU에최적화하는방법이있으며, 두번째는 CPU를코어를많이사용하여알고리듬을병렬로처리하는방법이있다. 최근에는 cell processor의등장으로 cell로구현한사례가있다. 광선추적법자체는병렬성을갖고있으나메모리와 CPU 간의데이터교환시간과동기를맞추는기본적인시간이들어간다. 이를해결하기위한시도로서수퍼컴퓨터와같은공유메모리시스템을이용하는방법이있고, 다른방법으로는 PC간에클러스터링하는방법이있다. PC간의클러스터링방법은공유메모리방법에비하여작은비용으로구성할수있다는장점이있으나 CPU간통신대역폭과메모리대역폭이낮은것이단점이다. 가. Star Ray Muuss 등은처음으로이러한시도를하였으며, 비슷한하드웨어플랫폼에서 Utah 대학의 Parker 등은 1999년도논문에 60개의 CPU로 ( 그림 3) 과같은 512 512 크기의이미지를렌더링하는데초당 4프레임의성능을갖는 star ray를발표하였다 [3]. ( 그림 3) Utah 대학의 Interactive 광선추적의예 14
남승우외 / 렌더링가속화기술동향 나. OpenRT 2001년에 Wald 등이 OpenRT 라는실시간광선추적엔진을제안하였다. 현재는웹을통하여공개하여현재계속적으로 API가향상되어가고있다. OpenRT의커널 (kernel) 의특징은메모리접근을최소화하였고, 프로세서의캐시적중률을높이도록설계하였으며, 최신 CPU의 SIMD extension 을지원하는것이다. 또한광선추적법에서광선을재귀적 (recursive) 으로처리하지않고패킷단위로추적, 충돌처리, 셰이딩 (shading) 하여메모리접근을최소화하고, SSE 명령어를사용하였다. OpenRT는 ( 그림 4) 와같은일명 soda hall (250만폴리곤으로구성 ) 이라는 1024 1024 크기의영상한장을 Pentium-IV 2.5GHz 1개의 CPU 에서초당 4.1 프레임의속도를나타내었고, 셰이딩을포함하면초당 1.8프레임의성능을나타내었다. 이러한결과로보면광선추적부분뿐만아니라셰이딩부분도병목이되고있음을알수있다. Open- RT는또한분산병렬처리를지원하는데 PC를클러스터링하여성능의향상을도모할수있다. 분산처리에서데이터교환을위한라이브러리로 MPI 혹은 PVM 등이있는데, 실시간으로성능을내기위해서는이러한라이브러리를사용할수없어서 UNIX TCP/IP 프로토콜을이용했다. 다이내믹한로드밸런싱을효율적으로하기위하여이전업무가끝이나면다음업무를미리가져와서다음업무를시작하기위해기다리는시간을제거하였다. 이외프레임간에차이가없는부분은네트워크를통하여전송 을하지않고프레임간에차이가있는부분만을전송하며, multi-threading 을지원하여성능을높였다. OpenRT의분산병렬처리의결과는다음과같다. 48 CPU까지는테스트를하였으며대부분의장면에대하여 ( 전역조명의경우 ) 선형적으로성능이증가하나복잡한장면 (1천만폴리곤이상, 지역조명인경우 ) 에서는 24 CPU 이상에서성능이증가하지않는현상을보인다. 3. Cell 프로세서를이용한가속기술 Benthin 등은 cell 프로세서를이용하여광선추적법을구현하였다 [4]. Cell 프로세서의구조는 ( 그림 5) 와같이 8개의 SPE와 1개의 PPE로구성되어있다 [5]. 각 SPE는일종의 128bit-SIMD RISC 프로세서로서순차적으로명령어를수행하기때문에데이터순서의의존성혹은분기로인한파이프라인스톨 (pipeline stall) 이생길수있다. SPE의명령어들은 SIMD 프로세싱을할수있게설계되어있고 1 사이클에 1개의스루풋을가지며 2~7 사이클의 latency를갖는다. 각 SPE들은세개의레벨을갖는메모리구조인데, 한개의 128 128bit 레지스터파일 (register file), 한개의 256KB의로컬스토어 Power Processor Element(PPE) (64bit PowerPC with VMX) I/O Controller I/O Controller Memory Controller Memory Controller RAM RAM SPE 1 SPE 2 SPE 3 SPE 4 EIB SPE 5 SPE 6 SPE 7 SPE 8 Dual configurable High speed I/O channels (76.8GBytes per second in total) EIB(Element Interconnect Bus) is the internal communication system ( 그림 4) OpenRT 성능테스트에사용된 Soda Hall ( 그림 5) Cell 프로세서구조 Dual 12.8GByte per second memory busses give cell huge memory bandwidth. (25.6GBytes per second in total) 15
전자통신동향분석제 22 권제 4 호 2007 년 8 월 (local store), 메인메모리로구성된다. 메인메모리의접근은 DMA 컨트롤러를통해서이루어지고 25.6GB/s의대역폭을갖는다. 메모리접근시 latency( 수백 SPE 내부사이클 ) 가커서비동기 (asynchronous) 전송을지원하고광선추적법과같은비규칙적인메모리접근이많이이루어지는곳에는도전적이라할수있다. 프로그래밍모델은임의의커널을임의의 SPE에서수행하고결과를다른 SPE에넘겨주는캐스캐이드 (cascade) 형태가있을수있고, 광선추적알고리듬전체를 SPE에서행할수도있다. 후자의경우는픽셀마다하나의 SPE가할당될수도있고광선마다 SPE가할당될수있어서병렬처리가가능하다. 전자의단점은 SPE간의데이터흐름이생기는데 SPE 간의내부대역폭 (300GB/s) 이넓긴하지만 SPE 가운데하나라도스톨이생기면모든 SPE가스톨되므로 SPE의사용성이떨어질수있고실제떨어진다. 이러한 cell 프로세서의특징때문에장면데이터를로딩하기위한메모리접근방법에신중해야하며장면데이터캐싱방법이아주중요하다. Benthin 등은후자의방법을채택하였으며, BVH를공간데이터구조로채택하였다. 그리드 (grid) 로구성하는것은 cell과같은스트리밍 (streaming) 프로세서에적합한구조이지만동적인물체의처리및 2차광선추적에그리드보다는 BVH가더적합하다고판단하였다. BVH 노드캐시를패어 (pair) 로두고, 4-way associative 캐시 (a least-recently-used policy) 를사용하여캐시적중률을높였다고한다. ( 그림 6) 은 cell 프로세서시스템과 CPU 간의 3개의장면에대하여비교한데이터이고, ( 그림 7) 은각장면에대하여 SPE 개수에따라성능을나타낸표이다. ( 그림 6) 에서보는바와같이 cell 에서셰이딩성능은광선교차테스트와장면탐색 (traversal) 보다좋지않은것으로나타났다. 실제실험은광선추적이아니라광선캐스팅을한것으로하나의 SPE는 CPU와동등한성능을보여주고있으며셰이딩과같이메모리접근이많은경우또다른병목이되고있다. 지금까지소프트웨어기반의기존프로세서를이용한 Scene ERW6 Conference VW Beetle ray casting, no shading 2.4GHz x86 2.4GHz SPE Single-Cell Dual-Cell PS3-Cell 28.1 30.1 (+7%) 231.4 (8.2x) 430.1 (15.3x) 270.0 (9.6x) ray casting, simple shading 2.4GHz x86 2.4GHz SPE Single-Cell Dual-Cell PS3-Cell 15.3 14.9 (-3%) 116.3 (7.6x) 222.4 (14.5x) 135.6 (8.9x) ray casting, shading & shadows 2.4GHz x86 2.4GHz SPE Single-Cell Dual-Cell PS3-Cell Performance at 1024 1024 in fps 400 350 300 250 200 150 100 50 7.2 7.4 (+3%) 58.1 (8x) 110.9 (15.4x) 67.8 (9.4x) 8.7 7.8 (-12%) 57.2 (6.5x) 108.9 (12.5x) 66.7 (7.6x) 6.7 5.1 (-23%) 38.7 (5.7x) 73.7 (11x) 45.2 (6.7x) 3.0 2.6 (-13%) 20 (6.6x) 37.3 (12.4x) 23.2 (7.7x) ( 그림 6) 장면별프로세스별성능 ERW6(pure ray-casting) Conference(pure ray-casting) VW Beetle(pure ray-casting) ERW6(simple shading +FB) Conference(simple shading +FB) VW Beetle(simple shading +FB) 광선추적법의동향에대한설명을하였다. 다음장에는 GPU를이용한광선추적법의동향을살펴본다. Ⅲ. GPU 를이용한가속 7.7 7.0 (-10%) 51.2 (6.6x) 91.4 (11.8x) 59.7 (7.7x) 6.6 3.5 (-47%) 27.1 (4.1x) 47.1 (7.1x) 31.6 (4.8x) 2.5 1.9 (-24%) 16.2 (6.4x) 30.6 (12.2x) 18.9 (7.5x) 2 4 6 8 10 12 14 16 Number of SPEs(2.4GHz) ( 그림 7) SPE 개수에따른성능테스트 보통그래픽스카드라고불리는그래픽스처리장치 (GPU) 가마치가전제품처럼각가정의 PC에설치되기시작한지가약 10년이상되었다. 최근에 16
남승우외 / 렌더링가속화기술동향 항목 < 표 1> CPU 와 GPU 의항목별비교 CPU(Intel Core2 Duo 3.0GHz) GPU(GeForce 8800 GTX) 계산능력 48 GFLOPS 330 GFLOPS 메모리대역폭 21GB/s 55.2GB/s 가격 874 달러 599 달러 매년성능향상폭 1.4x < 자료 >: Kurt Akeley, Stanford GPUbench Project 1.7x( 픽셀처리기 ) 2.3x( 정점처리기 ) 소개되고있는 GPU들은프로그램가능한속성 (programmability) 과정밀성 (precision) 그리고소비전력 (power) 면에서보다유연하고강력한프로세서로진화해나가고있다. < 표 1> 에서볼수있듯이, CPU에비해계산능력과메모리대역폭이우수하면서, 오히려가격측면에서도경제적이다. 또한, 1년에두배씩의성능향상이있다는무어의법칙 (Moore s Law) 이일반적인칩디자인패턴을이미능가해서, GPU의성능향상추세는 6개월에두배씩의성능향상패턴을보이고있다. ( 그림 8) 은주요한프로세서제작업체별제품의성능향상추이를보여주고있다. 여기서주목할부분은앞서이야기했듯이, GPU의성능향상추이가 CPU 성능향상추이와비교하여현저한차이로향상되고있다는것을알수있다. 이런성장의주된요인으로는 DirectX와같은게임 API쪽의강력한드라이브가가장크며, 고성능컴퓨팅 (HPC) 분야의성장이다. 이러한 GPU의성능향상은앞으로도계속될것이라는것이일반적전망이다. 1. 스트리밍광선추적기 고품질렌더링을위해서주로많이이용되는광선추적법은렌더링을위해서는많은계산시간을필요로하기때문에최근에 GPU의고속계산성능을활용한 GPU 기반렌더러구현이이뤄지고있다. Purcell 등이최소의호스트상호작용으로광선추적계산을전부 GPU에서효율적으로할수있다는발상으로제안한것이 ( 그림 9) 에보인스트리밍광선추적기 (streaming ray tracer) 이다 [6]. ( 그림 9) 에는광선추적과정을나타내었다. 광선추적과정은몇개의코어커널인시선광선발생기 (eye ray generation), 가속구조탐색, 삼각형교차기그리고색을결정하는셰이더로나뉘고, 커널들간에전달되는스트림데이터 (stream recodes) 는점선으로표시된것이다. Christen 등은 Purcell 의방법을근간으로 GPU 를이용한광선추적기를구현하였다 [7]. 기본적으로광선추적알고리듬에쓰이는요소를조그만여러개커널들을픽셀셰이더들로작성하였으며, 각커널들은순서화되어수행되며, 같은커널들이여러차례호출될수있도록하고있다. 여러차례반사되는것은커널정보를저장하여재귀호출없이반복적으로처리했다. 공간데이터구조로는 GPU의제한된자원에서구현하기쉬워주로이용되는그리드구조가사용되었고, 물체탐색은 3DDA 알고리듬을 Camera Generate Eye Rays 400 300 NVIDIA ATI Intel Grid of Triangle List Offsets Traverse Acceleration Structure Rays GFLOPS 200 100 0 2001 2002 2003 2004 2005 2006 2007 ( 연도 ) < 자료 >: SUPERCOMPUTING 2006 Tutorial dual-core ( 그림 8) 제조사별 GPU 성능향상추이 Triangle List Triangles Surface Normals Surface Materials Intersect Triangles Shade Hits and Generate Shading Rays Pixel Color Updates ( 그림 9) 스트리밍광선추적처리과정도 Ray-Voxel Pairs Hits 17
전자통신동향분석제 22 권제 4 호 2007 년 8 월 Platform Independent Code Graphics Library(AGE) Shader Management (Architecture Dependent) GLSL HLSL Architecture Dependent Code(ADC) Platform Dependent Code(PDC) MacOS OpenGL Linux Direct3D Windows ( 그림 10) 개발프로그램모델 이용했다. 모든장면데이터는실수값텍스처값으로변환하여텍스처메모리를이용하여저장된다. 특히, 반사나굴절을위해추가적인정보저장을위해광선-텍스처를추가할수있으나구현하지는않았다. ( 그림 10) 은개발프로그램모델을보인것으로, HLSL이나 GLSL 구조를이용하여개발기술의셰이더프로그램을작성하였다. GeForce 6시리즈에서 HLSL과 GLSL 모두로구현할수있으나, 하드웨어가 GLSL 2.0 이상의기능을드라이버에서지원하지않아 HLSL에서정상동작하는것만을보였다. 광선추적방식은여러차례광선이표현하려는공간을탐색해서원하는정보를계산하여야하므로장면의공간내물체와광선과의빠른교차탐색이필요하다. 이러한교차탐색은초기에자원의제약으로구현이쉬웠던 grid 탐색에서빠른 kd-tree 탐색으로연구가이뤄지고있다 [8],[9]. Foley는스택에저장되는구조를 kd-restart, kd-backtrack 을이용하여, 스택구조가없는 GPU에서도빠르게 kd-tree 탐색을수행할수있도록하였다. 그러나여전히스택저장을위한메모리접근이많아빠른계산능력에도불구하고, 스택구조가있는 CPU 보다느리다는단점이있었다. 그래서, Horn 등은 short-stack 을도입하여처리하는일부스택내용을스택구조로처리함으로써빠른 kd-tree 탐색방법을제시하고있다. ( 그림 11) 은 1024 1024 크기의반사가있는장면을 1회바운스 (bounce) 만고려하고퐁셰이딩 (phong shading) 으로렌더링하는데, 8fps 정도렌더링속도를나타냈다. ( 그림 11) 은렌더링결과영상이다. ( 그림 11) 반사가있는장면디지털애니메이션은고정된장면이아니라장면내객체의움직임을포함하므로이와같은경우에도빠르게렌더링될수있는방법들이연구되고있다. 애니메이션을고려한동적인장면에서는 GPU의제한적인자원에적합한 grid 방식이선호되고있다 [10]. 그러나, GPU의발전과더불어그제한이많이줄어들고있어새로운방법론들이연구되고있다. 그중에하나로 GPU에도멀티코어시스템이개발되고있는데, 이러한멀티코어와 BVH 방법을이용해동적인객체를빠르게갱신하면서탐색할수있도록하는것도연구되고있다 [11]. 그외스위스바젤 (Basel) 대학에서 GLSL 과 HLSL 를이용하여 GPU를통해광선추적을수행하는광선추적기 (ray tracer) 를구현하였다. ( 그림 12) 는 GLSL/HLSL 기반의 GPU 광선추적기의수행결과를보여주고있다. ( 그림 12) GLSL/HLSL 기반 GPU 광선추적기 2. 젤라토젤라토 (Gelato) 는엔비디아 (Nvidia) 에서개발한 GPU를이용한고품질렌더러이다 [12]. 연구수준의 GPU 렌더러들이간단한장면이나간단한수준 18
남승우외 / 렌더링가속화기술동향 의셰이딩정보를이용하여 GPU를이용해빠르게렌더링하는방법에대해연구되었다면, 젤라토는 GPU를이용해기존상용소프트웨어 (Maya, 3DS MAX) 와의호환성을유지하면서실제영화제작에활용할수있도록다양한셰이더를지원하여만들어진제품이다. 현재버전 2.1이출시되었으며, 기본버전은무료이고, 프로버전은구매를하여야한다. 젤라토 2.1의주요특징으로, 빠른광선추적및 ambient occlusion 기능, 마야 8.5 및 3DS MAX 9 지원, 마야를위한망고 (Mango) 플러그인과텍스처베이크세트 (Maya texture bake sets) 지원, 털이나모발표현이뛰어난셰이브앤헤어컷 4 지원, 대용량이펙트를위한안개, 빛지원등이있다. 특히, 젤라토프로 2.1은소베토 (Sorbetto) 의재조명 (relighting) 과다이내믹섀도기능, 네트워크병렬렌더링, 다중스레드렌더링, 그리고현재는현재리눅스만가능한 64비트마야지원등을추가로처리할수있다. 그러나, 현재젤라토에서지원하지않는것은광선추적기능에의해자동으로자연스런그림자를생성할수있는면적광원 (area lights) 과자체셰이딩언어의한규격인 GSL texture 3D는지원하지못하고있다. 3. 포톤맵가속 포톤맵 (photon map) 은 Jensen 등이 Computer & Graphics에 1995년도에처음발표하였고 [13], 2003년 Purcell 등이 Graphics Hardware를통해 GPU를이용하여포톤맵전체를구현하여실시간시뮬레이션으로결과를보여주었다 [14]. 포톤맵을이용한렌더링시스템은 ( 그림 13) 과같이포톤을조명으로부터추적하여포톤맵을생성한다. Purcell 등은두가지방법으로포톤맵을생성하는데, 한가지는 bitonic sorting 을이용해서 grid cell 형태로텍스처메모리에포톤을저장하는방법과 stencil 라우팅을이용하여 grid cell 형태로저장하는방식을사용한것이특징이다. 마지막으로래디언스추정 (radiance estimation) 은 k-nn 알고리듬을사용하였다. ( 그림 14) 는 Purcell 등이구현한결과인데테스 Compute Lighting Trace Photons Build Photon Map Ray Trace Scene Render Image Compute Radiance Estimate ( 그림 13) 포톤맵을이용한렌더링시스템흐름도 Scene Name Glass Ball Ring Cornell Box Trace Photons 1.2s 1.3s 2.1s (a) Bitonic Sort (b) Stencil Routing (c) Software Reference Build Map 0.8s 0.8s 1.4s Bitonic Sort Trace Rays 0.5s 0.4s 8.4s Radiance Estimate 14.9s 6.5s 52.4s Trace Photons Stencil Routing ( 그림 14) 테스트장면 ((a) GPU 상에서 Bitonic Sort 를이용한결과 (b) GPU 상에서 Stencil Routing 을이용한결과 (c) 소프트웨어로구현한결과 ) 과성능비교표 1.2s 1.3s 2.1s Build Map 1.8s 1.8s 1.7s Trace Rays 0.5s 0.4s 8.4s Radiance Estimate 7.8s 4.6s 35.0s 19
전자통신동향분석제 22 권제 4 호 2007 년 8 월 트장면과성능을나타내었다. 실험결과에대한시스템환경은 GeForce FX 5900 Ultra, Pentium 4 CPU 3GHz, 2.0GB RAM이다. 그외 GPU 가속을통한포톤매핑시뮬레이션기법을덴마크공대연구진이 2004년에소개하였고, ( 그림 15) 에서그결과를보여주고있다. 또한, 래디언스캐시를 GPU를이용하여구현하고프라이머리광선바운스되는환경에서전역조명을구현하여 SIGGRAPH 2005에서소개하였다. ( 그림 15) GPU 포톤맵을통한 Caustics Ⅳ. 전용하드웨어가속기술 1. AR350 프로세서 ART에서는 AR350 프로세서를개발하였고 8~ 16개의 AR 350 프로세서를사용하여 PURE라는 PCI 인터페이스의보드와 48개의 AR350 프로세서를사용한 RenderDrive를개발하였다 [15],[16]. 현재는각각 RayBox 와 RenderServer라는이름으로상품으로판매하고있으며 AR350 프로세서도향상되어다수의 AR500 프로세서가장착되어있다. 본고에서는 2001년 Graphics Hardware라는워크샵에서발표된 AR350에대한구조에대하여설명하고 [17] 2004년에 GRAPHITE에서발표된논문 [15] 을바탕으로 RenderDriver에대한성능도살펴보도록한다. ( 그림 16) 은 AR350 프로세서의데이터흐름도및구조도이다. AR350은다섯개의부분으로나누어져있다. 첫째로광선과지오메트리간의충돌을병렬로처리할수있는충돌처리엔진 (pipelineparallel ray geometry engine) 을가지고있고, 둘 Main AR350 Data Flows DRAM Fine grain distribution of rays between AR250s for load balancing Pipeline-parallel ray geometry engine (permutes multiple geometry and rays) Hierarchical geometry Host system interface Programmable shading co-processor Intersections Shader ops. Geometry Ray generation & control(cpu) Pixels Geometry & shaders Host bus interface On-chip data caches Additional AR350 processor cores Geometry and shaders(broadcast) Pixels(sequential read-back) Programmable shaders Advanced rendering technology ( 그림 16) AR350 의데이터흐름도및구조도 20
남승우외 / 렌더링가속화기술동향 째로광선을생성할수있는광선생성기및신호제어기 (ray generation & control) 가있으며, 셋째로데이터를캐싱할수있는 on-chip 캐시를가지고있으며, 넷째로컴파일된셰이더를처리할수있는셰이더보조프로세서가있고, 마지막으로버스인터페이스로구성되어있다. AR350 프로세서의데이터흐름은다음과같다. 호스트 (host) 로부터지오메트리데이터와컴파일된셰이더가 AR350으로전달되고 AR350에서는광선을생성하고생성된광선과지오메트리를충돌처리엔진으로전달하고충돌처리엔진에서충돌이일어나면셰이딩보조프로세서에셰이딩처리를요구하여셰이딩된픽셀을호스트로전달한다. 다음은 48개의 AR350 프로세서를사용한 RenderDrive에대하여알아보도록한다. ( 그림 17) 은 RenderDrive를상에서의데이터흐름을나타낸그림이다. 렌더맨포맷의셰이더를 RenderDrive에네트워크를통해보내면셰이더는 RenderDrive에서컴파일되어텍스처와함께하드디스크에저장된다. 장면지오메트리는 GT에서계층적으로 (hierarchical) 분화되고삼각형으로쪼개어진다. 그러면렌더링이시작되는데, 셰이더와지오메트리가각프로세서에전달되고프로세서마다광선의분포도균등하 게할당된다. 각프로세서는할당된광선을추적하게되고, 각각프로세서에서하나의픽셀의색깔값을출력하게된다. 프로세서로부터출력된픽셀을모아서결과영상이되고이를네트워크를통하여호스트로되돌려준다. RenderDrive의특징은렌더맨셰이더포맷을지원하는것과패스추적 (PT) 을하는것, 그리고패스추적시다음단계를예측 (PTNEE) 하는것이다. 광선이생성되고충돌하는것을무한반복해도광원과만나지않으면의미가없어지기때문에이러한계산을최대한줄이기위하여 PTNEE 방법을사용하여광선의발산을줄이는것이다. ( 그림 18) 은 cornell box 와 coffee shop 이라는장면데이터에대하여각각방식을사용한성능을나타낸것이다. RenderDrive에서 PTNEE 를사용하여 coffee shop 을렌더링하는데걸린시간은 42분 31초이고, cornell box 같은경우는 5분 47초였다. 현재 ART에서판매하는상용제품으로 ray box나 RenderServer는이보다성능이훨씬좋을것으로판단된다. Multi-processor rendering Low level API Shader compiler Shader code Scene geometry Scene description (RM calls) Geometry tesselator RenderMan compliant interface Image Network Texture files RenderDevice ( 그림 17) RenderDrive 의데이터흐름도 (a) Ray Tracing (b) Path Tracing (c) PTNEE ( 그림 18) Cornell Box 와 Coffee Shop 을 RenderDrive 를이용하여렌더링한결과 2. RPU Saarland 대학의 Woop 등은실시간광선추적을위한광선추적프로세서를제안하고 SIGGRAPH 21
전자통신동향분석제 22 권제 4 호 2007 년 8 월 Fast Chip Inter- Connect PCI/AGP/PCI-X Interface RPU Chip 1 DMA-IF Thread Generator DDR-RAM 1 RPU 1 RPU 2 RPU N (...) DDR-RAM N MEM-IF VMU R4-Cache R/W T-Cache Read Only SPU TPU (...) R4-Cache R/W T-Cache Read Only SPU TPU L-Cache Read Only MPU L-Cache Read Only MPU ( 그림 19) RPU 의구조도및데이터흐름도 05에발표하였다 [18]. RPU의구조는 ( 그림 19) 와같이셰이딩을처리하기위한다수의 SPU와트리탐색을위한다수의 TPU 그리고 MPU로구성되어있고, 스레드생성및관리를위하여스레드생성기 (thread generator) 가있고 PCI/PCI-X 인터페이스로호스트와통신하며메모리접근을위한 DMA 컨트롤러를가지고있다. 또한캐싱을위한 VMU로구성되어있다. RPU의구조는기존의 Saarland 대학에서개발한 SaarCOR라는광선처리프로세서구조를향상시킨것이며 OpenRT 와연동되게설계되어있다. 현재는한개의 RPU 프로토타입을 FPGA 로구현하여성능은 OpenRT 과비교하여 0.5~1.6 배정도로서빠르지않지만이러한구조를 ASIC으로구현하여여러개의코어로구성한다면훨씬뛰어난성능을보일것으로기대한다. V. 결론 컴퓨터그래픽스를이용한콘텐츠제작자들의뛰어난품질에대한갈구와제작시간단축및비용절감이라는두마리토끼를다잡기위한노력이계속 되고있는가운데 CPU를기반으로하는상용소프트웨어, GPU를기반으로하는렌더링시스템, 전용하드웨어를기반으로하는시스템등이존재하고있다. CPU, GPU 등은나날이발전해가고있고, 새버전의출시주기가점점더빨라지고있는상황에서렌더링에최적화된전용하드웨어까지가세하여앞으로의렌더링에대한향방을점치기어렵게하고있다. 분명한것은현재소프트웨어만의렌더링으로는제작시간을단축하기힘들다는판단에따라 GPU를이용하거나전용하드웨어를설계하기에이르렀으며앞으로이분야도하나의큰연구흐름이될것이라판단된다. 물론인텔이 CPU 코어를늘려가고있고멀티코어멀티스레딩프로그램이유행할때까지는 GPU 및전용하드웨어에대한연구는계속될것으로보인다. 지금까지 CPU 기반의소프트웨어, GPU 및전용하드웨어를이용한렌더링가속기술에대하여살펴보았다. 향후 GPU 및전용하드웨어를이용한가속기술은렌더링알고리듬가속뿐만아니라다른여러분야에사용될것으로판단되며, 멀티코어 CPU 기반가속분야도또다른연구의줄기가될것이다. 22
남승우외 / 렌더링가속화기술동향 3DDA ART BRDF BVH CPU CUDA DMA GLSL 약어정리 3D Differential Analyzer Advanced Rendering Technologies Bidirectional Reflectance Distribution Function Bounding Volume Hierarchy Central Processing Unit Compute Unified Device Architecture Direct Memory Access OpenGL Shading Language GPGPU General-Purpose computation on GPUs GPU Graphics Processing Unit GT Geometry Tesselator HLSL High-Level Shading Language HPC High-Performance Computing MPI Message-Passing Interface MPU Mailboxed list Processing Unit NN Nearest Neighbor PPE PowerPC Processor Element PT Path Tracing PTNEE Path Tracing with Next Event Estimation PVM Parallel Virtual Machine RPU Ray Processing Unit SIMD Single Instruction Multiple Data SPE Synergistic Processing Elements SPU Shader Processing Unit STAR State of art VMU Virtual Memory Unit 참고문헌 [1] Robert L. Cook, Loren Carpenter, and Edwin Catmull, The Reyes Image Rendering Architecture, ACM SIGGRAPH Computer Graphics, Vol.21, No.4, July 1987. [2] Ingo Wald, Timothy J. Purcell, J. Schmittler, Carsten-Benthin, and Philipp Slusallek, Realtime Ray Tracing and Its Use for Interactive Global Illumination, Eurographics 2003, 2003. [3] Steven Parker, Michael Parker, Yaren Livnat, Charles Hansen, and Peter Pike Sloan, Interactive Ray Tracing, In Proc. of Interactive 3D Graphics(I3D), Apr. 1999, pp.119-126. [4] Carsten Benthin, Ingo Wald, Michael Scherbaum, and Heiko Friedrich, Ray Tracing on the Cell Processor, IEEE Symp. on Ray Tracing 2006, 2006, pp.15-23. [5] http://www.blachford.info/computer/cell/cell1_v2.html [6] Timothy J. Purcell, Ray Tracing on a Stream Processor, Thesis for the degree of doctor of philosophy in Stanford University, 2004. [7] Martin Christen, Ray Tracing on GPU, University of Applied Sciences Basel, thesis 2005. [8] T. Foley and J. Sugerman, Kd-tree Acceleration Structures for a GPU Raytracer, In HWWS 05: Proc. of the ACM SIGGRAPH/EUROGRAPHICS Conf. on Graphics Hardware, ACM Press, New York, NY, USA, 2005, pp.15-22. [9] Daniel Reiter Horn, Jeremy Sugerman, Mike Houston, and Pat Hanrahan, Interactive k-d Tree GPU Ray-tracing, Proc. of the 2007 Symp. on Interactive 3D Graphics and Games, 2007, pp.167-174. [10] Ingo Wald, Thiago Ize, Andrew Kensler, Aaron Knoll, and Steven G Parker, Ray Tracing Animated Scenes Using Coherent Grid Traversal, ACM Transactions on Graphics 2006, 2006, pp.485-493. [11] Thiago Ize, Ingo Wald, and Steven G Parker, Asynchronous BVH Construction for Ray Tracing Dynamic Scenes on Parallel Multi-Core Architectures, Proc. of the 2007 Eurographics Symp. on Parallel Graphics and Visualization, 2007. [12] http://www.nvidia.com/page/gz_home.html [13] Henrik Wann Jensen and Niels Jorgen Christensen, Photon Maps in Bidirectional Monte Carlo Ray Tracing of Complex Objects, Computers & Graphics, Vol.19, No.2, Mar. 1995, pp.215-224. [14] Timothy J. Purcell, Craig Donner, Mike Cammarano, Henrik Wann Jensen, and Pat Hanrahan, Photon Mapping on Programmable Graphics Hardware, Proc. of the ACM SIGGRAPH/EUROGRPHICS Conf. on Graphics Hardware, 2003, pp.41-50. [15] Christophe Cassagnabère, Francois Rousselle, and- Christophe Renaud, Path Tracing Using the AR350 Processor, Proc. of GRAPHITE 04, 2004, pp.23-29. [16] http://www.artvps.com [17] http://www.graphicshardware.org/previous/www_ 2001/presentations/Hot3D_Daniel_Hall.pdf [18] Sven Woop, Jörg Schmittler, and Philipp Slusallek, RPU: A Programmable Ray Processing Unit for Realtime Ray Tracing, SIGGRAPH 2005, 2005. 23