KR20050031207A - 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 - Google Patents
눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 Download PDFInfo
- Publication number
- KR20050031207A KR20050031207A KR1020030067432A KR20030067432A KR20050031207A KR 20050031207 A KR20050031207 A KR 20050031207A KR 1020030067432 A KR1020030067432 A KR 1020030067432A KR 20030067432 A KR20030067432 A KR 20030067432A KR 20050031207 A KR20050031207 A KR 20050031207A
- Authority
- KR
- South Korea
- Prior art keywords
- fragment
- depth
- fragments
- data
- depth value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
프래그먼트를 처리하는 3차원 그패픽스 렌더링 엔진 및 방법이 개시된다. 상기 렌더링 엔진은 깊이 필터 회로에 소정의 Z값을 갖는 깊이 필터를 위치시키고, 현재 래스터라이징되고 있는 제1물체를 구성하는 각 프래그먼트의 깊이 값과 상기 필터의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 제1물체를 구성하는 각 프래그먼트에 대한 데이터를 내부 메모리 장치에 저장한 후, 현재 래스터라이징되고 있는 제2물체를 구성하는 각 프래그먼트의 깊이 값과 상기 필터의 깊이 값을 비교하고, 그 비교결과 및 상기 내부 메모리 장치에 저장된 데이터에 기초하여 상기 제1물체에 의하여 겹쳐지는 상기 제2물체의 적어도 하나의 프래그먼트를 사전에 제거하는 방법을 수행한다. 또한 상기 렌더링 엔진은 렌더링되는 프래그먼트들의 공간상의 분포에 기초하여 실시간으로 상기 깊이 필터의 위치를 보정한다.
Description
본 발명은 그래픽스 렌더링 방법 및 렌더링 엔진에 관한 것으로, 보다 상세하게는 3차원 그래픽스 렌더링 엔진에서 공간상의 깊이 필터를 이용하여 눈에 보이지 않는 프래그먼트를 신속하게 제거하여 메모리 대역폭을 줄이는 방법 및 장치에 관한 것이다.
일반적인 고성능 3차원 렌더링 프로세서는 보간(interpolation), 텍스쳐 매핑(texture mapping), 퍼-프래그먼트 동작(per-fragment operation) 및 깊이 검사 (Z-테스트, 또는 depth test) 등을 지원하고 있다.
특히 텍스쳐 매핑은 3차원 렌더링 프로세서의 성능을 측정할 때 가장 중요한 척도가 된다. 상기 텍스쳐 매핑을 지원하기 위하여 대규모의 하드웨어 및 대용량의 메모리 장치가 필요하다. 따라서 3차원 렌더링 프로세서를 설계하는 경우 메모리 대역폭은 가장 중요한 요소이다. 또한, 3차원 렌더링 프로세서의 설계에 있어서 텍스쳐 매핑을 어떻게 효과적으로 처리할 수 있는가의 문제도 중요한 요소이다.
따라서 3차원 그래픽스 렌더링 엔진에서 메모리 대역폭 문제를 해결하기 위하여 3차원 그래픽스 하드웨어 제작업체인 ATI사(ATI Technologies Inc)는 Hyper-Z를 제시하였고, NVIDIA사는 LMA(Lightspeed Memory Architecture)를 제시하였다.
Hyper-Z 및 LMA는 프래그먼트마다 24비트 또는 32비트의 저장공간을 필요로 하므로 Hyper-Z 및 LMA를 수행하기 위하여 대용량의 저장공간을 갖는 온-칩 메모리가 필요하다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 3차원 그래픽스 렌더링 엔진에서 메모리 대역폭을 줄이기 위한 방법 및 장치를 제공하는 것이다.
또한, 본 발명이 이루고자 하는 기술적인 과제는 실시간으로 현재 렌더링되고 있는 프래그먼트의 분포에 따라 깊이 필터의 최적 위치를 찾기 위한 방법을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 스크린 상에 다수개의 물체들을 디스플레하기 위한 3차원 그래픽스 렌더링 엔진에서 프래그먼트를 처리하는 방법은 3차원 공간의 Z-축의 소정의 각 위치에 n개의 깊이 필터를 위치시키는 단계; 현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 제1물체의 각 프래그먼트에 상응하는 데이터를 소정의 저장장치로 저장하는 단계; 현재 래스터라이징되고 있는 제2물체를 구성하는 다수개의 프레그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 상기 비교결과 및 상기 소정의 저장장치에 저장된 데이터에 기초하여 상기 제1물체의 각 프레그먼트에 의하여 겹쳐지게 될 상기 제2물체의 각 프레그먼트를 제거하는 단계; 및 상기 제1물체의 각 프레그먼트 및 상기 제거된 프레그먼트를 제외한 상기 제2물체의 각 프레그먼트를 렌더링하는 단계를 구비한다. 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는다.
상기 기술적 과제를 달성하기 위한 3차원 그래픽스 렌더링 엔진에서 다수개의 프래그먼트들로 구성된 제1물체와 다수개의 프래그먼트들로 구성된 제2물체를 순차적으로 랜더링하는 방법은 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계; 현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 깊이 필터로 사상되고 상기 제1물체의 각 프래그먼트에 상응하는 데이터를 소정의 저장장치로 저장하는 단계; 상기 제2물체를 구성하는 프레그먼트들 각각을 래스터라이징하는 단계; 상기 제2물체의 각 프레그먼트의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과 및 상기 소정의 저장장치에 저장된 상기 제1물체의 각 프래그먼트에 상응하는 데이터에 기초하여 상기 제2물체를 구성하는 적어도 하나의 프래그먼트를 제거하는 단계; 및 상기 제거된 적어도 하나의 프레그먼트를 제외하고 상기 제1물체에 대한 데이터 및 상기 제2물체에 대한 데이터로 구성된 프래그먼트 데이터를 출력하는 단계를 구비한다.
상기 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계가 n개의 깊이필터들 각각을 위치시키는 단계인 경우, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간으로서 SRAM으로 구현되는 온-칩 메모리인 것이 바람직하다.
또한, 상기 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계가 n개의 깊이 필터들 각각을 위치시키는 단계인 경우, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는 SRAM으로 구현되는 캐쉬 메모리와 SDRAM으로 구현되는 외부 메모리 장치를 포함하는 것이 바람직하다.
상기 기술적 과제를 달성하기 위한 3차원 그래픽스 렌더링 엔진은 데이터를 저장하기 위한 내부 메모리 장치; 3차원정보를 수신하고 이를 기초로 삼각형 내의 모든 픽셀 데이터를 생성하는 픽셀 보간회로; 상기 픽셀 보간회로의 출력신호에 응답하여 상기 삼각형 내의 모든 좌표들에 대한 데이터를 생성하는 텍셀 보간회로; 및 3차원 공간의 Z-축에 각각 위치하는 n개의 깊이 필터를 구비하고, 현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 제1물체의 각 프래그먼트에 상응하는 데이터를 상기 내부 메모리 장치에 저장하고, 상기 제1물체가 레스터라이징된 후에 래스터라이징되고 있는 제2물체를 구성하는 다수개의 프레그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 상기 비교결과 및 상기 소정의 저장장치에 저장된 데이터에 기초하여 상기 제1물체의 각 프레그먼트에 의하여 겹쳐지게 될 상기 제2물체의 각 프레그먼트를 제거하고, 상기 제1물체의 각 프레그먼트에 대한 데이터 및 상기 제거된 프레그먼트를 제외한 상기 제2물체의 각 프레그먼트에 대한 데이터를 출력하는 깊이 필터회로를 구비한다. 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는다.
상기 3차원 그래픽스 렌더링 엔진은 상기 깊이 필터 회로로부터 출력되는 데이터를 수신하고 텍스쳐 동작을 수행하는 텍스쳐 블락; 상기 텍스쳐 블락으로부터 출력되는 데이터를 수신하고 퍼-프래그먼트 동작을 수행하는 퍼-프래그먼트 블락; 현재 디스플레이되고 있는 영상에 대한 깊이 값을 저장하는 깊이 버퍼; 및 상기 퍼-프래그먼트 블락으로부터 출력되는 데이터와 깊이 버퍼로부터 출력되는 데이터에 기초하여 상기 제1물체를 구성하는 각 프래그먼트의 깊이 값 및 상기 제2물체를 구성하는 각 프래그먼트의 깊이 값을 비교하고 그 비교결과에 기초하여 대응되는 상기 제2물체의 프래그먼트를 제거하는 깊이 테스트 블락을 더 구비한다.
상기 깊이 테스트 블락은 제거될 수 없는 제2물체의 프레그먼트들의 수 및 제거할 수 있는 가능성은 있으나 렌더링되는 순서에 따라 제거하지 못하는 제2물체의 프래그먼트들의 수를 비교하고, 그 비교결과에 기초하여 상기 깊이 필터의 3차원 공간의 Z-축에서의 위치를 제어하기 위한 위치제어신호를 출력한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 3차원 그래픽스 렌더링 엔진의 블록 다이어 그램을 나타낸다. 3차원 그래픽스 렌더링 엔진(100)은 래스터라이져(110), 메모리 블락(120), 텍스쳐 블락(130), 퍼-프래그먼트 블락(150), 깊이 테스트 블락(170) 및 표시장치(190)를 구비한다. 메모리 블락(120)은 외부 메모리 장치(121), 텍스쳐 메모리(131), 스텐실 메모리(151) 및 깊이 버퍼(171)를 구비한다. 외부 메모리 장치(121), 텍스쳐 메모리(131), 스텐실 메모리(151) 및 깊이 버퍼(171)는 SDRAM 또는 DDR-SDRAM으로 구현될 수 있다.
모든 3차원 이미지는 그래픽 파이프라인에서 생성되며, 상기 그래픽 파이프라인의 첫 번째 단계는 기하연산단계로서 3차원 이미지에 숨어있는 벡터 그래픽 정보와 배경 이미지가 컴퓨터에서 처리될 수 있는 3차원 정보(triangle data)로 바뀌는 단계이다. 그래픽 파이프라인의 두 번째 단계는 렌더링(rendering) 및 쉐이딩 (shading) 단계로서 3차원 정보(triangle data)가 모니터 상에서 디스플레이될 수 있도록 픽셀로 바뀌는 단계이다.
따라서 래스터라이져(110)는 3차원 정보(triangle data)를 처리하여 프레그먼트 데이터를 생성한다. 래스터라이져(110)는 픽셀 보간 회로(111), 텍셀 보간 회로(113), 깊이 필터회로(115) 및 내부 메모리 장치(117)를 구비한다.
픽셀 보간 회로(111)는 3차원정보(TDATA)를 수신하고 수신된 3차원정보 (TDATA)에 기초하여 픽셀 보간(pixel interpolation)을 통하여 각 꼭지점을 기준으로 삼각형내의 모든 픽셀들의 데이터를 생성한다. 여기서 3차원정보(TDATA)는 삼각형의 꼭지점의 좌표에 대한 정보를 의미한다. 3차원 정보는 픽셀의 위치정보(x, y, x, w)와 텍스쳐 좌표에 대한 정보(s, t, r, w), 안개 값 및 칼라정보 등을 포함한다. 여기서 w는 3차원 동치 좌표(homogeneous coordinates)를 나타내기 위한 값이고, s, t, r, w각각은 꼭지점의 위치정보(x, y, x, w)와 같은 텍스쳐 좌표를 나타낸다.
텍셀 보간 회로(113)는 픽셀 보간 회로(111의 출력신호를 수신하고 텍셀 보간(texel(=texture element) interpolation)을 통하여 꼭지점의 좌표만으로 삼각형 내의 모든 좌표에 대한 데이터를 생성한다. 여기서 생성된 데이터는 텍스쳐링 작업 시 필요한 텍스터 데이터의 좌표를 의미한다.
도 2는 본 발명에따른 3차원 공간상의 깊이 필터의 개념도를 나타낸다. 도 1 및 도 2를 참조하여 깊이 필터회로(115)의 구조 및 동작을 설명하면 다음과 같다.
여기서 NP(Near Plane)는 3차원 공간상에서 사람의 눈으로부터 가장 가까이 있는 평면을 나타내고, FP(Far Plane)은 삼차원 공간상에서 사람의 눈으로부터 가장 멀리 있는 평면을 나타낸다. DF는 NP와 FP으로 한정된 3차원 공간상의 Z-축상의 소정의 위치에 설치된 깊이 필터를 의미한다. 따라서 사람의 눈에 보이는 프래그먼트들은 NP와 FP사이에 존재한다.
우선 표시장치(190)의 스크린 상에 도시되는 제1물체(A) 및 제2물체(B)는 각각 다수개의 프래그먼트들을 구비하고, 제1물체(A)가 렌더링(엄밀하게 말하자면 래스터라이징)된 후 제2물체가 렌더링(래스터라이징)된다고 가정한다.
깊이 필터회로(115)는 3차원 공간의 Z-축에 각각 위치하는 깊이 필터(DF)를 구비한다. 상기 깊이 필터(DF)는 소정의 Z값을 갖는 위치에 설치된다. n 개의 깊이 필터들은 NP와 FP사이에 놓일 수 있다.
깊이 필터회로(115)는 현재 래스터라이징되고 있는 제1물체(A)를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값과 상기 깊이 필터(DF)의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 제1물체(A)의 각 프래그먼트에 상응하는 데이터를 내부 메모리 장치(117)에 저장한다.
예컨대 제1물체(A)를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값이 상기 깊이 필터(DF)의 깊이 값보다 작은 경우 제1물체(A)를 구성하는 각 프래그먼트가 깊이 필터(DF)로 사상된 영역의 깊이 필터 값(DFV)은 "1"로 설정되고 그 값은 내부 메모리 장치(117)에 저장되고, 그 이외의 영역에 대한 깊이 필터 값(DFV)은 "0"으로 설정되고 그 값은 내부 메모리 장치(117)에 저장된다.
따라서 하나의 깊이 필터가 깊이 필터 회로(115)에 존재하는 경우 내부 메모리 장치(117)는 각 프래그먼트에 대한 데이터를 저장하기 위하여 1비트의 저장공간만을 필요로 한다. 그러나 n개의 깊이 필터들이 깊이 필터 회로(115)에 존재하는 경우 내부 메모리 장치(117)는 각 프래그먼트에 대한 데이터를 저장하기 위하여 log2(n+1)비트의 저장공간만을 필요로 한다.
내부 메모리 장치(117)는 SRAM으로 구현될 수 있다. 따라서 본 발명에 따른 내부 메모리 장치(117)의 메모리 대역폭은 Hyper-Z 및 LMA에 사용되는 프레그먼트당 24비트 또는 32비트의 메모리 대역폭보다 상당히 감소한다.
깊이 필터회로(115)는 제1물체(A)가 레스터라이징된 후에 래스터라이징되고 있는 제2물체(B)를 구성하는 각 프레그먼트의 3차원 공간상의 깊이 값과 깊이 필터(DF)의 깊이 값을 비교하고, 상기 비교결과 및 상기 내부 메모리 장치(117)에 저장된 데이터에 기초하여 상기 제1물체(A)의 각 프레그먼트에 의하여 겹쳐지게 될 상기 제2물체(B)의 각 프레그먼트(C)를 제거한다.
예컨대 라인(LI1)상에 있는 프래그먼트(201)가 제거되는 경우를 설명하면 다음과 같다. 제1물체(A)의 프래그먼트의 평면상의 좌표와 제2물체(B)의 프래그먼트(201)의 평면상의 좌표가 동일하고 상기 제2물체(B)의 프래그먼트(201)의 공간상의 깊이 값이 상기 깊이 필터의 깊이 값보다 큰 경우, 깊이 필터회로 (115)는 내부 메모리 장치(117)에 저장된 데이터(예컨대 "1") 및 상기 비교결과에 기초하여 제2물체(B)의 프래그먼트(201)를 제거한다.
그러나 라인(LI2)상에 있는 프래그먼트(203)가 제거되지 않는 경우를 설명하면 다음과 같다. 상기 제2물체(B)의 프래그먼트(203)의 공간상의 깊이 값이 상기 깊이 필터의 깊이 값보다 큰 경우라도 내부 메모리 장치(117)에 저장된 셀(205)에 대한 데이터가 "0"이므로(즉, 제2물체(B)의 프래그먼트(203)와 겹쳐질 수 있는 제1물체(A)의 프래그먼트가 없음), 깊이 필터회로(115)는 제2물체(B)의 프래그먼트 (203)를 제거할 수 없다.
깊이 필터회로(115)는 제1물체(A)의 각 프레그먼트에 대한 데이터 및 제2물체의 각 프레그먼트 중에서 제1물체(A)의 각 프레그먼트와 겹쳐지는 적어도 하나의 프래그먼트(C)를 제외한 각 프레그먼트에 대한 데이터를 프래그먼트 데이터(FDATA)로서 텍스쳐 블락(130)으로 출력한다.
즉, 본 발명에 따른 깊이 필터회로(115)는 깊이 테스트 블락(170)에 앞서서 깊이 테스트를 수행하고 제1물체(A)의 각 프래그먼트에 가려서 보이지 않는 제2물체(B)의 적어도 하나의 프래그먼트(C)를 신속하게 제거할 수 있는 효과가 있다.
도 3은 본 발명에 따른 3개의 깊이 필터들의 공간상의 배치를 나타낸다. 도 3은 더욱 많은 프래그먼트들을 신속하게 제거하기 위하여 n(n=3)개의 깊이 필터들을 Z-축상에 설치한 경우를 나타낸다.
여기서 DF1, DF2 및 DF3은 Z-축에 수직이 되도록 설치된 제1깊이 필터, 제2깊이 필터 및 제3깊이 필터를 각각 나타낸다. 깊이 필터 회로(115)는 각 깊이 필터(DF1, DF2, DF3)의 깊이 값과 래스터라이징되고 있는 각 물체(A1, B1, C1)를 구성하는 각 프래그먼트의 깊이 값을 비교하고, 그 비교결과에 기초하여 2비트로 구성된 데이터를 내부 메모리 장치(117)에 저장한다.
따라서 EDF는 각 물체(A1, B1, C1)가 래스터라이징되는 순서에 따라 내부 메모리 장치(117)에 저장된 데이터를 깊이 필터로 엔코드한 맵(map)을 나타낸다. 여기서 00은 가려지지 않는 빈 셀 영역들을 나타내고, 01은 물체들(A1, B1, 및 C1)에 의하여 가려지는 깊이필터(DF3)의 셀 영역들의 값을 나타내고, 10은 물체들(A1 및 B1)에 의하여 가려지는 깊이필터(DF2)의 셀 영역들의 값을 나타내고, 11은 10은 물체(A1)에 의하여 가려지는 깊이필터(DF1)의 셀 영역들의 값을 나타낸다고 가정한다.
깊이 필터들의 수가 3개인 경우 내부 메모리 장치(117)는 한 프래그먼트당 log2(n+1)= 2비트의 저장공간을 필요로 한다. 저장공간이 증가될수록 프래그먼트를 제거하는 효과는 증가한다. 빠른 동작 속도를 갖는 3차원 그래픽스 렌더링 엔진이 필요한 경우, 내부 메모리 장치(117)에 깊이 필터의 대한 모든 데이터를 저장하면 외부 메모리 장치(120)는 불필요하다.
또한 내부 메모리 장치(117)의 크기를 극소화하기 위하여 외부 메모리 장치(120)를 이용할 수 있다. 이 경우 내부 메모리 장치(117)는 SRAM을 이용한 캐쉬 메모리 형태로 구현될 수 있고 외부 메모리 장치(120)는 SDRAM 또는 DDR-SDRAM으로 구현 될 수 있다.
텍스쳐 블락(130)은 프래그먼트 데이터(FDATA)를 수신하고 텍스쳐 동작을 수행하고 텍스쳐 동작의 결과를 출력한다. 텍스쳐 블락(130)은 텍스쳐 메모리(131)에 저장된 각 픽셀의 칼라정보를 이용하여 텍스쳐 동작을 수행한다.
퍼-프래그먼트 블락(150)은 텍스쳐 블락(130)의 텍스쳐 동작의 결과를 수신하고 퍼-프래그먼트 동작을 수행하고 그 퍼-프래그먼트 동작의 결과를 출력한다. 퍼-프래그먼트 블락(150)은 포그(fog), 스텐실(stencil), 알파 블렌딩 동작을 수행한다. 퍼-프래그먼트 블락(150)이 스텐실 동작을 수행하는 경우 퍼-프래그먼트 블락(150)은 스텐실 메모리(151)에 저장된 렌더링 영역에 대한 정보를 이용하여 스텐실 동작을 수행한다.
깊이 테스트 블락(170)은 상기 퍼-프래그먼트 동작의 결과 및 현재 표시장치(190)에 디스플레이되고 있는 영상에 대한 깊이 값을 수신하고 이들에 기초하여 상기 제1물체를 구성하는 각 프래그먼트의 깊이 값 및 상기 제2물체를 구성하는 각 프래그먼트의 깊이 값을 비교하고 그 비교결과에 기초하여 대응되는 상기 제2물체의 프래그먼트를 제거한다.
본 발명에 따른 깊이 테스트 블락(170)은 렌더링되는 프래그먼트들의 공간상의 분포에 따라 공간상의 깊이 필터의 위치를 실시간으로 제어하기 위한 위치제어신호를 깊이 필터회로(115)로 출력한다.
도 4는 본 발명에 따른 필터의 위치에 따른 전체 프래그먼트의 분포도를 나타낸다. 도 4를 참조하여 깊이 테스트 블락(170)이 렌더링되는 프래그먼트들의 공간상의 분포에 따라 공간상의 깊이 필터의 위치를 실시간으로 제어하기 위한 개념을 설명하면 다음과 같다.
여기서 t는 깊이 필터의 위치를 나타내고, 세로축은 프래그먼트들의 누적값을 나타내고, RP는 깊이 필터회로(115)에서 제거된 프래그먼트의 수를 나타내고, FP는 깊이 필터회로(115)에서 구조적으로 제거될 수 없는 프래그먼트의 수를 나타내고, BP는 깊이 필터회로(115)에서 제거될 수 있는 총 프래그먼트의 수를 나타내고, SP는 깊이 필터회로(115)에서 제거할 수 있는 가능성은 있으나 렌더링되는 순서에 의해 제거하지 못한 프래그먼트의 수를 나타낸다.
깊이 테스트 블락(170)은 FP와 SP의 누적 값의 크기를 비교하고, 그 비교결과에 기초하여 다음 영상 프레임에 대한 도 2의 깊이 필터(DF)의 위치를 예측할 수 있다. 즉, 도 4에 도시된 바와 같이 FP와 SP가 교차하는 위치(t)에서 가장 많은 프래그먼트들이 제거된다. 따라서 깊이 테스트 블락(170)은 FP와 SP가 교차하는 경우 도 2에 도시된 바와 같은 깊이 필터의 3차원 공간의 Z-축에서의 위치를 제어하기 위한 위치제어신호를 깊이 필터회로(115)로 출력한다. 따라서 깊이 필터회로(115)는 상기 위치제어신호에 응답하여 깊이 필터의 Z-축에서의 위치를 제어한다.
3차원 그래픽스 시스템에서 프래그먼트들의 공간상의 분포를 측정한다는 것은 매우 힘든 작업이다. 그러나 본 발명에 따른 3차원 그래픽스 렌더링 엔진은 국부적으로 FP와 SP가 교차하는 최적의 위치를 실시간으로 찾아 깊이 필터의 위치를 보정시킬 수 있으므로 눈에 보이지 않는 적어도 하나의 프래그먼트를 신속하게 제거하는 효과가 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 3차원 그래픽스 렌더링 엔진에서 n개의 깊이 필터들을 이용하여 눈에 보이지 않는 프래그먼트를 텍스쳐 매핑 등의 매우 큰 메모리 대역폭을 필요로 하는 연산 이전에 제거하는 효과를 가질 수 있으며 상기 방법 및 장치는 각 프래그먼트당 log2(n+1)비트의 저장공간만을 필요로 하므로 다른 형태의 방법들에 비하여 작은 저장공간이 필요하기 때문에 내부 메모리 장치의 크기는 감소되는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 3차원 그래픽스 렌더링 엔진의 블록 다이어 그램을 나타낸다.
도 2는 본 발명에 따른 3차원 공간상의 깊이 필터의 개념도를 나타낸다.
도 3은 본 발명에 따른 3개의 깊이 필터들의 공간상의 배치를 나타낸다.
도 4는 본 발명에 따른 깊이 필터의 위치에 따른 전체 프래그먼트의 분포도를 나타낸다.
Claims (11)
- 스크린 상에 다수개의 물체들을 디스플레하기 위한 3차원 그래픽스 렌더링 엔진에서 프래그먼트를 처리하는 방법에 있어서,3차원 공간의 Z-축의 소정의 각 위치에 n개의 깊이 필터를 위치시키는 단계;현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 제1물체의 각 프래그먼트에 상응하는 데이터를 소정의 저장장치로 저장하는 단계;현재 래스터라이징되고 있는 제2물체를 구성하는 다수개의 프레그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 상기 비교결과 및 상기 소정의 저장장치에 저장된 데이터에 기초하여 상기 제1물체의 각 프레그먼트에 의하여 겹쳐지게 될 상기 제2물체의 각 프레그먼트를 제거하는 단계; 및상기 제1물체의 각 프레그먼트 및 상기 제거된 프레그먼트를 제외한 상기 제2물체의 각 프레그먼트를 렌더링하는 단계를 구비하는 것을 특징으로 하는 렌더링 방법.
- 제1항에 있어서, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는 특징으로 하는 렌더링 방법.
- 3차원 그래픽스 렌더링 엔진에서 다수개의 프래그먼트들로 구성된 제1물체와 다수개의 프래그먼트들로 구성된 제2물체를 순차적으로 랜더링하는 방법에 있어서,3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계;현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 깊이 필터로 사상되고 상기 제1물체의 각 프래그먼트에 상응하는 데이터를 소정의 저장장치로 저장하는 단계;상기 제2물체를 구성하는 프레그먼트들 각각을 래스터라이징하는 단계;상기 제2물체의 각 프레그먼트의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과 및 상기 소정의 저장장치에 저장된 상기 제1물체의 각 프래그먼트에 상응하는 데이터에 기초하여 상기 제2물체를 구성하는 적어도 하나의 프래그먼트를 제거하는 단계; 및상기 제거된 적어도 하나의 프레그먼트를 제외하고 상기 제1물체에 대한 데이터 및 상기 제2물체에 대한 데이터로 구성된 프래그먼트 데이터를 출력하는 단계를 구비하는 것을 특징으로 하는 렌더링 방법.
- 제3항에 있어서, 상기 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계가 n개의 깊이필터들 각각을 위치시키는 단계인 경우, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는 SRAM으로 구현되는 온-칩 메모리인 것을 특징으로 하는 렌더링 방법.
- 제3항에 있어서, 상기 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계가 n개의 깊이 필터들 각각을 위치시키는 단계인 경우, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간으로서 SRAM으로 구현되는 캐쉬 메모리와 SDRAM으로 구현되는 외부 메모리 장치를 포함하는 것을 특징으로 하는 렌더링 방법.
- 제3항에 있어서, 상기 랜더링 방법은,상기 프래그먼트 데이터를 수신하고 텍스쳐 동작을 수행하고 텍스쳐 동작의 결과를 출력하는 단계;상기 텍스쳐 동작의 결과를 수신하고 퍼-프래그먼트 동작을 수행하고 그 퍼-프래그먼트 동작의 결과를 출력하는 단계; 및상기 퍼-프래그먼트 동작의 결과 및 현재 디스플레이되고 있는 영상에 대한 깊이 값을 수신하고 이들에 기초하여 상기 제1물체를 구성하는 각 프래그먼트의 깊이 값 및 상기 제2물체를 구성하는 각 프래그먼트의 깊이 값을 비교하고 그 비교결과에 기초하여 대응되는 상기 제2물체의 프래그먼트를 제거하는 단계를 더 구비하는 것을 특징으로 하는 렌더링 방법.
- 제6항에 있어서, 상기 렌더링 방법은,상기 프래그먼트를 제거하는 단계를 통하여 제거될 수 없는 상기 제2물체의 프레그먼트들의 수 및 제거할 수 있는 가능성은 있으나 렌더링되는 순서에 따라 제거하지 못하는 상기 제2물체의 프래그먼트들의 수를 비교하고, 그 비교결과에 기초하여 상기 깊이 필터의 위치를 제어하는 단계를 더 구비하는 것을 특징으로 하는 렌더링 방법.
- 3차원 그래픽스 렌더링 엔진에 있어서.데이터를 저장하기 위한 내부 메모리 장치;3차원정보를 수신하고 이를 기초로 삼각형 내의 모든 픽셀 데이터를 생성하는 픽셀 보간회로;상기 픽셀 보간회로의 출력신호에 응답하여 상기 삼각형 내의 모든 좌표들에 대한 데이터를 생성하는 텍셀 보간회로; 및3차원 공간의 Z-축에 각각 위치하는 n개의 깊이 필터를 구비하고, 현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 그 비교결과에 기초하여 상기 제1물체의 각 프래그먼트에 상응하는 데이터를 상기 내부 메모리 장치에 저장하고, 상기 제1물체가 레스터라이징된 후에 래스터라이징되고 있는 제2물체를 구성하는 다수개의 프레그먼트들 각각의 3차원 공간상의 깊이 값 및 상기 깊이 필터의 깊이 값을 비교하고, 상기 비교결과 및 상기 소정의 저장장치에 저장된 데이터에 기초하여 상기 제1물체의 각 프레그먼트에 의하여 겹쳐지게 될 상기 제2물체의 각 프레그먼트를 제거하고, 상기 제1물체의 각 프레그먼트에 대한 데이터 및 상기 제거된 프레그먼트를 제외한 상기 제2물체의 각 프레그먼트에 대한 데이터를 출력하는 깊이 필터회로를 구비하는 것을 특징으로 하는 3차원 그래픽스 렌더링 엔진.
- 제8항에 있어서, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는 특징으로 하는 3차원 그래픽스 렌더링 엔진.
- 제8항에 있어서, 상기 3차원 그래픽스 렌더링 엔진은,상기 깊이 필터 회로로부터 출력되는 데이터를 수신하고 텍스쳐 동작을 수행하는 텍스쳐 블락;상기 텍스쳐 블락으로부터 출력되는 데이터를 수신하고 퍼-프래그먼트 동작을 수행하는 퍼-프래그먼트 블락;현재 디스플레이되고 있는 영상에 대한 깊이 값을 저장하는 깊이 버퍼; 및상기 퍼-프래그먼트 블락으로부터 출력되는 데이터와 깊이 버퍼로부터 출력되는 데이터에 기초하여 상기 제1물체를 구성하는 각 프래그먼트의 깊이 값 및 상기 제2물체를 구성하는 각 프래그먼트의 깊이 값을 비교하고 그 비교결과에 기초하여 대응되는 상기 제2물체의 프래그먼트를 제거하는 깊이 테스트 블락을 더 구비하는 것을 특징으로 하는 3차원 그래픽스 렌더링 엔진.
- 제8항에 있어서, 상기 깊이 테스트 블락은 제거될 수 없는 제2물체의 프레그먼트들의 수 및 제거할 수 있는 가능성은 있으나 렌더링되는 순서에 따라 제거하지 못하는 제2물체의 프래그먼트들의 수를 비교하고, 그 비교결과에 기초하여 상기 깊이 필터의 3차원 공간의 Z-축에서의 위치를 제어하기 위한 위치제어신호를 출력하는 것을 특징으로 하는 3차원 그래픽스 렌더링 엔진.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030067432A KR100546383B1 (ko) | 2003-09-29 | 2003-09-29 | 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 |
TW092131749A TWI235341B (en) | 2003-09-29 | 2003-11-13 | 3D graphics rendering engine for processing an invisible fragment and a method therefor |
US10/730,226 US7027047B2 (en) | 2003-09-29 | 2003-12-08 | 3D graphics rendering engine for processing an invisible fragment and a method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030067432A KR100546383B1 (ko) | 2003-09-29 | 2003-09-29 | 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050031207A true KR20050031207A (ko) | 2005-04-06 |
KR100546383B1 KR100546383B1 (ko) | 2006-01-26 |
Family
ID=36637642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030067432A KR100546383B1 (ko) | 2003-09-29 | 2003-09-29 | 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7027047B2 (ko) |
KR (1) | KR100546383B1 (ko) |
TW (1) | TWI235341B (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100682456B1 (ko) * | 2006-02-08 | 2007-02-15 | 삼성전자주식회사 | 렌더링 영역을 최소화하는 3d 그래픽스 데이터의 렌더링방법 및 시스템 |
KR100686357B1 (ko) * | 2005-10-24 | 2007-02-22 | 엠텍비젼 주식회사 | 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치 |
KR100883804B1 (ko) * | 2007-05-16 | 2009-02-16 | 박우찬 | 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치 |
US8379050B2 (en) | 2006-11-08 | 2013-02-19 | Samsung Electronics Co., Ltd. | Rendering apparatus, method and medium |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
CN100447818C (zh) * | 2006-05-23 | 2008-12-31 | 绘展科技股份有限公司 | 可调变式的拼块景深滤除系统及方法 |
KR101345362B1 (ko) * | 2006-05-31 | 2013-12-30 | 코닌클리케 필립스 엔.브이. | 깊이가 가중된 컬러화를 이용한 볼륨 렌더링 방법 및 장치 |
US8711203B2 (en) * | 2006-10-11 | 2014-04-29 | Koninklijke Philips N.V. | Creating three dimensional graphics data |
KR101782044B1 (ko) | 2011-02-22 | 2017-09-26 | 삼성전자주식회사 | 그래픽 프로세서 및 조기 가시성 테스트 방법 |
KR102116708B1 (ko) | 2013-05-24 | 2020-05-29 | 삼성전자 주식회사 | 그래픽스 프로세싱 유닛 |
KR20150042095A (ko) | 2013-10-10 | 2015-04-20 | 삼성전자주식회사 | 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법 |
US9582888B2 (en) * | 2014-06-19 | 2017-02-28 | Qualcomm Incorporated | Structured light three-dimensional (3D) depth map based on content filtering |
GB2539509B (en) * | 2015-06-19 | 2017-06-14 | Advanced Risc Mach Ltd | Method of and apparatus for processing graphics |
US10943389B2 (en) * | 2016-12-09 | 2021-03-09 | Advanced Micro Devices, Inc. | Removing or identifying overlapping fragments after z-culling |
GB2574361B (en) | 2017-12-18 | 2021-03-24 | Advanced Risc Mach Ltd | Graphics Processing |
US10726610B2 (en) | 2018-08-29 | 2020-07-28 | Arm Limited | Efficient graphics processing using metadata |
US20220165033A1 (en) * | 2020-11-20 | 2022-05-26 | XRSpace CO., LTD. | Method and apparatus for rendering three-dimensional objects in an extended reality environment |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2181929B (en) * | 1985-10-21 | 1989-09-20 | Sony Corp | Methods of and apparatus for video signal processing |
US6456285B2 (en) | 1998-05-06 | 2002-09-24 | Microsoft Corporation | Occlusion culling for complex transparent scenes in computer generated graphics |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
WO2000010372A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline |
US6603474B1 (en) * | 1999-05-27 | 2003-08-05 | International Business Machines Corporation | Method and apparatus for occlusion culling of objects in a data processing system |
US6791544B1 (en) * | 2000-04-06 | 2004-09-14 | S3 Graphics Co., Ltd. | Shadow rendering system and method |
US20030002729A1 (en) * | 2001-06-14 | 2003-01-02 | Wittenbrink Craig M. | System for processing overlapping data |
US7145565B2 (en) * | 2003-02-27 | 2006-12-05 | Nvidia Corporation | Depth bounds testing |
US7061487B2 (en) * | 2003-04-03 | 2006-06-13 | Silicon Integrated Systems Corp. | Method and apparatus for improving depth information communication bandwidth in a computer graphics system |
-
2003
- 2003-09-29 KR KR1020030067432A patent/KR100546383B1/ko active IP Right Grant
- 2003-11-13 TW TW092131749A patent/TWI235341B/zh not_active IP Right Cessation
- 2003-12-08 US US10/730,226 patent/US7027047B2/en not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100686357B1 (ko) * | 2005-10-24 | 2007-02-22 | 엠텍비젼 주식회사 | 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치 |
KR100682456B1 (ko) * | 2006-02-08 | 2007-02-15 | 삼성전자주식회사 | 렌더링 영역을 최소화하는 3d 그래픽스 데이터의 렌더링방법 및 시스템 |
US8379050B2 (en) | 2006-11-08 | 2013-02-19 | Samsung Electronics Co., Ltd. | Rendering apparatus, method and medium |
KR101239965B1 (ko) * | 2006-11-08 | 2013-03-06 | 연세대학교 산학협력단 | 렌더링 장치 및 방법 |
KR100883804B1 (ko) * | 2007-05-16 | 2009-02-16 | 박우찬 | 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치 |
Also Published As
Publication number | Publication date |
---|---|
TWI235341B (en) | 2005-07-01 |
US7027047B2 (en) | 2006-04-11 |
US20050068319A1 (en) | 2005-03-31 |
TW200512669A (en) | 2005-04-01 |
KR100546383B1 (ko) | 2006-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100546383B1 (ko) | 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 | |
US7570266B1 (en) | Multiple data buffers for processing graphics data | |
US7042462B2 (en) | Pixel cache, 3D graphics accelerator using the same, and method therefor | |
US7081895B2 (en) | Systems and methods of multi-pass data processing | |
US7403208B1 (en) | Generation of jittered sub-pixel samples using programmable sub-pixel offsets | |
KR100547258B1 (ko) | 안티-에일리어싱 수퍼샘플링을 위한 방법 및 장치 | |
US7109987B2 (en) | Method and apparatus for dual pass adaptive tessellation | |
US7408553B1 (en) | Inside testing for paths | |
US9269180B2 (en) | Computer graphics processor and method for rendering a three-dimensional image on a display screen | |
US7038678B2 (en) | Dependent texture shadow antialiasing | |
US9519982B2 (en) | Rasterisation in graphics processing systems | |
JPWO2012074092A1 (ja) | 画像処理装置 | |
US10134171B2 (en) | Graphics processing systems | |
KR20190030174A (ko) | 그래픽 처리 | |
US6940515B1 (en) | User programmable primitive engine | |
US8681154B1 (en) | Adaptive rendering of indistinct objects | |
US8525843B2 (en) | Graphic system comprising a fragment graphic module and relative rendering method | |
US7492373B2 (en) | Reducing memory bandwidth to texture samplers via re-interpolation of texture coordinates | |
US20200074721A1 (en) | Graphics processing | |
KR100806345B1 (ko) | 3차원 그래픽 가속기 그리고 텍스쳐 데이터 독출 방법 | |
US20070052718A1 (en) | Texturing 3-dimensional computer graphic images | |
US7256796B1 (en) | Per-fragment control for writing an output buffer | |
JP2003529115A (ja) | スーパサンプリング・サンプル・バッファを有し、サンプル位置情報を効果的に記憶するグラフィックス・システム | |
US9437025B2 (en) | Stencil data compression system and method and graphics processing unit incorporating the same | |
US20240212257A1 (en) | Workload packing in graphics texture pipeline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
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: 20130102 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140103 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20141231 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 12 |