[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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

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

Info

Publication number
KR101609266B1
KR101609266B1 KR1020090099733A KR20090099733A KR101609266B1 KR 101609266 B1 KR101609266 B1 KR 101609266B1 KR 1020090099733 A KR1020090099733 A KR 1020090099733A KR 20090099733 A KR20090099733 A KR 20090099733A KR 101609266 B1 KR101609266 B1 KR 101609266B1
Authority
KR
South Korea
Prior art keywords
tile
binning
tiles
unit
primitive
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020090099733A
Other languages
English (en)
Other versions
KR20110042872A (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
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Family

ID=42985534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090099733A Active 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)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342322B2 (en) * 2011-09-12 2016-05-17 Microsoft Technology Licensing, Llc System and method for layering using tile-based renderers
KR101136737B1 (ko) * 2011-10-07 2012-04-19 (주)넥셀 그래픽 처리방법 및 그 장치
US8819296B2 (en) 2011-11-17 2014-08-26 Nokia Corporation Apparatus, a method and a computer program
KR101953133B1 (ko) 2012-02-27 2019-05-22 삼성전자주식회사 렌더링 장치 및 그 방법
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
US9940686B2 (en) * 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
SG11201610041TA (en) * 2014-06-30 2016-12-29 Intel Corp Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture
EP2985735B1 (en) 2014-08-11 2019-12-04 Samsung Electronics Co., Ltd Method and apparatus for performing tile-based path rendering
KR102354989B1 (ko) * 2015-04-14 2022-01-24 삼성전자주식회사 경로 렌더링을 위한 타일 비닝을 수행하는 방법 및 장치.
US11436783B2 (en) 2019-10-16 2022-09-06 Oxide Interactive, Inc. Method and system of decoupled object space shading

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046886A (ja) * 1995-08-04 2004-02-12 Microsoft Corp グラフィック対象物をチャンク映像に変換し、かつ、映像層を結合して表示画像に換える方法、および、装置
US20070091088A1 (en) * 2005-10-14 2007-04-26 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
US20090046098A1 (en) * 2007-08-14 2009-02-19 Stmicroelectronics S.R.L. Primitive binning method for tile-based rendering

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
HK1049537A1 (zh) 2000-03-31 2003-05-16 Intel Corporation 平鋪式圖形結構
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
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.
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046886A (ja) * 1995-08-04 2004-02-12 Microsoft Corp グラフィック対象物をチャンク映像に変換し、かつ、映像層を結合して表示画像に換える方法、および、装置
US20070091088A1 (en) * 2005-10-14 2007-04-26 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
US20090046098A1 (en) * 2007-08-14 2009-02-19 Stmicroelectronics S.R.L. Primitive binning method for tile-based rendering

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101609266B1 (ko) 타일 기반의 랜더링 장치 및 방법
US11657565B2 (en) Hidden culling in tile-based computer generated images
EP3346448B1 (en) Graphics processing method and system
KR102122454B1 (ko) 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
US8154547B2 (en) Method and system for early Z test in title-based three-dimensional rendering
JP4769984B2 (ja) タイルベース・グラフィック・レンダリング
US10235799B2 (en) Variable rate deferred passes in graphics rendering
US9013479B2 (en) Apparatus and method for tile-based rendering
KR101136737B1 (ko) 그래픽 처리방법 및 그 장치
US10229524B2 (en) Apparatus, method and non-transitory computer-readable medium for image processing based on transparency information of a previous frame
KR20160069801A (ko) 렌더링 방법 및 장치
US20100265254A1 (en) Graphics filled shape drawing
US10825231B2 (en) Methods of and apparatus for rendering frames for display using ray tracing
KR20230073222A (ko) 깊이 버퍼 프리-패스
KR20140073951A (ko) 베이지어 커브를 렌더링하는 장치 및 방법
KR20150060026A (ko) 이전 커맨드 정보를 이용하여 현재 커맨드를 처리하는 방법 및 장치.
KR20170025099A (ko) 렌더링 방법 및 장치
US8339397B2 (en) Method and apparatus for high-speed shadowing using shadow volumes
US9390551B2 (en) Method for estimation of information representative of a pixel of a virtual object
KR102147357B1 (ko) 커맨드들을 관리하는 장치 및 방법
KR100624455B1 (ko) 3차원 그래픽스 환경에서의 라이트맵 처리 방법 및 장치
KR20150042095A (ko) 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20091020

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20140808

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20091020

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20150813

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20151230

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20160330

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20160331

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20190228

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20200228

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20210225

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20220223

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20240227

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20250225

Start annual number: 10

End annual number: 10