KR20110042872A - 타일 기반의 랜더링 장치 및 방법 - Google Patents

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

Info

Publication number
KR20110042872A
KR20110042872A KR1020090099733A KR20090099733A KR20110042872A KR 20110042872 A KR20110042872 A KR 20110042872A KR 1020090099733 A KR1020090099733 A KR 1020090099733A KR 20090099733 A KR20090099733 A KR 20090099733A KR 20110042872 A KR20110042872 A KR 20110042872A
Authority
KR
South Korea
Prior art keywords
tile
binning
tiles
unit
vertex
Prior art date
Application number
KR1020090099733A
Other languages
English (en)
Other versions
KR101609266B1 (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 KR1020090099733A priority Critical patent/KR101609266B1/ko
Priority to JP2010088638A priority patent/JP5634104B2/ja
Priority to US12/662,835 priority patent/US8587592B2/en
Priority to EP10178164.9A priority patent/EP2315180A3/en
Publication of KR20110042872A publication Critical patent/KR20110042872A/ko
Application granted granted Critical
Publication of KR101609266B1 publication Critical patent/KR101609266B1/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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

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

Abstract

타일 기반의 랜더링 장치 및 방법이 제공된다. 랜더링 방법은 3차원 모델을 2차원의 디스플레이 화면에 보다 사실적으로 표현하기 위해 사용될 수 있다. 더욱이, 랜더링 방법은, 프레임에 포함된 객체들을 대상으로 프리비닝을 수행함으로써 모든 기하학 처리 결과를 외부 메모리에 기록하지 않기 때문에 외부 메모리의 사용량을 감소시킬 수 있다.
랜더링(Rendering), 비닝(Binning), 타일(Tile), 그래픽스(Graphics)

Description

타일 기반의 랜더링 장치 및 방법{APPARATUS AND METHOD FOR RENDERING TILE BASED}
아래의 실시예들은 다수의 그래픽스 연산들을 이용하여 프레임에 포함된 객체들을 랜더링하는 기술에 관한 것이다.
3차원 그래픽을 이용하면 2차원으로 표시되는 디스플레이 장치에서도 보다 사실적으로 3차원 모델을 표현할 수 있는 효과가 있으므로, 3차원 그래픽을 이용하여 정보를 제공하는 연구가 진행되고 있다.
특히, 3차원 그래픽으로 3차원 모델을 표현하는 경우에도, 사용자가 확인할 수 있는 디스플레이 장치는 2차원 화면이기 때문에, 3차원 모델을 사용자의 시점에서 바라본 2차원 화면으로 변환하는 과정이 필요하다. 이와 같이 3차원 모델을 2차원 화면으로 변환하는 과정 중에서, 다수의 그래픽스 연산들이 이용된다.
이때, 화면을 타일이라고 하는 작은 기본 단위로 나누어 렌더링하는 타일 기반 렌더링 방법은 기하학 처리(Geometry Processing)에 필요한 메모리 공간을 예측하기 힘들다. 더욱이, 기하학 처리에 대한 결과의 양이 많아, 내부 메모리 뿐만 아니라 외부 메모리도 저장할 수 밖에 없다. 또한, 타일의 크기가 작을 경우 저장 해야할 기하학 처리 결과가 증가하여 외부 메모리의 사용이 증가하게 된다.
이에 따라, 랜더링 수행을 위해 요구되는 내부 및 외부 메모리 공간의 사용량을 감소시키기 위한 연구가 활발히 진행되고 있다.
본 발명의 일실시예에 따른 랜더링 장치는, 복수의 타일들로 구성된 프레임에 포함된 적어도 하나의 객체(Object)를 대상으로, 복수의 타일들 각각을 프리비닝(Pre-Binning)하는 프리비닝부, 프리비닝된 객체들을 대상으로, 타일마다 정점 쉐이딩을 수행하는 정점 쉐이딩부, 정점 쉐이딩된 객체들을 대상으로, 타일 내의 모든 정점(Vertex)마다 뷰포트 맵핑을 수행하는 뷰포트 맵핑부, 뷰포트 맵핑된 객체들을 대상으로, 타일 내의 정점(Vertex)들을 프리미티브(Primitive)로 구성하는 프리미티브 처리부, 및 프리미티브들을 대상으로 타일비닝을 수행하는 타일비닝부를 포함할 수 있다.
이때, 복수의 타일들로 구성된 프레임에 포함된 적어도 하나의 객체에 대응되는 바운딩 볼륨(Bounding Volume)을 생성하고, 생성된 바운딩 볼륨을 이용하여 복수의 타일 각각을 프리비닝할 수 있다. 여기서, 프리비닝부는, 적어도 하나의 객체가 포함되도록 바운딩 볼륨을 생성할 수 있다.
또한, 타일비닝부는, 타일비닝이 수행된 객체에 비닝 플래그를 설정할 수 있다. 이때, 비닝 플래그가 설정된 객체에는, 기하학 처리가 수행되지 않을 수 있다. 또한, 비닝 플래그가 설정된 객체에는, 정점 쉐이딩, 뷰포트 맵핑, 프리미티브 구성, 및 타일비닝이 수행되지 않을 수 있다.
또한, 타일비닝을 수행한 객체에 대해, 프리미티브로부터 프래그먼트를 생성하는 프래그먼트 생성부, 생성된 프래그먼트를 대상으로 픽셀 쉐이딩을 수행하는 픽셀 쉐이딩부, 및 쉐이딩된 프래그먼트를 대상으로 래스터 연산을 수행하는 래스터 연산부를 더 포함할 수 있다.
본 발명의 일실시예에 따른 랜더링 방법은, 복수의 타일들로 구성된 프레임에 포함된 적어도 하나의 객체를 대상으로, 상기 복수의 타일들 각각을 프리비닝하는 단계, 및 프리비닝 수행 후, 상기 복수의 타일들 중 선택된 적어도 하나의 타일에 포함된 적어도 하나의 객체를 대상으로 기하학 처리를 수행하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따른 랜더링 장치 및 방법은 기하학 처리를 수행하기 이전에 프리비닝(Pre-Binning)을 수행함으로써 메모리 사용량을 감소시킬 수 있다.
또한, 본 발명의 실시예들에 따른 랜더링 장치 및 방법은 비닝 플래그를 이용하여 이미 기하학 처리가 완료된 객체에 대해서는 기하학 처리를 수행하지 않음으로써, 프리비닝에 의해서 발생할 수 있는 중복 연산을 방지하여 성능저하를 최소화할 수 있다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서, 관련된 공기 기술 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.
도 1은 프리비닝을 수행하는 랜더링 장치의 구성을 도시한 도면이다. 이하 에서는, 설명의 편의를 위해 하나의 프레임에 복수의 객체가 포함된 경우를 예로 들어 설명하기로 한다.
도 1을 참조하면, 랜더링 장치(100)는, 프리비닝부(110), 기하학 처리부(120), 프리미티브 처리부(125), 타일비닝부(130), 래스터 처리부(140), 제어부(150), 및 저장부(160)를 포함할 수 있다.
먼저, 프리비닝부(110)는 프레임을 복수개의 타일로 분할하고, 프레임에 포함된 객체들의 일부 또는 전체를 포함하는 타일을 판별하기 위해 분할된 타일들 각각을 프리비닝(Pre-Binning)할 수 있다. 즉, 프리비닝부(110)는 프레임을 구성하는 복수의 타일들 각각에 대해 프리비닝을 수행할 수 있다.
이때, 프리비닝부(110)는 프레임에 포함된 복수의 객체 각각에 대응되는 바운딩 볼륨(Bounding Volume)을 생성할 수 있다. 그러면, 프리비닝부(110)는 생성된 바운딩 볼륨의 일부 또는 전체를 포함하는 타일을 판별하기 위해 분할된 타일들 각각에 대해 프리비닝을 수행할 수 있다.
즉, 도 2에 따르면, 프리비닝부(110)는 제1 내지 제7 바운딩 볼륨(210 내지 270)을 생성할 수 있다. 여기서, 프리비닝부(110)는 각 바운딩 볼륨에 해당되는 객체가 포함되도록 객체보다 바운딩 볼륨을 크게 생성할 수 있다.
일예로, 도 2와 같이 하나의 프레임이 24개의 타일들로 구성된 경우, 프리비닝부(110)는 24개의 타일들 중 선택된 타일에 7개의 바운딩 볼륨의 일부 또는 전체가 포함되는지를 각각 프리비닝할 수 있다.
이러한 프리비닝 과정을 24개의 타일 전체에 수행함으로써, 프리비닝 부(110)는 24개 타일 각각의 객체비닝정보(Object Binning Information)를 획득하고, 획득된 객체비닝정보를 저장부(160)에 저장할 수 있다. 여기서, 객체비닝정보는 타일번호, 타일에 포함되는 객체의 종류, 및 객체 각각에 해당되는 문맥정보(Rendering Context)를 포함할 수 있다.
즉, 도 2를 참조하면, 타일 8이 선택된 경우를 예로 들면, 프리비닝부(110)는 타일 8에 포함되는 제1 및 제2 객체(210, 220), 제1 및 제2 객체 각각의 문맥정보(Context A, Context B)를 타일 8의 객체비닝정보로 저장부(170)에 저장할 수 있다. 이때, 프리비닝부(110)는 프레임을 구성하는 24개의 타일들을 Z방향, 상, 하, 좌, 우, 대각선 방향, 랜덤한 방향, 및 기설정된 방향으로 선택할 수 있다.
동일한 방법으로, 프리비닝부(110)는 타일 0 내지 7, 및 타일 9 내지 24 각각에 대응되는 객체비닝정보를 획득하여 저장부(170)에 저장할 수 있다.
정점 쉐이딩부(120)는 프리비닝된 객체들을 대상으로, 타일마다 정점 쉐이딩을 수행할 수 있다.
뷰포트 맵핑부(130)는 정점 쉐딩된 객체들이 디스플레이(미도시) 상의 뷰포트(미도시)에 맵핑되도록 정점 쉐이딩된 객체들을 대상으로, 타일 내의 모든 정점(Vertex)마다 뷰포트 맵핑을 수행할 수 있다. 여기서, 정점 쉐이딩 및 뷰포트 맵핑은 이미 잘 알려진 기술이므로 자세한 설명은 생략하기로 한다.
이때, 정점 쉐이딩부(120) 및 뷰포트 맵핑부(130)는 타일 내의 모든 정점(Vertex)마다 수행된 기하학 처리 결과를 저장부(170)에 저장할 수 있다. 즉, 정점 쉐이딩 및 뷰포트 맵핑된 객체에 해당하는 기하학 처리결과가 저장부(170)에 저장될 수 있다.
프리미티브 처리부(Primitive Assembly Unit: 140)는 뷰포트 맵핑된 객체들을 대상으로, 타일 내의 정점(Vertex)들을 프리미티브(Primitive)로 구성할 수 있다. 일 예로, 프리미티브는 삼각형을 포함할 수 있다.
타일 비닝부(Tile binning: 150)는 정점마다 뷰포트 맵핑된 객체 내의 프리미티브들을 대상으로, 타일비닝을 수행할 수 있다.
이때, 타일비닝부(150)는 프리미티브 처리를 통해 선택된 타일 각각에 대해 프리미티브 단위로 타일비닝을 수행할 수 있다. 여기서, 타일 비닝부(150)는 프레임을 구성하는 타일들을 Z방향, 상, 하, 좌, 우, 대각선 방향, 랜덤한 방향, 및 기설정된 방향으로 선택하여 타일비닝을 수행할 수 있다.
또한, 타일 비닝부(150)는 프리미티브(Primitive)를 이용하여 기하학 처리된 객체들의 일부 또는 전체를 포함하는 타일들을 판별하여 타일비닝정보를 획득하고, 획득된 타일비닝정보를 저장부(170)에 저장할 수 있다. 여기서, 타일비닝정보는, 타일번호, 타일에 포함되는 프리미티브 각각에 대응되는 객체의 종류, 및 객체 각각에 해당되는 문맥정보(Rendering Context)를 포함할 수 있다. 일 예로, 프리미티브는 삼각형(Triangle), 사각형(quad) 또는 다각형(Polygon)을 포함할 수 있다. 여기서, 삼각형은 triangle type, triangle strip type, 및 triangle fan type을 포함할 수 있다.
이때, 도 3을 참조하면, 타일 비닝부(150)는 타일 8에 포함되는 제1 내지 제4 프리미티브(Tri0 내지 Tri3), 제1 내지 제4 프리미티브 각각이 포함하는 제1 및 제2 객체(210, 220), 그리고, 제1 및 제2 객체 각각의 문맥정보(Context A, Context B)를 타일 8의 타일비닝정보로 저장부(170)에 저장할 수 있다. 동일한 방법으로, 타일 비닝부(150)는 타일 0 내지 7, 및 타일 9 내지 24 각각에 대응되는 타일비닝정보를 저장부(170)에 저장할 수 있다.
또한, 타일 비닝부(150)는 타일비닝이 수행된 객체에 대해 비닝 플래그를 설정할 수 있다. 여기서, 비닝 플래그는 프레임에 포함된 객체들 중 기하학 처리(Geometry Processing)가 이미 수행된 객체들에 설정될 수 있다. 이때, 기하학 처리는, 정점 쉐이딩, 뷰포트 맵핑, 프리미티브 구성, 및 타일비닝을 포함할 수 있다.
이를 통해, 프리비닝된 객체에 비닝 플래그가 설정되어 있는 경우, 비닝 플래그가 설정된 객체에 대해 기하학 처리가 수행되지 않을 수 있다. 마찬가지로, 프리비닝된 객체에 비닝 플래그가 설정되지 않은 경우, 비닝 플래그가 설정되지 않은 객체에 대해 기하학 처리가 수행될 수 있다.
일 예로, 도 2를 참조하면, 타일 8 및 타일 9는 각각 동일한 제1 및 제2 객체(즉, 유리, 및 전지현)를 포함할 수 있다. 이때, 타일 8에 포함된 제1 및 제2 객체(즉, 유리 및 전지현)는 정점 쉐이딩, 뷰포트 맵핑, 프리미티브 처리 및 타일비닝과 같은 기하학 처리가 수행되었으므로, 타일 비닝부(150)는 제1 및 제2 객체에 비닝 플래그를 설정할 수 있다.
이후, 프리비닝부(110)에서 타일 9가 선택되어 프리비닝이 완료되면, 타일 9에 포함된 제1 및 제2 객체(즉, 유리 및 전지현)에 비닝 플래그가 설정되어 있으 므로, 제1 및 제2 객체에 대해 기하학 처리가 수행되지 않을 수 있다. 즉, 프리비닝된 제1 및 제2 객체에 대해 정점 쉐이딩, 뷰포트 맵핑, 프리미티브 처리 및 타일비닝이 수행되지 않을 수 있다. 이를 통해, 이미 기하학 처리된 객체의 기하학 처리결과는 저장부(170)에 저장되지 않을 수 있다.
래스터 처리부(Rasterization Unit: 160)는 프래그먼트 처리부(161), 픽셀 쉐이딩부(163), 및 래스터 연산부(165)를 포함할 수 있다.
프래그먼트 처리부(Fragment Generator: 161)는 프리미티브들로부터 화면 상의 프래그먼트 혹은 픽셀들을 생성할 수 있다.
픽셀 쉐이딩부(163)는 생성된 프래그먼트를 대상으로 픽셀 쉐이딩(Pixel Shading)을 수행할 수 있다.
래스터 연산부(Raster Operation Processor ROP: 165)는 쉐이딩된 프래그먼트를 대상으로, 래스터 연산을 수행하고, 래스터 연산 수행 결과를 저장부(170)에 저장할 수 있다.
또한, 래스터 연산부(165)는 복수의 타일들로 구성된 프레임에 포함된 객체들의 래스터 처리(Rasterization)가 완료되면, 타일비닝정보 및 기하학 처리결과를 저장부(170)에서 삭제할 수 있다.
이때, 화면 상의 한 점을 픽셀(pixel)이라고 하면, 프래그먼트(fragment)는 픽셀의 색을 결정하기 위해 랜더링 장치 내에서 관리하는 단위일 수 있다. 여기서, 프래그먼트, 픽셀 쉐이딩, 및 래스터 연산은 이미 잘 알려진 기술이므로 자세한 설명은 생략하기로 한다.
도 4는 프리비닝의 동작을 설명하기 위해 제공되는 흐름도이다.
먼저, 프리비닝부(110)는 프레임에 포함된 객체들 각각에 해당하는 바운딩 볼륨(Bounding Volume)을 생성할 수 있다(S410). 여기서, 바운딩 볼륨은 해당되는 객체가 포함되도록 객체보다 크게 생성될 수 있다.
이어, 프리비닝부(110)는 생성된 바운딩 볼륨을 이용하여 복수의 타일들로 구성된 프레임에 포함된 객체를 대상으로 프리비닝을 수행할 수 있다(S420).
구체적으로, 프리비닝부(110)는 복수의 타일들 중 선택된 타일에 생성된 바운딩 볼륨의 일부 혹은 전체가 포함되는지를 판별하는 프리비닝을 수행할 수 있다. 이때, 프리비닝부(110)는 프레임을 구성하는 복수의 타일 전체에 대해 프리비닝을 수행함으로써 획득된 객체비닝정보(Object Binning Information)를 저장부(170)에 저장할 수 있다.
여기서, 객체비닝정보는 타일번호, 타일에 포함되는 객체의 종류, 및 객체 각각에 해당되는 문맥정보(Rendering Context)를 포함할 수 있다. 이때, 프리비닝부(110)는 Z방향, 상, 하, 좌, 우, 대각선 방향, 랜덤한 방향, 및 기설정된 방향으로 타일을 선택할 수 있다.
그리고, 프리비닝 수행 후, 타일비닝부(150)는 기하학 처리를 수행한 객체에 대해 비닝 플래그를 설정할 수 있다(S430). 여기서, 기하학 처리는, 정점 쉐이딩, 뷰포트 맵핑, 프리미티브 구성, 및 타일비닝을 포함할 수 있다.
이를 통해, 프리비닝된 객체에 비닝 플래그가 설정된 경우, 기하학 처리가 수행되지 않을 수 있다(S440). 즉, 프리비닝된 객체를 대상으로, 정점 쉐이딩, 뷰 포트 맵핑, 프리미티브 구성, 및 타일비닝이 수행되지 않을 수 있다.
마찬가지로, 프리비닝된 객체에 비닝 플래그가 설정되어 있지 않은 경우, 비닝 플래그가 설정되지 않은 객체를 대상으로 기하학 처리가 수행될 수 있다. 즉, 프리비닝된 객체를 대상으로, 정점 쉐이딩, 뷰포트 맵핑, 프리미티브 구성, 및 타일비닝이 수행될 수 있다. 이때, 정점 쉐이딩 및 뷰포트 맵핑은 정점 단위로 수행되고, 프리미티브 및 타일비닝은 프리미티브 단위로 수행될 수 있다.
그러면, 래스터 처리부(160)는 타일비닝이 수행된 객체에 대해 래스터 처리(Rasterization)를 수행할 수 있다(S450). 여기서, 래스터 처리는 프래그먼트 처리, 픽셀 쉐이딩, 및 래스터 연산을 포함할 수 있다. 이때, 프래그먼트 처리는 프리미티브 단위로 수행되고, 픽셀 쉐이딩 및 래스터 연산은 프래그먼트 단위로 수행될 수 있다.
이를 통해, 래스터 연산부(165)는 복수의 타일들로 구성된 프레임에 포함된 객체들에 대해 래스터 처리가 완료되면, 타일비닝정보 및 기하학 처리결과를 저장부(170)에서 삭제할 수 있다(S460).
이상에서는, 하나의 프레임에 복수의 객체가 포함된 경우를 예로 들어 설명하였으나, 이는 실시예에 불과할 뿐, 하나의 프레임이 하나의 객체만을 포함할 수 있다.
또한, 프레임을 구성하는 타일들 중 선택된 타일 각각에 포함되는 바운딩 볼륨을 판별하는 프리비닝을 설명하였으나, 이는 실시예에 불과할뿐, 타일의 선택없이 프레임 전체를 대상으로 입력되는 바운딩 볼륨 각각을 포함하는 타일들을 판 별하여 프리비닝을 수행할 수 있다.
또한, 이상에서는, 선택된 타일에 비닝 플래그가 설정된 객체와 비닝 플래그가 설정되지 않은 객체가 함께 포함된 경우, 비닝 플래그가 설정되지 않은 객체를 정점단위로 기하학 처리 및 프리미티브 처리를 수행하고, 프리미티브 단위로 타일비닝을 수행할 수 있다.
또한, 비닝 플래그가 설정된 경우, 기하학 처리, 프리미티브 처리 및 타일비닝을 수행하지 않는 것으로 설명하였으나, 이는 실시예에 불과하며, 선택된 타일에 포함된 복수의 객체들 중 비닝 플래그가 설정되지 않은 객체가 있는 경우에, 타일에 포함된 객체들 전체를 대상으로 기하학 처리, 프리미티브 처리 및 타일비닝을 수행할 수 있다.
또한, 이상에서 설명한 객체(Object)는 OpenGL 또는 OpenGL|ES의 draw call에 대응, Direct3D의 draw primitive call에 대응될 수 있다.
또한, 이상에서 설명한 랜더링 장치에서, 기하학 처리는 정점 단위, 타일비닝 및 프래그먼트는 프리미티브 단위, 픽셀 쉐이딩 및 래스터 연산은 프래그먼트 단위로 수행될 수 있다.
또한, 이상의 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 프리비닝을 수행하는 랜더링 장치의 구성을 도시한 도면이다.
도 2는 프리비닝을 설명하기 위해 제공되는 도면이다.
도 3은 타일비닝을 설명하기 위해 제공되는 도면이다.
도 4는 프리비닝의 동작을 설명하기 위해 제공되는 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 프리비닝부
120: 정점 쉐이딩부
130: 뷰포트 맵핑부
140: 프리미티브 처리부
150: 타일비닝부
160: 래스터 처리부
170: 저장부

Claims (20)

  1. 복수의 타일들로 구성된 프레임에 포함된 적어도 하나의 객체를 대상으로, 상기 복수의 타일들 각각을 프리비닝하는 프리비닝부;
    상기 프리비닝된 객체들을 대상으로, 타일마다 정점 쉐이딩을 수행하는 정점 쉐이딩부;
    상기 정점 쉐이딩된 객체들을 대상으로, 타일 내의 모든 정점(Vertex)마다 뷰포트 맵핑을 수행하는 뷰포트 맵핑부;
    상기 뷰포트 맵핑된 객체들을 대상으로, 타일 내의 정점(Vertex)들을 프리미티브(Primitive)로 구성하는 프리미티브 처리부; 및
    상기 프리미티브들을 대상으로 타일비닝을 수행하는 타일비닝부
    를 포함하는 랜더링 장치.
  2. 제1항에 있어서,
    상기 프리비닝부는,
    상기 복수의 타일들로 구성된 프레임에 포함된 적어도 하나의 객체에 대응되는 바운딩 볼륨(Bounding Volume)을 생성하고, 상기 생성된 바운딩 볼륨을 이용하여 상기 복수의 타일 각각을 프리비닝하는 랜더링 장치.
  3. 제2항에 있어서,
    상기 프리비닝부는,
    상기 적어도 하나의 객체가 포함되도록 상기 바운딩 볼륨을 생성하는 랜더링 장치.
  4. 제2항에 있어서,
    상기 프리비닝부는,
    상기 복수의 타일들 중 선택된 적어도 하나의 타일에 상기 생성된 바운딩 볼륨의 일부 또는 전체가 포함되는지를 판별하여 상기 프리비닝을 수행하는 랜더링 장치.
  5. 제1항에 있어서,
    상기 타일비닝부는,
    상기 타일비닝이 수행된 객체에 비닝 플래그를 설정하는 것을 특징으로 하는 랜더링 장치.
  6. 제5항에 있어서,
    상기 비닝 플래그가 설정된 객체에는, 기하학 처리가 수행되지 않는 것을 특징으로 하는 랜더링 장치.
  7. 제6항에 있어서,
    상기 비닝 플래그가 설정된 객체에는, 상기 정점 쉐이딩, 상기 뷰포트 맵핑, 상기 프리미티브 구성, 및 상기 타일비닝이 수행되지 않는 것을 특징으로 하는 랜더링 장치.
  8. 제1항에 있어서,
    상기 타일비닝을 수행한 객체에 대해, 프리미티브로부터 프래그먼트를 생성하는 프래그먼트 생성부;
    상기 생성된 프래그먼트를 대상으로 픽셀 쉐이딩을 수행하는 픽셀 쉐이딩부; 및
    상기 쉐이딩된 프래그먼트를 대상으로 래스터 연산을 수행하는 래스터 연산부
    를 더 포함하는 랜더링 장치.
  9. 제8항에 있어서,
    상기 래스터 연산부는,
    상기 객체에 대해 래스터 연산이 수행되면, 상기 객체의 타일비닝정보 및 기하학 처리결과를 삭제하는 것을 특징으로 하는 랜더링 장치.
  10. 복수의 타일들로 구성된 프레임에 포함된 적어도 하나의 객체를 대상으로, 상기 복수의 타일들 각각을 프리비닝하는 단계;
    상기 프리비닝된 객체들을 대상으로, 타일마다 정점 쉐이딩을 수행하는 단계;
    상기 정점 정점 쉐이딩된 객체들을 대상으로, 타일 내의 모든 정점(Vertex)마다 뷰포트 맵핑을 수행하는 단계;
    상기 뷰포트 맵핑된 객체들을 대상으로, 타일 내의 정점(Vertex)들을 프리미티브(Primitive)로 구성하는 단계; 및
    상기 프리미티브들을 대상으로 타일비닝을 수행하는 단계
    를 포함하는 랜더링 방법.
  11. 제10항에 있어서,
    상기 프리비닝하는 단계는,
    상기 복수의 타일들로 구성된 프레임에 포함된 적어도 하나의 객체에 대응되는 바운딩 볼륨(Bounding Volume)을 생성하고, 상기 생성된 바운딩 볼륨을 이용하여 상기 복수의 타일 각각을 프리비닝하는 랜더링 방법.
  12. 제11항에 있어서,
    상기 프리비닝하는 단계는,
    상기 적어도 하나의 객체가 포함되도록 상기 바운딩 볼륨을 생성하는 랜더링 방법.
  13. 제11항에 있어서,
    상기 프리비닝하는 단계는,
    상기 복수의 타일들 중 선택된 적어도 하나의 타일에 상기 생성된 바운딩 볼륨의 일부 또는 전체가 포함되는지를 판별하여 상기 프리비닝을 수행하는 랜더링 방법.
  14. 제10항에 있어서,
    상기 타일비닝을 수행하는 단계는,
    상기 타일비닝이 수행된 객체에 비닝 플래그를 설정하는 것을 특징으로 하는 랜더링 방법.
  15. 제14항에 있어서,
    상기 비닝 플래그가 설정된 객체에는, 기하학 처리가 수행되지 않는 것을 특징으로 하는 랜더링 방법.
  16. 제15항에 있어서,
    상기 비닝 플래그가 설정된 객체에는, 상기 정점 쉐이딩, 상기 뷰포트 맵핑, 상기 프리미티브 구성, 및 상기 타일비닝이 수행되지 않는 것을 특징으로 하는 랜더링 방법.
  17. 제10항에 있어서,
    상기 타일비닝을 수행한 객체에 대해, 프리미티브로부터 프래그먼트를 생성하는 단계;
    상기 생성된 프래그먼트를 대상으로 픽셀 쉐이딩을 수행하는 단계; 및
    상기 쉐이딩된 프래그먼트를 대상으로 래스터 연산을 수행하는 단계
    를 더 포함하는 랜더링 방법.
  18. 제17항에 있어서,
    상기 래스터 연산이 수행되면, 상기 객체의 타일비닝정보 및 기하학 처리결과를 삭제하는 것을 특징으로 하는 랜더링 방법.
  19. 제18항에 있어서,
    상기 프리미티브는, 삼각형(Triangle), 사각형(quad), 또는 폴리건(Polygon)을 포함하는 랜더링 방법.
  20. 제11항 내지 제19항 중 어느 중 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020090099733A 2009-10-20 2009-10-20 타일 기반의 랜더링 장치 및 방법 KR101609266B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020090099733A KR101609266B1 (ko) 2009-10-20 2009-10-20 타일 기반의 랜더링 장치 및 방법
JP2010088638A JP5634104B2 (ja) 2009-10-20 2010-04-07 タイルベースのレンダリング装置および方法
US12/662,835 US8587592B2 (en) 2009-10-20 2010-05-05 Tile-based rendering apparatus and method
EP10178164.9A EP2315180A3 (en) 2009-10-20 2010-09-22 Tile-based rendering apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090099733A KR101609266B1 (ko) 2009-10-20 2009-10-20 타일 기반의 랜더링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110042872A true KR20110042872A (ko) 2011-04-27
KR101609266B1 KR101609266B1 (ko) 2016-04-21

Family

ID=42985534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090099733A KR101609266B1 (ko) 2009-10-20 2009-10-20 타일 기반의 랜더링 장치 및 방법

Country Status (4)

Country Link
US (1) US8587592B2 (ko)
EP (1) EP2315180A3 (ko)
JP (1) JP5634104B2 (ko)
KR (1) KR101609266B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101136737B1 (ko) * 2011-10-07 2012-04-19 (주)넥셀 그래픽 처리방법 및 그 장치
WO2013039812A3 (en) * 2011-09-12 2013-05-10 Microsoft Corporation System and method for layering using tile-based renderers
KR20160122496A (ko) * 2015-04-14 2016-10-24 삼성전자주식회사 경로 렌더링을 위한 타일 비닝을 수행하는 방법 및 장치.
US9805502B2 (en) 2012-02-27 2017-10-31 Samsung Electronics Co., Ltd. Rendering system and method
US9984497B2 (en) 2014-08-11 2018-05-29 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based path rendering
KR20190020197A (ko) * 2014-05-14 2019-02-27 인텔 코포레이션 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819296B2 (en) 2011-11-17 2014-08-26 Nokia Corporation Apparatus, a method and a computer program
GB2500284B (en) 2012-09-12 2014-04-30 Imagination Tech Ltd Tile based computer graphics
KR102109130B1 (ko) 2013-08-12 2020-05-08 삼성전자주식회사 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들
US10198856B2 (en) * 2013-11-11 2019-02-05 Oxide Interactive, LLC Method and system of anti-aliasing shading decoupled from rasterization
JP6335335B2 (ja) * 2014-06-30 2018-05-30 インテル・コーポレーション タイルベースのレンダリングgpuアーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズム
US11436783B2 (en) 2019-10-16 2022-09-06 Oxide Interactive, Inc. Method and system of decoupled object space shading

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4540753B2 (ja) * 1995-08-04 2010-09-08 マイクロソフト コーポレーション グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム
US6924801B1 (en) 1999-02-09 2005-08-02 Microsoft Corporation Method and apparatus for early culling of occluded objects
US6344852B1 (en) 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data
US6525726B1 (en) 1999-11-02 2003-02-25 Intel Corporation Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture
CN1430769B (zh) 2000-03-31 2012-05-30 英特尔公司 拼块式图形结构
US6885378B1 (en) * 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
GB2387094B (en) 2002-03-26 2005-12-07 Imagination Tech Ltd 3-D Computer graphics rendering system
GB0307095D0 (en) * 2003-03-27 2003-04-30 Imagination Tech Ltd Improvements to a tiling system for 3d rendered graphics
JP4364706B2 (ja) 2004-04-05 2009-11-18 富士通株式会社 陰線処理方法
US7167171B2 (en) 2004-06-29 2007-01-23 Intel Corporation Methods and apparatuses for a polygon binning process for rendering
US7505036B1 (en) * 2004-07-30 2009-03-17 3Dlabs Inc. Ltd. Order-independent 3D graphics binning architecture
US20070091088A1 (en) * 2005-10-14 2007-04-26 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
GB2439129B (en) * 2006-06-12 2008-11-12 Imagination Tech Ltd Parameter compaction in a tile based rendering system
KR100793990B1 (ko) 2006-09-18 2008-01-16 삼성전자주식회사 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템
GB0710795D0 (en) * 2007-06-05 2007-07-18 Arm Norway As Method of and apparatus for processing graphics
ITMI20070038A1 (it) 2007-01-12 2008-07-13 St Microelectronics Srl Dispositivo di renderizzazione per grafica a tre dimensioni con architettura di tipo sort-middle.
US20090046098A1 (en) * 2007-08-14 2009-02-19 Stmicroelectronics S.R.L. Primitive binning method for tile-based rendering
US8059119B2 (en) * 2007-12-05 2011-11-15 Stmicroelectronics S.R.L. Method for detecting border tiles or border pixels of a primitive for tile-based rendering

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013039812A3 (en) * 2011-09-12 2013-05-10 Microsoft Corporation System and method for layering using tile-based renderers
US9342322B2 (en) 2011-09-12 2016-05-17 Microsoft Technology Licensing, Llc System and method for layering using tile-based renderers
US9715750B2 (en) 2011-09-12 2017-07-25 Microsoft Technology Licensing, Llc System and method for layering using tile-based renderers
KR101136737B1 (ko) * 2011-10-07 2012-04-19 (주)넥셀 그래픽 처리방법 및 그 장치
US9805502B2 (en) 2012-02-27 2017-10-31 Samsung Electronics Co., Ltd. Rendering system and method
KR20190020197A (ko) * 2014-05-14 2019-02-27 인텔 코포레이션 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용
US9984497B2 (en) 2014-08-11 2018-05-29 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based path rendering
US10672184B2 (en) 2014-08-11 2020-06-02 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based path rendering
US11074744B2 (en) 2014-08-11 2021-07-27 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based path rendering
US11694393B2 (en) 2014-08-11 2023-07-04 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based path rendering
KR20160122496A (ko) * 2015-04-14 2016-10-24 삼성전자주식회사 경로 렌더링을 위한 타일 비닝을 수행하는 방법 및 장치.

Also Published As

Publication number Publication date
JP5634104B2 (ja) 2014-12-03
EP2315180A2 (en) 2011-04-27
JP2011090664A (ja) 2011-05-06
KR101609266B1 (ko) 2016-04-21
EP2315180A3 (en) 2017-04-05
US20110090224A1 (en) 2011-04-21
US8587592B2 (en) 2013-11-19

Similar Documents

Publication Publication Date Title
KR20110042872A (ko) 타일 기반의 랜더링 장치 및 방법
US10497085B2 (en) Graphics processing method and system
US8217962B2 (en) Single-pass bounding box calculation
KR102122454B1 (ko) 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
US10032308B2 (en) Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
CN103946895A (zh) 基于平铺块的呈现中的镶嵌
JP6333840B2 (ja) 最適化ポリゴンに基づいたシェルメッシュを形成する方法
KR102499397B1 (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
JP2009505184A (ja) 深さバッファ付き表示装置を使用したレイ・トレーシングのためのシステムおよび方法
US9639971B2 (en) Image processing apparatus and method for processing transparency information of drawing commands
US20160148426A1 (en) Rendering method and apparatus
US8416260B1 (en) Sigma buffer for rendering small objects
KR20140073951A (ko) 베이지어 커브를 렌더링하는 장치 및 방법
KR102644276B1 (ko) 그래픽 처리 장치 및 방법
US10388060B2 (en) System and method for multi-view rendering
US9858709B2 (en) Apparatus and method for processing primitive in three-dimensional (3D) graphics rendering system
KR101215126B1 (ko) 가상 세계 애플리케이션에서 비주얼 시뮬레이션 루프에 대한 총 계산 시간을 감소시키는 방법
US10593111B2 (en) Method and apparatus for performing high throughput tessellation
JP2014219739A (ja) 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
KR102147357B1 (ko) 커맨드들을 관리하는 장치 및 방법
KR20150042095A (ko) 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법
Ripollés et al. Optimizing the management of continuous level of detail models on GPU
JP2006113909A (ja) 画像処理装置、画像処理方法及び画像処理プログラム

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
FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 4