KR100420856B1 - 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기 - Google Patents

순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기 Download PDF

Info

Publication number
KR100420856B1
KR100420856B1 KR10-2001-0003781A KR20010003781A KR100420856B1 KR 100420856 B1 KR100420856 B1 KR 100420856B1 KR 20010003781 A KR20010003781 A KR 20010003781A KR 100420856 B1 KR100420856 B1 KR 100420856B1
Authority
KR
South Korea
Prior art keywords
image
rendering
frame buffer
order
primitives
Prior art date
Application number
KR10-2001-0003781A
Other languages
English (en)
Other versions
KR20020063057A (ko
Inventor
박우찬
한탁돈
Original Assignee
학교법인연세대학교
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 학교법인연세대학교 filed Critical 학교법인연세대학교
Priority to KR10-2001-0003781A priority Critical patent/KR100420856B1/ko
Publication of KR20020063057A publication Critical patent/KR20020063057A/ko
Application granted granted Critical
Publication of KR100420856B1 publication Critical patent/KR100420856B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Abstract

본 발명은 현실감 있는 3차원 그래픽 영상을 생성하기 위해서 투명성을 내포한 프리미티브들을 하드웨어적으로 지원해주는 3차원 병렬 렌더링 가속기를 제공하기 위한 것으로서, 객체순서 방식을 이용하여 입력되는 프리미티브들을 렌더링하는 다수개의 객체 PE 처리부와 영상순서 방식을 이용하여 입력되는 프리미티브들을 렌더링하는 하나 이상의 영상 PE 처리부로 구성된 렌더링 가속기 서브시스템부와, 상기 렌더링 가속기 서브시스템부에서 렌더링된 각각의 결과를 합성하여 프레임버퍼에 저장하는 프레임 버퍼 서브시스템부와, 상기 프레임 버퍼 서브시스템부의 데이터를 디스플레이로 보내서 디스플레이 리프레쉬(refresh)를 수행하는 디스플레이부를 포함하여 구성되어, 순서 비의존 투명성의 문제를 해결하면서도 고성능의 처리를 수행할 수 있다.

Description

순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기{parallel rendering machines supporting hardware accelerated order independent transparency}
본 발명은 3차원 컴퓨터 그래픽에 관한 것으로, 특히 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기에 관한 것이다.
3차원 컴퓨터 그래픽(3D computer graphics)은 멀티미디어 환경을 구축하기 위한 가장 핵심적인 연구 분야로서, 최근 들어 3차원 그래픽 분야가 질적으로나 양적으로 크게 팽창하고 있다.
비교적 저가의 성능이 우수한 그래픽 가속기로 M. Oka and M. Suzuoki, "Designing and programming the emotion engine,"IEEE Micro, vol. 19, no. 6, pp. 20-28, Nov. 1999.와, J. McCormack, R. McNamara, C. Cianos, N. P. Jouppi, T, Dutton, J. Zurawski, L. Seiler, and K. Corell, "Implementing Neon : a 256-bit graphics accelerator,"IEEE Micro, vol. 19, no. 2, pp. 58-69, April 1999.와, 그리고 A. Wolfe and D. B. Noonburg, "A superscalar 3D graphics engine," Inproceedings of MICRO 32, pp. 50-61, 1999.등에 의해 발표된바 있다.
이러한 경향은 반도체 분야에 획기적인 발전으로 인하여 한 개의 칩에 집적할 수 있는 게이트 수가 커짐에 따라 원칩화 된 고성능 3차원 그래픽 가속기의 구현이 가능해 졌다.
그러나 가상현실이나 의료영상분야, 그리고 CAD분야에서 현실감 있는 영상을 제공해주기 위해서는 수백만 개의 다각형(polygon)으로 구성된 3차원 모델 데이터를 처리해야 하는데, 이러한 모델은 초당 30프레임을 처리해주기 위해서 초당 수천에서 수억 개의 다각형(polygon)이 처리가능 한 하드웨어가 필요하다. 그리고 현재의 기술력으로 이를 가능하게 하기 위해서는 수십에서 수백 개의 프로세서를 필요로 한다.
따라서 현재 획기적으로 발전하는 3차원 그래픽 프로세서 여러 개를 병렬로 구성하여 병렬 렌더링을 수행하는 연구가 필수적이다.
그리고 최근 연구되고 있는 병렬 렌더링 가속기 구조로는 S. Molnar, M. Cox, M. Ellsworth, H. Fuchs, "A sorting classification of parallel rendering,"IEEE Computer Graphics and Applications, vol. 14, no. 4, pp. 23-32, July 1994.에서 발표된바 있는 소트-퍼스트(sort-first) 구조, 소트-미들(sort-middle)구조, 그리고 소트-라스트(sort-last)구조로 살펴볼 수 있다.
상기 소트-퍼스트 구조는 입력 프리미티브들이 각각의 픽셀에 대한 정렬을 전처리 과정에서 수행하고, 기하학 처리와 레스터라이즈 처리를 픽셀에 대하여 병렬적으로 처리하는 구조이다. 이러한 구조는 프리미티브의 수가 증가할수록 전처리 과정에서의 처리량이 기하급수적으로 올라가기 때문에 큰 규모의 시스템에서는 적합하지 않다.
다음으로, 상기 소트-미들 구조는 기하학 처리를 객체 단위의 병렬로 수행하고, 레스터라이즈 처리를 픽셀 단위로 병렬 처리하는 방식이다. 이 구조는 K. Akeley, "RealityEngine graphics," In Proceedings of SIGGRAPH 93, pp. 108-116, Aug. 1993.와, J. Montrym and B. McClendon, "InfinityEngine graphics," InProceedings of SIGGRAPH '97, pp. 293-302, Aug. 1997.등에 발표되었으며, 현재 대부분의 상용 머신에 채택되고 있다. 그러나 기하학 처리부에서 처리된 데이터를 레스터라이져로 보낼 때 브로드케스트(broadcast) 방식을 사용하기 때문에 대역폭 문제로 인하여 확장성이 떨어진다.
마지막으로, 상기 소트-라스트 구조는 기하학 처리와 레스터라이즈 처리를 객체 단위로 병렬 수행하고, 병렬로 수행된 결과를 최종적으로 한 개의 이미지로 합성하는 방식이다. 이러한 방식은 기하학 처리와 레스터라이져 단위로 확장할 때, 선형적인 통신 네트워크를 사용할 수 있기 때문에 확장성이 뛰어나서 큰 규모의 그래픽 시스템에 적합한 구조로서, 이는 S. Nishimura and T. Kunii, "VC-1: A scalable graphics computer with virtual local frame buffers," InProceedings of SIGGRAPH '96, pp. 365-372, Aug. 1996.와, S. Molnar, J. Eyles, and J. Poulton, "PixelFlow: High-speed rendering using image composition" InProceedings of SIGGRAPH '92, pp. 231-240, July. 1992.와, J. Eyles, S. Molnar, J. Poulton, T. Greer, A. Lastra, N. England, and L. Westover "PixelFlow: The realization" InProceedings of SIGGRAPH/Eurographics Workshop on graphicshardware, pp. 57-68, Aug. 1997.와, 그리고 T. Ikedo and J. Ma, "The Truga001: A scalable rendering processor,"IEEE computer and graphics and applications, vol. 18, no. 2, pp. 59-79, March 1998.등에서 발표된 영상 합성 구조(image composition architecture)가 가장 대표적인 구조이다.
도 1 은 상기 대표적인 영상 합성 구조로 구성된 그래픽 시스템을 나타낸 도면이다.
도 1을 보면, 그래픽 시스템은 크게 렌더링 처리부(11), 로컬 프레임 버퍼(12)로 구성된 서브영상 발생부(subimage generation)(10)와, 영상 합성기(21), 전역 프레임 버퍼(22)로 구성된 영상 합성부(image composition)(20)와, 디스플레이부(30)로 구성된다.
그리고 전체 모델에 대한 다수개의 프리미티브들이 각각의 렌더링 처리부(11)에 나누어져서 할당되며, 이 할당된 프리미티브들(제 1 PE ~ 제 n PE)은 호스트 컴퓨터로부터 각각의 렌더링 처리부(11)로 전송된다.
이와 같이 구성된 그래픽 시스템을 도면을 통해 상세히 살펴보면 다음과 같다.
상기 서브영상 발생부(10)는 지오메트리 처리부와 레스터라이즈 처리부의 쌍으로 구성된 렌더링 처리부(11)와 로컬 프레임 버퍼(12)로 이루어지며, 상기 렌더링 처리부(11)는 각각에 할당된 3차원 모델 데이터에 대한 렌더링을 수행 및 픽셀을 생성하고 픽셀에 대한 결과를 전체 스크린 크기를 갖는 해당 로컬 프레임 버퍼(12)에 저장한다.
이때 상기 로컬 프레임 버퍼(12)의 량을 줄이는 방식으로 S. Nishimura and T. Kunii, "VC-1: A scalable graphics computer with virtual local frame buffers," In Proceedings of SIGGRAPH '96, pp. 365-372, Aug. 1996.에서는 가상메모리 기법을 이용하는 방식이 제안되기도 하였다.
이어 상기 영상 합성부(20)는 상기 로컬 프레임 버퍼(12)에 저장된 서브영상들을 한 개의 전체 스크린 크기의 전역 프레임 버퍼(22)에서 합성하여 디스플레이부(30)를 통해 디스플레이 한다.
이와 같이 상기 영상 합성부(20)에서 영상을 합성하는 방법으로는 크게 각각의 이미지 합성시 로컬 프레임 버퍼(12)를 이진 트리 형태로 합성하는 이진 트리 형태와, 로컬 프레임 버퍼(12)에 있는 데이터를 파이프라인 형태로 접근하여 합성하는 파이프라인 형태로 나눌 수 있다.
이때 상기 파이프라인 형태로 서브영상을 합성할 경우, CRT 스캔(scan)의 속도로 처리가능하고 또한, 구현이 간단하기 때문에 현재는 거의 대부분이 파이프라인 형태를 사용하고 있다.
이와 같이 호스트 컴퓨터로부터 전송되는 다수개의 프리미티브들을 처리하는 방식으로 객체순서(object order) 방식과 영상순서(image order) 방식으로 구분된다.
객체 순서 방식은 입력되는 프리미티브의 순서대로 기하학처리와 렌더링 과정을 거쳐서 디스플레이로 보내지는 방식이고, 영상순서 방식은 입력되는 프리미티브의 순서대로 처리하는 것이 아니라 영상의 위치 순서에 따라 해당위치에 속해있는 프리미티브를 처리하는 방식으로, J. D. Foley, A. Dam, S. K. Feiner, and J. F. Hughes,Computer Graphics, Principles and Practice, Second Edition, Addison-Wesley, Massachusetts, 1990.에 기술되어 있다.
이와 같은 처리 방식들은 각각의 특성으로 인하여 객체순서 방식은 고성능에 잇점이 있고, 영상 순서 방식은 저가격에 유리한 잇점이 있다.
따라서 상기 병렬 렌더링 가속기는 고성능을 위하여 거의 대부분이 객체순서 방식을 채택한 프로세서 여러 개를 병렬로 연결하여 사용한다.
상기 객체순서 방식과 영상순서 방식을 좀더 상세히 살펴보면 다음과 같다.
먼저, 객체순서 방식은 입력되는 프리미티브의 순서대로 처리하는 방식으로 고성능에 유리한 구조이지만, 은면 제거(hidden surface removal)를 위하여 전체화면(full screen)에 해당하는 깊이 버퍼(z-buffer) 및 색깔 버퍼를 가지고 있어야 한다.
그런데, 렌더링 과정과 디스플레이 리프레쉬(refresh)의 중첩 수행을 위하여 색깔 버퍼는 두 개를 필요로 하며, 이를 중첩 버퍼링(double buffering)이라고 한다.
이때 렌더링 과정에서 사용되어지는 프레임 버퍼를 제 1 프레임 버퍼(front frame buffer)라 하고, 디스플레이 리프레쉬에 사용되어지는 버퍼를 제 2 프레임 버퍼(back frame buffer)라고 한다.
이와 같은 객체순서 방식은 현재 발표되고 있는 대부분의 고성능을 위한 3차원 그래픽 가속기에 사용된다.
다음으로 영상순서 방식은 영상의 위치 순서에 따라 해당위치에 속해있는 프리미티브를 처리하는 방식으로, 한 위치점에서 관계되는 프리미티브들을 모두다 조사하여 색깔값을 계산하고 이를 모든 위치점까지 순차적으로 반복 수행하는 방식이다.
이는 기하학 처리된 프리미티브들에 대한 모든 정보를 가지고 있는 버퍼가 필요하며, 은면제거를 위해서는 전체화면을 필요로 하지 않고 일부의 화면만을 필요로 하기 때문에 고성능화보다는 저 가격에 유리하다.
이와 같은 영상순서 방식의 가장 대표적인 방법이 스캔라인 방법이다. 이는 기하학처리과정에서 모든 프리미티브들이 시점에 따라서 기하학 처리가 되고 스크린 위치로 옮겨지게 되면, 이에 대한 정보를 스캔라인 당 존재하는 버켓(bucket)에 저장한다.
이 버켓은 해당 스캔라인에 속하는 다각형(polygon)에 대한 정보를 모두 가지고 있으며, 이를 버켓 정렬(bucket sorting)이라고 한다. 이러한 버켓 정렬은 기하학 처리부 혹은 별도의 장치를 두어서 처리해주어야 하는 부분이다.
기하학 처리가 끝나고 모든 프리미티브에 대한 정보가 각 스캔라인 당 존재하는 버켓에 저장되면, 렌더링과정을 수행한다.
이 렌더링 과정은 정해진 스캔라인 순서로 진행되는데 그 예를 보면, 1번째 스캔라인으로부터 시작하여 마지막 n 번째 스캔라인으로 수행된다고 가정하고, 현재 처리되고 있는 스캔라인이 k 번째이고 k 번째 스캔라인이 스크린 상에서의 (x, y)의 위치가 (0, k)에서 시작하여 (m, k)라고 하면, 스캔라인 방식에서는 먼저 (0,k) 위치에 해당하는 프리미티브들을 버켓에서 찾아서 이들에 대한 비교를 통하여 이중 시점에 가장 가까운 프리미티브를 선정하여 최종 색깔값을 계산한다.
이러한 과정을 스캔라인은 마지막 위치인 (m, k)위치까지 수행하면 한 개의 스캔라인에 대한 렌더링 수행이 모두 끝나게 되며, 스캔라인에서의 렌더링된 정보는 디스플레이 리프레쉬에 사용되기 위하여 해당 프레임버퍼의 위치에 저장된다.
그 후에 다음 스캔라인에 해당하는 k+1 번째 스캔라인에 대하여 같은 과정을 처리한다. 이러한 과정을 전체 스캔라인에 대하여 수행한다.
그러나 상기 객체순서 방식은 고성능에 좋은 효율을 보이며 입력되는 프리미티브가 불투명한 경우에는 문제가 발생되지 않지만 투명한 프리미티브가 입력되어 불투명한 프리미티브와 겹치는 경우에 순서 의존(order dependent) 투명성에 문제가 발생된다.
이 순서 의존 투명성의 문제를 도면을 통해 상세히 살펴보면 다음과 같다.
도 2 는 순서 의존 투명성의 문제를 나타내기 위한 도면이다.
도 2를 보면, 프리미티브 A는 노란색이면서 투명한 것이고, B는 파란색이며 불투명하고, C는 빨간색이고 불투명하고, 시점에서부터의 깊이 값이 A<B<C 순이라 가정한다. 이때, 결론적으로 최종 색깔값을 살펴보면 노란색과 파란색이 합쳐진 색인 초록색이 되야 된다.
그런데, 프리미티브의 순서가 C, A, B의 순서로 입력 될 때, 객체순서 방식으로 처리하게 되면 다음과 같은 문제가 발생한다.
즉, 첫 번째 C 가 입력이 되면 현재 색깔 값은 빨간색이 되고, 다음으로 A가 입력되면 A가 투명하기 때문에 현재 색깔 값은 노란색과 빨간색이 합쳐진 색인 주황색이 된다. 그 후, B가 입력이 되면 현재 색깔이 주황색이고 A가 시점에 가장 가깝기 때문에 B는 버려져서 최종으로 주황색이 된다. 따라서, 순서 의존 문제가 발생하게 된다.
이를 해결할 수 있는 방법이 위에서 설명한 영상순서 방식을 사용하는 경우지만, 이는 고성능의 3차원 그래픽 가속기에서 사용하기에는 성능면에서 너무 떨어지기 때문에 현재 사용되고 있는 렌더링 가속기는 하드웨어적으로는 객체순서 방식만을 사용하고 있다.
그러나 현재 사용되고 있는 현실감 있는 3차원 그래픽 영상에는 대부분이 불투명한 프리미티브들이지만, 간혹 투명성을 내포한 프리미티브들이 일부 포함이 되어있다. 따라서, 위에서처럼 객체순서 방식만을 사용한다면 투명성을 내포한 프리미티브에 대한 처리 시 순서의존(order dependent) 문제가 발생하게 된다. 그래서 현재 이 순서 의존 문제를 소프트웨어적으로 해결하고 있지만, 이는 성능을 저하시키는 원인이 된다.
이와 같은 상기 객체순서 방식을 이용하는 병렬 렌더링 가속기를 도면을 참조하여 설명하면 다음과 같다.
도 3 은 종래기술에 따른 병렬 렌더링 가속기를 나타낸 도면이다.
도 3을 보면, 병렬 렌더링 가속기는 크게 렌더링 가속기 서브시스템부(rendering accelerator subsystem)(100)와, 프레임 버퍼 서브시스템부(frame buffer subsystem)(200)와, 디스플레이부(300)로 구성된다.
이때 상기 렌더링 가속기 서브시스템부(rendering acceleration subsystem)(100)는 N 개의 PE 처리부(110~140)로 각각 나누어져 있으며, 각각의 PE 처리부(110~140)는 할당된 프리미티브들을 렌더링하여 결과를 각각의 로컬 프레임 버퍼(230)로 출력한다.
이때 각각의 PE 처리부(110~140)는 기하학 처리를 수행하는 기하학 처리부(Geometry Engine : GE)(150)와, 객체순서 렌더링을 처리하는 객체순서 렌더링 처리부(Object Order Rendering Engine : ORE)(160)와, 메모리(170)로 크게 구성되어 있다.
이때 상기 메모리(170)는 3차원 가속을 위해 필요한 메모리 중 프레임 버퍼를 위한 메모리만을 제외한 것으로, 작업 메모리, 텍스쳐 메모리 등이 이에 속한다.
그리고 상기 프레임 버퍼 서브시스템부(200)는 각각의 PE 처리부(110~140)에 연결된 N 개의 로컬 프레임 버퍼(Local Frame Buffer : LFB)(230)와, 다수의 합성부가 파이프라인 형태로 구성된 파이프라인 영상 합성부(Pipeline Image Merger : PIM)(210)와, 전역 프레임 버퍼(Global Frame Buffer : GFB)(220)로 구성되어 있다.
상기 로컬 프레임 버퍼(230)는 해당 PE 처리부가 현재 프레임에 대하여 렌더링을 수행하는 동시에 이전 프레임에 대해서 렌더링이 끝난 데이터를 합성부(Merging Unit : MU)에 송신하기 위하여 제 1 로컬 프레임 버퍼(Front Local Frame Buffer : FLFB)와 제 2 로컬 프레임 버퍼(Back Local Frame Buffer : BLFB)로 이루어진 중첩 버퍼(double buffer)로 되어 있다.
그리고 상기 제 1 및 제 2 로컬 프레임 버퍼는 전체 스크린의 크기를 갖고 있는데, 이를 가상 메모리 기법을 사용하여 버퍼의 크기를 줄이는 방법으로 S. Nishimura and T. Kunii, "VC-1: A scalable graphics computer with virtual local frame buffers," InProceedings of SIGGRAPH '96, pp. 365-372, Aug. 1996.서 발표된바 있다.
상기 파이프라인 영상 합성부(210)는 N 개의 로컬 프레임 버퍼(230)의 제 2 로컬 프레임 버퍼를 각각의 픽셀에 대하여 파이프라인 형태로 합하여 전역 프레임 버퍼(220)로 보내는 역할을 한다.
이와 같이 구성된 병렬 렌더링 가속기의 동작을 실 예를 통해 상세히 살펴보면 다음과 같다.
먼저, 풀 스크린의 좌표가 (0, 0)부터 (l, m) 이라고 하고, 제 1 PE 처리부(110)의 제 1 로컬 프레임 버퍼(230)를 BLFB1, 제 2 PE 처리부(120)의 제 2 로컬 프레임 버퍼를 BLFB2, 그리고 제 n PE 처리부(140)의 제 n 로컬 프레임 버퍼를 BLFBn이라고 한다.
다음으로 제 1 PE 처리부(110)의 합성부를 MU1, 제 2 PE 처리부(120)의 합성부를 MU2, 그리고 제 n PR 처리부(140)의 합성부를 MUn이라고 하면 파이프라인 영상 합성부(210)의 수행은 다음과 같이 진행된다.
첫 번째 사이클에서 MU1은 BLFB1에서 스크린의 (0, 0)번째 해당하는 색깔값과 깊이값을 입력받고 이를 다음 MU2로 넘겨준다.
그리고 두 번째 사이클에서는 BLFB2에서 스크린의 (0, 0) 번째 해당하는 색깔값과 깊이값을 MU2로 넘겨준다.
MU2는 BLFB2에서 입력된 스크린의 (0, 0) 번째 해당하는 깊이값과 이전 사이클인 BLFB1에서 입력된 스크린의 (0, 0) 번째 해당하는 깊이값을 비교하여 깊이 값이 작은 번째에 해당하는 색깔값과 깊이값을 MU3으로 출력한다.
또한, MU1은 BLFB1에서 스크린의 (0, 1)번째 해당하는 색깔값과 깊이값을 입력받고 이를 다음 MU2로 넘겨준다.
이러한 형태로 수행이 되면 MUn에는 깊이값이 가장 작은 번째의 색깔값과 깊이값이 입력되고, 이 입력된 최종 색깔값을 전역 프레임 버퍼(220)에 보내준다.
이어 상기 전역 프레임 버퍼(220)의 내용은 최종적으로 디스플레이부(300)로 보내어 지며, 이때의 상기 전역 프레임 버퍼(220)는 영상 합성(image composition)과 디스플레이 리프레쉬를 동시에 수행하기 위하여 더블 버퍼(double buffer)로 구성되어 있다.
그리고 이와 같은 병렬 렌더링 가속기에서의 영상 합성에 따른 전체 파이프라인 수행을 도 4에서 보여주고 있다.
이상에서 설명한 종래 기술은 고성능을 위해 3차원 그래픽 영상의 대다수를 차지하는 불투명 프리미티브에 대해서만 하드웨어적으로 지원해주는 3차원 병렬 렌더링 가속기를 제시하고 있다. 그러나 현실감 있는 3차원 그래픽 영상을 생성하기 위해서는 투명성을 내포한 프리미티브를 표현해야 하기 때문에 3차원 그래픽 영상의 표현시 투명한 것과 불투명한 것이 혼재되어 있어 순서 비의존 투명성의 문제가 발생되며, 이를 해결하기 위해 소프트웨어적으로 처리하면 성능이 저하되는 문제가 발생된다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 현실감 있는 3차원 그래픽 영상을 생성하기 위해서 투명성을 내포한 프리미티브들을 하드웨어적으로 지원해주는 3차원 병렬 렌더링 가속기를 제공하는데 그 목적이 있다.
도 1 은 종래 기술에 따른 그래픽 시스템을 나타낸 도면
도 2 는 종래 기술에 따른 순서 의존 투명성의 문제를 나타내기 위한 실시예
도 3 은 종래기술에 따른 병렬 렌더링 가속기를 나타낸 도면
도 4 는 도 3의 병렬 렌더링 가속기에 영상 합성에 따른 전체 파이프라인 수행을 나타낸 도면
도 5 는 본 발명에 따른 병렬 렌더링 가속기를 나타낸 도면
도 6 은 도 5의 병렬 렌더링 가속기에서 프레임에 대하여 수행되는 파이프라인을 나타낸 도면
도 7 은 본 발명에 따른 병렬 렌더링 가속기의 순서 비의존 투명성을 제공하는 실시예
도 8 은 본 발명에 따른 병렬 렌더링 가속기의 다른 실시예
*도면의 주요부분에 대한 부호의 설명
100 : 렌더링 가속기 서브시스템부 110~140, 180, 180' : PE 처리부
150 : 기하학 처리부 160 : 객체순서 렌더링 처리부
170 : 메모리 190 : 영상순서 렌더링 처리부
200 : 프레임 버퍼 서브시스템부 210 : 파이프라인 영상 합성부
220 : 전역 프레임 버퍼 230, 240 : 로컬 프레임 버퍼
300 : 디스플레이부
상기와 같은 목적을 달성하기 위한 본 발명에 따른 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기의 특징은 객체순서 방식을 이용하여 입력되는 프리미티브들을 렌더링하는 다수개의 객체 PE 처리부와 영상순서 방식을 이용하여 입력되는 프리미티브들을 렌더링하는 하나 이상의 영상 PE 처리부로 구성된 렌더링 가속기 서브시스템부와, 상기 렌더링 가속기 서브시스템부에서 렌더링된 각각의 결과를 합성하여 프레임버퍼에 저장하는 프레임 버퍼 서브시스템부와, 상기 프레임 버퍼 서브시스템부의 데이터를 디스플레이로 보내서 디스플레이 리프레쉬(refresh)를 수행하는 디스플레이부를 포함하여 구성되는데 있다.
이때 상기 객체 PE 처리부는 기하학 처리를 수행하는 기하학 처리부, 객체순서 렌더링을 처리하는 객체순서 렌더링 처리부, 3차원 가속을 위해 필요한 메모리로 구성되고, 상기 영상 PE 처리부는 기하학 처리를 수행하는 기하학 처리부, 영상순서 렌더링을 처리하는 영상순서 렌더링 처리부, 3차원 가속을 위해 필요한 메모리로 구성되는데 다른 특징이 있다.
그리고 상기 영상 PE 처리부가 두 개 이상이면, 전체 스캔라인에 대하여 상기 영상순서 렌더링 처리부에 인터리빙(interleaving) 되어 할당되는데 또 다른 특징이 있다.
상기 프레임 버퍼 서브 시스템부는 다수개의 객체 PE 처리부에서 렌더링된 결과가 저장되는 다수개의 객체 로컬 프레임 버퍼와, 다수개의 영상 PE 처리부에서 상기 다수개의 객체 PE 처리부의 객체 로컬 프레임 버퍼의 내용을 합성하여 저장하는 다수개의 영상 로컬 프레임 버퍼와, 상기 다수개의 객체 및 영상 로컬 프레임 버퍼에 각각 저장된 결과를 파이프라인 형식으로 처리하여 영상을 합성하는 파이프라인 영상 합성부와, 상기 파이프라인 영상 합성부에서 합성된 영상을 디스플레이 리프레쉬하는 전역 프레임 버퍼를 포함하여 구성되는데 또 다른 특징이 있다.
상기 객체 로컬 프레임 버퍼는 해당 객체 PE 처리부가 현재 프레임에 대하여 렌더링을 수행하는 제 1 로컬 프레임 버퍼와, 상기 제 1 로컬 프레임 버퍼에서의 렌더링 수행과 동시에 이전 프레임에 대해서 렌더링이 끝난 데이터를 상기 파이프라인 영상 합성부에 송신하는 제 2 로컬 프레임 버퍼(Back Local Frame Buffer :BLFB)로 구성되는 더블 버퍼이고, 상기 영상 로컬 프레임 버퍼는 싱글 버퍼로 구성되는데 또 다른 특징이 있다.
상기 파이프라인 영상 합성부는 다수개의 객체 로컬 프레임 버퍼에 저장된 프리미티브의 각 픽셀에 대하여 파이프라인 형태로 처리하는 다수개의 제 1 합성부와, 상기 제 1 합성부에서 출력되는 결과값과 영상 PE 처리부에 입력되는 프리미티브와 영상순서 렌더링 처리를 수행한 후, 그 결과를 상기 전역 프레임 버퍼로 보내는 하나 이상의 제 2 합성부를 포함하여 구성되는데 또 다른 특징이 있다.
상기 객체 PE 처리부는 불투명한 프리미티브를 렌더링하고, 상기 영상 PE 처리부는 투명한 프리미티브를 렌더링하며 투명한 프리미티브가 없는 경우 불투명 프리미티브를 렌더링하는데 또 다른 특징이 있다.
본 발명의 특징에 따른 작용은 객체순서 렌더링 방식과 영상순서 렌더링 방식이 혼용된 병렬 렌더링 가속기를 구성함으로써, 순서 비의존 투명성의 문제가 해결된 고성능 병렬 렌더링 가속기를 구현할 수 있다.
본 발명의 다른 목적, 특성 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 5 는 본 발명에 따른 병렬 렌더링 가속기를 나타낸 도면이다.
도 5를 보면, 병렬 렌더링 가속기는 크게 렌더링 가속기서브시스템부(rendering accelerator subsystem)(100)와, 프레임 버퍼 서브시스템부(frame buffer subsystem)(200)와, 디스플레이부(300)로 구성된다.
이때 상기 렌더링 가속기 서브시스템부(rendering acceleration subsystem)(100)는 N 개의 PE 처리부(110~130)로 각각 나누어져 있으며, 제 1 ~ n-1 PE 처리부(110~130)는 할당된 불투명 프리미티브들을 렌더링하고, 제 n PE 처리부(180)는 할당된 투명 프리미티브들을 렌더링하여 그 결과를 각각의 로컬 프레임 버퍼(230)(240)로 출력한다.
이때 각각의 PE 처리부(110~130)(180)는 기하학 처리를 수행하는 기하학 처리부(Geometry Engine : GE)(150)와, 객체순서 렌더링을 처리하는 객체순서 렌더링 처리부(Object Order Rendering Engine : ORE)(160) 또는 영상순서 렌더링을 처리하는 영상순서 렌더링 처리부(Image Order Rendering Engine : IRE)(180)와, 메모리(170)로 크게 구성된다.
이때 상기 메모리(170)는 3차원 가속을 위해 필요한 메모리 중 프레임 버퍼를 위한 메모리만을 제외한 것으로, 작업 메모리, 텍스쳐 메모리 등이 이에 속한다.
그리고 상기 프레임 버퍼 서브시스템부(200)는 각각의 PE 처리부(110~140)에 연결된 N 개의 로컬 프레임 버퍼(Local Frame Buffer : LFB)(230)(240)와, 파이프라인 영상 합성부(Pipeline Image Merger : PIM)(210)와, 전역 프레임 버퍼(Global Frame Buffer : GFB)(220)로 구성되어 있다.
상기 로컬 프레임 버퍼(230)는 해당 PE 처리부가 현재 프레임에 대하여 렌더링을 수행하는 동시에 이전 프레임에 대해서 렌더링이 끝난 데이터를 합성부(Merging Unit : MU)에 송신하기 위하여 제 1 로컬 프레임 버퍼(Front Local Frame Buffer : FLFB)와 제 2 로컬 프레임 버퍼(Back Local Frame Buffer : BLFB)의 중첩 버퍼(double buffer)로 되어 있으며, 상기 영상순서 렌더링 처리에 따른 로컬 프레임 버퍼(240)는 싱글 버퍼(single buffer)로 되어 있다.
그리고 상기 파이프라인 영상 합성부(210)는 N-1 개인 로컬 프레임 버퍼(230)의 제 2 로컬 프레임 버퍼를 각각의 픽셀에 대하여 파이프라인 형태로 합하고, 이 결과값과 제 n PE 처리부(180)에서 입력되는 투명 프리미티브를 가지고 영상순서 렌더링 처리를 수행한 후, 그 결과를 전역 프레임 버퍼(220)로 보낸다.
이와 같이 구성된 본 발명에 따른 병렬 렌더링 가속기의 동작을 종래 기술에 따른 도 3과 비교하여 상세히 설명하면 다음과 같다.
먼저, 종래 기술에 따른 도 3과의 큰 차이점은 제 n PE 처리부(180)에 영상순서 렌더링 처리부(190)가 채택되었고, 또한 제 n PE 처리부(180)에서 로컬프레임 버퍼(240)와 합성부간에 읽기(read) 또는 쓰기(write) 관계라서 로컬프레임 버퍼(240)와 합성부의 역할이 다소 다르다는 것이다.
다시 말해서, 제 1 부터 제 n-1 PE 처리부(110~130)는 객체순서 렌더링 방식이고 제 n PE 처리부(180)는 영상순서 렌더링 방식이다.
n-1 개의 객체순서 렌더링 처리부(160)에서는 불투명한 프리미티브들을 나누어 처리하고, 1개의 영상순서 렌더링 처리부(190)는 n-1 개의 객체순서 처리부에서 계산된 프레임의 정보와 투명한 프리미티브들을 가지고 영상순서 렌더링을 처리하여 최종적으로 투명성이 가미된 영상을 전역 프레임 버퍼(220)로 최종 출력한다.
이때 영상순서 렌더링 처리부(190)는 최종적으로 투명성이 가미된 영상을 효과적으로 생성해내기 위해서 n-1 번째 합성부에서의 출력을 스크린 순서대로 입력하고, 영상순서 렌더링 처리는 스크린의 순서대로 수행되며, 전역 프레임 버퍼(220)로의 출력 또한 스크린 순서대로 진행된다.
이때 투명성 프리미티브들이 존재하지 않고 모두 불투명 프리미티브인 경우는 객체 순서 렌더링 처리부 뿐만아니라 영상순서 렌더링 처리부에서도 불투명 프리미티브를 처리함으로써, 3차원 그래픽 가속기의 고성능화를 도모한다.
그러나 본 명세서에서는 투명성 프리미티브가 있는 것을 기준으로 작성한다.
그럼 수행 과정을 상세히 살펴보면 먼저, 전체 모델에 대한 프리미티브 중 불투명한 것은 객체순서 방식인 제 1 부터 제 n-1 PE 처리부(110~130)에 나누어 할당이 되고, 투명한 것은 영상순서 방식인 제 n PE 처리부(180)에 할당된다.
그러면 제 1 부터 제 n-1 PE 처리부(110~130)에서는 기하학 처리를 거쳐서 객체순서 렌더링을 수행한다. 그리고 제 n PE 처리부(180)는 기하학 처리를 거쳐서 버켓 정렬을 수행한다.
처리 결과로, 제 1 부터 제 n-1 PE 처리부(110~130)의 로컬 프레임 버퍼(230)에는 렌더링 처리된 결과가 자체 메모리(170)에 저장이 되어 있고, 제 n PE 처리부(180)의 버켓에는 투명한 프리미티브의 정렬 된 결과가 자체 메모리(170)에 저장되고 이를 제 1 로컬 프레임 버퍼(FLFB)로 전달한다.
그 후에, 제 1 부터 제 n-1 PE 처리부(110~130)의 제 2 로컬 프레임버퍼(BLFB)(230)에 저장되어 있는 데이터를 파이프라인 형태로 1 번째부터 n-1번째의 합성부를 통하여 합성한다.
이어 상기 합성부를 통해 합성된 결과는 스크린의 (0, 0)번째 위치에서부터 마지막 위치인 (l, m)위치까지 순차적으로 생성되며, 이 값은 n-1 번째 합성부를 통하여 n 번째 로컬 프레임 버퍼(240)로 입력된다. 이와 동시에, 제 n PE 처리부(180)의 영상순서 렌더링 처리부(190)에서는 입력되는 투명 프리미티브를 영상순서 렌더링한다.
이때 영상순서 렌더링 수행은 로컬 프레임 버퍼(230)에서 입력되는 불투명 한 프리미티브의 최종 결과와 영상순서 렌더링을 통해 버켓에 입력된 투명한 프리미티브에 대한 정보를 가지고 최종적으로 투명성이 가미된 영상을 스크린의 (0, 0)번째 위치에서부터 마지막 위치인 (l, m)위치까지 순차적으로 생성한다.
이때, 영상순서 렌더링 처리부에서 스캔라인 방식을 사용한다면, 스캔라인당 순차적으로 생성된다. 즉, 현재 k 번째 스캔라인을 처리한다고 하면 (0, k)부터 (l, k)까지 순차적으로 생성되며, 이러한 과정을 k가 0부터 m 까지 수행한다.
그리고 스크린의 위치에 순차적으로 생성된 최종 결과는 영상순서 렌더링 처리부(190)로부터 바로 제 1 전역 프레임 버퍼(FGFB)(220)로 보내어 진다. 이어 최종적으로 제 2 전역 프레임 버퍼(BGFB)(220)에서 디스플레이 리프레쉬를 수행하여 디스플레이부(300)에 디스플레이 한다.
이때 상기 제 1 및 제 2 전역 프레임 버퍼(220)도 상기 로컬 프레임 버퍼(230)와 마찬가지로 중첩 버퍼이다.
이와 같은 수행동작을 프레임에 대하여 수행되는 파이프라인으로 설명하면 다음 도 6과 같다
도 6을 참조하여 설명한다. 먼저 현재 렌더링 가속 처리되고 있는 프레임이 n 이면, n 번째 프레임에 대하여 제 1 부터 제 n-1 PE 처리부(110~130)까지는 불투명한 프리미티브에 대하여 객체순서 렌더링을 수행하고, 제 n PE 처리부(180)에서는 투명한 프리미티브에 대하여 버켓 정렬을 수행한다.
이와 동시에 n-1 프레임에 대해서는 1 번째부터 n-1 번째 로컬프레임 메모리(230)에 저장된 렌더링된 데이터에 대하여 파이프라인 영상 합성부(210)를 거쳐 영상 합성을 수행하고, 그 수행된 결과는 n 번째의 로컬프레임 버퍼(240)에 스크린 순서대로 저장된다.
이어 제 n PE 처리부(180)는 n 번째 로컬프레임 버퍼(240)에 저장된 정보와 버켓에 저장된 정보를 사용하여 영상순서 렌더링을 수행하며, 결과를 전역 프레임 버퍼(220)로 바로 보낸다.
그리고 동시에 n-2 프레임에 대해서는 전역 프레임 버퍼(220)의 정보를 디스플레이 리프레쉬를 수행한다.
이와 같은 수행동작을 통한 본 발명에 따른 병렬 렌더링 가속기의 순서 비의존 투명성을 제공하는 객체순서 렌더링 처리부와 영상순서 렌더링 처리부 입력 및 결과값과 최종 결과 값을 실 예를 통해 살펴보도록 한다.
도 7과 같이 한 개의 픽셀에 투명한 프리미티브와 불투명한 프리미티브가 섞여있을 경우, 주어진 시점에 대하여 한 개의 픽셀에 걸쳐있는 프리미티브의 픽셀값들을 A, B, C, D, E, F, 그리고 G 가 있다고 하고, A는 노란색에 투명하고, B는 파란색에 불투명하고, C는 빨간색에 투명하고, D는 파란색에 불투명하고, E는 노란색에 불투명하고, F는 검은색에 불투명하고, G는 녹색에 불투명하다고 가정한다.
이때 제 1 부터 n-1 PE 처리부(110~130)에서는 불투명한 프리미티브인 파란색의 B, D, 노란색의 E, 그리고 검정색의 F를 객체순서 렌더링 방식으로 파이프라인 영상 합성부(210)를 통해 처리하고 최종적으로 파란색을 출력한다.
그리고 제 n 렌더링 처리부(180)는 앞에서 계산된 불투명한 파란색과, 입력된 투명한 프리미티브인 노란색 A, 빨간색 C, 그리고 노란색 E를 영상순서 렌더링을 수행하여 최종적으로 녹색을 출력한다.
이와 같은 방식을 사용했을 경우, 도 3에서 나타낸 종래의 구조와 도 5에서 나타낸 본 발명에 따른 구조간에 처리속도를 살펴보도록 한다. 이는 투명한 프리미티브를 처리함에 있어 너무 많은 처리 시간이 소요되면 실용화에 큰 문제로 발생되기 때문이다.
먼저, 파이프라인 영상 합성부(210)에 따른 데이터의 전송을 4개의 파이프라인으로 가정한다.
도 3에서 나타낸 종래 구조에 따른 한 개의 전체 이미지 합성 처리 시간을 살펴보면 다음과 같다.
한 개의 전체 이미지를 합성하는데 필요한 시간 Tm은 S. Nishimura and T. Kunii, "VC-1: A scalable graphics computer with virtual local frame buffers," InProceedings of SIGGRAPH '96, pp. 365-372, Aug. 1996.에 발표된 것을 토대로수학식 1과 같으며, 다음과 같다.
Tm = (M+B)·N·t + 4·n·t
수학식 1에서 M과 N은 각각 수평 및 수직 주사선의 개수이고, t 는 PIM의 클럭 주기, B는 GFB에서 스캔라인당 소요되는 PIM 클럭수, 그리고 n은 렌더링 시스템의 개수이다.
그리고 각각의 값은 M = 640, N = 480, n = 16, B = 20, t = 80 로 정의되어 있다.
따라서 시간 Tm = 25.3 msec이다.
그런데, 최근에는 스크린 해상도가 높아지고 버스 및 반도체의 공정의 발달로 파이프라인 영상 합성부(210)의 클럭 속도가 크게 향상될 수 있다. 또한, n 은 Tm에 미치는 영향이 매우 미미하다.
따라서, 위의 매개변수를 다시 정의하면, M = 1280, N = 1024, t = 20 으로 충분하게 정의할 수 있다.
이때의 Tm = 26.7 msec이다.
이는 초당 30 프레임 이상을 제공해줄 수 있는 정도이며, 최근에 클럭 속도를 더욱더 향상시키는 방법들이 발표되고 있어서 Tm은 더욱더 단축될 것이라고 예상된다.
본 발명에 따른 한 개의 전체 이미지 합성 처리 시간을 살펴보면 다음과 같다.
앞에서 설명한 바와 같이 도 5의 렌더링 시스템의 동작은 다음의 3가지 단계로 나뉜다.
첫 번째 단계는 1번째부터 n-1 번째 로컬 프레임 버퍼(230)의 내용이 합성된 결과가 영상 순서로 n번째 로컬 프레임 버퍼(240)로 입력된다.
그리고 두 번째 단계는 상기 로컬 프레임 버퍼(240)에 입력된 불투명한 프리미티브가 렌더링된 결과와, 버켓 정렬된 투명한 프리미티브들에 대한 정보를 가지고 최종적으로 영상순서 렌더링을 수행한다. 영상순서 렌더링은 스캔라인 알고리즘을 사용한다고 가정한다.
마지막으로 세 번째 단계는 두 번째 단계에서 생성된 스캔라인 당 렌더링된 결과를 스캔라인 당 전역 프레임 버퍼(220)로 출력한다.
이때, 두 번째 단계에서 현재 렌더링할 스캔라인에 대한 로컬프레임 버퍼(240)의 정보가 파이프라인 영상 합성부(210)를 통하여 입력된 후에야 영상순서 렌더링을 수행할 수 있다.
이와 같이 n 번째 로컬프레임 버퍼(240)에 다수의 불투명 프리미티브가 렌더링된 결과가 입력되기까지의 시간을 Tin 이라고 한다. 또한, 영상순서 렌더링에 따라 마지막 스캔라인이 렌더링된 후 데이터를 전역 프레임 버퍼(220)로 보내주어야 하는데 이 시간을 Tout 이라고 한다.
이때 종래와 동일하게 전체 시스템이 초당 30프레임을 처리한다고 하면, 일반적으로 한 개의 프레임에 대하여 영상순서 렌더링 처리부가 수행될 수 있는 시간이 33.3 msec이므로, 여기에 상기 Tin과 Tout을 빼면 실제 영상순서 렌더링 처리부가 수행할 수 있는 시간을 알 수 있다.
즉, 실제 영상순서 렌더링 처리부의 수행시간은 33.3 msec - Tin - Tout 이다.
이때 Tin은 (M+B)·t + 4·(n-1)·t가 되고, Tout은 (M+B)·t 정도가 된다.
결국, Tin = 0.038ms 이고 Tout = 0.026ms이다.
이런 결과로 볼 때 Tin과 Tout으로 인한 성능의 영향은 매우 미미하다고 볼 수 있다.
그리고 도 5 는 영상순서 렌더링 처리부가 제 n PE 처리부(180) 1개만이 존재하는 구조이다.
따라서 투명한 프리미티브가 다수 존재할 경우에는 1개의 영상순서 렌더링 처리부가 처리해야할 량이 커지게 되고 이로 인하여 전체 성능에 병목현상을 가져올 수 있다.
이를 해결하기 위해 본 발명은 도 8과 같이 n개의 객체순서 렌더링 PE 처리부(110)(130)와, r개의 영상순서 PE 처리부(180)(180')가 병렬로 연결된 병렬 렌더링 가속기 구조이다.
이와 같은 병렬 렌더링 가속기의 동작을 살펴보면 다음과 같다.
먼저, r개의 영상순서 PE 처리부(180)(180')에 투명한 프리미티브들이 나누어져 할당된다.
이때 영상순서 렌더링 처리부가 병렬로 연결이 가능한 이유는 영상순서 렌더링 처리에서는 일정영상 구역간에 병렬성이 존재하기 때문이다. 예를 들어, 스캔라인(scanline) 알고리즘인 경우 스캔라인 당 병렬성이 존재한다.
좀더 상세히 설명하면, r개의 영상순서 PE 처리부(180)(180')가 존재하고, 스캔라인 알고리즘을 채택하였을 경우 전체 스캔라인에 대하여 영상순서 PE 처리부(180)(180')에 인터리빙(interleaving) 되어 할당된다.
즉, rk개의 스캔라인이 존재하는 경우 제 n+1 PE 처리부(180)는 0, r, 2r, ..., (r-1)k 번째 스캔라인을 처리하고, 다음의 제 n+2 PE 처리부는 1, r+1, 2r+1, ..., (r-1)k + 1번째 스캔라인을 처리하게 된다.
따라서 n 번째 합성부에서 출력되는 불투명한 프리미티브가 처리된 결과는 n+1 번째 합성부로 입력되고, 이때 n 번째 합성부에서는 출력되는 데이터 중 제 n+1 PE 처리부에서 처리되어질 스캔라인에 해당하는 것만을 n+1 번째 로컬 프레임 버퍼로 보내고 나머지는 다음 번째인 n+2번째 합성부로 그냥 통과시킨다.
이러한 방식으로 r개의 영상순서 렌더링 처리부의 로컬 프레임 버퍼(240)에는 처리할 스캔라인에 해당하는 불투명한 프리미티브의 렌더링 처리된 결과가 존재하게 된다.
따라서 상기 r 개의 로컬 프레임 버퍼(240)에 저장된 각 정보와 각각의 버켓 정보를 가지고 각각 영상순서 렌더링 처리부에 주어진 스캔라인에 대하여 영상순서 렌더링을 수행한다.
그리고 r개의 영상순서 PE 처리부(180)(180')에 영상순서 렌더링된 최종 결과는 각각의 합성부를 통하여 인터리빙(interleaving) 형태로 전역 프레임 버퍼(220)로 보내어 지고, 이 전역 프레임 버퍼(220)는 최종적으로 디스플레이 리프레쉬를 수행하여 디스플레이부(300)에 디스플레이한다.
이상에서 설명한 바와 같은 본 발명에 따른 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기는 객체순서 렌더링 방식과 영상순서 렌더링 방식이 혼용된 병렬 렌더링 가속기를 구성함으로써, 두 방식의 장점만을 취득하여 순서 비의존 투명성의 문제를 해결하면서도 고성능의 처리를 수행할 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (8)

  1. 객체순서 방식을 이용하여 입력되는 프리미티브들을 렌더링하는 다수개의 객체 PE 처리부와 영상순서 방식을 이용하여 입력되는 프리미티브들을 렌더링하는 적어도 하나 이상의 영상 PE 처리부로 구성된 렌더링 가속기 서브시스템부와,
    상기 렌더링 가속기 서브시스템부에서 렌더링된 각각의 결과를 합성하여 프레임버퍼에 저장하는 프레임 버퍼 서브시스템부와,
    상기 프레임 버퍼 서브시스템부의 데이터를 디스플레이로 보내서 디스플레이 리프레쉬(refresh)를 수행하는 디스플레이부를 포함하여 구성되는 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
  2. 제 1 항에 있어서,
    상기 객체 PE 처리부는 기하학 처리를 수행하는 기하학 처리부, 객체순서 렌더링을 처리하는 객체순서 렌더링 처리부, 3차원 가속을 위해 필요한 메모리로 구성되고,
    상기 영상 PE 처리부는 기하학 처리 및 버켓정렬을 수행하는 기하학 처리부, 영상순서 렌더링을 처리하는 영상순서 렌더링 처리부, 3차원 가속을 위해 필요한 메모리로 구성되는 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
  3. 제 2 항에 있어서,
    상기 메모리는 프레임 버퍼를 위한 메모리가 제외된 작업 메모리 및 텍스쳐 메모리인 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
  4. 제 2 항에 있어서,
    상기 영상 PE 처리부가 두 개 이상이면, 전체 스캔라인에 대하여 상기 영상순서 렌더링 처리부에 인터리빙(interleaving) 되어 할당되는 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
  5. 제 1 항에 있어서, 상기 프레임 버퍼 서브 시스템부는
    다수개의 객체 PE 처리부에서 렌더링된 결과가 저장되는 다수개의 객체 로컬 프레임 버퍼와,
    다수개의 영상 PE 처리부에서 상기 다수개의 객체 PE 처리부의 객체 로컬 프레임 버퍼의 내용을 합성하여 저장하는 다수개의 영상 로컬 프레임 버퍼와,
    상기 다수개의 객체 및 영상 로컬 프레임 버퍼에 각각 저장된 결과를 파이프라인 형식으로 처리하여 영상을 합성하는 파이프라인 영상 합성부와,
    상기 파이프라인 영상 합성부에서 합성된 영상을 디스플레이 리프레쉬하는 전역 프레임 버퍼를 포함하여 구성되는 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
  6. 제 5 항에 있어서, 상기 객체 로컬 프레임 버퍼는
    해당 객체 PE 처리부가 현재 프레임에 대하여 렌더링을 수행하는 제 1 로컬 프레임 버퍼와, 상기 제 1 로컬 프레임 버퍼에서의 렌더링 수행과 동시에 이전 프레임에 대해서 렌더링이 끝난 데이터를 상기 파이프라인 영상 합성부에 송신하는 제 2 로컬 프레임 버퍼(Back Local Frame Buffer : BLFB)로 구성되는 더블 버퍼이고,
    상기 영상 로컬 프레임 버퍼는 싱글 버퍼로 구성되는 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
  7. 제 5 항에 있어서, 상기 파이프라인 영상 합성부는
    다수개의 객체 로컬 프레임 버퍼에 저장된 프리미티브의 각 픽셀에 대하여 파이프라인 형태로 처리하는 다수개의 제 1 합성부와,
    상기 제 1 합성부에서 출력되는 결과값과 영상 PE 처리부에 입력되는 프리미티브와 영상순서 렌더링 처리를 수행한 후, 그 결과를 상기 전역 프레임 버퍼로 보내는 하나 이상의 제 2 합성부를 포함하여 구성되는 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
  8. 제 1 항에 있어서,
    상기 객체 PE 처리부는 불투명한 프리미티브를 렌더링하고, 상기 영상 PE 처리부는 투명한 프리미티브를 렌더링하며 투명한 프리미티브가 없는 경우 불투명 프리미티브를 렌더링하는 것을 특징으로 하는 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기.
KR10-2001-0003781A 2001-01-26 2001-01-26 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기 KR100420856B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0003781A KR100420856B1 (ko) 2001-01-26 2001-01-26 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0003781A KR100420856B1 (ko) 2001-01-26 2001-01-26 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기

Publications (2)

Publication Number Publication Date
KR20020063057A KR20020063057A (ko) 2002-08-01
KR100420856B1 true KR100420856B1 (ko) 2004-03-02

Family

ID=27692489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0003781A KR100420856B1 (ko) 2001-01-26 2001-01-26 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기

Country Status (1)

Country Link
KR (1) KR100420856B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7714870B2 (en) * 2003-06-23 2010-05-11 Intel Corporation Apparatus and method for selectable hardware accelerators in a data driven architecture
KR100980449B1 (ko) * 2007-12-17 2010-09-07 한국전자통신연구원 병렬 전역조명 렌더링 방법 및 시스템
KR102116976B1 (ko) 2013-09-04 2020-05-29 삼성전자 주식회사 렌더링 방법 및 장치
CN111476870B (zh) * 2020-02-29 2022-08-30 新华三大数据技术有限公司 一种对象渲染方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022847A (ko) * 1995-10-31 1997-05-30 김광호 그래픽을 위한 스팬렌더링방법 및 장치
JPH1031755A (ja) * 1996-07-15 1998-02-03 Sharp Corp 3次元図形隠面消去処理装置
KR19980037122A (ko) * 1996-11-20 1998-08-05 양승택 멀티미디어 데이타의 입출력 기능을 갖는 3차원 그래픽 가속 장치 및 그 데이타 처리 방법
JPH10208076A (ja) * 1997-01-06 1998-08-07 Hewlett Packard Co <Hp> 高速α透明性レンダリング法
KR20010015841A (ko) * 1997-12-12 2001-02-26 엘링 블로메 Σδ변조기-제어 위상동기루프 회로 및 관련 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022847A (ko) * 1995-10-31 1997-05-30 김광호 그래픽을 위한 스팬렌더링방법 및 장치
KR0165464B1 (ko) * 1995-10-31 1999-01-15 김광호 그래픽을 위한 스팬렌더링방법 및 장치
JPH1031755A (ja) * 1996-07-15 1998-02-03 Sharp Corp 3次元図形隠面消去処理装置
KR19980037122A (ko) * 1996-11-20 1998-08-05 양승택 멀티미디어 데이타의 입출력 기능을 갖는 3차원 그래픽 가속 장치 및 그 데이타 처리 방법
JPH10208076A (ja) * 1997-01-06 1998-08-07 Hewlett Packard Co <Hp> 高速α透明性レンダリング法
KR20010015841A (ko) * 1997-12-12 2001-02-26 엘링 블로메 Σδ변조기-제어 위상동기루프 회로 및 관련 방법

Also Published As

Publication number Publication date
KR20020063057A (ko) 2002-08-01

Similar Documents

Publication Publication Date Title
US11941757B2 (en) Rendering views of a scene in a graphics processing unit
EP0870282B1 (en) Method for a span and subspan sorting rendering system
KR100478767B1 (ko) 그래픽 렌더링 방법, 컴퓨터 그래픽 파이프라인용 상태 감시 장치 및 3차원 그래픽 렌더링용 계산처리 시스템
US6181352B1 (en) Graphics pipeline selectively providing multiple pixels or multiple textures
US6700581B2 (en) In-circuit test using scan chains
WO1997005576A9 (en) Method and apparatus for span and subspan sorting rendering system
Muraki et al. Next-generation visual supercomputing using PC clusters with volume graphics hardware devices
Molnar Image-composition architectures for real-time image generation
JPH0727581B2 (ja) 図形処理装置
US8917281B2 (en) Image rendering method and system
US20030179208A1 (en) Dynamically adjusting a number of rendering passes in a graphics system
JPH10275460A (ja) メモリ装置及びこれを用いた画像処理装置
KR100420856B1 (ko) 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기
US20060146072A1 (en) Method and system for compositing three-dimensional graphics images using associative decision mechanism
JP3037865B2 (ja) 3次元スプライト描画装置
EP2728551B1 (en) Image rendering method and system
JP2001053956A (ja) マルチレイヤ画像合成装置
Ogata et al. The design and evaluation of a pipelined image compositing device for massively parallel volume rendering
EP1345168B1 (en) Dynamically adjusting sample density and/or number of rendering passes in a graphics system
Park et al. Order independent transparency for image composition parallel rendering machines
KR101066524B1 (ko) 원통형 객체 렌더링 장치 및 그 렌더링 방법
Cao et al. A Distributed Multi-Node GPU Accelerated Parallel Rendering Scheme for Visualization Cluster Environment
Knittel et al. GRAMMY: High performance graphics using graphics memories
Burnett 29‐1: Common Triangle Optimizations and Coarse Pixel Shading for Foveated Rendering Acceleration
CN117891538A (zh) 界面渲染的方法及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130219

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140218

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150611

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160122

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170113

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180112

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20190114

Year of fee payment: 16