KR100803220B1 - 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치 - Google Patents

다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR100803220B1
KR100803220B1 KR1020060114718A KR20060114718A KR100803220B1 KR 100803220 B1 KR100803220 B1 KR 100803220B1 KR 1020060114718 A KR1020060114718 A KR 1020060114718A KR 20060114718 A KR20060114718 A KR 20060114718A KR 100803220 B1 KR100803220 B1 KR 100803220B1
Authority
KR
South Korea
Prior art keywords
rendering
area
screen
pipeline
pixel
Prior art date
Application number
KR1020060114718A
Other languages
English (en)
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 KR1020060114718A priority Critical patent/KR100803220B1/ko
Priority to US11/826,167 priority patent/US20080117212A1/en
Application granted granted Critical
Publication of KR100803220B1 publication Critical patent/KR100803220B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Abstract

그래픽 데이터를 다중 파이프라인에서 렌더링하는 방법 및 장치가 개시된다. 이 렌더링 방법은 그래픽 데이터에 포함된 객체들을 각 객체가 화면에서 렌더링될 렌더링 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 렌더링하고, 다중 파이프라인의 렌더링 결과들이 화면에서 서로 중첩되는 중첩영역의 렌더링 결과들을 합성하고, 합성된 결과 및 화면에서 중첩영역을 제외한 나머지 영역의 렌더링 결과로부터 그래픽 데이터의 최종 렌더링 이미지를 생성한다.
이렇게 함으로써 다중 파이프라인의 렌더링 결과들이 중첩되는 영역을 최소화할 수 있고, 중첩 영역의 렌더링 결과를 함성하는데 소모되는 작업량을 최소하여 다중 파이프라인의 렌더링 성능을 향상시킬 수 있다.

Description

다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치{Method and Apparatus for rendering of 3D graphics of multi-pipeline}
도 1a 및 도 1b는 종래 기술에 따른 그래픽 데이터 병렬 처리 방법을 설명하기 위한 참고도이다.
도 2는 본 발명의 제1 실시예에 따른 렌더링 장치의 구성을 도시한 블록도이다.
도 3a 내지 도 3f는 본 발명의 제1 실시예에 따른 렌더링 장치의 동작을 설명하기 위한 참고도이다.
도 4는 본 발명의 제2 실시예에 따른 렌더링 장치의 구성을 도시한 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 렌더링 방법의 플로우차트이다.
도 6은 본 발명의 제2 실시예에 따른 렌더링 방법의 플로우차트이다.
본 발명은 3차원 그래픽 데이터 렌더링 방법 및 장치에 관한 것으로, 특히, 3차원 그래픽 데이터를 병렬적으로 렌더링하는 다중 파이프라인(multi-pipeline)에 서 렌더링 성능을 향상시키기 위한 렌더링 방법 및 장치에 관한 것이다.
일반적으로 3차원 그래픽 데이터를 렌더링하는 과정은 기하 단계(geometry stage)와 래스터화 단계(rasterization stage)로 나뉜다. 기하 단계는 3차원 그래픽 데이터에 포함된 3차원 객체를 2차원 화면에서 표현하기 위하여 2차원 정보로 변환하는 과정으로서, 점(vertex), 선(line) 및 삼각형(triangle) 등의 원시요소(primitive)로 구성되는 3차원 객체의 화면상의 좌표를 찾아내는 역할을 한다. 래스터화 단계는 2차원 좌표로 변환된 객체들의 픽셀 이미지를 생성하는 과정으로서, 각 픽셀의 깊이 값을 고려하여 가시성을 결정하고, 결정된 가시성을 참조하여 각 픽셀의 색상을 지정하는 역할을 한다. 이러한 3차원 그래픽 데이터 렌더링 과정은 상당한 연산량이 요구되는데, 특히 픽셀 단위로 값들이 계산되는 래스터화 단계는 더욱 그러하다.
따라서 렌더링 성능을 향상시키기 위한 그래픽 데이터 병렬 처리 방식이 고안되었다. 대표적으로 화면 분할(Screen Subdivision)방식과 이미지 합성(Image Composition)방식이 있는데, 도 1a는 화면 분할 방식에 따른 그래픽 데이터 병렬 처리 방법에 관한 참고도이고, 도 1b는 이미지 합성 방식에 따른 그래픽 데이터 병렬 처리 방법에 관한 참고도이다.
화면 분할 방식에서는 각 파이프라인마다 렌더링할 화면상의 특정 렌더링 영역이 할당되며, 각 파이프라인은 할당된 렌더링 영역만을 렌더링한다. 그리고 각 파이프라인의 렌더링이 모두 끝나면 각 파이프라인의 렌더링 결과를 합하여 최종 렌더링 이미지를 생성한다. 이 방식에 따르면 각 파이프라인에 할당된 렌더링 영역 에 포함되는 모든 객체들이 입력되어야 한다. 따라서 객체들이 포함된 렌더링 영역을 판별하고, 판별된 렌더링 영역을 렌더링하는 파이프라인에 해당 객체들을 전달해야 하는데, 이러한 작업을 정렬(sorting)이라고 한다. 이러한 정렬 작업은 많은 시간이 소모되는 단점이 있다. 또한, 화면 분할 방식에 따르면 어느 하나의 객체가 A 렌더링 영역과 B 렌더링 영역에 모두 포함되는 경우, A 렌더링 영역을 담당하는 A 파이프라인과 B 렌더링 영역을 담당하는 B 파이프라인 각각이 모두 이 객체를 렌더링해야한다. 따라서 하나의 객체를 중복하여 여러 번 렌더링하므로 렌더링 성능이 저하시키는 문제점이 있다.
이미지 합성 방식은 입력된 그래픽 데이터를 임의로 분할하여 각 파이프라인에서 렌더링하는 방식으로서 각 파이프라인은 어떠한 데이터도 렌더링할 수 있다. 따라서 화면 분할 방식에서와 같은 정렬 작업은 필요하지 않으며, 동일한 데이터를 여러 파이프라인에서 중복하여 렌더링하는 문제도 생기지 않는다. 그러나 이미지 합성 방식에 따르면 각 파이프라인의 렌더링 결과를 합치기 위해서는 각 파이프라인의 렌더링 결과를 픽셀 단위로 비교하는 작업이 필요하다. 따라서 이 방식에서 따르면 각 파이프라인의 렌더링 결과를 합성하는데 많은 시간이 소모된다. 도 2에 도시된 바와 같이 그래픽 데이터를 네 개의 파이프라인에서 렌더링한 경우, 제1 파이프라인과 제2 파이프라인의 렌더링 결과들을 합성하는 과정, 제3 파이프라인과 제 4 파이프라인의 렌더링 결과들을 합성하는 과정 그리고 합성된 결과들을 다시 합성하는 과정 즉, 세 번의 합성 과정이 수행되어야 한다. 이러한 합성 과정들은 픽셀 단위로 처리되므로 상당량의 메모리 접속을 필요로 한다. 따라서 이러한 작업 은 소비 전력을 증가시키고 렌더링 속도를 늦추므로 렌더링 성능을 저하시키는 문제가 있다.
따라서 본 발명이 이루고자 하는 기술적 과제는 다중 파이프라인에서 그래픽 데이터를 렌더링한 결과들을 합성하기 위한 작업량을 최소화함으로써 다중 파이프라인의 렌더링 성능을 향상시킬 수 있는 렌더링 방법을 제공하는 것이다.
또한, 본 발명이 이루고자 하는 다른 기술적 과제는 다중 파이프라인에서 그래픽 데이터를 렌더링한 결과들을 합성하기 위한 작업량을 최소화함으로써 다중 파이프라인의 렌더링 성능을 향상시킬 수 있는 렌더링 장치를 제공하는 것이다.
또한, 본 발명이 이루고자 하는 또 다른 기술적 과제는 본 발명에 따른 렌더링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것이다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 렌더링 방법은 (a) 그래픽 데이터에 포함된 객체들을 상기 각 객체가 화면에서 렌더링될 렌더링 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 렌더링하는 단계; (b) 상기 다중 파이프라인의 렌더링 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 렌더링 결과들을 합성하는 단계; 및 (c) 상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 단계를 포함한다.
상기 (a)단계는 (a1) 상기 각 객체의 렌더링 위치에 기초하여 상기 다중 파이프라인 중 상기 각 객체를 렌더링할 파이프라인을 선정하는 단계; (a2) 상기 각 객체를 상기 선정된 파이프라인으로 전달하여 렌더링하는 단계를 포함할 수 있다.
또한, 상기 렌더링 방법은 상기 다중 파이프라인의 각 파이프라인에 상기 각 파이프라인이 상기 화면에서 담당할 렌더링 영역을 할당하는 단계를 더 포함하고, 상기 (a1)단계는 상기 할당에 의해 상기 각 객체의 렌더링 위치가 속하는 렌더링 영역을 담당하는 파이프라인을 상기 각 객체를 렌더링할 파이프라인으로 선정할 수 있다.
또한, 상기 (b)단계는 (b1) 상기 다중 파이프라인의 렌더링 결과들을 참조하여 상기 중첩영역을 검출하는 단계; 및 (b2) 상기 검출된 중첩영역의 렌더링 결과들을 합성하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 다른 렌더링 방법은 그래픽 데이터에 포함된 객체들 각각에 대하여 정점 처리를 수행하는 단계; 상기 정점 처리된 각 객체를 상기 각 객체가 화면에서 렌더링될 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 픽셀 처리를 수행하는 단계; 상기 다중 파이프라인의 픽셀 처리 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 픽셀 처리 결과들을 합성하는 단계; 및 상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과들로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 단계를 포함한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 렌더링 장치는 그래 픽 데이터에 포함된 객체들을 상기 각 객체가 화면에서 렌더링될 렌더링 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 렌더링하는 렌더링부; 상기 다중 파이프라인의 렌더링 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 렌더링 결과들을 합성하는 합성부; 및 상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 이미지 생성부를 포함한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 다른 렌더링 장치는 그래픽 데이터에 포함된 객체들 각각에 대하여 정점 처리를 수행하는 정첨 처리부; 상기 정점 처리된 각 객체를 상기 각 객체가 화면에서 렌더링될 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 픽셀 처리를 수행하는 픽셀 처리부; 상기 다중 파이프라인의 픽셀 처리 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 픽셀 처리 결과들을 합성하는 합성부; 및 상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과들로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 이미지 생성부를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여 본 발명에 따른 렌더링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예에 따른 렌더링 방법 및 장치를 상세히 설명하겠다.
도 2는 본 발명의 제1 실시예에 따른 렌더링 장치의 구성을 도시한 블록도이 고, 도 3은 본 발명의 제1 실시예에 따른 렌더링 장치의 동작을 설명하기 위한 참고도이다.
이하, 도 2 및 도 3을 참조하여 본 발명의 제1 실시예에 따른 렌더링 장치의 구성 및 동작을 설명하겠다. 제1 실시예에서는 다중 파이프라인에 포함된 렌더링 파이프라인이 두 개인 경우를 예로 들어 설명하기로 한다. 이는 일 실시예에 불과하므로 본 발명의 다른 실시예에 따르면 다중 파이프라인은 두 개 이상의 다양한 개수의 렌더링 파이프라인들로 구성될 수 있음은 당업자에게 자명할 것이다.
본 발명의 제1 실시예에 따르면 렌더링 장치(200)는 영역 할당부(210), 렌더링부(220), 합성부(260), 이미지 생성부(280)를 포함한다. 렌더링부(220)는 객체 전달부(230), 제1 파이프라인(240) 및 제2 파이프라인(250)을 포함하고, 제1 및 제2 파이프라인(240, 250)에 각각 대응되는 제1 및 제2 버퍼(245, 255)를 포함한다. 합성부(260)는 중첩영역 검출부(262) 및 중첩영역 합성부(264)를 포함한다.
영역 할당부(210)는 화면의 영역을 복수 개의 렌더링 영역으로 분할하고, 분할된 렌더링 영역들을 복수의 파이프라인에 각각 할당한다. 도 3a는 본 발명의 제1 실시예에 따라 영역 분할부(210)에서 분할된 제1 및 제2 렌더링 영역(315)(310, 315)이 각각 제1 및 제2 파이프라인(240, 250)에 할당된 모습을 도시한 것이다. 도 3a에 도시된 바와 같이, 제1 실시예에서는 영역 분할부(210)가 화면을 세로로 양분하여 좌측 영역(제1 렌더링 영역(310))을 제1 파이프라인(240)에 할당하고, 우측 영역(제2 렌더링 영역(315))을 제2 파이프라인(250)에 할당한다. 영역 할당부(210)는 매 그래픽 데이터가 입력될 때마다 가변적으로 제1 및 제2 렌더링 영역(310, 315)을 분할하여 각 파이프라인에 할당할 수 있다. 물론, 제1 및 제2 렌더링 영역(310, 315)을 미리 정해놓고, 매번 일정한 영역을 각 파이프라인에 할당할 수도 있다. 이 경우에는 제1 및 제2 파이프라인(240, 250)에 직접 각각 담당할 렌더링 영역을 미리 설정해놓을 수 있으며, 영역 할당부(220)에서 각 파이프라인이 화면에서 담당할 렌더링 영역을 할당할 필요가 없을 수 있을 것이다.
그러나 영역 할당부(210)에서 입력된 그래픽 데이터의 특성을 분석하고, 분석된 특성을 고려하여 화면에서 렌더링 영역을 분할하는 것이 바람직하다. 예를 들어, 입력된 그래픽 객체들이 화면에서 렌더링될 위치의 분포를 예상하여, 객체들의 렌더링 위치가 화면의 좌측에 집중되어 있다면 영역 할당부(210)는 각 렌더링 영역에 해당되는 객체들의 수가 고르게 분배되어 각 파이프라인이 렌더링을 수행하는 작업량이 비슷한 수준을 유지할 수 있도록 렌더링 영역을 분할하여 할당할 수 있을 것이다.
또한, 영역 할당부(210)는 분할된 렌더링 영역들이 서로 중첩되지 않도록 해야 한다. 이는 렌더링 영역이 중첩되는 경우, 그 중첩영역을 복수 개의 파이프라인이 담당하게 되어 중첩영역에 속하는 객체가 그 중첩영역을 담당하는 복수 개의 파이프라인에서 중복하여 렌더링되는 것을 방지하기 위함이다.
렌더링부(220)는 입력된 그래픽 데이터에 포함된 객체들 각각을 각 객체가 렌더링될 화면상의 위치에 따라 제1 및 제2 파이프라인(240, 250) 중 어느 하나의 파이프라인으로 전달하여 렌더링한다.
객체 전달부(230)는 입력된 그래픽 데이터에 포함된 객체들 각각에 대하여 각 객체가 화면에서 렌더링될 렌더링 위치에 기초하여 제1 및 제2 파이프라인(240, 250) 중에서 각 객체가 렌더링될 파이프라인을 선정하고, 선정된 파이프라인으로 각 객체를 전달한다. 객체 전달부(230)는 각 객체의 렌더링 위치를 결정하고, 결정된 렌더링 위치를 포함하는 렌더링 영역을 담당하는 파이프라인을 각 객체를 렌더링할 파이프라인으로 선정한다.
본 발명의 일 실시예에 따르면 객체 전달부(230)는 객체의 중심점을 이용하여 객체의 렌더링 위치를 결정한다. 예를 들면, 객체 전달부(230)는 객체의 중심점을 계산하고, 계산된 객체의 중심점이 화면에 투영되는 위치를 찾는다. 그리고 나서, 객체 전달부(230)는 영역 할당부(220)에서 분할된 렌더링 영역들 중 객체의 중심점이 화면에 투영된 위치에 해당되는 렌더링 영역을 검색하고, 검색된 렌더링 영역을 담당하는 파이프라인으로 해당 객체를 전달한다. 상기 일 실시예에 따르면 도 3a에 도시된 제1 렌더링 영역(310)에 객체의 중심점이 위치하는 객체들은 제1 파이프라인(240)으로 전달될 것이며, 제2 렌더링 영역(315)에 객체의 중심점이 위치하는 객체들은 제2 파이프라인(250)으로 전달될 것이다.
본 발명의 다른 실시예에 따르면 객체 전달부(230)는 객체의 바운딩 볼륨(bounding volume)이 화면에서 차지하는 면적을 이용하여 객체의 렌더링 위치를 결정한다. 객체의 바운딩 볼륨이란 3차원 객체가 공간에서 차지하는 부피를 모두 포괄하는 최소 부피를 갖는 직육면체(box) 또는 구(shpere) 등을 의미한다. 화면에서 하나의 점으로 표현되는 객체의 중심점과는 달리 객체의 바운딩 볼륨은 화면에서 면적을 갖는 영역으로 표현되기 때문에, 여러 개의 렌더링 영역에 걸쳐져 있을 수 있다. 따라서 다른 실시예에 따르면 객체 전달부(230)는 객체의 바운딩 볼륨이 화면에서 차지하는 면적을 계산하고, 영역 분할부(200)에서 분할된 렌더링 영역들 중 바운딩 볼륨의 걸쳐져 있는 부분의 면적이 가장 넓은 렌더링 영역을 담당하는 파이프라인으로 해당 객체를 전달할 수 있다. 이는 바람직한 일 실시예일 뿐이므로 기타 다양한 방법에 의해 객체가 속하는 렌더링 영역을 판별할 수 있음은 당업자에게 자명하다.
도 3b는 입력된 그래픽 데이터에 포함된 제1 및 제2 객체(320, 325)를 도시한 것이다. 객체 전달부(230)는 제1 객체의 중심점을 계산하고, 계산된 제1 객체의 중심점의 화면상의 위치가 제1 렌더링 영역(310)에 포함되므로 제1 객체(320)에 해당되는 렌더링 영역을 제1 렌더링 영역(310)으로 판별하여 제1 객체(320)를 제1 파이프라인(240)으로 전달한다. 또한, 객체 전달부(230)는 제2 객체(325)의 중심점을 계산하고, 계산된 제2 객체의 중심점의 화면상의 위치가 제2 렌더링 영역(315)에 포함되므로 제2 객체(325)에 해당되는 렌더링 영역을 제2 렌더링 영역(315)으로 판별하여 제2 객체를 제2 파이프라인(250)으로 전달한다.
제1 파이프라인(240) 및 제2 파이프라인(250)은 객체 전달부(230)에서 전달된 객체들 각각을 렌더링하고, 렌더링 결과를 제1 버퍼(245) 및 제2 버퍼(255)에 저장한다. 제1 버퍼(245) 및 제2 버퍼(255)는 화면의 영역에 대응되는 크기를 갖는 메모리들로 구현될 수 있다.
일반적으로 3차원 그래픽 데이터를 렌더링하는 과정은 정점 처리(기하 단계) 및 픽셀 처리(래스터화 단계)로 나뉘는데, 각각의 구체적 내용은 앞에서 설명하였 으므로 생략하겠다. 제1 및 제2 파이프라인(240, 250)은 정점 처리 및 픽셀 처리를 포함한 렌더링 과정 전체를 수행하는 파이프라인이다.
그래픽 데이터 병렬 처리에 관한 종래 기술들 중에 화면 분할 방식에서는 각 파이프라인이 고정된 렌더링 영역만을 렌더링하므로 각 파이프라인의 렌더링 결과를 저장하는 버퍼를 각 파이프라인이 담당하는 렌더링 영역의 크기에 상응하는 크기를 갖는 메모리로 구현할 수 있다. 그러나 본 발명에서는 각 파이프라인이 렌더링 영역을 렌더링하는 것이 아니라 각 파이프라인에 할당된 렌더링 영역에 위치하는 객체들을 렌더링하며, 각 파이프라인에 할당된 렌더링 영역은 가변될 수 있으므로, 각 파이프라인의 렌더링 결과를 저장하는 버퍼는 화면 전체의 크기에 상응하는 크기를 갖는 메모리로 구현되어야 할 것이다.
제1 및 제2 버퍼(245, 255)는 제1 및 제2 파이프라인(240, 250)의 렌더링 결과를 각각 저장한다. 렌더링 결과에는 렌더링된 픽셀들 각각의 깊이 값 및 색상 값이 포함된다. 따라서, 제1 버퍼(245)는 제1 깊이버퍼 및 제1 색상 버퍼를 포함하고, 제2 버퍼(255)는 제2 깊이 버퍼 및 제2 색상 버퍼를 포함한다. 이들 버퍼들이 모두 화면 전체의 크기에 상응하는 크기를 갖는 메모리로 구현되어야함을 앞에서 설명한 바와 같다.
도 3c는 도 3b에 도시된 제1 및 제2 객체(320, 325)들이 제1 및 제2 파이프라인(240, 250)에서 렌더링된 결과가 각각 제1 및 제2 버퍼(2454, 255)에 저장된 모습을 도시한 것이다.
합성부(260)는 렌더링 결과들이 화면에서 중첩되는 중첩영역을 검출하고, 검 출된 중첩영역에 해당되는 렌더링 결과들을 합성한다.
중첩영역 검출부(262)는 제1 및 제2 파이프라인(244, 246)에서 각각 렌더링 된 결과들 즉, 제1 및 제2 버퍼(245,255)에 저장된 렌더링 결과들이 화면에서 중첩되는 중첩영역을 검출한다. 도 3d에는 제1 및 제2 파이프라인(240, 250)의 렌더링 결과들이 화면에서 중첩된 중첩영역(330)을 도시한 것이다.
중첩영역 합성부(264)는 제1 및 제1 파이프라인(240, 250) 각각의 렌더링 결과들 중에서 중첩영역 검출부(262)에서 검출된 중첩영역(330)에 해당되는 렌더링 결과를 합성한다. 앞에서도 설명한 바와 같이, 렌더링 결과는 렌더링된 해당 객체를 구성하는 픽셀들 각각의 깊이 값 및 색상 값을 말한다. 따라서 중첩영역(330)에 해당되는 렌더링 결과란 제1 및 제2 파이프라인(240, 250)에서 각각 렌더링된 중첩영역(330)에 포함되는 각 픽셀들의 깊이 값 및 색상 값을 말한다.
중첩 영역의 렌더링 결과들을 합성하는 이유는 중첩영역(330)에서 중첩되어 있는 객체들 중 실제 화면에서 보이는 객체들을 화면에 표시하기 위함이다. 따라서 제1 실시예에 따르면 중첩영역 합성부(264)는 중첩영역(330)에 속한 픽셀들 각각에 대하여 각 픽셀의 깊이 값에 해당되는 렌더링 결과들 중에서 화면에서 가장 가까운 깊이 값을 해당 픽셀의 깊이 값으로 정하고, 해당 픽셀의 색상 값에 해당되는 렌더링 결과들 중에서 해당 픽셀의 깊이 값으로 정해진 깊이 값에 대응되는 색상 값을 해당 픽셀의 색상 값으로 정한다. 이러한 과정은 결국 중첩영역(330)에서 중첩된 객체들 중에서 화면에서 가장 가까이에 있는 객체의 깊이 값 및 색상 값을 각 픽셀의 깊이 값 및 색상 값으로 정하기 위한 것이다. 도 3e는 합성부(260)에서 중첩영 역(330)에 해당되는 렌더링 결과들을 합성한 결과를 도시한 것이다. 제1 객체(320)가 제2 객체(325)보다 화면에서 더 가까이에 위치하므로 제1 객체(320)의 깊이 값 및 색상 값이 중첩영역(330)에 속한 각 픽셀의 깊이 값 및 색상 값으로 결정되었다.
이미지 생성부(280)는 합성부(260)에서 합성된 중첩영역(330)의 최종 렌더링 결과와 제1 및 제2 파이프라인(240, 250)의 렌더링 결과들 중 화면에서 중첩영역(330)을 제외한 나머지 영역(340)의 렌더링 결과들로부터 입력된 그래픽 데이터의 최종 렌더링 이미지를 생성한다. 이미지 생성부(280)는 제1 및 제2 파이프라인(240, 250)의 렌더링 결과들 중 중첩영역(330)에 해당되는 렌더링 결과를 제외한 나머지 렌더링 결과들을 소정 버퍼의 해당 영역에 저장하고, 합성부(260)에서 합성된 중첩영역의 최종 렌더링 결과를 소정 버퍼의 해당 영역에 저장함으로써 입력된 그래픽 데이터의 최종 렌더링 이미지 생성한다. 도 3f는 제1 및 제2 객체의 최종 렌더링 이미지가 소정 버퍼에 저장된 모습을 도시한 것이다.
본 발명의 일 실시예에서는 제1 및 제2 버퍼(254, 256) 중 어느 하나의 버퍼를 소정 버퍼로 사용하므로 별도의 버퍼를 마련하지 않을 수 있다. 또한 이 경우 소정 버퍼로 사용되는 버퍼에 저장된 나머지 영역에 해당되는 렌더링 결과를 별도의 소정 버퍼에 저장하는 과정이 생략되므로 메모리 접속에 따른 부하를 줄일 수 있다. 따라서 제1 및 제2 버퍼(245, 255) 중 나머지 영역(340)에 해당되는 렌더링 결과를 더 많이 저장하고 있는 버퍼를 소정 버퍼로 사용함으로써 렌더링 결과를 다른 버퍼로 전송하여 저장하는데 소비되는 전력을 최소화하는 것이 바람직할 것이 다. 예를 들어, 제2 버퍼(255)에 해당되는 나머지 영역(340b)이 제1 버퍼(245)에 해당되는 나머지 영역(340a)보다 더 넓은 경우, 제1 버퍼(245)의 렌더링 결과를 제2 버퍼(244)로 복사하는 것이 그 반대의 경우보다 작업량이 적을 것이므로, 제1 버퍼(24)의 나머지 영역(340a)에 해당되는 렌더링 결과 및 합성된 중첩영역(330)의 최종 렌더링 결과를 제2 버퍼(255)에 저장함으로 최종 이미지를 생성하기 위한 메모리 접속회수 등을 최소화하여 렌더링의 효율성을 향상시킬 수 있을 것이다.
본 발명의 제1 실시예에 따른 렌더링 장치(200)는 이미지 생성부(280)에서 생성된 그래픽 데이터의 최종 렌더링 이미지를 출력부(미도시)로 전송하여 화면에 출력한다.
이하, 도 4를 참조하여 본 발명의 제2 실시예에 따른 렌더링 장치(400)의 구성 및 동작을 설명하겠다. 제1 실시예와 중복되는 부분은 간략하게 설명하기로 한다. 제2 실시예에 따르면, 렌더링 장치(400)는 영역 할당부(410), 렌더링부(420), 합성부(460) 및 이미지 생성부(480)를 포함한다. 렌더링부(420)는 정점 처리부(425) 및 픽셀 처리부(435)를 포함하고, 픽셀 처리부는 객체 전달부(430), 제1 파이프라인(440) 및 제2 파이프라인(450)을 포함하고, 제1 및 제2 파이프라인(440, 450)에 각각 대응되는 제1 및 제2 버퍼(445, 455)를 포함한다. 합성부(460)는 중첩영역 검출부(462) 및 중첩영역 합성부(464)를 포함한다.
영역 할당부(410)는 화면의 영역을 복수 개의 렌더링 영역으로 분할하고, 분할된 렌더링 영역들을 제1 및 제2 파이프라인(440, 450)에 각각 할당한다. 영역 할당부(410)는 입력된 그래픽 데이터의 특성을 분석하고, 분석된 특성을 고려하여 화 면에서 렌더링 영역을 분할할 수도 있고, 후술할 정점 처리부(425)의 정점 처리 결과를 고려하여 렌더링 영역을 분할할 수도 있을 것이다.
정점 처리부(425)는 입력된 그래픽 객체들 각각에 대하여 각 객체의 정점을 구하기 위한 정점 처리를 수행한다. 정점 처리란 3차원 3차원 객체를 2차원 화면에서 표현하기 위하여 2차원 정보로 변환하는 과정으로서, 정점 처리가 수행된 3차원 객체는 각 객체의 정점들의 좌표, 정점들의 깊이 값 및 색상 값으로 표현된다.
객체 전달부(430)는 정점 처리된 객체들 각각에 대하여 각 객체가 렌더링될 렌더링 위치를 결정하고, 영역 할당부(410)에서 할당된 렌더링 영역들 중에서 결정된 렌더링 위치를 포함하는 렌더링 영역을 담당하는 파이프라인으로 각 객체를 전달한다. 제2 실시예에 따르면, 객체 전달부(430)는 정점 처리부(425)로부터 각 객체에 대한 정점 처리 결과를 알 수 있으므로 이를 이용하여 각 객체가 렌더링될 화면상의 위치를 쉽게 계산할 수 있고, 계산된 위치에 해당되는 렌더링 영역을 보다 쉽게 판별할 수 있을 것이다.
제1 및 제2 파이프라인(440, 450)은 객체 전달부(430)에서 전달된 정점 처리된 각 객체에 대하여 픽셀 처리를 수행하고, 픽셀 처리 결과를 제1 및 제2 버퍼(445, 455)에 각각 저장한다. 픽셀 처리란 정점 처리되어 2차원 좌표로 변환된 각 객체의 픽셀 이미지를 생성하는 과정으로서, 각 객체를 구성하는 픽셀들 각각의 깊이 값 및 색상 값이 계산된다. 제1 실시예에서와 같이 제1 및 제2 버퍼(445, 455)는 깊이 버퍼 및 색상 버퍼를 각각 가지며, 각 버퍼의 깊이 버퍼 및 색상 버퍼에는 해당 파이프라인의 픽셀 처리 결과에 따른 각 픽셀들의 ??이 값 및 색상 값이 각각 저장될 것이다.
합성부(460) 및 이미지 생성부(480)의 구성 및 동작은 제1 실시예에 따른 합성부(260) 및 이미지 생성부(280)와 유사하므로 제1 실시예에 따른 설명을 참조할 수 있으며, 여기서는 구체적인 설명을 생략하기로 한다.
살펴본 바와 같이, 본 발명의 제1 실시예에서는 정점 처리 및 픽셀 처리가 하나의 파이프라인에서 함께 수행되는 경우로서, 그래픽 데이터의 각 객체에 대해 정점 처리를 하기 전에 해당 객체를 렌더링할 파이프라인을 선택하고, 선택된 파이프라인에서 해당 객체의 정점 처리 및 픽셀 처리를 수행한다. 그러나 본 발명의 제2 실시예에서는 그래픽 데이터의 각 객체에 대해 정점 처리를 수행한 후 정점 처리된 객체에 대해 해당 객체에 대해 픽셀 처리를 수행할 파이프라인을 선택하고, 선택된 파이프라인에서는 해당 객체의 픽셀 처리만 수행한다. 이는 일반적으로 정점 처리보다는 픽셀 처리에 필요한 작업량이 더 많기 때문에 정점 처리를 다중 파이프라인에서 처리하기 않고 픽셀 처리만 다중 파이프라인에서 병렬적으로 처리하는 경우에 더욱 유용할 것이다.
이하, 도 5를 참조하여 본 발명의 제1 실시예에 따른 렌더링 방법을 설명하겠다.
제 500단계에서 렌더링 장치는 입력된 그래픽 객체들의 특성을 고려하여 화면을 복수의 렌더링 영역으로 분할하여 다중 파이프라인에 구비된 파이프라인들 각각에게 할당한다. 이 때, 각 파이프라인에 할당된 렌더링 영역은 서로 중첩되지 않는 것이 바람직하며, 데이터의 특성에 따라 가변될 수 있는 것이 바람직하다. 렌 더링 장치는 화면을 복수 개의 렌더링 영역으로 분할하는데 있어서 입력된 그래픽 데이터의 특성을 고려할 수 있다. 예를 들어, 입력된 그래픽 객체들의 화면상의 분포를 예상하여, 객체들이 화면의 좌측에 집중되어 있다면 렌더링 영역마다 포함될 객체의 수가 고르게 분배되도록 렌더링 영역을 분할할 수 있을 것이다.
제 510단계에서 렌더링 장치는 입력된 그래픽 객체들 중 어느 하나의 객체가 렌더링될 화면상의 렌더링 위치를 결정한다. 제1 실시예에서는 객체의 중심점이 화면에서 차지하는 위치를 객체가 렌더링될 화면상의 위치로 삼는다. 다른 실시예에서는 객체의 바운딩 볼륨이 화면에서 차지하는 위치를 객체가 렌더링될 위치로 삼을 수 있다. 당업자가 용이하게 생각할 수 있는 기타 다양한 방법으로 객체가 렌더링될 화면상의 위치를 계산할 수 있으며, 이는 본 발명의 보호범위에 속할 것이다.
제 520단계에서 렌더링 장치는 복수의 렌더링 영역들 중 제 510단계에서 결정된 렌더링 위치가 포함되는 렌더링 영역을 검색한다.
제 530단계에서 렌더링 장치는 해당 객체를 제 520단계에서 검색된 렌더링 영역을 담당하는 파이프라인으로 전달하여 렌더링한다.
제 540단계에서 렌더링 장치는 그래픽 데이터에 포함된 모든 객체들을 렌더링했는지 판단한다. 렌더링되지 않은 객체가 남아있다면 제 510 내지 제 530단계를 반복한다.
제 550단계에서 렌더링 장치는 다중 파이프라인의 렌더링 결과들을 상기 렌더링 결과들이 화면에서 중첩되는 중첩영역을 검출한다. 즉, 중첩영역이란 다중 파이프라인에 구비된 각 파이프라인의 렌더링 결과에 해당되는 이미지가 화면에서 서 로 중첩되는 영역을 의미한다.
제 560단계에서 렌더링 장치는 검출된 중첩영역에 해당되는 각 파이프라인의 렌더링 결과들을 합성한다. 구체적으로는 중첩영역에 속한 각 픽셀의 깊이 값에 해당되는 각 파이프라인 의 렌더링 결과들 중에서 화면에서 가장 가까운 깊이 값을 각 픽셀의 깊이 값들 정하고, 각 픽셀의 색상 값에 해당되는 각 파이프라인의 렌더링 결과들 중에서 각 픽셀의 깊이 값으로 정해진 렌더링 결과에 대응되는 색상 값을 상기 각 픽셀의 색상 값으로 정한다.
제 570단계에서 렌더링 장치는 화면에서 중첩영역을 제외한 나머지 영역의 렌더링 결과들과 중첩영역의 합성된 렌더링 결과들로부터 그래픽 객체들의 최종 렌더링 이미지를 생성한다. 나머지 영역은 각 파이프라인의 렌더링 결과들이 서로 중첩되지 않는 영역이므로 해당되는 어느 하나의 파이프라인의 렌더링 결과가 바로 해당 영역의 렌더링 이미지가 되므로 중첩영역과 같이 렌더링 결과들을 합성할 필요가 없다.
이하, 도 6을 참조하여 본 발명의 제2 실시예에 따른 렌더링 방법을 설명하겠다.
제 600단계에서 렌더링 장치는 입력된 그래픽 객체들 각각에 대하여 각 객체의 정점을 구하기 위한 정점 처리를 수행한다. 정점 처리란 3차원 3차원 객체를 2차원 화면에서 표현하기 위하여 2차원 정보로 변환하는 과정으로서, 정점 처리가 수행된 3차원 객체는 각 객체의 정점들의 좌표, 정점들의 깊이 값 및 색상 값으로 표현된다.
제 610단계에서 렌더링 장치는 화면을 복수의 렌더링 영역으로 분할하여 정정 처리된 그래픽 객체들의 픽셀 이미지를 생성하기 위한 다중 파이프라인에 구비된 파이프라인들 각각에게 할당한다. 이 때, 각 파이프라인에 할당된 렌더링 영역은 서로 중첩되지 않는 것이 바람직하며, 데이터의 특성에 따라 가변될 수 있는 것이 바람직하다. 또한, 렌더링 영역은 입력된 그래픽 데이터의 특성 또는 제 600단계에서 수행된 그래픽 객체들의 정첨 처리 결과를 참조하여 렌더링 영역을 분할 할 수 있다.
제 620단계에서 렌더링 장치는 정점 처리된 객체들 중 어느 하나의 객체가 렌더링될 화면상의 위치를 결정한다.
제 630단계에서 렌더링 장치는 할당된 렌더링 영역들 중에서 제 620단계에서 결정된 해당 객체의 렌더링 위치가 포함되는 렌더링 영역을 검색한다.
제 640단계에서 렌더링 장치는 해당 객체를 제 630단계에서 검색된 렌더링 영역을 담당하는 파이프라인으로 전달하여 픽셀 처리를 수행한다. 픽셀 처리란 정점 처리되어 2차원 좌표로 변환된 각 객체의 픽셀 이미지를 생성하는 과정으로서, 각 객체를 구성하는 픽셀들 각각의 깊이 값 및 색상 값이 계산된다.
제 650단계에서 렌더링 장치는 제 600단계에서 정점 처리된 모든 객체들에 대해 픽셀 처리가 수행되었는지 판단한다. 픽셀 처리되지 않은 객체가 남아있다면 제 620 내지 제 640단계를 반복한다.
제 660단계에서 렌더링 장치는 다중 파이프라인의 픽셀 처리 결과들을 참조하여 중첩영역을 검출한다.
제 670 단계에서 렌더링 장치는 검출된 중첩영역의 픽셀 처리 결과들을 합성한다. 구체적으로는 중첩영역에 속한 각 픽셀의 깊이 값에 해당되는 각 파이프라인의 렌더링 결과들 중에서 화면에서 가장 가까운 깊이 값을 각 픽셀의 깊이 값들 정하고, 각 픽셀의 색상 값에 해당되는 각 파이프라인의 렌더링 결과들 중에서 각 픽셀의 깊이 값으로 정해진 렌더링 결과에 대응되는 색상 값을 상기 각 픽셀의 색상 값으로 정한다.
제 680단계에서 렌더링 장치는 제 670단계에서 합성된 중첩영역의 픽셀 처리 결과 및 화면에서 중첩영역을 제외한 나머지 영역의 픽셀 처리 결과로부터 입력된 그래픽 객체들의 최종 렌더링 이미지를 생성한다. 나머지 영역은 다중 파이프라인의 픽셀 처리 결과들이 서로 중첩되지 않는 영역이므로 나머지 영역의 픽셀 처리 결과는 다중 파이프라인 중 어느 하나의 파이프라인에만 존재하므로 중첩영역과 같이 픽셀 처리결과를 합성할 필요가 없다.
그래픽 데이터 병렬 처리에 관한 종래 기술들 중에 이미지 합성 방식에서는 그래픽 데이터 포함된 객체들을 단순히 복수 개의 파이프라인에서 병렬적으로 렌더링하기 때문에, 하나의 파이프라인에서 렌더링된 결과들이 화면 전체에 산발적으로 위치하게 된다. 따라서 그래픽 데이터의 최종 렌더링 이미지를 얻기 위해서는 각 파이프라인 렌더링 결과들 전부를 합성해야한다. 이는 화면 전체를 픽셀 단위로 비교하는 작업으로서 상당량의 메모리 읽기/쓰기(read/write)를 필요로 하므로 렌더링 성능 저하의 문제를 발생시킨다.
그러나 본 발명의 일 실시예에 따른 렌더링 방법은 그래픽 데이터에 포함된 각 객체가 화면에서 렌더링될 위치를 고려하여 렌더링될 위치가 인접한 객체들은 동일한 파이프라인에서 렌더링하므로 하나의 파이프라인에서 렌더링된 결과가 화면을 일부분에 집중하여 나타날 수 있도록 한다. 따라서 본 발명의 일 실시예에 따르면 복수의 파이프라인들 각각의 렌더링 결과들이 화면에서 중첩되는 중첩영역이 최소화되며, 종래 기술과 달리 화면 전체에 해당되는 렌더링 결과들 전부를 합성하는 것이 아니라, 최소화된 중첩영역에 해당되는 각 파이프라인의 렌더링 결과들만 합성하므로 그래픽 데이터의 최종 렌더링 이미지를 생성하는데 필요한 계산량 및 작업량을 감소시키고, 궁극적으로 그래픽 데이터를 병렬적으로 렌더링하는 다중 파이프라인의 렌더링 성능을 향상시킬 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치, 프로브 저장장치 등이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
살펴본 바와 같이, 본 발명에 따른 렌더링 방법 및 장치는 다중 파이프라인의 각 파이프라인에 화면에서 담당할 렌더링 영역을 할당하고, 그래픽 객체들을 각 객체가 화면에서 렌더링될 위치가 포함되는 렌더링 영역을 담당하는 파이프라인에서 렌더링함으로써 다중 파이프라인의 렌더링 결과들이 화면에서 중첩되는 중첩영역의 크기를 최소화한다. 따라서 다중 파이프라인에서 그래픽 데이터를 렌더링한 결과들을 합성하기 위한 작업량을 최소화함으로써 다중 파이프라인의 렌더링 성능을 향상시킬 수 있다.

Claims (25)

  1. (a) 그래픽 데이터에 포함된 객체들을 상기 각 객체가 화면에서 렌더링될 렌더링 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 렌더링하는 단계;
    (b) 상기 다중 파이프라인의 렌더링 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 렌더링 결과들을 합성하는 단계; 및
    (c) 상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  2. 제1항에 있어서, 상기 (a)단계는
    (a1) 상기 각 객체의 렌더링 위치에 기초하여 상기 다중 파이프라인 중 상기 각 객체를 렌더링할 파이프라인을 선정하는 단계;
    (a2) 상기 각 객체를 상기 선정된 파이프라인으로 전달하여 렌더링하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  3. 제2항에 있어서, 상기 렌더링 방법은
    상기 다중 파이프라인의 각 파이프라인에 상기 각 파이프라인이 상기 화면에서 담당할 렌더링 영역을 할당하는 단계를 더 포함하고,
    상기 (a1)단계는 상기 할당에 의해 상기 각 객체의 렌더링 위치가 속하는 렌더링 영역을 담당하게 된 파이프라인을 상기 각 객체를 렌더링할 파이프라인으로 선정하는 것을 특징으로 하는 렌더링 방법.
  4. 제3항에 있어서, 상기 할당하는 단계는
    상기 그래픽 객체들에 따라 가변적으로 상기 각 파이프라인이 담당할 렌더링 영역을 할당하는 것을 특징으로 하는 렌더링 방법.
  5. 제3항에 있어서, 상기 할당하는 단계는
    상기 각 파이프라인의 렌더링 영역이 상기 화면에서 서로 중복되지 않도록 상기 각 파이프라인의 렌더링 영역을 할당하는 것을 특징으로 하는 렌더링 방법.
  6. 제3항에 있어서, 상기 (a)단계는
    (a1) 상기 할당된 렌더링 영역들 중에서 상기 각 객체의 렌더링 위치를 포함하는 렌더링 영역을 검색하는 단계;
    (a2) 상기 검색된 렌더링 영역을 담당하는 파이프라인으로 상기 각 객체를 전달하여 렌더링하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  7. 제6항에 있어서, 상기 (a1)단계는
    (a11) 상기 각 객체의 렌더링 위치를 결정하는 단계; 및
    (a12) 상기 할당된 렌더링 영역들 중에서 상기 결정된 렌더링 위치를 포함하는 렌더링 영역을 검색하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  8. 제7항에 있어서, 상기 (a11)단계는
    상기 각 객체의 중심점에 기초하여 상기 각 객체의 렌더링 위치를 결정하는 것을 특징으로 하는 렌더링 방법.
  9. 제7항에 있어서, 상기 (a11)단계는
    상기 각 객체의 바운딩 볼륨이 상기 화면에서 차지하는 면적에 기초하여 상기 각 객체의 렌더링 위치를 결정하는 것을 특징으로 하는 렌더링 방법.
  10. 제1항에 있어서, 상기 (b)단계는
    (b1) 상기 다중 파이프라인의 렌더링 결과들을 참조하여 상기 중첩영역을 검출하는 단계; 및
    (b2) 상기 검출된 중첩영역의 렌더링 결과들을 합성하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  11. 제10항에 있어서, 상기 (b2)단계는
    상기 중첩영역에 포함된 각 픽셀의 깊이 값에 해당되는 렌더링 결과들 중 상기 화면에서 가장 가까운 값을 상기 각 픽셀의 깊이 값으로 정하는 단계; 및
    상기 각 픽셀의 색상 값에 해당되는 렌더링 결과들 중 상기 각 픽셀의 깊이 값으로 정해진 깊이 값에 대응되는 색상 값을 상기 각 픽셀의 색상 값으로 정하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  12. 제1항에 있어서, 상기 (c)단계는
    (c1) 상기 합성된 결과 및 상기 나머지 영역의 렌더링 결과에 따라 상기 화면을 구성하는 각 픽셀의 깊이 값 및 색상 값을 지정하는 단계; 및
    (c2) 상기 지정된 각 픽셀의 깊이 값 및 색상 값을 소정 버퍼에 저장하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  13. 제12항에 있어서, 상기 (c2)단계는
    상기 각 파이프라인의 렌더링 결과를 저장하는 버퍼들 중 어느 하나의 버퍼에 상기 각 픽셀의 깊이 값 및 색상 값을 저장하는 것을 특징으로 하는 렌더링 방법.
  14. 제13항에 있어서, 상기 (c2)단계는
    상기 버퍼들 각각에 저장된 상기 나머지 영역의 렌더링 결과들 중 최대 면적을 갖는 나머지 영역의 렌더링 결과를 저장하고 있는 버퍼에 상기 각 픽셀의 깊이 값 및 색상 값을 저장하는 것을 특징으로 하는 렌더링 방법.
  15. 그래픽 데이터에 포함된 객체들 각각에 대하여 정점 처리룰 수행하는 단계;
    상기 정점 처리된 각 객체를 상기 각 객체가 화면에서 렌더링될 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 픽셀 처리를 수행하는 단계;
    상기 다중 파이프라인의 픽셀 처리 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 픽셀 처리 결과들을 합성하는 단계; 및
    상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과들로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  16. 그래픽 데이터에 포함된 객체들을 상기 각 객체가 화면에서 렌더링될 렌더링 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 렌더링하는 렌더링부;
    상기 다중 파이프라인의 렌더링 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 렌더링 결과들을 합성하는 합성부; 및
    상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 이미지 생성부를 포함하는 것을 특징으로 하는 렌더링 장치.
  17. 제16항에 있어서, 상기 렌더링부는
    상기 각 객체의 렌더링 위치에 기초하여 상기 다중 파이프라인 중 상기 각 객체를 렌더링할 파이프라인을 선정하고, 상기 선정된 파이프라인으로 상기 각 객체를 전달하는 객체 전달부; 및
    상기 전달부에서 전달받은 상기 각 객체를 렌더링하는 파이프라인을 복수 개 구비한 다중 파이프라인을 포함하는 것을 특징으로 하는 렌더링 장치.
  18. 제17항에 있어서, 상기 렌더링 장치는
    상기 다중 파이프라인의 각 파이프라인에 상기 각 파이프라인이 상기 화면에서 담당할 렌더링 영역을 할당하는 영역 할당부를 더 포함하고,
    상기 전달부는 상기 할당에 의해 상기 각 객체의 렌더링 위치가 속하는 렌더링 영역을 담당하게 된 파이프라인으로 상기 각 객체를 전달하는 것을 특징으로 하는 렌더링 장치.
  19. 제18항에 있어서, 상기 전달부는
    상기 할당된 렌더링 영역들 중에서 상기 각 객체의 렌더링 위치를 포함하는 렌더링 영역을 검색하고, 상기 검색된 렌더링 영역을 담당하는 파이프라인으로 상기 각 객체를 전달하는 것을 특징으로 하는 렌더링 장치.
  20. 제16항에 있어서, 상기 렌더링부는
    상기 다중 파이프라인에 구비된 각 파이프라인의 렌더링 결과를 저장하는 버 퍼들을 더 포함하는 것을 특징으로 하는 렌더링 장치.
  21. 제16항에 있어서, 상기 합성부는
    상기 다중 파이프라인의 렌더링 결과들을 참조하여 상기 중첩영역을 검출하는 중첩영역 검출부; 및
    상기 중첩영역의 렌더링 결과들을 합성하는 중첩영역 합성부를 포함하는 것을 특징으로 하는 렌더링 장치.
  22. 제20항에 있어서, 상기 이미지 생성부는
    상기 합성된 결과 및 상기 나머지 영역의 렌더링 결과에 따라 상기 화면을 구성하는 각 픽셀의 깊이 값 및 색상 값을 지정하고, 상기 지정된 각 픽셀의 깊이 값 및 색상 값을 상기 버퍼들 중 어느 하나의 버퍼에 저장하는 것을 특징으로 하는 렌더링 장치.
  23. 제22항에 있어서, 상기 이미지 생성부는
    상기 버퍼들 각각에 저장된 상기 나머지 영역의 렌더링 결과들 중 최대 면적을 갖는 나머지 영역의 렌더링 결과를 저장하고 있는 버퍼에 상기 지정된 각 픽셀의 깊이 값 및 색상 값을 저장하는 것을 특징으로 하는 렌더링 장치.
  24. 그래픽 데이터에 포함된 객체들 각각에 대하여 정점 처리를 수행하는 정첨처 리부;
    상기 정점 처리된 각 객체를 상기 각 객체가 화면에서 렌더링될 위치에 따라 다중 파이프라인 중 어느 하나의 파이프라인으로 전달하여 픽셀 처리를 수행하는 픽셀 처리부;
    상기 다중 파이프라인의 픽셀 처리 결과들이 상기 화면에서 서로 중첩되는 중첩영역의 픽셀 처리 결과들을 합성하는 합성부; 및
    상기 합성된 결과 및 상기 화면에서 상기 중첩영역을 제외한 나머지 영역의 렌더링 결과들로부터 상기 그래픽 데이터의 최종 렌더링 이미지를 생성하는 이미지 생성부를 포함하는 것을 특징으로 하는 렌더링 장치.
  25. 제1항 내지 제15항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060114718A 2006-11-20 2006-11-20 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치 KR100803220B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060114718A KR100803220B1 (ko) 2006-11-20 2006-11-20 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치
US11/826,167 US20080117212A1 (en) 2006-11-20 2007-07-12 Method, medium and system rendering 3-dimensional graphics using a multi-pipeline

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060114718A KR100803220B1 (ko) 2006-11-20 2006-11-20 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR100803220B1 true KR100803220B1 (ko) 2008-02-14

Family

ID=39343167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060114718A KR100803220B1 (ko) 2006-11-20 2006-11-20 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치

Country Status (2)

Country Link
US (1) US20080117212A1 (ko)
KR (1) KR100803220B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8508550B1 (en) * 2008-06-10 2013-08-13 Pixar Selective rendering of objects
US8754895B2 (en) * 2008-09-09 2014-06-17 Sony Corporation Pipelined image processing engine
WO2011033673A1 (ja) * 2009-09-18 2011-03-24 株式会社 東芝 画像処理装置
JP2014110036A (ja) * 2012-12-04 2014-06-12 Fujitsu Ltd 描画装置、描画方法、および描画プログラム
US10269148B2 (en) 2017-05-01 2019-04-23 Lockheed Martin Corporation Real-time image undistortion for incremental 3D reconstruction
US10269147B2 (en) 2017-05-01 2019-04-23 Lockheed Martin Corporation Real-time camera position estimation with drift mitigation in incremental structure from motion
US10748327B2 (en) * 2017-05-31 2020-08-18 Ethan Bryce Paulson Method and system for the 3D design and calibration of 2D substrates
CN110796722B (zh) * 2019-11-01 2023-04-25 广东三维家信息科技有限公司 三维渲染呈现方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034782A (ja) 1997-08-01 2001-02-09 Mitsubishi Electric Inf Technol Center America Inc ボリュームデータ集合・レンダリング装置およびその方法、ボリューム・グラフィックス・システム
US6891533B1 (en) 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW335466B (en) * 1995-02-28 1998-07-01 Hitachi Ltd Data processor and shade processor
US6016150A (en) * 1995-08-04 2000-01-18 Microsoft Corporation Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers
JP3087640B2 (ja) * 1996-01-16 2000-09-11 株式会社日立製作所 グラフィックプロセッサ及びシステム
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
US7405734B2 (en) * 2000-07-18 2008-07-29 Silicon Graphics, Inc. Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units
US7027072B1 (en) * 2000-10-13 2006-04-11 Silicon Graphics, Inc. Method and system for spatially compositing digital video images with a tile pattern library
US7358974B2 (en) * 2001-01-29 2008-04-15 Silicon Graphics, Inc. Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video
JP4467267B2 (ja) * 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
US6885376B2 (en) * 2002-12-30 2005-04-26 Silicon Graphics, Inc. System, method, and computer program product for near-real time load balancing across multiple rendering pipelines
US7015915B1 (en) * 2003-08-12 2006-03-21 Nvidia Corporation Programming multiple chips from a command buffer
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
CN1890660A (zh) * 2003-11-19 2007-01-03 路西德信息技术有限公司 Pc总线上的多重三维图形管线的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034782A (ja) 1997-08-01 2001-02-09 Mitsubishi Electric Inf Technol Center America Inc ボリュームデータ集合・レンダリング装置およびその方法、ボリューム・グラフィックス・システム
US6891533B1 (en) 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images

Also Published As

Publication number Publication date
US20080117212A1 (en) 2008-05-22

Similar Documents

Publication Publication Date Title
KR100803220B1 (ko) 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치
US6798410B1 (en) Shading 3-dimensional computer generated images
US7167171B2 (en) Methods and apparatuses for a polygon binning process for rendering
US8339409B2 (en) Tile-based graphics system and method of operation of such a system
US8189007B2 (en) Graphics engine and method of distributing pixel data
EP1127337B1 (en) Shading 3-dimensional computer generated images
JP5336067B2 (ja) グラフィックスを処理する方法および装置
US7038685B1 (en) Programmable graphics processor for multithreaded execution of programs
US9965886B2 (en) Method of and apparatus for processing graphics
CN107003964B (zh) 处理未对准块传送操作
TWI434226B (zh) 影像處理技術
JP4977712B2 (ja) ディスプレースクリーン上に立体画像をレンダリングするコンピュータグラフィックスプロセッサならびにその方法
US8130223B1 (en) System and method for structuring an A-buffer to support multi-sample anti-aliasing
CN103810669A (zh) 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块
KR20160069801A (ko) 렌더링 방법 및 장치
KR20120139284A (ko) 타일 근접성을 사용하는 타일 기반 렌더링 방법 및 장치
US7405735B2 (en) Texture unit, image rendering apparatus and texel transfer method for transferring texels in a batch
KR102151443B1 (ko) 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치
JP2016085729A (ja) キャッシュメモリ・システム及びその動作方法
US20140015838A1 (en) Apparatus and method of performing tile binning of bezier curve
KR20170040698A (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
KR20210002753A (ko) 그래픽 파이프라인의 메모리 사용 감소를 위한 컴파일러 지원 기술
US10192348B2 (en) Method and apparatus for processing texture
US7859548B1 (en) Offloading cube map calculations to a shader
US6943796B2 (en) Method of maintaining continuity of sample jitter pattern across clustered graphics accelerators

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130115

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140124

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150116

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee