KR102089471B1 - 타일 기반 렌더링 방법 및 장치 - Google Patents

타일 기반 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR102089471B1
KR102089471B1 KR1020120137782A KR20120137782A KR102089471B1 KR 102089471 B1 KR102089471 B1 KR 102089471B1 KR 1020120137782 A KR1020120137782 A KR 1020120137782A KR 20120137782 A KR20120137782 A KR 20120137782A KR 102089471 B1 KR102089471 B1 KR 102089471B1
Authority
KR
South Korea
Prior art keywords
tile
rendering
information
size
type
Prior art date
Application number
KR1020120137782A
Other languages
English (en)
Other versions
KR20140069915A (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 KR1020120137782A priority Critical patent/KR102089471B1/ko
Priority to US13/875,585 priority patent/US9569813B2/en
Publication of KR20140069915A publication Critical patent/KR20140069915A/ko
Application granted granted Critical
Publication of KR102089471B1 publication Critical patent/KR102089471B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

타일 기반 렌더링 방법은 렌더링 장치의 가용 메모리 크기를 체크하고, 입력되는 그래픽스 데이터에 기초하여 렌더링에 필요한 버퍼의 개수를 결정한다. 타일 기반 렌더링 방법은 결정된 버퍼의 개수 및 가용 메모리 크기에 기초하여 렌더링을 수행할 때 이용할 타일의 크기를 결정한다.

Description

타일 기반 렌더링 방법 및 장치{METHOD AND APPARATUS FOR TILE BASED RENDERING}
아래의 실시예들은 렌더링 방법 및 장치에 관한 것으로, 특히 타일 기반 렌더링 방법 및 장치에 관한 것이다.
3차원 그래픽을 이용하면 영상을 2차원으로 표시하는 디스플레이 장치도 보다 사실적으로 3차원 모델을 표현할 수 있다. 보다 사실적으로 3차원 모델을 표현할 수 있다는 효과가 획득될 수 있기 때문에, 3차원 그래픽을 이용하여 정보를 제공하는 연구가 진행되고 있다.
3차원 그래픽으로 3차원 모델을 표현하는 경우에도, 사용자가 확인할 수 있는 디스플레이 장치는 2차원 화면을 제공할 수 있다. 따라서, 3차원 모델을 사용자의 시점에서 바라본 2차원 화면으로 변환하는 과정이 필요하다. 이와 같이 3차원 모델을 2차원 화면으로 변환하는 과정 중에서, 다수의 그래픽스 연산들이 이용된다.
타일 렌더링 방법은 화면을 타일이라고 하는 작은 기본 단위로 나누고, 타일에 대한 렌더링을 수행한다. 타일 기반 렌더링 방법에 있어서, 기하학 처리(Geometry Processing)에 필요한 메모리 공간이 예측되기 어렵다. 더욱이, 기하학 처리에 대한 결과의 양이 많기 때문에, 내부 메모리뿐만 아니라 외부 메모리까지 사용되는 경우가 많다. 또한, 작은 크기의 타일이 사용될 경우, 저장되어야 할 기하학 처리 결과가 증가한다. 기하학 처리 결과의 증가에 의해 외부 메모리의 사용이 증가하게 된다. 따라서, 타일 크기는 메모리 활용에 있어서 중요한 요소가 된다.
일 실시예는 메모리를 효율적으로 활용할 수 있게 해주는 타일 기반 렌더링 방법 및 장치를 제공한다.
상기 목적을 달성하기 위한 일 실시예에 따른 타일 기반 렌더링 방법은 렌더링 장치의 가용 메모리 크기를 체크하는 단계; 입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수를 결정하는 단계; 및 상기 결정된 버퍼의 개수 및 상기 가용 메모리 크기에 기초하여, 상기 렌더링을 수행할 때 이용할 타일의 크기를 결정하는 단계를 포함한다.
바람직하게는, 상기 타일의 크기는 상기 버퍼의 개수에 반비례하도록 결정된다.
바람직하게는, 상기 타일의 크기를 결정하는 단계는 상기 가용 메모리 크기를 상기 버퍼의 개수로 나눗셈하여 몫을 계산하는 단계; 및 상기 타일의 가로 값과 세로 값을 곱한 값이 상기 계산된 몫을 초과하지 않도록 상기 타일의 크기를 결정하는 단계를 포함한다.
바람직하게는, 상기 타일의 크기를 결정하는 단계는 상기 렌더링에 적용할 픽셀 포맷의 유형에 더 기초하여 수행된다.
바람직하게는, 상기 타일의 크기를 결정하는 단계는 상기 렌더링에 적용할 픽셀 포맷의 유형을 결정하는 단계; 상기 결정된 픽셀 포맷의 유형에 대응되는 픽셀별 메모리 크기를 상기 버퍼의 개수와 곱함으로써 제1 연산 값을 생성하는 단계; 상기 가용 메모리 크기를 상기 제1 연산 값으로 나눗셈하여 제2 연산 값을 생성하는 단계; 및 상기 타일의 가로 값과 세로 값을 곱한 값이 상기 제2 연산 값을 초과하지 않도록 상기 타일의 크기를 결정하는 단계를 포함한다.
바람직하게는, 상기 렌더링에 필요한 버퍼의 개수를 결정하는 단계는 상기 입력되는 그래픽스 데이터에 기초하여, 상이한 유형의 복수의 버퍼들 중에서 상기 렌더링에 필요한 적어도 하나의 버퍼의 유형을 결정하는 단계; 및 상기 결정된 적어도 하나의 버퍼의 유형에 기초하여, 상기 렌더링에 필요한 버퍼의 개수를 결정하는 단계를 포함한다.
바람직하게는, 상기 상이한 유형의 복수의 버퍼들 각각은 적어도 하나 이상의 버퍼로 구성된다.
바람직하게는, 상기 입력되는 그래픽스 데이터는 상기 렌더링 장치에게 상기 렌더링을 요청하는 어플리케이션으로부터 제공된다.
바람직하게는, 일 실시예에 따른 타일 기반 렌더링 방법은 상기 결정된 타일의 크기에 기초하여, 렌더링을 수행하는 단계를 더 포함한다.
상기 목적을 달성하기 위한 일 실시예에 따른 타일 기반 렌더링 장치는 렌더링 장치의 가용 메모리 크기를 체크하는 메모리 체크부; 입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수를 결정하는 버퍼 결정부; 및 상기 결정된 버퍼의 개수 및 상기 가용 메모리 크기에 기초하여, 상기 렌더링을 수행할 때 이용할 타일의 크기를 결정하는 타일 결정부를 포함한다.
또한, 다른 실시예는 상기 목적을 달성하기 위하여 렌더링 장치의 가용 메모리 크기를 체크하는 단계; 입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수를 결정하는 단계; 및 상기 결정된 버퍼의 개수 및 상기 가용 메모리 크기에 기초하여, 상기 렌더링을 수행할 때 이용할 타일의 크기를 결정하는 단계를 포함하는 타일 기반 렌더링 방법 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체를 제공한다.
도 1은 일 실시예에 따른 타일 기반 렌더링 방법을 설명하기 위하여 도시한 흐름도이다.
도 2는 일 실시예에 따른 타일 기반 렌더링 방법을 설명하기 위하여 도시한 흐름도이다.
도 3은 일 실시예에 따른 타일 크기 결정 방법을 설명하기 위하여 도시한 흐름도이다.
도 4는 일 실시예에 따른 타일 기반 렌더링 장치를 설명하기 위하여 도시한 도면이다.
도 5는 일 실시예에 따른 타일 크기 결정 방법을 설명하기 위하여 도시한 도면이다.
이하에서는 첨부된 도면을 참조하여 실시예들에 대하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 타일 기반 렌더링 방법을 설명하기 위하여 도시한 흐름도이다.
단계(110)에서는, 렌더링 장치의 가용 메모리 크기가 체크된다.
단계(120)에서는, 렌더링 장치에 입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수가 결정된다.
보다 구체적으로는, 렌더링 장치에 입력되는 그래픽스 데이터에 기초하여 상이한 유형의 복수의 버퍼들 중에서 렌더링에 필요한 적어도 하나의 버퍼의 유형이 결정되고, 그 결정된 적어도 하나의 버퍼의 유형에 기초하여 렌더링에 필요한 버퍼의 개수가 결정된다. 예컨대, 단계(120)는 입력되는 그래픽스 데이터에 기초하여, 상이한 유형의 복수의 버퍼들 중에서 렌더링에 필요한 적어도 하나의 버퍼의 유형을 결정되는 단계 및 결정된 적어도 하나의 버퍼의 유형에 기초하여 렌더링에 필요한 버퍼의 개수를 결정하는 단계를 포함할 수 있다. 상이한 유형의 복수의 버퍼들 각각은 적어도 하나 이상의 버퍼로 구성될 수 있다.
이때, 버퍼의 유형은 컬러 버퍼, 스텐실 버퍼 및 깊이 버퍼 등으로 구분될 수 있다. 렌더링 시에는 컬러 버퍼, 스텐실 버퍼 및 깊이 버퍼가 모두 필요할 수도 있고, 컬러 버퍼, 스텐실 버퍼 및 깊이 버퍼 중 일부만이 필요할 수도 있다. 여기서, 렌더링에 필요한 버퍼의 유형 및 버퍼의 유형별로 필요한 버퍼의 개수는 그래픽스 데이터에 기초하여 결정될 수 있다.
예컨대, 렌더링 장치의 렌더링을 위한 기본적인 요구 사항(default requirement)은 6 개의 컬러 버퍼, 1 개의 스텐실 버퍼 및 1 개의 깊이 버퍼로 정해질 수 있다. 반면, 렌더링 장치에 입력된 그래픽스 데이터에 따르면, 객체를 렌더링을 하기 위해 필요한 버퍼는 1 개의 컬러 버퍼 및 1 개의 스텐실 버퍼일 수 있다. 이러한 경우, 렌더링 장치는 렌더링에 필요한 버퍼의 개수를 8 개가 아닌 2 개로 결정할 수 있다. 예컨대, 렌더링 장치는 렌더링에 필요한 버퍼의 유형을 컬러 버퍼 및 스텐실 버퍼로 결정할 수 있고, 렌더링에 필요한 버퍼의 개수를 컬러 버퍼와 스텐실 버퍼의 개수를 합산한 2 개로 결정할 수 있다. 다음으로, 렌더링 장치는 1 개의 컬러 버퍼 및 1 개의 스텐실 버퍼에게만 메모리를 할당할 수 있다.
상술된 것과 같은 상황에서, 실제 렌더링을 위해서는 오직 1 개의 컬러 버퍼 및 1 개의 스텐실 버퍼가 필요함에도 불구하고, 8 개의 버퍼 모두에게 메모리가 할당된다면, 객체의 렌더링을 위해서 실제로 이용되지 않는 나머지 6 개의 버퍼들에게도 불필요하게 메모리가 할당될 수 있다. 상술된 8 개의 버퍼는 6 개의 컬러 버퍼, 1 개의 스텐실 버퍼 및 1 개의 깊이 버퍼일 수 있다. 전술된 것과 같이, 일 실시예는 그래픽스 데이터에 대한 렌더링을 수행하기 위해 실제로 필요한 버퍼의 유형 및 개수를 결정한 후, 렌더링에 필요한 것으로 결정된 버퍼들에게만 메모리를 할당할 수 있다. 일 실시예는 메모리가 할당된 렌더링에 필요한 것으로 결정된 버퍼들을 사용함으로써 불필요한 메모리의 할당으로 인한 비효율성의 문제를 을 겪지 않을 수 있다.
다른 실시예에서, 컬러 버퍼, 스텐실 버퍼 및 깊이 버퍼 중에서 렌더링에 이용되지 않는 버퍼는 렌더링을 위해 필요한 유형의 버퍼로 용도가 변경되어 활용될 수 있다. 예컨대, 렌더링에 컬러 버퍼만이 필요한 경우, 컬러 버퍼의 개수가 충분하지 않다면 스텐실 버퍼 및 깊이 버퍼가 컬러 버퍼로서 활용될 수 있다.
단계(130)에서는, 렌더링에 필요한 것으로 결정된 버퍼의 개수 및 가용 메모리 크기에 기초하여, 렌더링을 수행할 때 이용할 타일의 크기가 결정된다.
타일의 크기는 렌더링에 필요한 것으로 결정된 버퍼의 개수에 반비례하도록 결정될 수 있다. 예컨대, 렌더링에 필요한 버퍼의 개수 및 타일의 크기는 반비례할 수 있다. 일 실시예에서, 렌더링에 필요한 버퍼에게만 메모리가 할당될 수 있다. 따라서, 렌더링에 필요한 버퍼의 개수가 더 적을수록 각각의 버퍼에게 할당될 수 있는 메모리의 크기는 더 크고, 메모리의 크기가 더 커짐에 따라 버퍼 각각의 크기도 더 커질 수 있다. 각각의 버퍼의 크기는 타일의 가로 값 및 세로 값을 곱한 것이므로, 버퍼의 크기가 더 커질수록 타일의 크기도 더 커질 수 있다. 타일의 가로 값은 타일의 가로 해상도(resolution) 또는 x 축 상의 픽셀의 개수일 수 있다. 타일의 세로 값은 타일의 세로 해상도 또는 y 축 상의 픽셀의 개수일 수 있다.
보다 구체적으로는, 렌더링 장치는 가용 메모리 크기를 버퍼의 개수로 나눗셈하여 몫을 계산한 후, 타일의 가로 값과 세로 값을 곱한 값이 그 계산된 몫을 초과하지 않도록 타일의 크기를 결정할 수 있다. 예컨대, 렌더링 장치는 가용 메모리 크기를 버퍼의 개수로 나누었을 때의 몫을 계산할 수 있고, 타일의 가로 값 및 세로 값의 곱이 상기의 계산된 몫을 초과하지 않도록 타일의 크기를 결정할 수 있다.
예컨대, 가용 메모리의 크기가 4kbyte(4096byte)이고, 실제 렌더링에 필요한 버퍼의 개수가 2개면, 각 버퍼의 크기는 2048kbyte가 될 수 있다. 또한, 타일의 가로 값 및 세로 값이 서로 동일하다면 타일의 한 변의 길이 X가 20480.5보다 작거나 같도록 타일의 크기가 결정될 수 있다. 말하자면, 타일의 한 변의 길이 X는 45.25보다 작거나 같으면 된다. 따라서, 타일의 최대 크기는 45 * 45이다. 이때, 하나의 픽셀을 표시하기 위해서는 1byte가 필요하다고 전제된다.
전술한 바와 같이, 일 실시예는 렌더링 장치의 렌더링을 위한 기본적인 요구 사항과는 무관하게 실제 렌더링에 필요한 버퍼의 개수를 기준으로 타일의 크기를 결정할 수 있다.
렌더링을 위한 기본적인 요구 사항으로서 8개의 버퍼가 설정되어 있고 실제 렌더링에 필요한 버퍼의 개수가 2개이며, 타일의 가로 값 및 세로 값이 동일하다고 가정될 수 있다. 모든 버퍼들에게 각각 메모리가 할당된다면, 타일의 한 변의 길이 X가 (4096/8)1/2보다 작거나 같도록 타일의 크기가 결정된다. 말하자면, 타일의 한 변의 길이 X는 22.62보다 작거나 같으면 된다. 따라서, 타일의 최대 크기는 22*22가 된다. 상기의 가정 하에서, 실제 렌더링에 필요한 버퍼들에게만 각각 메모리가 할당된다면, 모든 버퍼들에게 각각 메모리가 할당되는 경우에 비해, 면적 기준으로 4 배 이상의 크기를 갖는 타일이 사용될 수 있다. 렌더링을 위해 이용될 타일의 크기가 커지게 되면, 렌더링 성능이 향상될 수 있다. 예컨대, 객체를 타일에게 할당하는 타일 비닝(binning) 동작의 오버헤드가 감소함으로써 렌더링 성능이 향상될 수 있다.
단계(130)을 통해 렌더링을 수행할 때 이용할 타일의 크기가 결정되면, 렌더링 장치는 그 결정된 타일의 크기에 기초하여 객체에 대해 렌더링을 수행할 수 있다.
도 2는 일 실시예에 따른 타일 기반 렌더링 방법을 설명하기 위하여 도시한 흐름도이다.
단계(210)에서는, 렌더링 장치의 가용 메모리 크기가 체크된다..
단계(220)에서는, 렌더링 장치에 입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수가 결정된다.
여기서, 그래픽스 데이터는 렌더링 장치로 입력되는 3D 그래픽스 데이터의 기준 시점(viewpoint) 정보, 광원 정보 및 객체 정보 등을 포함할 수 있다. 기준 시점 정보는 카메라(camera)에 대한 정보 등을 포함할 수 있다. 광원 정보는 광원에 대한 밝기, 위치 및 방향의 정보를 포함할 수 있다. 객체 정보는 3D 그래픽스 데이터에 포함되는 객체의 모양 정보, 객체의 움직임에 대한 정보, 객체의 속성 정보 및 객체의 렌더링에 적용할 픽셀 포맷의 유형 등을 포함할 수 있다. 객체의 움직임 정보는 객체의 위치, 크기 및 방향 등이 변경되는 것 등에 대한 정보를 포함할 수 있다. 객체의 속성 정보는 객체의 색상 및 재질 등에 대한 정보를 포함할 수 있다.
또한, 그래픽스 데이터는 렌더링을 요청하는 어플리케이션으로부터 렌더링 장치에게 제공될 수 있다.
단계(230)에서는, 렌더링에 필요한 것으로 결정된 버퍼의 개수, 가용 메모리 크기 및 렌더링에 적용할 픽셀 포맷의 유형에 기초하여, 렌더링을 수행할 때 이용할 타일의 크기가 결정된다.
일 실시예는 렌더링에 필요한 것으로 결정된 버퍼의 개수, 가용 메모리 크기뿐만 아니라 렌더링에 적용할 픽셀 포맷의 유형까지 고려하여 타일의 크기를 결정할 수 있다. 예컨대, 타일의 크기를 결정하는 단계(230)는 렌더링에 적용할 픽셀 포맷의 유형에 더 기초하여 수행될 수 있다.
도 2의 실시예에 따른 타일 크기 결정 방법은 하기에서 도 3을 참조하여 상세히 설명된다.
한편, 다른 실시예에서는, 안티-알리아싱(anti-aliasing)을 위해서 픽셀이 복수의 샘플들로 분할되어 표시될 수도 있다. 픽셀이 분할되어 표시되는 경우, 버퍼의 크기는 타일의 가로 값 및 세로 값의 곱 만에 의해 결정되는 것이 아니라, 픽셀들이 각각 몇 개의 샘플들로 분할되는가를 추가적으로 고려하여 결정될 수 있다. 따라서, 픽셀이 더 많은 개수의 샘플들로 분할될 수록 타일의 크기는 더 작아질 수 있다.
예컨대, OpenGL|ES 3.0에서는, 하나의 픽셀이 4 개의 샘플로 분할되어 표시된다. 따라서, 버퍼 각각의 크기는 타일의 가로 값, 타일의 세로 값 및 4의 곱이 되고, 결과적으로 타일의 크기는, 픽셀을 분할하여 표시하지 않는 경우에 비해, 면적 기준으로 1/4이 된다.
도 3은 도 2의 실시예에 따른 타일 크기 결정 방법을 설명하기 위하여 도시한 흐름도이다.
도 2를 참조하여 전술된 단계(230)는 후술될 단계들(310, 320, 330 및 340) 중 하나 이상을 포함할 수 있다.
단계(310)에서는, 렌더링에 적용할 픽셀 포맷의 유형이 결정된다.
예컨대, 픽셀 포맷의 유형은 적-녹-청(Red Green Blue; RGB), 적-녹-청-알파8888(Red Green Blue Alpha 8888; RGBA8888) 또는 적-녹-청 플로트(RGBAfloat) 등일 수 있다.
단계(320)에서는, 결정된 픽셀 포맷의 유형에 대응되는 픽셀별 메모리 크기를 렌더링에 필요한 버퍼의 개수와 곱함으로써 제1 연산 값이 생성된다. 예컨대, 제1 연산 값은 결정된 픽셀 포맷의 유형에 대응하는 픽셀별 메모리 크기 및 렌더링에 필요한 버퍼의 개수의 곱일 수 있다. 이때, 픽셀 포맷의 유형이 RGB, RGBA8888 또는 RGBAfloat일 때, 하나의 픽셀을 표시하기 위해 필요한 메모리 크기는 각각 3 바이트(byte), 4 바이트 및 16 바이트일 수 있다.
단계(330)에서는, 가용 메모리 크기를 제1 연산 값으로 나눗셈하여 제2 연산 값이 생성된다. 예컨대, 제2 연산 값은 가용 메모리 크기를 제1 연산 값으로 나누었을 때의 몫일 수 있다.
단계(340)에서는, 타일의 가로 값과 세로 값을 곱한 값이 제2 연산 값을 초과하지 않도록 타일의 크기가 결정된다. 예컨대, 제2 연산 값은 타일의 가로 값 및 세로 값의 곱 이하일 수 있다.
예컨대, 픽셀 포맷의 유형이 픽셀별 메모리 크기가 4byte인 RGBA8888이고, 렌더링 장치의 가용 메모리가 32kbyte(32768byte)이고, 렌더링에 필요한 버퍼의 개수가 2개인 경우가 가정될 수 있다. 이때, 타일의 한 변의 길이 X는 {32768/(4*2)}0.5보다 작거나 같도록 결정될 수 있다. 말하자면, 타일의 한 변의 길이 X는 64보다 작거나 같을 수 있다. 이때, 타일의 최대 크기는 64 * 64가 된다.
도 4는 일 실시예에 따른 타일 기반 렌더링 장치를 설명하기 위하여 도시한 도면이다.
도 4를 참조하면, 일 실시예에 따른 타일 기반 렌더링 장치는 메모리 체크부(410), 버퍼 결정부(420) 및 타일 결정부(430)를 포함한다.
메모리 체크부(410)는 렌더링 장치의 가용 메모리 크기를 체크한다. 메모리 체크부(410)는 도 1을 참조하여 전술된 단계(110) 및 도 2를 참조하여 전술된 단계(210)를 수행할 수 있다.
버퍼 결정부(420)는 렌더링 장치에 입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수를 결정한다. 버퍼 결정부(420)는 도 1을 참조하여 전술된 단계(120) 및 도 2를 참조하여 전술된 단계(220)를 수행할 수 있다.
타일 결정부(430)는 도 1을 참조하여 전술된 단계(130) 및 도 2를 참조하여 전술된 단계(230)를 수행할 수 있다.
타일 결정부(430)는 렌더링에 필요한 것으로 결정된 버퍼의 개수 및 가용 메모리 크기에 기초하여, 렌더링을 수행할 때 이용할 타일의 크기를 결정한다.
바람직하게는, 일 실시예에 따른 타일 기반 렌더링 장치는 타일 결정부(430)에 의해 결정된 타일의 크기에 기초하여 객체에 대해 렌더링을 수행하는 렌더링부(미도시)를 더 포함할 수 있다.
타일 기반 렌더링 장치는 휴대용 단말, 휴대용 멀티미디어(multimedia) 기기(device), 데스크 탑(desktop) 컴퓨터, 랩 탑(laptop) 컴퓨터 중 하나 이상에 탑재될 수 있다.
앞서 도 1 내지 도 3을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 5는 일 실시예에 따른 타일 크기 결정 방법을 설명하기 위하여 도시한 도면이다.
도 5의 표를 참조하면, 일 실시예를 적용함에 따른, 버퍼의 개수 및 가용 메모리 크기에 대응하는 타일의 크기를 알 수 있다. 도 5에 도시된 표의 각각의 필드는 다음과 같다.
Col 필드(511)는 컬러 버퍼의 개수를 나타낼 수 있다.
Depth 필드(512)는 깊이 버퍼의 개수를 나타낼 수 있다.
Stencil 필드(513)는 스텐실 버퍼의 개수를 나타낼 수 있다.
토탈(Total) 필드(514)는 전체 버퍼의 개수를 나타낼 수 있다. 즉, Total 필드(514)는 컬러 버퍼의 개수, 깊이 버퍼의 개수 및 스텐실 버퍼 의 개수의 합을 나타낼 수 있다.
스퀘어 타일 사이즈(Square Tile Size) 필드(515a 및515b)는 타일의 가로 값 및 세로 값이 동일할 때, 타일이 가질 수 있는 한 변의 길이의 최대 값을 나타낼 수 있다.
1:2 Rectangular Tile Size 필드(516a 및 516b)는 타일의 가로 값 및 세로 값 간의 비율이 1:2일 때, 타일이 가질 수 있는 가로 값의 최대 값 및 세로 값의 최대 값을 나타낼 수 있다.
Memory 필드(517a 및 517b)는 가용 메모리의 크기를 나타낼 수 있다.
하기에서, 도 5를 참조하여, 컬러 버퍼, 깊이 버퍼 및 스텐실 버퍼가 각각 1 개일 때의 타일 크기를 확인한다.
Memory 필드(517a)가 나타내는 가용 메모리가 4kbyte일 때, 타일의 가로 값 및 세로 값이 동일하면, Square Tile Size 필드(515a)에 따라 타일이 가질 수 있는 한 변의 길이의 최대 값은 37이 된다. 또한, 타일의 가로 값 및 세로 값의 비율이 1:2이면, Rectangular Tile Size 필드(516a)에 따라 타일이 가질 수 있는 가로 값의 최대 값과 세로 값의 최대 값은 각각 26 및 52가 된다.
Memory 필드(517b)가 나타내는 가용 메모리가 6kbyte일 때, 타일의 가로 값 및 세로 값이 동일하면, Square Tile Size 필드(515b)에 따라 타일이 가질 수 있는 한 변의 길이의 최대 값은 45가 된다. 또한, 타일의 가로 값 및 세로 값 간의 비율이 1:2이면, Rectangular Tile Size 필드(516a)에 따라 타일이 가질 수 있는 가로 값의 최대 값 및 세로 값의 최대 값은 각각 32 및 64가 된다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 렌더링 장치의 가용 메모리 크기를 체크하는 단계;
    입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수를 결정하는 단계; 및
    상기 렌더링에 필요한 버퍼의 개수 및 상기 가용 메모리 크기에 기초하여, 상기 렌더링을 수행할 때 이용할 타일의 크기를 결정하는 단계를 포함하되,
    상기 입력되는 그래픽스 데이터는 기준 시점에 대한 정보, 광원에 대한 정보, 및 객체에 대한 정보를 포함하고,
    상기 타일의 크기를 결정하는 단계는,
    상기 가용 메모리 크기를 상기 렌더링에 필요한 버퍼의 개수로 나눗셈하여 몫을 계산하는 단계; 및
    상기 타일의 가로 값과 세로 값을 곱한 값이 상기 계산된 몫을 초과하지 않도록 상기 타일의 크기를 결정하는 단계를 포함하고, 그리고
    상기 렌더링에 필요한 버퍼의 개수를 결정하는 단계는,
    상기 입력되는 그래픽스 데이터에 따라, 복수의 버퍼들의 유형들 중에서 상기 렌더링에 필요한 적어도 하나의 유형을 결정하는 단계; 및
    상기 결정된 적어도 하나의 유형을 가지는 버퍼의 개수를 결정하는 단계를 포함하는 타일 기반 렌더링 방법.
  2. 제1항에 있어서,
    상기 기준 시점에 대한 정보는 카메라에 대한 정보를 포함하고,
    상기 광원에 대한 정보는 상기 광원의 밝기, 위치, 및 방향에 대한 정보를 포함하고, 그리고
    상기 객체에 대한 정보는 상기 객체의 모양에 대한 정보, 상기 객체의 움직임에 대한 정보, 상기 객체의 속성에 대한 정보, 및 상기 객체의 상기 렌더링에 적용할 픽셀 포맷의 유형에 대한 정보를 포함하되,
    상기 객체의 상기 움직임에 대한 정보는 상기 객체의 위치, 크기, 및 방향에 대한 정보를 포함하고, 그리고
    상기 객체의 속성에 대한 정보는 상기 객체의 색상 및 재질에 대한 정보를 포함하는 타일 기반 렌더링 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 타일의 크기를 결정하는 단계는
    상기 렌더링에 적용할 픽셀 포맷의 유형에 더 기초하여 수행되는 타일 기반 렌더링 방법.
  5. 제4항에 있어서,
    상기 타일의 크기를 결정하는 단계는
    상기 렌더링에 적용할 상기 픽셀 포맷의 유형을 결정하는 단계;
    상기 결정된 픽셀 포맷의 유형에 대응되는 픽셀별 메모리 크기를 상기 렌더링에 필요한 버퍼의 개수와 곱함으로써 제1 연산 값을 생성하는 단계;
    상기 가용 메모리 크기를 상기 제1 연산 값으로 나눗셈하여 제2 연산 값을 생성하는 단계; 및
    상기 타일의 가로 값과 세로 값을 곱한 값이 상기 제2 연산 값을 초과하지 않도록 상기 타일의 크기를 결정하는 단계를 포함하는 타일 기반 렌더링 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 렌더링 장치의 가용 메모리 크기를 체크하는 메모리 체크부;
    입력되는 그래픽스 데이터에 기초하여, 렌더링에 필요한 버퍼의 개수를 결정하는 버퍼 결정부; 및
    상기 렌더링에 필요한 버퍼의 개수 및 상기 가용 메모리 크기에 기초하여, 상기 렌더링을 수행할 때 이용할 타일의 크기를 결정하는 타일 결정부를 포함하되,
    상기 입력되는 그래픽스 데이터는 기준 시점에 대한 정보, 광원에 대한 정보, 및 객체에 대한 정보를 포함하고,
    상기 버퍼 결정부는,
    상기 입력되는 그래픽스 데이터에 따라, 복수의 버퍼들의 유형들 중에서 상기 렌더링에 필요한 적어도 하나의 유형을 결정하고 그리고 상기 결정된 적어도 하나의 유형을 가지는 버퍼의 개수를 결정하고, 그리고
    상기 타일 결정부는,
    상기 가용 메모리 크기를 상기 렌더링에 필요한 버퍼의 개수로 나눗셈하여 몫을 계산하고 그리고 상기 타일의 가로 값과 세로 값을 곱한 값이 상기 계산된 몫을 초과하지 않도록 상기 타일의 크기를 결정하는 타일 기반 렌더링 장치.
  12. 제11항에 있어서,
    상기 기준 시점에 대한 정보는 카메라에 대한 정보를 포함하고,
    상기 광원에 대한 정보는 상기 광원의 밝기, 위치, 및 방향에 대한 정보를 포함하고, 그리고
    상기 객체에 대한 정보는 상기 객체의 모양에 대한 정보, 상기 객체의 움직임에 대한 정보, 상기 객체의 속성에 대한 정보, 및 상기 객체의 상기 렌더링에 적용할 픽셀 포맷의 유형에 대한 정보를 포함하되,
    상기 객체의 상기 움직임에 대한 정보는 상기 객체의 위치, 크기, 및 방향에 대한 정보를 포함하고, 그리고
    상기 객체의 속성에 대한 정보는 상기 객체의 색상 및 재질에 대한 정보를 포함하는 타일 기반 렌더링 장치.
  13. 삭제
  14. 제11항에 있어서,
    상기 타일 결정부는
    상기 렌더링에 적용할 픽셀 포맷의 유형에 더 기초하여 상기 타일의 크기를 결정하는 타일 기반 렌더링 장치.
  15. 제14항에 있어서,
    상기 타일 결정부는
    상기 렌더링에 적용할 상기 픽셀 포맷의 유형을 결정하고, 상기 결정된 픽셀 포맷의 유형에 대응하는 픽셀별 메모리 크기를 상기 렌더링에 필요한 버퍼의 개수와 곱함으로써 제1 연산 값을 생성하고, 상기 가용 메모리 크기를 상기 제1 연산 값으로 나눗셈하여 제2 연산 값을 생성한 후, 상기 타일의 가로 값과 세로 값을 곱한 값이 상기 제2 연산 값을 초과하지 않도록 상기 타일의 크기를 결정하는 타일 기반 렌더링 장치.
  16. 삭제
  17. 제14항에 있어서,
    상기 타일 결정부는 적-녹-청(Red Green Blue; RGB), 적-녹-청-알파8888(Red Green Blue Alpha 8888; RGBA 8888), 또는 적-녹-청 플로트(RGBAfloat)로 상기 픽셀 포맷의 유형을 결정하되,
    상기 타일 결정부가 상기 픽셀 포맷의 유형을 상기 적-녹-청 으로 결정하는 경우, 상기 픽셀 포맷의 유형에 대응하는 픽셀별 메모리 크기는 3바이트(byte)이고,
    상기 타일 결정부가 상기 픽셀 포맷의 유형을 상기 적-녹-청-알파8888 로 결정하는 경우, 상기 픽셀 포맷의 유형에 대응하는 상기 픽셀별 메모리 크기는 4바이트이고,
    상기 타일 결정부가 상기 픽셀 포맷의 유형을 상기 적-녹-청 플로트 로 결정하는 경우, 상기 픽셀 포맷의 유형에 대응하는 상기 픽셀별 메모리 크기는 16바이트인 타일 기반 렌더링 장치.
  18. 제11항에 있어서,
    상기 입력되는 그래픽스 데이터는
    상기 렌더링 장치에게 상기 렌더링을 요청하는 어플리케이션으로부터 제공되는 타일 기반 렌더링 장치.
  19. 삭제
  20. 삭제
KR1020120137782A 2012-11-30 2012-11-30 타일 기반 렌더링 방법 및 장치 KR102089471B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120137782A KR102089471B1 (ko) 2012-11-30 2012-11-30 타일 기반 렌더링 방법 및 장치
US13/875,585 US9569813B2 (en) 2012-11-30 2013-05-02 Method and apparatus for tile-based rendering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120137782A KR102089471B1 (ko) 2012-11-30 2012-11-30 타일 기반 렌더링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140069915A KR20140069915A (ko) 2014-06-10
KR102089471B1 true KR102089471B1 (ko) 2020-03-17

Family

ID=50824996

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120137782A KR102089471B1 (ko) 2012-11-30 2012-11-30 타일 기반 렌더링 방법 및 장치

Country Status (2)

Country Link
US (1) US9569813B2 (ko)
KR (1) KR102089471B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916675B2 (en) * 2013-05-31 2018-03-13 Arm Limited Graphics processing systems
KR102354989B1 (ko) * 2015-04-14 2022-01-24 삼성전자주식회사 경로 렌더링을 위한 타일 비닝을 수행하는 방법 및 장치.
KR101663023B1 (ko) * 2015-04-23 2016-10-06 (주)넥셀 그래픽 처리 장치 및 방법
KR101701294B1 (ko) * 2015-05-29 2017-02-01 라인 가부시키가이샤 이미지 뷰 바인딩의 최적화를 위한 시스템 및 방법
KR102577184B1 (ko) * 2016-05-24 2023-09-11 삼성전자주식회사 전자 장치 및 그의 동작 방법
US10607390B2 (en) * 2016-12-14 2020-03-31 Nvidia Corporation Techniques for tiling compute work with graphics work

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110043518A1 (en) * 2009-08-21 2011-02-24 Nicolas Galoppo Von Borries Techniques to store and retrieve image data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6344852B1 (en) 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data
US6741243B2 (en) 2000-05-01 2004-05-25 Broadcom Corporation Method and system for reducing overflows in a computer graphics system
GB2381403B (en) * 2000-05-10 2004-12-01 Picturetel Corp Video coding using multiple buffers
WO2001095257A1 (en) * 2000-06-08 2001-12-13 Imagination Technologies Limited Tiling and compression for rendering 3d images
US6747658B2 (en) 2001-12-31 2004-06-08 Intel Corporation Automatic memory management for zone rendering
US7286134B1 (en) 2003-12-17 2007-10-23 Nvidia Corporation System and method for packing data in a tiled graphics memory
US7420568B1 (en) 2003-12-17 2008-09-02 Nvidia Corporation System and method for packing data in different formats in a tiled graphics memory
US7280107B2 (en) * 2005-06-29 2007-10-09 Microsoft Corporation Procedural graphics architectures and techniques
GB2461821B (en) 2007-09-12 2010-06-30 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
US8040349B1 (en) 2007-12-04 2011-10-18 Nvidia Corporation System and method for structuring an A-buffer
GB0900700D0 (en) 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
US8497876B2 (en) 2009-11-02 2013-07-30 Pacific Data Images Llc Infinite complexity deep-framebuffer rendering
US8593466B2 (en) 2010-06-08 2013-11-26 Intel Corporation Tile rendering for image processing
US8886715B1 (en) * 2011-11-16 2014-11-11 Google Inc. Dynamically determining a tile budget when pre-fetching data in a client device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110043518A1 (en) * 2009-08-21 2011-02-24 Nicolas Galoppo Von Borries Techniques to store and retrieve image data

Also Published As

Publication number Publication date
US20140152650A1 (en) 2014-06-05
KR20140069915A (ko) 2014-06-10
US9569813B2 (en) 2017-02-14

Similar Documents

Publication Publication Date Title
KR102089471B1 (ko) 타일 기반 렌더링 방법 및 장치
US11748840B2 (en) Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
TWI602148B (zh) 用於紋理映射至非正交網格的梯度調整
US8325177B2 (en) Leveraging graphics processors to optimize rendering 2-D objects
KR102341267B1 (ko) 양안 시차 영상에 대한 렌더링 방법 및 장치
KR102646906B1 (ko) 타일 기반 렌더링 방법 및 장치
US9842424B2 (en) Volume rendering using adaptive buckets
US8913080B2 (en) Partitioning high resolution images into sub-images for display
KR102499397B1 (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
CN103336816A (zh) 安卓系统上基于GPU实现的Canvas元素渲染方法及装置
US10169887B2 (en) Accelerated blits of multisampled textures on GPUs
US11954782B2 (en) Hybrid render with preferred primitive batch binning and sorting
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
US9639971B2 (en) Image processing apparatus and method for processing transparency information of drawing commands
US10078911B2 (en) System, method, and computer program product for executing processes involving at least one primitive in a graphics processor, utilizing a data structure
KR102245137B1 (ko) 렌더링 데이터의 압축을 해제하는 장치, 방법 및 기록매체
JP2018522307A (ja) グラフィックス処理のための表面フォーマットに基づく適応メモリアドレススキャニング
US20180033185A1 (en) Texture mapping apparatus, texture mapping method, and computer readable medium
KR102251444B1 (ko) 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 안티 에일리어싱 방법
JP5934380B2 (ja) 可変の深さ圧縮
CN112714357A (zh) 视频播放方法、视频播放装置、电子设备和存储介质
CN110782387A (zh) 图像处理方法、装置、图像处理器及电子设备
CN112740278B (zh) 用于图形处理的方法及设备
CN103700362A (zh) 多信号窗口显示方法及装置
US11017505B2 (en) System and method for applying antialiasing to images

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant