KR100546383B1 - 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 - Google Patents

눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 Download PDF

Info

Publication number
KR100546383B1
KR100546383B1 KR1020030067432A KR20030067432A KR100546383B1 KR 100546383 B1 KR100546383 B1 KR 100546383B1 KR 1020030067432 A KR1020030067432 A KR 1020030067432A KR 20030067432 A KR20030067432 A KR 20030067432A KR 100546383 B1 KR100546383 B1 KR 100546383B1
Authority
KR
South Korea
Prior art keywords
fragment
depth
fragments
data
depth value
Prior art date
Application number
KR1020030067432A
Other languages
English (en)
Other versions
KR20050031207A (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 KR1020030067432A priority Critical patent/KR100546383B1/ko
Priority to TW092131749A priority patent/TWI235341B/zh
Priority to US10/730,226 priority patent/US7027047B2/en
Publication of KR20050031207A publication Critical patent/KR20050031207A/ko
Application granted granted Critical
Publication of KR100546383B1 publication Critical patent/KR100546383B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Abstract

프래그먼트를 처리하는 3차원 그패픽스 렌더링 엔진 및 방법이 개시된다. 상기 렌더링 엔진은 깊이 필터 회로에 소정의 Z값을 갖는 깊이 필터를 위치시키고, 현재 래스터라이징되고 있는 제1물체를 구성하는 각 프래그먼트의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과에 상응하는 비교 데이터를 내부 메모리 장치에 저장한 후, 현재 래스터라이징되고 있는 제2물체를 구성하는 각 프래그먼트의 깊이 값과 상기 필터의 깊이 값의 비교 결과와, 상기 비교 데이터에 기초하여, 상기 제1물체에 의하여 겹쳐지는 상기 제2물체의 적어도 하나의 프래그먼트를 사전에 제거하는 방법을 수행한다. 또한 상기 렌더링 엔진은 렌더링되는 프래그먼트들의 공간상의 분포에 기초하여 실시간으로 상기 깊이 필터의 위치를 보정한다.
3차원 그래픽스 렌더링 엔진,

Description

눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원 그래픽스 렌더링 엔진 및 그 방법{3D graphics rendering engine for processing an invisible fragment and method thereof}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 3차원 그래픽스 렌더링 엔진의 블록 다이어 그램을 나타낸다.
도 2는 본 발명에 따른 3차원 공간상의 깊이 필터의 개념도를 나타낸다.
도 3은 본 발명에 따른 3개의 깊이 필터들의 공간상의 배치를 나타낸다.
도 4는 본 발명에 따른 깊이 필터의 위치에 따른 전체 프래그먼트의 분포도를 나타낸다.
본 발명은 그래픽스 렌더링 방법 및 렌더링 엔진에 관한 것으로, 보다 상세하게는 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차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과에 상응하는 비교 데이터를 소정의 저장장치로 저장하는 단계; 현재 래스터라이징되고 있는 제2물체를 구성하는 다수개의 프래그먼트들 각각에 대한 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과와, 상기 비교 데이터로부터, 상기 제2물체의 각 프래그먼트가 상기 제1물체의 각 프래그먼트와 겹쳐지는가를 판단하고, 상기 제1물체의 각 프래그먼트에 의하여 겹쳐지게 되는 상기 제2물체의 각 프래그먼트를 선별하여 제거하는 단계; 및 상기 제1물체의 각 프래그먼트 및 선별하여 제거되는 프래그먼트를 제외한 상기 제2물체의 각 프래그먼트를 렌더링하는 단계를 구비한다. 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는다.
상기 기술적 과제를 달성하기 위한 3차원 그래픽스 렌더링 엔진에서 다수개의 프래그먼트들로 구성된 제1물체와 다수개의 프래그먼트들로 구성된 제2물체를 순차적으로 랜더링하는 방법은 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계; 현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각에 대한 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과에 상응하는 비교 데이터를 소정의 저장장치로 저장하는 단계; 상기 제2물체를 구성하는 프래그먼트들 각각을 래스터라이징하는 단계; 상기 제2물체의 각 프래그먼트의 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과와, 상기 비교 데이터에 기초하여, 상기 제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물체가 레스터라이징된 후에 래스터라이징되는 제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"로 설정되고 그 값(DFV. 비교 데이터)은 내부 메모리 장치(117)에 저장되고, 그 이외의 영역에 대한 깊이 필터 값(DFV)은 "0"으로 설정되고 그 값(DFV. 비교 데이터)은 내부 메모리 장치(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)비트의 저장공간만을 필요로 하므로 다른 형태의 방법들에 비하여 작은 저장공간이 필요하기 때문에 내부 메모리 장치의 크기는 감소되는 효과가 있다.

Claims (11)

  1. 스크린 상에 다수개의 물체들을 디스플레하기 위한 3차원 그래픽스 렌더링 엔진에서 프래그먼트를 처리하는 방법에 있어서,
    3차원 공간의 Z-축의 소정의 각 위치에 n개의 깊이 필터를 위치시키는 단계;
    현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각에 대한 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과에 상응하는 비교 데이터를 소정의 저장장치에 저장하는 단계;
    현재 래스터라이징되고 있는 제2물체를 구성하는 다수개의 프래그먼트들 각각에 대한 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과와, 상기 비교 데이터로부터, 상기 제2물체의 각 프래그먼트가 상기 제1물체의 각 프래그먼트와 겹쳐지는가를 판단하고, 상기 제1물체의 각 프래그먼트에 의하여 겹쳐지게 되는 상기 제2물체의 각 프래그먼트를 선별하여 제거하는 단계; 및
    상기 제1물체의 각 프래그먼트 및 선별하여 제거되는 프래그먼트를 제외한 상기 제2물체의 각 프래그먼트를 렌더링하는 단계를 구비하는 것을 특징으로 하는 렌더링 방법.
  2. 제1항에 있어서, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는 것을 특징으로 하는 렌더링 방법.
  3. 3차원 그래픽스 렌더링 엔진에서 다수개의 프래그먼트들로 구성된 제1물체와 다수개의 프래그먼트들로 구성된 제2물체를 순차적으로 랜더링하는 방법에 있어서,
    3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계;
    현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각에 대한 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과에 상응하는 비교 데이터를 소정의 저장장치에 저장하는 단계;
    상기 제2물체를 구성하는 프래그먼트들 각각을 래스터라이징하는 단계;
    상기 제2물체의 각 프래그먼트의 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과와, 상기 비교 데이터에 기초하여, 상기 제2물체를 구성하는 적어도 하나의 프래그먼트를 선별하여 제거하는 단계; 및
    상기 제1물체에 대한 데이터 및 선별하여 제거되는 적어도 하나의 프래그먼트를 제외한 상기 제2물체에 대한 데이터로 구성된 프래그먼트 데이터를 출력하는 단계를 구비하는 것을 특징으로 하는 렌더링 방법.
  4. 제3항에 있어서, 상기 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계가 n개의 깊이필터들 각각을 위치시키는 단계인 경우, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는 SRAM으로 구현되는 온-칩 메모리인 것을 특징으로 하는 렌더링 방법.
  5. 제3항에 있어서, 상기 3차원 공간의 Z-축의 소정의 위치에 깊이 필터를 위치시키는 단계가 n개의 깊이 필터들 각각을 위치시키는 단계인 경우, 상기 소정의 저 장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간으로서 SRAM으로 구현되는 캐쉬 메모리와 SDRAM으로 구현되는 외부 메모리 장치를 포함하는 것을 특징으로 하는 렌더링 방법.
  6. 제3항에 있어서, 상기 랜더링 방법은,
    상기 프래그먼트 데이터를 수신하고 텍스쳐 동작을 수행하고 텍스쳐 동작의 결과를 출력하는 단계;
    상기 텍스쳐 동작의 결과를 수신하고 퍼-프래그먼트 동작을 수행하고 그 퍼-프래그먼트 동작의 결과를 출력하는 단계; 및
    상기 퍼-프래그먼트 동작의 결과 및 현재 디스플레이되고 있는 영상에 대한 깊이 값을 수신하고 이들에 기초하여 상기 제1물체를 구성하는 각 프래그먼트의 깊이 값 및 상기 제2물체를 구성하는 각 프래그먼트의 깊이 값을 비교하고 그 비교결과에 기초하여 대응되는 상기 제2물체의 프래그먼트를 제거하는 단계를 더 구비하는 것을 특징으로 하는 렌더링 방법.
  7. 제6항에 있어서, 상기 렌더링 방법은,
    상기 프래그먼트를 제거하는 단계를 통하여 제거될 수 없는 상기 제2물체의 프레그먼트들의 수 및 제거할 수 있는 가능성은 있으나 렌더링되는 순서에 따라 제거하지 못하는 상기 제2물체의 프래그먼트들의 수를 비교하고, 그 비교결과에 기초 하여 상기 깊이 필터의 위치를 제어하는 단계를 더 구비하는 것을 특징으로 하는 렌더링 방법.
  8. 3차원 그래픽스 렌더링 엔진에 있어서.
    데이터를 저장하기 위한 내부 메모리 장치;
    3차원정보를 수신하고 이를 기초로 삼각형 내의 모든 픽셀 데이터를 생성하는 픽셀 보간회로;
    상기 픽셀 보간회로의 출력신호에 응답하여 상기 삼각형 내의 모든 좌표들에 대한 데이터를 생성하는 텍셀 보간회로; 및
    3차원 공간의 Z-축에 각각 위치하는 n개의 깊이 필터를 구비하고, 현재 래스터라이징되고 있는 제1물체를 구성하는 다수개의 프래그먼트들 각각에 대한 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과에 상응하는 비교 데이터를 상기 내부 메모리 장치에 저장하고, 상기 제1물체가 레스터라이징된 후에 래스터라이징되는 제2물체를 구성하는 다수개의 프래그먼트들 각각에 대한 3차원 공간상의 깊이 값과 상기 깊이 필터의 깊이 값의 비교 결과와, 상기 비교 데이터에 기초하여, 상기 제1물체의 각 프래그먼트에 의하여 겹쳐지게 되는 상기 제2물체의 각 프래그먼트를 선별하여 제거하고, 상기 제1물체의 각 프래그먼트에 대한 데이터 및 선별하여 제거되는 프래그먼트를 제외한 상기 제2물체의 각 프래그먼트에 대한 데이터를 출력하는 깊이 필터회로를 구비하는 것을 특징으로 하는 3차원 그래픽스 렌더링 엔진.
  9. 제8항에 있어서, 상기 소정의 저장장치는 각 프래그먼트마다 log2(n+1)비트의 저장공간을 갖는 것을 특징으로 하는 3차원 그래픽스 렌더링 엔진.
  10. 제8항에 있어서, 상기 3차원 그래픽스 렌더링 엔진은,
    상기 깊이 필터 회로로부터 출력되는 데이터를 수신하고 텍스쳐 동작을 수행하는 텍스쳐 블락;
    상기 텍스쳐 블락으로부터 출력되는 데이터를 수신하고 퍼-프래그먼트 동작을 수행하는 퍼-프래그먼트 블락;
    현재 디스플레이되고 있는 영상에 대한 깊이 값을 저장하는 깊이 버퍼; 및
    상기 퍼-프래그먼트 블락으로부터 출력되는 데이터와 깊이 버퍼로부터 출력되는 데이터에 기초하여 상기 제1물체를 구성하는 각 프래그먼트의 깊이 값 및 상기 제2물체를 구성하는 각 프래그먼트의 깊이 값을 비교하고 그 비교결과에 기초하여 대응되는 상기 제2물체의 프래그먼트를 제거하는 깊이 테스트 블락을 더 구비하는 것을 특징으로 하는 3차원 그래픽스 렌더링 엔진.
  11. 제8항에 있어서, 상기 깊이 테스트 블락은 제거될 수 없는 제2물체의 프레그먼트들의 수 및 제거할 수 있는 가능성은 있으나 렌더링되는 순서에 따라 제거하지 못하는 제2물체의 프래그먼트들의 수를 비교하고, 그 비교결과에 기초하여 상기 깊 이 필터의 3차원 공간의 Z-축에서의 위치를 제어하기 위한 위치제어신호를 출력하는 것을 특징으로 하는 3차원 그래픽스 렌더링 엔진.
KR1020030067432A 2003-09-29 2003-09-29 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 KR100546383B1 (ko)

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 KR20050031207A (ko) 2005-04-06
KR100546383B1 true 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)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
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
KR100686357B1 (ko) * 2005-10-24 2007-02-22 엠텍비젼 주식회사 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치
KR100682456B1 (ko) * 2006-02-08 2007-02-15 삼성전자주식회사 렌더링 영역을 최소화하는 3d 그래픽스 데이터의 렌더링방법 및 시스템
CN100447818C (zh) * 2006-05-23 2008-12-31 绘展科技股份有限公司 可调变式的拼块景深滤除系统及方法
WO2007138551A2 (en) * 2006-05-31 2007-12-06 Koninklijke Philips Electronics N.V. Method and apparatus for volume rendering using depth weighted colorization
US8711203B2 (en) * 2006-10-11 2014-04-29 Koninklijke Philips N.V. Creating three dimensional graphics data
KR101239965B1 (ko) 2006-11-08 2013-03-06 연세대학교 산학협력단 렌더링 장치 및 방법
KR100883804B1 (ko) * 2007-05-16 2009-02-16 박우찬 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치
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)

* Cited by examiner, † Cited by third party
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
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
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
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

Also Published As

Publication number Publication date
TW200512669A (en) 2005-04-01
US20050068319A1 (en) 2005-03-31
TWI235341B (en) 2005-07-01
KR20050031207A (ko) 2005-04-06
US7027047B2 (en) 2006-04-11

Similar Documents

Publication Publication Date Title
KR100546383B1 (ko) 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법
US7403208B1 (en) Generation of jittered sub-pixel samples using programmable sub-pixel offsets
US7042462B2 (en) Pixel cache, 3D graphics accelerator using the same, and method therefor
US7570266B1 (en) Multiple data buffers for processing graphics data
US10957082B2 (en) Method of and apparatus for processing graphics
KR101140460B1 (ko) 그래픽 시스템, 꼭지점 데이터의 타일 기반 변환 방법 및 컴퓨터 판독가능한 저장 매체
US7339594B1 (en) Optimized anisotropic texture sampling
US7586496B1 (en) Shorter footprints for anisotropic texture filtering
US7425966B2 (en) Pixel center position displacement
JP5837507B2 (ja) 画像処理装置
US8044971B2 (en) Methods of and apparatus for processing computer graphics
US20190172246A1 (en) Method, Display Adapter and Computer Program Product for Improved Graphics Performance by Using a Replaceable Culling Program
US7038678B2 (en) Dependent texture shadow antialiasing
US9519982B2 (en) Rasterisation in graphics processing systems
WO2006095481A1 (ja) テクスチャ処理装置、描画処理装置、およびテクスチャ処理方法
GB2456919A (en) Anti-aliasing computer generated graphics by alpha testing each sampling point of fragment individually
US20200184703A1 (en) Performing texturing operations for sets of plural execution threads in graphics processing systems
US8525843B2 (en) Graphic system comprising a fragment graphic module and relative rendering method
US8681154B1 (en) Adaptive rendering of indistinct objects
US10726610B2 (en) Efficient graphics processing using metadata
US7492373B2 (en) Reducing memory bandwidth to texture samplers via re-interpolation of texture coordinates
US7385604B1 (en) Fragment scattering
US7256796B1 (en) Per-fragment control for writing an output buffer
US9437025B2 (en) Stencil data compression system and method and graphics processing unit incorporating the same
Assarsson et al. Occlusion culling and z-fail for soft shadow volume algorithms

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