KR102116708B1 - 그래픽스 프로세싱 유닛 - Google Patents

그래픽스 프로세싱 유닛 Download PDF

Info

Publication number
KR102116708B1
KR102116708B1 KR1020130059215A KR20130059215A KR102116708B1 KR 102116708 B1 KR102116708 B1 KR 102116708B1 KR 1020130059215 A KR1020130059215 A KR 1020130059215A KR 20130059215 A KR20130059215 A KR 20130059215A KR 102116708 B1 KR102116708 B1 KR 102116708B1
Authority
KR
South Korea
Prior art keywords
primitives
tile
primitive
representative
touching
Prior art date
Application number
KR1020130059215A
Other languages
English (en)
Other versions
KR20140137935A (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 KR1020130059215A priority Critical patent/KR102116708B1/ko
Priority to US14/255,171 priority patent/US9741158B2/en
Priority to DE102014106780.0A priority patent/DE102014106780A1/de
Priority to TW103117828A priority patent/TWI619089B/zh
Priority to CN201410221690.3A priority patent/CN104183005B/zh
Publication of KR20140137935A publication Critical patent/KR20140137935A/ko
Application granted granted Critical
Publication of KR102116708B1 publication Critical patent/KR102116708B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

그래픽스 프로세싱 유닛이 제공된다. 상기 그래픽스 프로세싱 유닛은 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝(tile binning)하되, 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여, 타일별로 상기 타일을 터치하는 복수의 프리미티브들 중 적어도 하나의 대표 프리미티브를 결정하는 타일링 유닛, 및 타일별로 상기 타일을 터치하는 복수의 프리미티브들을 래스터화하되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브를 나머지 프리미티브보다 우선하여 래스터화(rasterize)하고, 상기 타일을 터치하는 복수의 프리미티브들 중 나머지 프리미티브는 상기 렌더링 순서에 따라 래스터화하는 래스터라이저를 포함한다.

Description

그래픽스 프로세싱 유닛{Graphics processing unit}
본 발명은 그래픽스 프로세싱 유닛에 관한 것이다.
그래픽스 프로세싱 유닛(Graphics Processing Unit; GPU)은 컴퓨팅 시스템에서 그래픽스 연산을 전담하는 코어(core)를 말한다. 그래픽스 파이프라인(graphics pipeline)은 3차원의 오브젝트(object)를 입력으로 하고 2차원의 렌더링(rendering) 이미지를 출력하는 그래픽스 프로세싱 유닛의 하드웨어 구성을 나타낸다. 최근 그래픽 해상도의 증가는 그래픽스 프로세싱 유닛의 연산과 메모리의 대역폭을 급격하게 증가시키는 원인이 되고 있다.
본 발명이 해결하려는 과제는, 불필요한 연산과 메모리의 대역폭을 감소시키고, 조기 깊이 테스트의 효율을 향상시킬 수 있는 그래픽스 프로세싱 유닛을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 불필요한 연산과 메모리의 대역폭을 감소시키고, 조기 깊이 테스트의 효율을 향상시킬 수 있는 그래픽스 프로세싱 유닛을 포함하는 컴퓨팅 시스템을 제공하는 것이다.
본 발명이 해결하려는 또 다른 과제는, 불필요한 연산과 메모리의 대역폭을 감소시키고, 조기 깊이 테스트의 효율을 향상시킬 수 있는 타일 기반 렌더링 방법을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 그래픽스 프로세싱 유닛의 일 태양은 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝(tile binning)하되, 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여, 타일별로 상기 타일을 터치하는 복수의 프리미티브들 중 적어도 하나의 대표 프리미티브를 결정하는 타일링 유닛, 및 타일별로 상기 타일을 터치하는 복수의 프리미티브들을 래스터화하되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브를 나머지 프리미티브보다 우선하여 래스터화(rasterize)하고, 상기 타일을 터치하는 복수의 프리미티브들 중 나머지 프리미티브는 상기 렌더링 순서에 따라 래스터화하는 래스터라이저를 포함한다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 경계를 이루는 각각의 3차원 바운딩 박스를 계산하는 3차원 바운딩 박스 계산기를 포함하고, 상기 타일링 유닛은 상기 각각의 3차원 바운딩 박스를 정의하는 z 좌표 중 최대 값과 최소 값을 상기 복수의 프리미티브들 각각의 최대 깊이 값과 최소 깊이 값으로 계산할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 타일별로 상기 타일을 터치하는 복수의 프리미티브들의 가시성을 판단하는 제1 조기 깊이 테스터를 포함하고, 상기 제1 조기 깊이 테스터는 상기 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 적어도 하나의 대표 프리미티브의 깊이 값을 비교하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제1 조기 깊이 테스터는 상기 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 타일 부분을 나타내는 커버리지 마스크와, 상기 적어도 하나의 대표 프리미티브가 터치하는 상기 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 최대 깊이 값 또는 최소 깊이 값을 이용하여, 상기 대표 프리미티브를 결정할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 최대 깊이 값 및 최소 깊이 값을 이용하여, 상기 대표 프리미티브를 결정할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일별 프리미티브 리스트는 상기 타일을 터치하는 복수의 프리미티브들의 ID와 상기 적어도 하나의 대표 프리미티브의 ID를 속성으로 포함하고, 상기 래스터라이저는 상기 적어도 하나의 대표 프리미티브의 ID를 참조하여 상기 적어도 하나의 대표 프리미티브를 나머지 프리미티브보다 우선하여 래스터화할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 상기 메모리 장치로부터 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브의 ID에 대응되는 프리미티브를 우선하여 입력받도록, 상기 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 시퀀서를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 상기 타일을 터치하는 복수의 프리미티브들의 내부를 구성하는 프래그먼트들을 생성하는 보간 유닛과, 상기 타일의 내부에 속하는 상기 프래그먼트들의 가시성을 판단하는 제2 조기 깊이 테스터를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제2 조기 깊이 테스터는 상기 타일의 깊이 값과, 상기 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제2 조기 깊이 테스터는 동일 위치에 이미 그려진 프래그먼트의 깊이 값과, 상기 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단할 수 있다.
상기 과제를 해결하기 위한 본 발명의 그래픽스 프로세싱 유닛의 다른 태양은 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝(tile binning)하되, 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여, 타일별로 상기 타일을 터치하는 복수의 프리미티브들 중 적어도 하나의 대표 프리미티브를 결정하는 타일링 유닛, 및 타일별로 상기 타일을 터치하는 복수의 프리미티브들을 래스터화하되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브를 최후에 래스터화(rasterize)하고, 상기 타일을 터치하는 복수의 프리미티브들 중 나머지 프리미티브는 상기 렌더링 순서에 따라 래스터화하는 래스터라이저를 포함한다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 경계를 이루는 각각의 3차원 바운딩 박스를 계산하는 3차원 바운딩 박스 계산기를 포함하고, 상기 타일링 유닛은 상기 각각의 3차원 바운딩 박스를 정의하는 z 좌표 중 최대 값과 최소 값을 상기 복수의 프리미티브들 각각의 최대 깊이 값과 최소 깊이 값으로 계산할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 타일별로 상기 타일을 터치하는 복수의 프리미티브들의 가시성을 판단하는 제1 조기 깊이 테스터를 포함하고, 상기 제1 조기 깊이 테스터는 상기 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 적어도 하나의 대표 프리미티브의 깊이 값을 비교하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제1 조기 깊이 테스터는 상기 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 타일 부분을 나타내는 커버리지 마스크와, 상기 적어도 하나의 대표 프리미티브가 터치하는 상기 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 최대 깊이 값 또는 최소 깊이 값을 이용하여, 상기 대표 프리미티브를 결정할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 최대 깊이 값 및 최소 깊이 값을 이용하여, 상기 대표 프리미티브를 결정할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일별 프리미티브 리스트는 상기 타일을 터치하는 복수의 프리미티브들의 ID와 상기 적어도 하나의 대표 프리미티브의 ID를 속성으로 포함하고, 상기 래스터라이저는 상기 적어도 하나의 대표 프리미티브의 ID를 참조하여 상기 적어도 하나의 대표 프리미티브를 최후에 래스터화할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 상기 메모리 장치로부터 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브의 ID에 대응되는 프리미티브를 최후에 입력받도록, 상기 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 상기 타일을 터치하는 복수의 프리미티브들의 내부를 구성하는 프래그먼트들을 생성하는 보간 유닛과, 상기 타일의 내부에 속하는 상기 프래그먼트들의 가시성을 판단하는 제2 조기 깊이 테스터를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제2 조기 깊이 테스터는 상기 타일의 깊이 값과, 상기 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제2 조기 깊이 테스터는 동일 위치에 이미 그려진 프래그먼트의 깊이 값과, 상기 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단할 수 있다.
상기 과제를 해결하기 위한 본 발명의 그래픽스 프로세싱 유닛의 또 다른 태양은 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝하고, 타일별로 상기 타일을 터치하는 프리미티브들의 가시성을 판단하는 제1 조기 깊이 테스트를 수행하는 타일링 유닛, 및 타일별로 상기 타일을 터치하는 프리미티브들의 내부를 구성하는 프래그먼트들을 생성하고, 상기 타일의 내부에 속하는 프래그먼트들의 가시성을 판단하는 제2 조기 깊이 테스트를 수행하는 래스터라이저를 포함하되, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여, 상기 타일을 터치하는 복수의 프리미티브들 중 적어도 하나의 대표 프리미티브를 결정하고, 상기 래스터라이저는 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브는 상기 렌더링 순서와 다르게 래스터화한다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 적어도 하나의 대표 프리미티브의 깊이 값을 비교하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 타일 부분을 나타내는 커버리지 마스크와, 상기 적어도 하나의 대표 프리미티브가 터치하는 상기 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브를 우선하여 입력받거나 최후에 입력받도록, 상기 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 시퀀서를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 컴퓨팅 시스템의 일 태양은 오브젝트의 표면을 묘사하는 메쉬를 생성하는 센트럴 프로세싱 유닛, 상기 메쉬를 구성하는 복수의 프리미티브들을 이용하여 타일 기반 렌더링하는 그래픽스 프로세싱 유닛, 및 데이터를 저장하는 메모리 장치를 포함하고, 상기 그래픽스 프로세싱 유닛은, 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝하고, 타일별로 상기 타일을 터치하는 프리미티브들의 가시성을 판단하는 제1 조기 깊이 테스트를 수행하는 타일링 유닛과, 타일별로 상기 타일을 터치하는 프리미티브들의 내부를 구성하는 프래그먼트들을 생성하고, 상기 타일의 내부에 속하는 프래그먼트들의 가시성을 판단하는 제2 조기 깊이 테스트를 수행하는 래스터라이저를 포함하되, 상기 타일링 유닛은 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여, 상기 타일을 터치하는 복수의 프리미티브들 중 적어도 하나의 대표 프리미티브를 결정하고, 상기 래스터라이저는 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브는 상기 렌더링 순서와 다르게 래스터화한다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 적어도 하나의 대표 프리미티브의 깊이 값을 비교하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일링 유닛은 상기 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 타일 부분을 나타내는 커버리지 마스크와, 상기 적어도 하나의 대표 프리미티브가 터치하는 상기 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 래스터라이저는 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브를 우선하여 입력받거나 최후에 입력받도록, 상기 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 시퀀서를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 타일 기반 렌더링 방법은 각각 적어도 하나의 버텍스들로 구성되는 복수의 프리미티브들을 생성하고, 상기 복수의 프리미티브들 각각의 경계를 이루는 각각의 3차원 바운딩 박스를 계산하고, 상기 각각의 3차원 바운딩 박스를 이용하여, 상기 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝하고, 상기 각각의 3차원 바운딩 박스를 이용하여, 상기 복수의 프리미티브들 각각의 깊이 값을 계산하고, 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여, 타일별로 상기 타일을 터치하는 복수의 프리미티브들 중 적어도 하나의 대표 프리미티브를 결정하고, 타일별로 상기 타일을 터치하는 복수의 프리미티브들을 래스터화하되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브는 상기 렌더링 순서와 다르게 래스터화하는 것을 포함한다.
본 발명의 몇몇 실시예에서, 상기 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝하는 것은, 타일 별로 상기 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 적어도 하나의 대표 프리미티브의 깊이 값을 비교하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하는 것은, 상기 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 타일 부분을 나타내는 커버리지 마스크와, 상기 적어도 하나의 대표 프리미티브가 터치하는 상기 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일별로 상기 타일을 터치하는 복수의 프리미티브들을 래스터화하는 것은, 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브를 나머지 프리미티브보다 우선하여 입력받고, 상기 타일을 터치하는 복수의 프리미티브들 중 나머지 프리미티브는 상기 렌더링 순서에 따라 입력받도록, 상기 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 타일별로 상기 타일을 터치하는 복수의 프리미티브들을 래스터화하는 것은, 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일을 터치하는 복수의 프리미티브들 중 상기 적어도 하나의 대표 프리미티브를 최후에 입력받고, 상기 타일을 터치하는 복수의 프리미티브들 중 나머지 프리미티브는 상기 렌더링 순서에 따라 입력받도록, 상기 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 것을 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 그래픽 프로세싱 유닛을 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 그래픽 프로세싱 유닛의 그래픽스 파이프라인의 세부 구성을 설명하기 위한 블록도이다.
도 3은 도 2의 타일링 유닛의 세부 구성을 설명하기 위한 블록도이다.
도 4는 도 2의 타일링 유닛의 3차원 바운딩 박스 계산 동작을 설명하기 위한 도면이다.
도 5는 도 2의 타일링 유닛의 타일 비닝 동작을 설명하기 위한 도면이다.
도 6은 도 2의 타일링 유닛의 제1 조기 깊이 테스트 동작을 설명하기 위한 도면이다.
도 7은 도 2의 타일링 유닛에 의해서 제2 프리미티브가 제거되는 것을 개략적으로 설명하기 위한 도면이다.
도 8은 도 2의 래스터라이저의 세부 구성을 설명하기 위한 블록도이다.
도 9는 도 2의 래스터 라이저의 프리미티브들의 렌더링 순서 변경 동작을 설명하기 위한 도면이다.
도 10은 도 2의 래스터라이저에 의해서 프리미티브들의 렌더링 순서가 변경되고, 제3 프리미티브가 제거되는 것을 개략적으로 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 타일 기반 렌더링 방법을 설명하기 위한 흐름도이다.
도 12는 도 11의 타일링 스텝의 세부 과정을 설명하기 위한 흐름도이다.
도 13은 도 11의 래스터화 스텝의 세부 과정을 설명하기 위한 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 그래픽 프로세싱 유닛을 포함하는 컴퓨팅 시스템의 응용예를 설명하기 위한 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 그래픽 프로세싱 유닛을 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1)은 그래픽 프로세싱 유닛(100; GPU)과 메모리 장치(200; memory)를 포함한다.
그래픽 프로세싱 유닛(100)은 타일 기반 렌더링(tile-based rendering)을 수행하도록 구성된다. 이를 위해, 그래픽 프로세싱 유닛(100)은 그래픽스 파이프라인(graphics pipeline) 구성들을 포함한다. 그래픽스 파이프라인은 렌더링 파이프라인(rendering pipeline)으로 불리워질 수도 있다. 그래픽스 파이프라인 구성들은 그래픽 데이터들을 병렬 처리할 수 있다. 그래픽스 파이프라인 구성들은 소프트웨어(software) 또는 하드웨어(hardware)로 구성될 수 있다.
메모리 장치(200)는 데이터를 저장하도록 구성된다. 메모리 장치(200)는 그래픽 프로세싱 유닛(100)에 의해 처리되는 그래픽 데이터를 저장하거나, 그래픽 프로세싱 유닛(100)에 제공되는 그래픽 데이터를 저장할 수 있다. 또는, 메모리 장치(200)는 그래픽 프로세싱 유닛(100)의 동작 메모리로서 역할을 수행할 수 있다. 메모리 장치(200)는 DDR SDRAM(Double Data Rate Static DRAM), SDR SDRAM(Single Data Rate SDRAM)과 같은 하나 이상의 휘발성 메모리 장치 및/또는 EEPROM(Electrical Erasable Programmable ROM), 플래시 메모리(flash memory)과 같은 하나 이상의 비휘발성 메모리 장치를 포함할 수 있다.
도 2는 도 1의 그래픽 프로세싱 유닛의 그래픽스 파이프라인의 세부 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 그래픽 프로세싱 유닛(100)은 버텍스 프로세싱 유닛(110; vertex processing unit), 프리미티브 어셈블리 유닛(120; primitive assembly unit), 타일링 유닛(130; tiling uint), 래스터라이저(140; rasterizer), 프래그먼트 프로세싱 유닛(150; fragment processing unit)을 포함한다.
버텍스 프로세싱 유닛(110)은 버텍스(vertex)를 입력받고, 입력받은 버텍스를 변환하여 출력하도록 구성된다. 버텍스는 센트럴 프로세싱 유닛(CPU)으로부터 제공될 수 있다. 버텍스 프로세싱 유닛(110)은 단일 버텍스를 입력받고, 단일 버텍스를 출력하도록 구성된다. 예를 들어, 버텍스는 위치(position), 법선 벡터(normal vector), 컬러 값 등의 속성들(properties)을 포함할 수 있으나, 이에 한정되는 것은 아니다. 버텍스의 위치 속성은 3차원 스페이스의 좌표로 제공될 수 있다. 예를 들어, 버텍스의 위치 속성은 x 좌표, y 좌표, z 좌표들을 포함할 수 있다. x 좌표는 수평 좌표이고, y 좌표는 수직 좌표이고, z 좌표는 깊이 좌표일 수 있다. 버텍스 프로세싱 유닛(110)은 오브젝트 스페이스(object space)의 버텍스를 클립 스페이스(clip space)의 버텍스로 변환할 수 있다. 구체적으로, 버텍스 프로세싱 유닛(110)은 오브젝트 스페이스의 버텍스를 월드 스페이스(world space)의 버텍스로 변환하고, 월드 스페이스의 버텍스를 카메라 스페이스(camera space)의 버텍스로 변환하고, 카메라 스페이스의 버텍스를 클립 스페이스의 버텍스로 변환할 수 있다.
프리미티브 어셈블리 유닛(120)은 클립 스페이스의 버텍스를 입력받고, 프리미티브(primitive)를 생성하여 출력하도록 구성된다. 프리미티브 어셈블리 유닛(120)은 적어도 하나의 버텍스들로 구성되는 프리미티브를 생성할 수 있다. 예를 들어, 프리미티브 어셈블리 유닛(120)은 3 개의 버텍스들로 구성되는 삼각형(triangle) 타입의 프리미티브를 생성할 수 있다. 이하에서는, 본 발명의 실시예들을 설명하면서, 삼각형 타입의 프리미티브를 이용하여 설명하기로 한다. 그러나, 본 발명이 이에 한정되는 것은 아니고, 다른 타입의 프리미티브들 예를 들어, 점(points), 선(lines), 사각형(quads) 타입들에도 실질적으로 동일하게 적용될 수 있다. 프리미티브는 연결 정보의 속성을 포함할 수 있다. 연결 정보는 프리미티브를 구성하는 버텍스들이 연결되는 순서(예를 들어, 시계 방향 또는 반시계 방향)를 나타낼 수 있다. 연결 정보의 값에 따라, 프리미티브의 앞면(front face)과 뒷면(back face)이 구별될 수 있다.
타일링 유닛(130)은 프리미티브를 입력받고, 프리미티브 리스트(primitive list)를 생성하여 출력하도록 구성된다. 도 3을 참조하면, 이러한 타일링 유닛(130)은 3차원 바운딩 박스 계산기(131; 3D bounding box calculator), 제1 조기 깊이 테스터(132; first early depth tester), 프리미티브 리스트 생성기(133; primitive list generator)를 포함할 수 있다.
타일링 유닛(130)은 렌더링될 이미지 프레임을 복수의 타일(tile)로 분할할 수 있다. 각각의 타일은 상기 이미지 프레임의 복수의 픽셀들로 구성될 수 있다. 또한, 타일링 유닛(130)은 각각의 타일을 그보다 작은 복수의 서브 타일(sub-tile)로 분할할 수도 있다.
타일링 유닛(130)은 입력받은 프리미티브를 타일 비닝(tile binning)하여, 프리미티브가 어느 타일들을 터치하는지 대략적으로(approximatively) 판단할 수 있다. 프리미티브가 타일을 터치한다는 것은, 프리미티브의 적어도 일부 영역이 해당 타일의 내부에 속하는(belong) 것을 나타낼 수 있다. 그리고, 타일링 유닛(130)은 타일을 터치하는 프리미티브를 해당 타일별 프리미티브 리스트에 할당할 수 있다. 타일링 유닛(130)은 단일 프리미티브를 입력받고, 단일 프리미티브에 대하여 타일 비닝하도록 구성된다(one primitive at a time). 예를 들어, 타일은 커버리지 마스크(coverage mask)를 속성으로 포함할 수 있으나, 이에 한정되는 것은 아니다. 커버리지 마스크는 타일을 구성하는 각각의 픽셀에 대하여, 해당 픽셀을 터치하는 프리미티브의 유무를 나타낼 수 있다. 그래픽스 파이프라인은 각각의 타일에 대해서 렌더링을 수행함으로써, 이미지 프레임 전체에 대한 렌더링을 완료할 수 있다.
이를 위해, 3차원 바운딩 박스 계산기(131)는 프리미티브의 경계를 이루는 3차원 바운딩 박스(3D bounding box)를 계산할 수 있다. 종래의 그래픽스 파이프라인은 2차원 바운딩 박스 계산기를 이용하여, 프리미티브의 경계를 이루는 2차원 바운딩 박스(2D bounding box)를 계산하였다. 2차원 바운딩 박스 계산기는 프리미티브의 x 좌표와 y 좌표를 이용하여 2차원 바운딩 박스를 계산한다. 예를 들어, 삼각형 타입의 프리미티브의 경우, 2차원 바운딩 박스 계산기는 프리미티브를 구성하는 3 개의 버텍스들의 x 좌표와 y 좌표의 최대 값과 최소 값을 이용하여, 2차원 바운딩 박스를 계산해낼 수 있다.
이와 다르게, 3차원 바운딩 박스 계산기(131)는 프리미티브의 x 좌표, y 좌표, z 좌표를 이용하여 3차원 바운딩 박스를 계산할 수 있다. 예를 들어, 삼각형 타입의 프리미티브의 경우, 3차원 바운딩 박스 계산기(131)는 프리미티브를 구성하는 3 개의 버텍스들의 x 좌표, y 좌표, z 좌표들의 최대 값과 최소 값을 이용하여, 3차원 바운딩 박스를 계산해낼 수 있다. 3차원 바운딩 박스는 프리미티브의 경계(boundary)를 완전하게 둘러싸는 형태로 계산될 수 있다. 예를 들어, 도 4에 도시된 제1 프리미티브(Pa)에서, 3 개의 버텍스들(V0, V1, V2)의 x 좌표들의 최대 값이 x0이며 최소 값이 x2이고, y 좌표들의 최대 값이 y2이며 최소 값이 y0이고, z 좌표들의 최대 값이 z1이며 최소 값이 z0라고 가정하자. 이 경우, 3차원 바운딩 박스 계산기(131)는 각 좌표들의 최대 값과 최소 값으로 구성되는 Pmax(x0, y2, z1), Pmin(x2, y0, z0)의 점들을 계산할 수 있다. 그리고, 상기 Pmax, Pmin의 점들에 의해 제1 바운딩 박스(Ba)가 정의될 수 있다.
타일링 유닛(130)은 제1 바운딩 박스(Ba)를 정의하는 z 좌표 중 최대 값과 최소 값을 각각 제1 프리미티브(Pa)의 최대 깊이 값과 최소 깊이 값으로 계산해낼 수 있다. 그리고, 제1 바운딩 박스(Ba)를 정의하는 x 좌표와 y 좌표들의 최대 값과 최소 값은 제1 프리미티브(Pa)를 타일 비닝하기 위해 사용될 수 있다.
예를 들어, 도 5의 4x4 타일에서, 타일링 유닛(130)은 제1 바운딩 박스(Ba)의 x 좌표와 y 좌표들을 이용하여 제1 프리미티브(Pa)를 타일 비닝할 수 있다. 도 5는 2차원 스크린에 투영된 프리미티브와 3차원 바운딩 박스를 도시한 것이다. 본 발명의 실시예에서는 설명의 편의를 위하여, 2차원 스크린을 4x4 타일로 분할하였으나, 본 발명이 이에 한정되는 것은 아니다. 타일링 유닛(130)은 제1 바운딩 박스(Ba)의 x 좌표와 y 좌표들의 최대 값(xa_max, ya_max)과 최소 값(xa_min, ya_min)을 이용하여, 제1 프리미티브(Pa)가 복수의 타일, 예를 들어 제n 타일(Tn)을 터치하는 것으로 판단하고, 제n 타일(Tn)의 프리미티브 리스트에 제1 프리미티브(Pa)를 할당할 수 있다. xa_max와 xa_min은 각각 도 4의 x0과 x2에 대응되고, ya_max와 ya_min은 각각 도 4의 y2와 y0에 대응될 수 있다. 이어서, 동일한 방법으로, 타일링 유닛(130)은 제2 프리미티브(Pb)와 제3 프리미티브(Pc)가 제n 타일(Tn)을 터치하는 것으로 판단할 수 있다. 그리고, 타일링 유닛(130)은 제n 타일(Tn)의 프리미티브 리스트에 제2 프리미티브(Pb) 및 제3 프리미티브(Pc)를 할당할 수 있다.
제1 조기 깊이 테스터(132)는 타일별로 프리미티브 레벨의 제1 조기 깊이 테스트를 수행할 수 있다. 제1 조기 깊이 테스트는 해당 타일을 터치하는 프리미티브들의 가시성(visibility)을 대략적으로(approximatively) 판단하고, 이미지 프레임의 해당 타일에서 다른 프리미티브에 의해 완전히 가려져서 보이지 않는 프리미티브의 데이터를 폐기(discard)하는 것이다. 제1 조기 깊이 테스터(132)는 단일 프리미티브를 입력받고, 단일 프리미티브에 대하여 제1 조기 깊이 테스트를 수행도록 구성된다(one primitive at a time).
예를 들어, 타일은 깊이 값을 속성으로 더 포함할 수 있으나, 이에 한정되는 것은 아니다. 타일의 최대 깊이 값과 최소 깊이 값에는 각각 대표 프리미티브의 최대 깊이 값과 최소 깊이 값이 할당될 수 있다. 대표 프리미티브는 해당 타일을 터치하는 복수의 프리미티브들 중에서 결정될 수 있다. 타일별 최근접(closest) 프리미티브, 최원접(farthest) 프리미티브 또는 기타 프리미티브가 대표 프리미티브로 결정될 수 있다. 투명한 프리미티브가 대표 프리미티브로 결정될 수도 있다.
최근접 프리미티브는 해당 타일을 터치하는 프리미티브들 중 카메라로부터 가장 가깝게 위치한 프리미티브를 나타내고, 최원접 프리미티브는 해당 타일을 터치하는 프리미티브들 중 카메라로부터 가장 멀리 위치한 프리미티브를 나타낼 수 있다. 프리미티브의 깊이 값은 카메라로부터의 거리를 나타낼 수 있다. 즉, 깊이 값이 가장 작은 프리미티브(z 좌표가 반전되는 경우, 깊이 값이 가장 큰 프리미티브)가 카메라와 가장 가깝게 위치하고, 깊이 값이 가장 큰 프리미티브(z 좌표가 반전되는 경우, 깊이 값이 작은 프리미티브)가 카메라로부터 가장 멀리 위치할 수 있다. 제1 조기 깊이 테스터(132)는 각 프리미티브의 최소 깊이 값 또는 최대 깊이 값을 이용하여 최근접 프리미티브와 최원접 프리미티브를 결정할 수 있다. 또는, 제1 조기 깊이 테스터(132)는 최소 깊이 값 및 최대 깊이 값을 이용하여 최근접 프리미티브와 최원접 프리미티브를 결정할 수도 있다.
제1 조기 깊이 테스터(132)는 프리미티브의 최대 깊이 값과 최소 깊이 값을 이용하여, 프리미티브의 가시성을 대략적으로(approximatively) 판단할 수 있다. 제1 조기 깊이 테스터(132)는 타일의 깊이 값과 프리미티브의 깊이 값을 비교하여 프리미티브의 가시성을 판단할 수 있다. 예를 들어, 최근접(closest) 프리미티브가 대표 프리미티브로 결정된 경우, 제1 조기 깊이 테스터(132)는 타일의 최대 깊이 값보다 해당 프리미티브의 최소 깊이 값이 더 큰 경우, 해당 프리미티브를 최근접 프리미티브에 의해 가려지는 비가시적(invisible) 프리미티브로 판단할 수 있다.. 제1 조기 깊이 테스터(132)는 타일의 최소 깊이 값보다 현재 그리고자 하는 프리미티브의 최소 깊이 값이 더 작은 경우, 해당 프리미티브를 새로운 대표 프리미티브로 업데이트하고, 해당 프리미티브의 깊이 값을 타일의 깊이 값으로 업데이트할 수 있다.
제1 조기 깊이 테스터는 대표 프리미티브가 터치하는 타일 부분을 나타내는 커버리지 마스크와, 현재 그리고자 하는 프리미티브가 터치하는 타일 부분을 나타내는 커버리지 마스크를 이용하여, 제1 조기 깊이 테스트를 수행할 수 있다. 커버리지 마스크를 기초로, 해당 타일을 터치하는 프리미티브가 없는 경우, 제1 조기 깊이 테스터(132)는 해당 타일에 대하여 제1 조기 깊이 테스트를 수행하지 않을 수 있다.
예를 들어, 도 6을 참조하면, 제n 타일(Tn)에 대한 제1 조기 깊이 테스트에서, 제3 프리미티브(Pc), 제2 프리미티브(Pb), 제1 프리미티브(Pa)의 렌더링 순서(rendering order)로 타일링 유닛(130)에 입력된다고 가정하자. 이 경우, 제1 조기 깊이 테스터(132)는 먼저 대표 프리미티브의 ID를 제3 프리미티브(Pc)의 ID로 할당할 수 있다. 이어서, 제n 타일(Tn)의 최소 깊이 값, 즉 제3 프리미티브(Pc)의 최소 깊이 값 zc_min보다 제2 프리미티브(Pb)의 최소 깊이 값 zb_min이 더 작으므로, 제1 조기 깊이 테스터(132)는 제2 프리미티브(Pb)를 새로운 대표 프리미티브로 업데이트할 수 있다. 그리고, 제n 타일(Tn)의 최대 깊이 값, 즉 제2 프리미티브(Pb)의 최대 깊이 값 zb_max보다 제3 프리미티브(Pc)의 최소 깊이 값(zc_min)이 더 크므로, 제1 조기 깊이 테스터(132)는 제n 타일(Tn)의 영역에서 제3 프리미티브(Pc)가 제2 프리미티브(Pb)에 의해 가려지는 것으로 판단할 수 있다. 이어서, 제n 타일(Tn)의 최소 깊이 값, 즉 제2 프리미티브(Pb)의 최소 깊이 값 zb_min보다 제1 프리미티브(Pa)의 최소 깊이 값 za_min이 더 작으므로, 제1 조기 깊이 테스터(132)는 제1 프리미티브(Pa)를 다시 새로운 대표 프리미티브로 업데이트할 수 있다. 그리고, 제n 타일(Tn)의 최대 깊이 값, 즉 제1 프리미티브(Pa)의 최대 깊이 값 za_max보다 제2 프리미티브의 최소 깊이 값(zb_min) 이 더 크므로, 제1 조기 깊이 테스터(132)는 제n 타일(Tn)의 영역에서 제2 프리미티브(Pb)가 제1 프리미티브(Pa)에 의해 가려지는 것으로 판단할 수 있다.
프리미티브 리스트 생성기(133)는 타일별 프리미티브 리스트를 생성하여 메모리 장치(200)에 출력할 수 있다. 프리미티브 리스트는 해당 타일을 터치하는 복수의 프리미티브들의 ID, 대표 프리미티브의 ID 등을 속성으로 포함할 수 있으나, 이에 한정되는 것은 아니다. 제1 조기 깊이 테스트의 결과에 따라, 해당 타일에서 다른 프리미티브에 의해 가려지는 비가시적 프리미티브들은, 프리미티브 리스트에 포함되지 않을 수 있다. 예를 들어, 도 5 내지 도 6을 참조하여 설명한 제n 타일(Tn)의 경우, 프리미티브 리스트는 제1 프리미티브(Pa)의 ID만을 포함할 수 있다.
한편, 타일링 유닛(130)이 서브 타일 단위로 이미지 프레임을 관리하는 경우, 타일링 유닛(130)은 프리미티브가 어느 서브 타일들을 터치하는지 판단하거나, 서브 타일별로 대표 프리미티브를 결정할 수도 있다.
도 7은 도 2의 타일링 유닛에 의해서 제2 프리미티브가 제거되는 것을 개략적으로 설명하기 위한 도면이다.
도 7을 참조하면, 프리미티브 어셈블리 유닛(120)이 제1 내지 제3 프리미티브들(Pa, Pb, Pc)을 생성하여 출력하고, 타일링 유닛(130)은 제1 내지 제3 프리미티브들(Pa, Pb, Pc)을 입력받는다. 타일링 유닛(130)은 제1 내지 제3 프리미티브들(Pa, Pb, Pc)에 대하여 렌더링 순서에 따라 타일 비닝과 제1 조기 깊이 테스트를 수행하고, 수행 결과에 따라 타일별 프리미티브 리스트들을 생성하여 메모리 장치(200)에 출력한다. 도 5에 도시된 바와 같이, 제2 프리미티브(Pb)는 제1 프리미티브(Pa)에 의해 가려져서 가시성이 없으므로, 타일링 유닛(130)으로부터 출력되는 타일별 프리미티브 리스트들은 제1 프리미티브(Pa)와 제3 프리미티브(Pc)에만 관련되게 된다.
래스터라이저(140)는 프리미티브 리스트를 입력받고, 프리미티브 리스트에 포함되는 프리미티브들을 래스터화(rasterization)하여 출력하도록 구성된다. 도 8을 참조하면, 이러한 래스터라이저(140)는 시퀀서(141; sequencer), 프리미티브 리스트 리더(142; primitive list reader), 보간 유닛(143; interpolation unit), 제2 조기 깊이 테스터(144; second early depth tester)를 포함할 수 있다.
프리미티브 리스트 리더(142)는 메모리 장치(200)로부터 타일별 프리미티브 리스트를 리드(read)할 수 있다. 프리미티브 리스트 리더(142)는 메모리 장치(200)로부터 대표 프리미티브를 우선하여 입력받고, 나머지 프리미티브들을 렌더링 순서에 따라 입력받을 수 있다. 또는, 프리미티브 리스트 리더(142)는 메모리 장치(200)로부터 대표 프리미티브를 최후에 입력받고, 나머지 프리미티브들을 렌더링 순서에 따라 입력받을 수 있다.
이를 위해, 시퀀서(141)는 프리미티브들의 래스터화 스테이지에서 프리미티브들의 렌더링 순서를 제어할 수 있다. 시퀀서(141)는 프리미티브 리스트로부터 대표 프리미티브의 ID를 추출할 수 있다. 그리고, 시퀀서(141)는 대표 프리미티브의 ID를 참조하여, 프리미티브들의 렌더링 순서를 변경할 수 있다. 시퀀서(141)는 메모리 장치(200)로부터 대표 프리미티브의 ID에 대응되는 프리미티브를 우선하여 입력받고, 나머지 프리미티브들은 이전 스테이지에서 처리된 렌더링 순서에 따라 입력받을 수 있도록, 프리미티브 리스트 리더(142)를 제어할 수 있다.
이로써, 대표 프리미티브는 우선순위를 갖고, 나머지 프리미티브들보다 우선하여 래스터화될 수 있다. 그리고, 나머지 프리미티브들은 이전 스테이지에서 처리된 렌더링 순서에 따라 래스터화될 수 있다.
또는, 시퀀서(141)는 메모리 장치(200)로부터 대표 프리미티브의 ID에 대응되는 프리미티브를 최후에 입력받고, 나머지 프리미티브들은 이전 스테이지에서 처리된 렌더링 순서에 따라 입력받을 수 있도록, 프리미티브 리스트 리더(142)를 제어할 수 있다.
이로써, 나머지 프리미티브들은 이전 스테이지에서 처리된 렌더링 순서에 따라 래스터화되고, 대표 프리미티브는 최후에 래스터화될 수 있다.
도 9는 도 2의 래스터라이저의 프리미티브들의 렌더링 순서 변경 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 메모리 장치(200)에 저장된 제n 타일(Tn)의 프리미티브 리스트에서, 제1 프리미티브(Pa)와 제3 프리미티브(Pc)는 렌더링 순서에 따라 배열될 수 있다. 프리미티브 리스트는 큐(queue) 타입의 데이터 구조를 가질 수 있다. 종래의 그래픽스 파이프라인의 경우, 프리미티브들은 렌더링 순서에 따라 선입선출(First In First Out; FIFO) 방식으로 래스터화 스테이지에 전달되었다.
이와 다르게, 시퀀서(141)는 대표 프리미티브의 ID를 참조하여 프리미티브들의 렌더링 순서를 변경할 수 있다. 예를 들어, 최근접(closest) 프리미티브가 대표 프리미티브로 결정된 경우, 프리미티브 리스트 리더(142)는 먼저 최근접 프리미티브의 ID(closest primitive ID)가 가라키는 제1 프리미티브(Pa)를 우선하여 입력받아 보간 유닛(143)에 전달할 수 있다(S1). 이어서, 프리미티브 리스트 리더(142)는 본래의 렌더링 순서에 따라 제3 프리미티브(Pc)를 입력받아 보간 유닛(143)에 전달할 수 있다(S2). 프리미티브 리스트에 추가적인 프리미티브들이 더 배열된 경우에도 실질적으로 동일하게, 프리미티브 리스트 리더(142)는 본래의 렌더링 순서에 따라 선입선출 방식으로 나머지 프리미티브들을 보간 유닛(143)에 전달할 수 있다.
보간 유닛(143)은 프리미티브를 이용하여 프래그먼트(fragment)의 집합(set)을 생성할 수 있다. 프래그먼트는 프리미티브의 내부를 구성하는 3차원의 점(dot)들을 나타낼 수 있다. 각각의 프래그먼트는 이미지 프레임의 각각의 픽셀에 대응될 수 있다. 즉, 프래그먼트의 x 좌표와 y 좌표는 2차원 스크린의 픽셀-그리드(pixel-grid)에 얼라인될 수 있다. 보간 유닛(143)은 프리미티브를 구성하는 버텍스들의 값을 보간하여 프래그먼트들의 위치, 법선 벡터, 컬러 값 등을 결정할 수 있다. 예를 들어, 프래그먼트들의 위치 속성은, 버텍스들의 위치 속성과 실질적으로 동일하게, x 좌표, y 좌표, z 좌표들을 포함할 수 있다. 이 중 z 좌표는 프래그먼트의 깊이 값을 나타낼 수 있다. 보간 유닛(143)은 단일 프리미티브를 입력받고, 단일 프리미티브를 보간하여 프래그먼트들을 생성하도록 구성된다(one primitive at a time).
제2 조기 깊이 테스터(144)는 타일 별로 프래그먼트 레벨의 제2 조기 깊이 테스트를 수행할 수 있다. 제2 조기 깊이 테스트는 해당 타일의 내부에 속하는 프래그먼트들의 가시성(visibility)을 판단하고, 렌더링이 완료된 이미지 프레임에서 표시될 가시적 프래그먼트를 결정하고, 비가시적 프래그먼트의 데이터를 폐기하는 것이다. 제2 조기 깊이 테스터(144)는 단일 프리미티브의 프래그먼트들을 입력받고, 단일 프리미티브의 프래그먼트들에 대하여 제2 조기 깊이 테스트를 수행하도록 구성된다(one primitive at a time). 제2 조기 깊이 테스터(144)는 테스트의 결과에 따라, 해당 타일의 내부에 속하는 모든 프래그먼트들의 깊이 값을 결정할 수 있다. 제2 조기 깊이 테스터(144)는 상기 프래그먼트들의 최대 깊이 값과 최소 깊이 값을 결정할 수 있다.
제2 조기 깊이 테스터(144)는 프래그먼트의 깊이 값을 이용하여, 프래그먼트의 가시성을 판단할 수 있다. 제2 조기 깊이 테스터(144)는 타일의 깊이 값과 프래그먼트의 깊이 값을 비교하여 프래그먼트의 가시성을 판단할 수 있다. 래스터화 스테이지에서 타일의 최대 깊이 값 및 최소 깊이 값에는, 타일링 스테이지에서 타일의 최대 깊이 값 및 최소 깊이 값과 달리, 해당 타일의 내부에 속하는 프래그먼트들의 깊이 값 중 각각 최대 깊이 값 및 최소 깊이 값이 할당될 수 있다. 예를 들어, 제2 조기 깊이 테스터(144)는 타일의 최대 깊이 값보다 현재 그리고자 하는 프래그먼트의 깊이 값이 더 큰 경우, 해당 프래그먼트를 비가시적 프래그먼트로 판단할 수 있다. 또는,제2 조기 깊이 테스터(144)는 동일 위치에 이미 그려진 프래그먼트의 깊이 값과 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 현재 그리고자 하는 프래그먼트의 가시성을 판단할 수도 있다. 제2 조기 깊이 테스터(144)는 동일 위치에 이미 그려진 프래그먼트의 깊이 값보다 현재 그리고자 하는 프래그먼트의 깊이 값이 더 큰 경우, 해당 프래그먼트를 비가시적 프래그먼트로 판단할 수 있다.
예를 들어, 도 9를 참조하여 설명한 바와 같이 렌더링 순서가 변경되어, 제2 조기 깊이 테스트에서는, 제1 프리미티브(Pa), 제3 프리미티브(Pc)의 렌더링 순서로 제2 조기 깊이 테스트 유닛에 입력된다고 가정하자. 이 경우, 제2 조기 깊이 테스터(144)는 제n 타일(Tn)에 대해서 제1 프리미티브(Pa)를 구성하는 프래그먼트들의 가시성을 판단하고, 제n 타일(Tn)의 내부에 속하면서 제1 프리미티브(Pa)를 구성하는 프래그먼트들의 깊이 값 중 최대 깊이 값과 최소 깊이 값을 제n 타일(Tn)의 최대 깊이 값과 최소 깊이 값으로 할당할 수 있다. 이어서, 제2 조기 깊이 테스터(144)는 제n 타일(Tn)에 대해서 제3 프리미티브(Pc)를 구성하는 프래그먼트들의 가시성을 판단할 수 있다. 제3 프리미티브(Pc)를 구성하는 프래그먼트들의 깊이 값은 제n 타일(Tn)의 최대 깊이 값보다 더 크므로, 제2 조기 깊이 테스터(144)는 제n 타일(Tn)에 대해서 제3 프리미티브(Pc)를 구성하는 모든 프래그먼트들을 비가시적 프래그먼트로 판단할 수 있다.
래스터 라이저는 클립 스페이스의 버텍스를 스크린 스페이스(screen)의 버텍스로 변환할 수도 있다.
도 10은 도 2의 래스터라이저에 의해서 프리미티브들의 렌더링 순서가 변경되고, 제3 프리미티브가 제거되는 것을 개략적으로 설명하기 위한 도면이다.
도 10을 참조하면, 래스터라이저(140)가 메모리 장치(200)로부터 제1 프리미티브(Pa)와 제3 프리미티브(Pc)에 관련되는 타일별 프리미티브 리스트를 입력받는다. 렌더링 순서가 변경되어, 이전 스테이지와 달리, 타일별로 제1 프리미티브(Pa)가 우선하여 입력되고, 제3 프리미티브(Pc)가 이어서 입력된다.
래스터라이저(140)는 제1 프리미티브(Pa)와 제3 프리미티브(Pc)를 구성하는 프래그먼트들에 대하여 제2 조기 깊이 테스트를 수행하고, 수행 결과에 따라 가시적인 프래그먼트들만을 프래그먼트 프로세싱 유닛(150)에 출력한다. 도 10에 도시된 바와 같이, 제n 타일(Tn)에 대하여 제3 프리미티브(Pc)를 구성하는 모든 프래그먼트들은 제1 프리미티브(Pa)를 구성하는 프래그먼트들에 의해 가려져서 가시성이 없으므로, 래스터라이저(140)로부터 출력되는 프래그먼트들은 제1 프리미티브(Pa)에만 관련되게 된다.
프래그먼트 프로세싱 유닛(150)은 프래그먼트들을 입력받고, 입력받은 프래그먼트들에 대하여 은면 제거(hidden surface elimination), 조명(lighting), 표면 셰이딩(surface shading), 텍스쳐 매핑(texture mapping) 등을 처리할 수 있다. 프래그먼트 프로세싱 유닛(150)은 렌더링을 완료한 이미지 프레임을 디스플레이 장치(display)에 출력할 수 있다.
이하에서는 상술한 그래픽 프로세싱 유닛(100)의 그래픽스 파이프라인의 세부 구성을 이용하여, 타일 기반 렌더링을 수행하는 방법을 설명하기로 한다. 도 1 내지 도 10을 참조하여 설명한 바와 중복되는 내용에 관하여는, 상세한 설명은 생략하기로 한다.
도 11은 본 발명의 일 실시예에 따른 타일 기반 렌더링 방법을 설명하기 위한 흐름도이다.
도 11을 참조하면, 먼저 센트럴 프로세싱 유닛으로부터 버텍스를 입력받고, 입력받은 버텍스를 변환하여 출력한다(S310).
이어서, 각각 적어도 하나의 버텍스들로 구성되는 복수의 프리미티브를 생성한다(S320).
이어서, 복수의 프리미티브들을 렌더링 순서에 따라 타일링한다(S330). 구체적으로, 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝하고, 제1 조기 깊이 테스트를 수행하여, 타일별 프리미티브 리스트를 생성한다. 도 12를 참조하여, 타일링 스텝의 세부 과정을 보다 상세하게 설명하기로 한다.
도 12를 참조하면, 먼저 복수의 프리미티브들의 경계를 이루는 각각의 3차원 바운딩 박스를 계산한다(S331).
이어서, 각각의 3차원 바운딩 박스를 정의하는 x 좌표, y 좌표를 이용하여, 복수의 프리미티브들을 렌더링 순서에 따라 타일 비닝한다(S332). 이 때, 각각의 3차원 바운딩 박스를 정의하는 x 좌표와 y 좌표들의 최대 값과 최소 값을 이용하여, 복수의 프리미티브들을 타일 비닝할 수 있다.
이어서, 제1 조기 깊이 테스트를 수행하여, 타일별로 해당 타일을 터치하는 프리미티브들의 가시성을 판단한다(S333). 이 때, 각각의 3차원 바운딩 박스를 정의하는 z 좌표를 이용하여, 복수의 프리미티브들 각각의 최대 깊이 값과 최소 깊이 값을 계산한다. 각각의 3차원 바운딩 박스를 정의하는 z 좌표의 최대 값과 최소 값을 복수의 프리미티브들 각각의 최대 깊이 값과 최소 깊이 값으로 계산할 수 있다. 복수의 프리미티브들 각각의 최대 깊이 값 및/또는 최소 깊이 값을 이용하여, 타일별로 대표 프리미티브를 결정할 수 있다. 예를 들어, 최근접(closest) 프리미티브를 대표 프리미티브로 결정한 경우, 해당 타일을 터치하는 프리미티브들 중 최소 깊이 값이 타일의 최대 깊이 값보다 더 큰 프리미티브를 비가시적 프리미티브로 판단할 수 있다. 그리고, 비가시적 프리미티브의 데이터는 폐기할 수 있다.
이어서, 타일별 프리미티브 리스트를 생성할 수 있다(S334). 이 때, 타일별 프리미티브 리스트는 해당 타일을 터치하는 복수의 프리미티브들의 ID와 대표 프리미티브의 ID를 속성으로 포함할 수 있다. 프리미티브 리스트를 메모리 장치에 출력하여 저장할 수 있다.
이어서, 다시 도 11을 참조하면, 타일별로 해당 타일을 터치하는 프리미티브들을 래스터화한다(S340). 이 때, 대표 프리미티브를 나머지 프리미티브보다 우선하여 래스터화하거나 최후에 래스터화하고, 나머지 프리미티브는 렌더링 순서에 따라 래스터화할 수 있다. 도 13을 참조하여, 래스터화 스텝의 세부 과정을 보다 상세하게 설명하기로 한다.
도 13을 참조하면, 먼저 프리미티브 리스트를 리드하고, 메모리 장치로부터 프리미티브 리스트를 입력받을 수 있다(S341) 이 때, 대표 프리미티브의 ID를 참조하여, 대표 프리미티브를 나머지 프리미티브보다 우선하여 입력받고, 나머지 프리미티브는 렌더링 순서에 따라 입력받을 수 있다. 또는, 대표 프리미티브를 최후에 입력받고, 나머지 프리미티브는 렌더링 순서에 따라 입력받을 수 있다. 즉, 프리미티브들의 렌더링 순서를 변경할 수 있다.
이어서, 프리미티브를 구성하는 버텍스들의 값을 보간하여, 해당 타일을 터치하는 복수의 프리미티브들의 내부룰 구성하는 프래그먼트의 집합을 생성한다(S342).
이어서, 제2 조기 깊이 테스트를 수행하여, 해당 타일의 내부에 속하는 프래그먼트들의 가시성을 판단한다(S343). 그리고, 비가시적 프래그먼트의 데이터는 폐기할 수 있다.
이어서, 다시 도 11을 참조하면, 프래그먼트들에 대하여 은면 제거, 조명, 표면 셰이딩, 텍스쳐 매핑 등을 처리하여 렌더링을 완료할 수 있다(S350).
이상에서 설명한 바와 같이, 본 발명은 프리미티브 레벨의 조기 깊이 테스트와 프래그먼트 레벨의 조기 깊이 테스트를 제공한다. 프리미티브 레벨의 조기 깊이 테스트는, 타일링 스테이지에서 모든 프리미티브에 대한 가시성을 판단한다. 비가시적 프리미티브의 데이터들은 타일링 스테이지에서 폐기될 수 있다. 이로써, 래스터화 스테이지로 전달되는 그래픽 데이터가 감소되고, 불필요한 연산과 메모리 대역폭을 감소시킬 수 있어, 그래픽스 파이프라인의 성능을 향상시킬 수 있다. 프리미티브 레벨의 조기 깊이 테스트의 결과는 대표 프리미티브의 ID로 제공된다. 래스터화 스테이지에서는 대표 프리미티브의 ID에 기초하여 가장 가까운 프리미티브가 최초에 래스터화되거나, 가장 먼 프리미티브 또는 투명한 프리미티브가 최후에 래스터화될 수 있다. 그리고, 나머지 프리미티브들은 원래의 렌더링 순서에 따라 래스터화될 수 있을 것이다. 이에 의하면, 프리미티브들이 전후방(front-to-back) 순서로 배열된 효과를 얻을 수 있다. 이로써, 렌더링이 완료된 이미지 프레임에서 가시적 프리미티브들이 먼저 렌더링되므로, 프래그먼트 레벨의 조기 깊이 테스트의 연산량을 감소시켜, 조기 깊이 테스트의 효율을 향상시킬 수 있다.
도 14는 본 발명의 일 실시예에 따른 그래픽 프로세싱 유닛을 포함하는 컴퓨팅 시스템의 응용예를 설명하기 위한 블록도이다.
도 14를 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 응용예(2)는 센트럴 프로세싱 유닛(1000; CPU), 시스템 메모리(2000; system memory), 서브 그래픽 시스템(3000), 디스플레이 장치(4000)를 포함한다.
센트럴 프로세싱 유닛(1000)은 애플리케이션을 구동하여, 메쉬(mesh)를 생성하도록 구성된다. 메쉬는 오브젝트(object)의 표면을 묘사할 수 있다. 메쉬는 복수의 프리미티브들로 구성될 수 있고, 프리미티브는 적어도 하나의 버텍스들로 구성될 수 있다.
시스템 메모리(2000)는 데이터를 저장하도록 구성된다. 시스템 메모리(2000)는 센트럴 프로세싱 유닛(1000)에 의해 처리되는 데이터를 저장할 수 있다. 시스템 메모리(2000)는 센트럴 프로세싱 유닛(1000)의 동작 메모리로서 역할을 수행할 수 있다. 시스템 메모리(2000)는 DDR SDRAM(Double Data Rate Static DRAM), SDR SDRAM(Single Data Rate SDRAM)과 같은 하나 이상의 휘발성 메모리 장치 및/또는 EEPROM(Electrical Erasable Programmable ROM), 플래시 메모리(flash memory)과 같은 하나 이상의 비휘발성 메모리 장치를 포함할 수 있다.
그래픽 서브 시스템(3000)은 그래픽 프로세싱 유닛(3100; GPU), 그래픽 메모리(3200; graphic memory), 디스플레이 컨트롤러(3300; display controller), 그래픽 인터페이스(3400; graphic interface), 그래픽 메모리 컨트롤러(3500; graphic memory controller)를 포함한다.
그래픽 프로세싱 유닛(3100)은 도 1을 참조하여 설명한 그래픽 프로세싱 유닛(100)과 실질적으로 동일하게 구성될 수 있다. 그래픽 프로세싱 유닛(3100)은 상기 메쉬를 구성하는 복수의 프리미티브들을 이용하여 타일 기반 렌더링을 수행할 수 있다. 그래픽 프로세싱 유닛(3100)은 센트럴 프로세싱 유닛(1000)으로부터 메쉬를 구성하는 버텍스들의 데이터를 입력받을 수 있다. 그래픽 프로세싱 유닛(3100)은 적어도 하나의 버텍스들로 구성되는 프리미티브를 조립하고, 조립된 프리미티브들을 이용하여 렌더링을 수행할 수 있다.
그래픽 메모리(3200)는 그래픽 프로세싱 유닛(3100)에 의해 처리되는 그래픽 데이터를 저장하거나, 그래픽 프로세싱 유닛(3100)에 제공되는 그래픽 데이터를 저장할 수 있다. 또는, 그래픽 메모리(3200)는 그래픽 프로세싱 유닛(3100)의 동작 메모리로서 역할을 수행할 수 있다.
디스플레이 컨트롤러(3300)는 렌더링된 이미지 프레임이 디스플레이될 수 있도록, 디스플레이 장치(4000)를 제어한다.
그래픽 인터페이스(3400)는 센트럴 프로세싱 유닛(1000)과 그래픽 프로세싱 유닛(3100) 사이를 인터페이싱하고, 그래픽 메모리 컨트롤러(3500)는 시스템 메모리(2000)와 그래픽 프로세싱 유닛(3100) 사이에서 메모리 액세스를 제공한다.
도 14에는 명확하게 도시하지 않았으나, 컴퓨팅 시스템(2)은 버튼, 터치 스크린, 마이크와 같은 하나 이상의 입력 장치, 및/또는 스피커와 같은 하나 이상의 출력 장치를 더 포함할 수 있다. 또한, 컴퓨팅 시스템(2)은 유선 또는 무선으로 외부 장치와 데이터를 교환하기 위한 인터페이스 장치를 더 포함할 수 있다. 인터페이스 장치는 예를 들어, 안테나 또는 유무선 트랜시버 등을 포함할 수 있다.
실시예에 따라, 컴퓨팅 시스템(2)은 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 데스크톱(Desktop), 노트북(Notebook), 태블릿(Tablet) 등과 같은 임의의 컴퓨팅 시스템일 수 있다.
본 발명의 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는, 프로세서에 의해 실행되는 하드웨어 모듈, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명의 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체에 상주할 수도 있다. 예시적인 기록 매체는 프로세서에 연결되며, 그 프로세서는 기록 매체로부터 정보를 독출할 수 있고 기록 매체에 정보를 기입할 수 있다. 다른 방법으로, 기록 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 기록 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 기록 매체는 사용자 단말기 내에 개별 구성 요소로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 그래픽 프로세싱 유닛
110: 버텍스 프로세싱 유닛
120: 프리미티브 어셈블리 유닛
130: 타일링 유닛
140: 래스터라이저
150: 프래그먼트 프로세싱 유닛
200: 메모리 장치

Claims (20)

  1. 이미지 프레임 내에서 복수의 타일들 중 제1 타일을 터치하는 복수의 프리미티브들을 식별하되, 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여 상기 복수의 프리미티브들 중 대표 프리미티브를 결정하고, 상기 대표 프리미티브의 깊이 값을 이용하여 상기 제1 타일에 대한 상기 복수의 프리미티브들 중 가시적 프리미티브들과 비가시적 프리미티브들을 결정하는 타일링 유닛; 및
    상기 제1 타일에 대한 상기 대표 프리미티브와 상기 가시적 프리미티브들을 래스터화(rasterize)하는 래스터라이저를 포함하되,
    상기 대표 프리미티브는 상기 가시적 프리미티브들보다 우선하여 레스터화되고, 상기 비가시적 프리미티브들은 레스터화되지 않고 상기 가시적 프리미티브들은 상기 가시적 프리미티브들의 랜더링 순서에 따라 레스터화되는, 그래픽스 프로세싱 유닛.
  2. 제1항에 있어서,
    상기 타일링 유닛은 타일별로 상기 제1 타일을 터치하는 복수의 프리미티브들의 가시성을 판단하는 제1 조기 깊이 테스터를 포함하고,
    상기 제1 조기 깊이 테스터는 상기 제1 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 대표 프리미티브의 깊이 값을 비교하여, 상기 제1 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기하는, 그래픽스 프로세싱 유닛.
  3. 제2항에 있어서,
    상기 제1 조기 깊이 테스터는 상기 제1 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 제1 타일 부분을 나타내는 커버리지 마스크와, 상기 대표 프리미티브가 터치하는 상기 제1 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 제1 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하는, 그래픽스 프로세싱 유닛.
  4. 제1항에 있어서,
    상기 래스터라이저는 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일별 프리미티브 리스트는 상기 제1 타일을 터치하는 복수의 프리미티브들의 ID와 상기 대표 프리미티브의 ID를 속성으로 포함하고,
    상기 래스터라이저는 상기 대표 프리미티브의 ID를 참조하여 상기 대표 프리미티브를 나머지 프리미티브보다 우선하여 래스터화하는, 그래픽스 프로세싱 유닛.
  5. 제4항에 있어서,
    상기 래스터라이저는 상기 메모리 장치로부터 상기 제1 타일을 터치하는 복수의 프리미티브들 중 상기 대표 프리미티브의 ID에 대응되는 프리미티브를 우선하여 입력받도록, 상기 제1 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 시퀀서를 포함하는, 그래픽스 프로세싱 유닛.
  6. 제1항에 있어서,
    상기 래스터라이저는 상기 제1 타일을 터치하는 복수의 프리미티브들의 내부를 구성하는 프래그먼트들을 생성하는 보간 유닛과,
    상기 제1 타일의 내부에 속하는 상기 프래그먼트들의 가시성을 판단하는 제2 조기 깊이 테스터를 포함하는, 그래픽스 프로세싱 유닛.
  7. 제6항에 있어서,
    상기 제2 조기 깊이 테스터는 상기 제1 타일의 깊이 값과, 상기 제1 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단하는, 그래픽스 프로세싱 유닛.
  8. 제6항에 있어서,
    상기 제2 조기 깊이 테스터는 동일 위치에 이미 그려진 프래그먼트의 깊이 값과, 상기 제1 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단하는, 그래픽스 프로세싱 유닛.
  9. 이미지 프레임 내에서 복수의 타일들 중 제1 타일을 터치하는 복수의 프리미티브들을 식별하되, 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여 상기 복수의 프리미티브들 중 대표 프리미티브를 결정하고, 상기 대표 프리미티브의 깊이 값을 이용하여 상기 제1 타일에 대한 상기 복수의 프리미티브들 중 가시적 프리미티브들과 비가시적 프리미티브들을 결정하는 타일링 유닛; 및
    상기 제1 타일에 대한 상기 대표 프리미티브와 상기 가시적 프리미티브들을 래스터화(rasterize)하는 래스터라이저를 포함하되,
    상기 가시적 프리미티브들은 상기 대표 프리미티브보다 우선하여 레스터화되고, 상기 비가시적 프리미티브들은 레스터화되지 않고 상기 가시적 프리미티브들은 상기 가시적 프리미티브들의 랜더링 순서에 따라 레스터화되는, 그래픽스 프로세싱 유닛.
  10. 제9항에 있어서,
    상기 타일링 유닛은 타일별로 상기 제1 타일을 터치하는 복수의 프리미티브들의 가시성을 판단하는 제1 조기 깊이 테스터를 포함하고,
    상기 제1 조기 깊이 테스터는 상기 제1 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 대표 프리미티브의 깊이 값을 비교하여, 상기 제1 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기하는, 그래픽스 프로세싱 유닛.
  11. 제10항에 있어서,
    상기 제1 조기 깊이 테스터는 상기 제1 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 제1 타일 부분을 나타내는 커버리지 마스크와, 상기 대표 프리미티브가 터치하는 상기 제1 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 제1 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하는, 그래픽스 프로세싱 유닛.
  12. 제9항에 있어서,
    상기 래스터라이저는 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 타일별 프리미티브 리스트는 상기 제1 타일을 터치하는 복수의 프리미티브들의 ID와 상기 대표 프리미티브의 ID를 속성으로 포함하고,
    상기 래스터라이저는 상기 대표 프리미티브의 ID를 참조하여 상기 대표 프리미티브를 최후에 래스터화하는, 그래픽스 프로세싱 유닛.
  13. 제12항에 있어서,
    상기 래스터라이저는 상기 메모리 장치로부터 상기 제1 타일을 터치하는 복수의 프리미티브들 중 상기 대표 프리미티브의 ID에 대응되는 프리미티브를 최후에 입력받도록, 상기 제1 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 시퀀서를 포함하는, 그래픽스 프로세싱 유닛.
  14. 제9항에 있어서,
    상기 래스터라이저는 상기 제1 타일을 터치하는 복수의 프리미티브들의 내부를 구성하는 프래그먼트들을 생성하는 보간 유닛과,
    상기 제1 타일의 내부에 속하는 상기 프래그먼트들의 가시성을 판단하는 제2 조기 깊이 테스터를 포함하는, 그래픽스 프로세싱 유닛.
  15. 제14항에 있어서,
    상기 제2 조기 깊이 테스터는 상기 제1 타일의 깊이 값과, 상기 제1 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단하는, 그래픽스 프로세싱 유닛.
  16. 제14항에 있어서,
    상기 제2 조기 깊이 테스터는 동일 위치에 이미 그려진 프래그먼트의 깊이 값과, 상기 제1 타일의 내부에 속하는 상기 프래그먼트들 중 현재 그리고자 하는 프래그먼트의 깊이 값을 비교하여, 상기 프래그먼트들의 가시성을 판단하는, 그래픽스 프로세싱 유닛.
  17. 이미지 프레임 내에서 복수의 타일들 중 상응하는 타일을 터치하는 복수의 프리미티브들을 식별하되, 상기 복수의 프리미티브들 각각의 깊이 값을 이용하여 상기 복수의 프리미티브들 중 대표 프리미티브를 결정하고, 상기 대표 프리미티브의 깊이 값을 이용하여 해당하는 타일에 대한 상기 복수의 프리미티브들의 가시적 프리미티브들을 결정하는 상기 복수의 프리미티브들 상의 제1 깊이 테스트를 수행하는 타일링 유닛; 및
    상기 대표 프리미티브와 상기 가시적 프리미티브들 각각의 내부를 구성하는 복수의 프래그먼트들을 생성하여, 상기 대표 프리미티브와 상기 가시적 프리미티브들에 대해 래스터화하고, 상기 복수의 프래그먼트들 상에 제2 조기 깊이 테스트를 수행하고, 상기 복수의 프래그먼트들 각각의 가시성을 판단하는 래스터라이저를 포함하되,
    상기 대표 프리미티브와 상기 가시적 프리미티브들은 상기 타일링 유닛에 의해 랜더링 순서와 다르게 래스터화되며,
    상기 대표 프리미티브는 상기 상응하는 타일을 터치하는 상기 복수의 프리미티브들 중 카메라에 대한 근접도에 기반하여 결정되며, 상기 대표 프리미티브는 상기 가시적 프리미티브들 전 또는 후에 렌더링되는 그래픽스 프로세싱 유닛.
  18. 제17항에 있어서,
    상기 타일링 유닛은 상기 상응하는 타일을 터치하는 복수의 프리미티브들의 각각의 깊이 값과 상기 대표 프리미티브의 깊이 값을 비교하여, 상기 상응하는 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하고, 비가시적 프리미티브의 데이터를 폐기하는, 그래픽스 프로세싱 유닛.
  19. 제18항에 있어서,
    상기 타일링 유닛은 상기 상응하는 타일을 터치하는 복수의 프리미티브들 각각이 터치하는 상기 상응하는 타일 부분을 나타내는 커버리지 마스크와, 상기 대표 프리미티브가 터치하는 상기 상응하는 타일 부분을 나타내는 커버리지 마스크를 이용하여, 상기 상응하는 타일을 터치하는 복수의 프리미티브들 각각의 가시성을 판단하는, 그래픽스 프로세싱 유닛.
  20. 제17항에 있어서,
    상기 래스터라이저는 메모리 장치로부터 타일별 프리미티브 리스트를 입력받되, 상기 상응하는 타일을 터치하는 복수의 프리미티브들 중 상기 대표 프리미티브를 우선하여 입력받거나 최후에 입력받도록, 상기 상응하는 타일을 터치하는 복수의 프리미티브들의 렌더링 순서를 제어하는 시퀀서를 포함하는, 그래픽스 프로세싱 유닛.
KR1020130059215A 2013-05-24 2013-05-24 그래픽스 프로세싱 유닛 KR102116708B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130059215A KR102116708B1 (ko) 2013-05-24 2013-05-24 그래픽스 프로세싱 유닛
US14/255,171 US9741158B2 (en) 2013-05-24 2014-04-17 Graphic processing unit and tile-based rendering method
DE102014106780.0A DE102014106780A1 (de) 2013-05-24 2014-05-14 Graphikverarbeitungseinheit und Kachel-basiertes Renderingverfahren
TW103117828A TWI619089B (zh) 2013-05-24 2014-05-22 圖形處理單元以及分塊渲染方法
CN201410221690.3A CN104183005B (zh) 2013-05-24 2014-05-23 图形处理单元和基于图块的渲染方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130059215A KR102116708B1 (ko) 2013-05-24 2013-05-24 그래픽스 프로세싱 유닛

Publications (2)

Publication Number Publication Date
KR20140137935A KR20140137935A (ko) 2014-12-03
KR102116708B1 true KR102116708B1 (ko) 2020-05-29

Family

ID=51935090

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130059215A KR102116708B1 (ko) 2013-05-24 2013-05-24 그래픽스 프로세싱 유닛

Country Status (5)

Country Link
US (1) US9741158B2 (ko)
KR (1) KR102116708B1 (ko)
CN (1) CN104183005B (ko)
DE (1) DE102014106780A1 (ko)
TW (1) TWI619089B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022146928A1 (en) * 2020-12-30 2022-07-07 Advanced Micro Devices, Inc. Systems and methods for distributed rendering using two-level binning

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957094B2 (en) * 2013-03-29 2021-03-23 Advanced Micro Devices, Inc. Hybrid render with preferred primitive batch binning and sorting
US10169906B2 (en) 2013-03-29 2019-01-01 Advanced Micro Devices, Inc. Hybrid render with deferred primitive batch binning
US10204391B2 (en) * 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
US9940686B2 (en) * 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
GB2524120B (en) * 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
US9361697B1 (en) * 2014-12-23 2016-06-07 Mediatek Inc. Graphic processing circuit with binning rendering and pre-depth processing method thereof
GB2534225B (en) * 2015-01-19 2017-02-22 Imagination Tech Ltd Rendering views of a scene in a graphics processing unit
GB2534567B (en) 2015-01-27 2017-04-19 Imagination Tech Ltd Processing primitives which have unresolved fragments in a graphics processing system
KR102354989B1 (ko) * 2015-04-14 2022-01-24 삼성전자주식회사 경로 렌더링을 위한 타일 비닝을 수행하는 방법 및 장치.
KR102341267B1 (ko) * 2015-05-04 2021-12-20 삼성전자주식회사 양안 시차 영상에 대한 렌더링 방법 및 장치
EP3214599B1 (en) * 2015-10-21 2018-12-19 MediaTek Inc. A graphics accelerator with direct memoryless interface to the display
GB2546810B (en) * 2016-02-01 2019-10-16 Imagination Tech Ltd Sparse rendering
US10096147B2 (en) * 2016-03-10 2018-10-09 Qualcomm Incorporated Visibility information modification
US20180082464A1 (en) * 2016-09-16 2018-03-22 Tomas G. Akenine-Moller Apparatus and method for an efficient 3d graphics pipeline
KR102637736B1 (ko) * 2017-01-04 2024-02-19 삼성전자주식회사 그래픽스 처리 방법 및 시스템
US10706612B2 (en) * 2017-04-01 2020-07-07 Intel Corporation Tile-based immediate mode rendering with early hierarchical-z
CN107481307B (zh) * 2017-07-05 2023-04-07 国网山东省电力公司泰安供电公司 一种快速渲染三维场景的方法
CN108447015A (zh) * 2018-03-27 2018-08-24 长沙景嘉微电子股份有限公司 Gpu中一种实现用户自定义裁剪功能的装置和方法
CN108510430A (zh) * 2018-03-27 2018-09-07 长沙景嘉微电子股份有限公司 基于分块渲染的gpu中一种资源共享的实现方法
GB2572603B (en) * 2018-04-05 2022-03-23 Imagination Tech Ltd Edge and depth processing hardware
CN108479067B (zh) * 2018-04-12 2019-09-20 网易(杭州)网络有限公司 游戏画面的渲染方法和装置
CN108765541B (zh) * 2018-05-23 2020-11-20 歌尔光学科技有限公司 一种3d场景对象显示方法、装置、设备及存储介质
US11010954B2 (en) * 2018-12-11 2021-05-18 Samsung Electronics Co., Ltd. Efficient redundant coverage discard mechanism to reduce pixel shader work in a tile-based graphics rendering pipeline
CN111353928A (zh) * 2018-12-21 2020-06-30 畅想科技有限公司 用于图形处理***的经过变换的几何结构数据高速缓存
CN112116519B (zh) * 2019-06-19 2022-12-27 畅想科技有限公司 图形处理***中的粗略深度测试
US11120522B2 (en) 2020-02-03 2021-09-14 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by subdividing geometry
US11321800B2 (en) 2020-02-03 2022-05-03 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by region testing while rendering
US11263718B2 (en) 2020-02-03 2022-03-01 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against in interleaved screen regions before rendering
US11514549B2 (en) 2020-02-03 2022-11-29 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by generating information in one rendering phase for use in another rendering phase
US11170461B2 (en) 2020-02-03 2021-11-09 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering
US11508110B2 (en) 2020-02-03 2022-11-22 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by performing geometry analysis before rendering
CN115335866A (zh) * 2020-02-03 2022-11-11 索尼互动娱乐股份有限公司 在渲染时通过几何图形分析进行几何图形的高效多gpu渲染的***和方法
US11080814B1 (en) 2020-02-03 2021-08-03 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using prior frame information
GB2591802B (en) 2020-02-07 2022-03-23 Imagination Tech Ltd Graphics processing method and system for rendering items of geometry based on their size
GB2591803B (en) 2020-02-07 2022-02-23 Imagination Tech Ltd Graphics processing method and system for rendering items of geometry based on their size
WO2022150347A1 (en) * 2021-01-05 2022-07-14 Google Llc Subsurface display interfaces and associated systems and methods
US20220319091A1 (en) * 2021-03-31 2022-10-06 Advanced Micro Devices, Inc. Post-depth visibility collection with two level binning
CN116957898A (zh) * 2022-04-19 2023-10-27 象帝先计算技术(重庆)有限公司 图形处理器、***、方法、电子装置及电子设备
CN116957900A (zh) * 2022-04-20 2023-10-27 象帝先计算技术(重庆)有限公司 图形处理器、***、电子装置、设备及图形处理方法
CN115660935B (zh) * 2022-10-08 2024-03-01 芯动微电子科技(珠海)有限公司 一种分块渲染模式图形处理方法及***
CN115841433B (zh) * 2023-02-20 2023-05-09 摩尔线程智能科技(北京)有限责任公司 基于图块的光栅化方法和设备、图像渲染方法和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209065A1 (en) * 2004-12-08 2006-09-21 Xgi Technology Inc. (Cayman) Method and apparatus for occlusion culling of graphic objects
US20090051687A1 (en) * 2005-10-25 2009-02-26 Mitsubishi Electric Corporation Image processing device

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6362818B1 (en) * 1998-01-07 2002-03-26 Evans & Sutherland Computer Corporation System and method for reducing the rendering load for high depth complexity scenes on a computer graphics display
US6052125A (en) * 1998-01-07 2000-04-18 Evans & Sutherland Computer Corporation Method for reducing the rendering load for high depth complexity scenes on a computer graphics display
US7068272B1 (en) 2000-05-31 2006-06-27 Nvidia Corporation System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline
US6525726B1 (en) * 1999-11-02 2003-02-25 Intel Corporation Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture
GB2378108B (en) * 2001-07-24 2005-08-17 Imagination Tech Ltd Three dimensional graphics system
GB2406184B (en) * 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
KR100546383B1 (ko) 2003-09-29 2006-01-26 삼성전자주식회사 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법
US7583263B2 (en) * 2003-12-09 2009-09-01 Siemens Product Lifecycle Management Software Inc. System and method for transparency rendering
US7978194B2 (en) * 2004-03-02 2011-07-12 Ati Technologies Ulc Method and apparatus for hierarchical Z buffering and stenciling
US20050195198A1 (en) 2004-03-03 2005-09-08 Anderson Michael H. Graphics pipeline and method having early depth detection
US7505036B1 (en) * 2004-07-30 2009-03-17 3Dlabs Inc. Ltd. Order-independent 3D graphics binning architecture
KR100714672B1 (ko) * 2005-11-09 2007-05-07 삼성전자주식회사 스플렛을 이용한 깊이 기반의 영상 렌더링 방법 및 그방법을 채용한 시스템
US20070146366A1 (en) * 2005-12-23 2007-06-28 Intel Corporation System and method for rasterization order independent line stipple
US20070268289A1 (en) 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
JP4116648B2 (ja) 2006-05-22 2008-07-09 株式会社ソニー・コンピュータエンタテインメント オクルージョンカリング方法および描画処理装置
US7952588B2 (en) * 2006-08-03 2011-05-31 Qualcomm Incorporated Graphics processing unit with extended vertex cache
US7804499B1 (en) * 2006-08-28 2010-09-28 Nvidia Corporation Variable performance rasterization with constant effort
KR100793990B1 (ko) 2006-09-18 2008-01-16 삼성전자주식회사 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템
US8243069B1 (en) 2006-11-03 2012-08-14 Nvidia Corporation Late Z testing for multiple render targets
GB2452731B (en) * 2007-09-12 2010-01-13 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
US8379019B2 (en) * 2007-12-26 2013-02-19 Advanced Micro Devices, Inc. Fast triangle reordering for vertex locality and reduced overdraw
GB0810311D0 (en) * 2008-06-05 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US9183608B2 (en) * 2009-12-23 2015-11-10 Intel Corporation Image processing techniques for tile-based rasterization
US8854384B2 (en) 2010-04-06 2014-10-07 Broadcom Corporation Method and system for processing pixels utilizing scoreboarding
JP2012038132A (ja) 2010-08-09 2012-02-23 Mitsubishi Electric Corp カバレージ表示装置、カバレージ表示システムおよびカバレージ表示プログラム
KR101719485B1 (ko) 2010-09-20 2017-03-27 삼성전자주식회사 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법
US8593475B2 (en) * 2010-10-13 2013-11-26 Qualcomm Incorporated Systems and methods for dynamic procedural texture generation management
KR101782044B1 (ko) 2011-02-22 2017-09-26 삼성전자주식회사 그래픽 프로세서 및 조기 가시성 테스트 방법
US8643666B2 (en) * 2011-02-25 2014-02-04 Adobe Systems Incorporated Stenciled layer peeling graphics processing
CN102208112B (zh) * 2011-05-25 2015-08-05 威盛电子股份有限公司 景深消隐方法、三维图形处理方法及其装置
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
KR20130059215A (ko) 2011-11-28 2013-06-05 김현수 태양광 추적 장치 및 방법 그리고 이것을 적용한 에너지 수집 장치 및 그 운영 방법
GB2497762B (en) * 2011-12-20 2018-05-23 Advanced Risc Mach Ltd Intermediate value storage within a graphics processing apparatus
US8823736B2 (en) * 2012-01-20 2014-09-02 Intel Corporation Graphics tiling architecture with bounding volume hierarchies
US9495781B2 (en) * 2012-06-21 2016-11-15 Nvidia Corporation Early sample evaluation during coarse rasterization
US20140071160A1 (en) * 2012-09-07 2014-03-13 Kabushiki Kaisha Toshiba Electronic apparatus and display control method
GB2500284B (en) * 2012-09-12 2014-04-30 Imagination Tech Ltd Tile based computer graphics
GB201223089D0 (en) * 2012-12-20 2013-02-06 Imagination Tech Ltd Hidden culling in tile based computer generated graphics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209065A1 (en) * 2004-12-08 2006-09-21 Xgi Technology Inc. (Cayman) Method and apparatus for occlusion culling of graphic objects
US20090051687A1 (en) * 2005-10-25 2009-02-26 Mitsubishi Electric Corporation Image processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022146928A1 (en) * 2020-12-30 2022-07-07 Advanced Micro Devices, Inc. Systems and methods for distributed rendering using two-level binning

Also Published As

Publication number Publication date
KR20140137935A (ko) 2014-12-03
US9741158B2 (en) 2017-08-22
CN104183005A (zh) 2014-12-03
TWI619089B (zh) 2018-03-21
TW201445502A (zh) 2014-12-01
CN104183005B (zh) 2018-08-14
US20140347357A1 (en) 2014-11-27
DE102014106780A1 (de) 2014-12-18

Similar Documents

Publication Publication Date Title
KR102116708B1 (ko) 그래픽스 프로세싱 유닛
US11748840B2 (en) Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US10438396B2 (en) Method for efficient construction of high resolution display buffers
CN108351864B (zh) 成凹几何密铺
US10510183B2 (en) Graphics processing enhancement by tracking object and/or primitive identifiers
EP2985735B1 (en) Method and apparatus for performing tile-based path rendering
CN105550973B (zh) 图形处理单元、图形处理***及抗锯齿处理方法
KR20140133067A (ko) 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법
KR102285840B1 (ko) 3차원 영상 렌더링 방법 및 이를 적용한 영상 출력 장치
US10068372B2 (en) Method and apparatus for performing high throughput tessellation
US20210350606A9 (en) Method for efficient construction of high resolution display buffers
JP2010140101A (ja) 描画装置
GB2531936A (en) Graphic processing unit, a graphic processing system including the same, and an anti-aliasing method using the same
JP2021039463A (ja) 画像処理装置及び画像処理方法

Legal Events

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