KR20160051155A - 렌더링 장치 및 방법 - Google Patents

렌더링 장치 및 방법 Download PDF

Info

Publication number
KR20160051155A
KR20160051155A KR1020140150626A KR20140150626A KR20160051155A KR 20160051155 A KR20160051155 A KR 20160051155A KR 1020140150626 A KR1020140150626 A KR 1020140150626A KR 20140150626 A KR20140150626 A KR 20140150626A KR 20160051155 A KR20160051155 A KR 20160051155A
Authority
KR
South Korea
Prior art keywords
primitive
identifier
rendering
tile
primitives
Prior art date
Application number
KR1020140150626A
Other languages
English (en)
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 KR1020140150626A priority Critical patent/KR20160051155A/ko
Priority to US14/722,435 priority patent/US20160125649A1/en
Publication of KR20160051155A publication Critical patent/KR20160051155A/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
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Abstract

타일에 포함된 복수의 프래그먼트(fragment)들에 대한 깊이 테스트(depth test)에 기초하여, 가시적(visible)인 프래그먼트를 결정하는 단계; 결정된 프래그먼트에 대응되는 프리미티브(primitive)의 식별자를 저장하는 단계; 및 프리미티브의 식별자를 이용하여, 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 단계;를 포함하는, 타일 기반 렌더링을 수행하는 방법 및 장치가 제공된다.

Description

렌더링 장치 및 방법{Apparatus and method for rendering}
본 개시는 타일 기반 렌더링 장치 및 방법에 관한 것이다.
일반적으로 3D 렌더링은 2차원 또는 3차원 오브젝트들을, 디스플레이될 수 있는 2차원 픽셀 표현으로 변환하는 것을 의미한다. 각 프레임에 대한 렌더링을 수행할 때, 많은 연산이 수행되며, 많은 전력이 소모된다. 렌더링 과정 중에 테셀레이션을 수행하면 보다 많은 연산과 전력 소모가 이루어진다.
타일 기반 렌더링을 수행하는 렌더링 장치 및 방법을 제공하는 데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
제 1 측면에 따른, 렌더링 방법은, 타일에 포함된 복수의 프래그먼트(fragment)들에 대한 깊이 테스트(depth test)에 기초하여, 가시적(visible)인 프래그먼트를 결정하는 단계; 결정된 프래그먼트에 대응되는 프리미티브(primitive)의 식별자를 저장하는 단계; 및 프리미티브의 식별자를 이용하여, 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 단계;를 포함할 수 있다.
또한, 렌더링 방법은, 프리미티브 식별자에 기초하여, 타일에 포함된 복수의 프리미티브들의 가시성 정보를 나타내는 프리미티브 가시성 스트림을 생성하는 단계 및 프리미티브 가시성 스트림을 이용하여, 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 단계를 더 포함할 수 있다.
또한, 렌더링 방법은, 저장된 프리미티브의 식별자에 기초하여, 타일에 포함된 복수의 패치들의 가시성 정보를 나타내는 패치 가시성 스트림을 생성하는 단계; 및 패치 가시성 스트림을 이용하여, 복수의 패치들 중 가시적이라고 판단된 패치에 대해서만 테셀레이션을 수행하는 단계;를 더 포함할 수 있다.
또한, 패치 가시성 스트림을 생성하는 단계는, 저장된 프리미티브의 식별자에 기초하여, 저장된 프리미티브와 대응되는 패치의 식별자를 획득하는 단계; 및 획득된 패치의 식별자에 기초하여, 패치 가시성 스트림을 생성하는 단계;를 포함할 수 있다.
또한, 렌더링 방법은, 저장된 프리미티브의 식별자에 기초하여, 타일에 포함된 복수의 버텍스들의 가시성 정보를 나타내는 버텍스 가시성 스트림을 생성하는 단계; 및 버텍스 가시성 스트림을 이용하여, 복수의 버텍스들 중 가시적이라고 판단된 버텍스에 대해서만 쉐이딩을 수행하는 단계;를 더 포함할 수 있다.
또한, 선택적 렌더링을 수행하는 단계는, 복수의 프리미티브 중 가시적이라고 판단된 프리미티브에 대해서만 래스터라이징(rasterizing)을 수행하는 단계;를 포함할 수 있다.
또한, 렌더링 방법은, 프레임을 복수의 타일로 구분하여, 복수의 타일 각각에 포함된 프리미티브를 인식하는 단계;를 더 포함할 수 있고, 프리미티브 가시성 스트림은, 복수의 타일 각각마다 생성되고, 복수의 타일 각각에 포함된 프리미티브가 가시적인지 여부를 나타낼 수 있다.
또한, 저장하는 단계는, 복수의 프래그먼트들 중 일 프래그먼트가 가시적인 경우, 기존의 식별자를 일 프래그먼트에 대응되는 프리미티브의 식별자로 갱신하여 저장하는 단계;를 포함할 수 있다.
또한, 렌더링 방법은, 렌더링 방법이 제 1 파이프라인 및 제 2 파이프라인을 통해 연속적으로 수행되는 경우, 프리미티브의 식별자를 저장하는 단계는 제 1 파이프라인에서 수행되고, 복수의 프리미티브에 대해 선택적 렌더링을 수행하는 단계는 상기 제 2 파이프라인에서 수행될 수 있다.
또한, 제 1 파이프라인에서 수행되는 렌더링은, 복수의 프래그먼트들의 타일 상의 좌표 정보 및 복수의 프리미티브들의 타일 상의 좌표 정보를 이용하여 수행될 수 있다.
제 2 측면에 따른 렌더링 장치는, 타일에 포함된 복수의 프래그먼트(fragment)들에 대한 깊이 테스트(depth test)에 기초하여 가시적(visible)인 프래그먼트를 결정하는 깊이 테스트부; 결정된 프래그먼트에 대응되는 프리미티브(primitive)의 식별자가 저장되는 프리미티브 버퍼(primitive buffer); 및 프리미티브의 식별자를 이용하여, 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 렌더링부;를 포함할 수 있다.
도 1은 일 실시예에 따라, 렌더링 장치가 수행하는 3차원 이미지의 렌더링 과정을 나타내는 도면이다.
도 2는 일 실시예에 따라, 테셀레이션을 수행하는 테셀레이션 파이프라인(tessellation pipeline)을 보다 구체적으로 설명하기 위한 도면이다.
도 3은, 일 실시예에 따라, 본 개시에 따른 렌더링 장치를 설명하기 위한 도면이다.
도 4는 일 실시예에 따라, 프리미티브 가시성 스트림을 생성하는 실시예를 설명하기 위한 도면이다.
도 5는 일 실시예에 따라, 패치 가시성 스트림 및 버텍스 가시성 스트림을 생성하는 내용을 설명하기 위한 도면이다.
도 6은, 일 실시예에 따라, 본 개시에 따른 렌더링 장치를 설명하기 위한 도면이다.
도 7은, 일 실시예에 따라, 도 6의 렌더링 장치가 렌더링을 수행하는 방법을 파이프라인을 통해 설명하기 위한 도면이다.
도 8은, 일 실시예에 따라, 도 3의 렌더링 장치가 렌더링을 수행하는 방법을 설명하기 위한 도면이다.
도 9는 다른 실시예에 따라, 렌더링 장치를 설명하기 위한 도면이다.
도 10은, 일 실시예에 따라, 도 9의 렌더링 장치가 렌더링을 수행하는 방법을 파이프라인을 통해 설명하기 위한 도면이다.
도 11은, 일 실시예에 따라, 렌더링 장치를 포함하는 디바이스를 설명하기 위한 도면이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예에 의해 발명을 상세히 설명하기로 한다. 하기 실시예는 발명을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 발명이 속하는 기술분야의 전문가가 용이하게 유추할 수 있는 것은 발명의 권리범위에 속하는 것으로 해석된다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 일 실시예에 따라, 렌더링 장치가 수행하는 3차원 이미지의 렌더링 과정을 나타내는 도면이다.
도 1을 참조하면, 3차원 이미지의 렌더링 과정은 단계 S11 내지 단계 S19를 포함할 수 있다.
단계 S11는 버텍스(vertex)(일 실시예에 따라, 정점이라고 호칭할 수도 있다.)들을 생성하는 단계이다. 버텍스들은 영상에 포함된 오브젝트(object)들을 나타내기 위해 생성된다.
단계 S12는 생성된 버텍스들을 쉐이딩(shading)하는 단계이다. 버텍스 쉐이더(vertex shader)는 단계 S11에서 생성된 버텍스들의 색(color)을 지정하여, 버텍스들에 대한 쉐이딩을 수행할 수 있다.
단계 S13은 이전 단계에서 생성된 버텍스들을 기반으로 하여, 테셀레이션(Tessellation)을 수행하는 단계이다. 테셀레이션이란, 기존의 버텍스들을 통해 생성될 수 있는 프리미티브(primitive)보다 더 많은 프리미티브를 생성하는 단계로서, 기존의 버텍스들보다 더 많은 버텍스들을 생성한다. 따라서, 렌더링 장치(100)는, 테셀레이션을 통해, 기존보다 더 세밀한 영상의 표현이 가능하고, 실제와 비슷한 이미지를 얻을 수 있다. 테셀레이션 과정을 수행하는 테셀레이션 파이프라인에 대해서는 도 2에서 자세히 설명하겠다.
단계 S14는 프리미티브들(primitives)을 생성하는 단계이다. 프리미티브는 점, 선 또는 버텍스들로부터 형성되는 다각형(polygon)을 나타낸다. 일 예로서, 프리미티브들은 버텍스들을 연결하여 형성된 삼각형들을 나타낼 수도 있다.
단계 S15는 타일링(tiling)을 수행하는 단계로써, 화면을 통해 디스플레이되는 프레임을 복수의 타일로 분할한다. 복수 개로 분할된 타일들은 별도로 렌더링되고, 차후에 디스플레이를 위해 결합될 수 있다.
단계 S16은 프리미티브를 래스터화(rasterization)하는 단계이다. 프리미티브를 래스터화하는 것은 프리미티브를 복수의 프래그먼트들(fragments)로 분할하는 것을 나타낸다. 프래그먼트는 프리미티브를 구성하는 단위이며, 영상 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보를 포함한다. 따라서, 래스터화하는 단계에서 정점과 정점 사이의 프레그먼트들을 생성할 때 보간(interpolation)이 수행된다.
단계 S17은 이전 단계에서 생성된 프래그먼트에 대한 깊이 테스트(depth test)(z-test)를 수행하는 단계이다. 프래그먼트 또는 픽셀에 대한 쉐이딩 또는 텍스처링을 수행하기 위해서는 많은 연산량이 요구된다. 따라서, 쉐이딩 또는 텍스처링하는 단계를 보다 효율적으로 수행하여 연산량을 줄이기 위해, 깊이 테스트를 수행할 필요가 있다.
여기서, 깊이 테스트란 입력된 각 프래그먼트의 깊이값과, 깊이 버퍼에 기 저장된 입력된 각 프래그먼트 위치에 대응하는 깊이값을 비교하고, 비교한 결과 입력된 프래그먼트가 깊이 버퍼에 기 저장된 깊이값보다 더 작은 경우(즉, 최종 출력 이미지에서 입력된 프래그먼트가 가시적(visible)인 경우), 깊이 버퍼의 깊이 값을 입력된 프래그먼트의 깊이값으로 갱신하는 과정을 의미한다. 따라서, 입력된 모든 프래그먼트에 대하여 깊이 테스트를 수행한 결과, 가시적인 프래그먼트의 깊이값들이 깊이 버퍼에 저장되게 된다.
단계 S18는 프래그먼트를 쉐이딩하는 단계를 나타낸다. 또한, 픽셀 단위로 쉐이딩이 수행될 수도 있다. 예를 들어, 픽셀 또는 프레그먼트를 쉐이딩하는 것은 픽셀 또는 프레그먼트의 색을 지정하는 것이다.
단계 S19는 프레임 버퍼(frame buffer)에 저장된 프레임을 표시하는 단계를 나타낸다. S11 내지 S18를 통해 생성된 프레임은 프레임 버퍼에 저장된다. 프레임 버퍼에 저장된 프레임은 디스플레이 장치(예를 들어, 도 11의 1120)를 통해 표시된다.
한편, 본 개시에 따른 렌더링 장치는, 렌더링 과정 중 깊이 테스트에 기초하여, 가시적이라고 판단된 프리미티브 식별자(Primitive ID)를 버퍼에 별도로 저장할 수 있다. 또한 저장된 프리미티브의 식별자를 이용하여 프리미티브 가시성 스트림(Primitive visibility stream)을 생성할 수 있다. 따라서, 렌더링 장치는, 프리미티브 식별자 또는 프리미티브 가시성 스트림을 이용하여, 프리미티브에 대한 선택적 렌더링을 수행할 수 있는 바, 렌더링에 소모되는 계산량 및 대역폭을 줄일 수 있다. 보다 자세한 내용은, 이하의 실시예들에서 설명한다.
도 2는 일 실시예에 따라, 테셀레이션을 수행하는 테셀레이션 파이프라인(tessellation pipeline)을 보다 구체적으로 설명하기 위한 도면이다.
테셀레이션 파이프라인은 헐 쉐이더(hull shader)(210), 테셀레이터(tessellator)(220) 및 도메인 쉐이더(domain shader)(230)을 포함할 수 있으며, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
헐 쉐이더(210)는 일 실시예에 따라, 도 1의 S12를 수행하는 버텍스 쉐이더로부터 입력되는, 입력 패치(input patch)를 수신할 수 있다. 일 실시예에 따라, 입력 패치는 입력 컨트롤 포인트(input control point)들에 의해 정의될 수 있고, 입력 컨트롤 포인트는 버텍스들의 그룹으로 볼 수 있으며 낮은 차원의 표면을 정의할 수 있다. 일 실시예에 따라, 헐 쉐이더(210)는 입력 컨트롤 포인트를 변형하여 출력 컨트롤 포인트를 생성할 수 있고, 출력 컨트롤 포인트에 의해 정의되는 출력 패치를 도메인 쉐이더(230)로 전송할 수 있다. 또한, 일 실시예에 따라, 헐 쉐이더(210)는 테셀레이션 레벨을 결정할 수 있다. 일 실시예에 따라, 테셀레이션 레벨은 입력 패치를 얼마나 많은 삼각형들, 쿼드들(quads) 또는 등치선들(isolines)로 분할할 것인지를 나타내는 수치이다. 일 실시예에 따라, 테셀레이션 헐 쉐이더(210)는 결정된 테셀레이션 레벨을 테셀레이터(220) 및 도메인 쉐이더(230)로 전송할 수 있다.
테셀레이터(220)는 헐 쉐이더(210)로부터 테셀레이션 레벨을 수신할 수 있다. 테셀레이터(220)는 일 실시예에 따라, 도메인이라고 불리는 영역을 테셀레이션 레벨에 따라 분할할 수 있다. 일 실시예에 따라, 테셀레이터(220)는 테셀레이션 레벨에 따라 도메인 영역을 복수의 삼각형들로 분할할 수 있다. 또한, 테셀레이터(220)는 분할된 복수의 삼각형들의 무게중심 좌표(barycentric coordinates)을 각 삼각형을 구성하는 버텍스들로부터 계산할 수 있다. 테셀레이터(220)는 복수의 삼각형들의 무게중심 좌표들을 도메인 쉐이더(230)로 전송할 수 있다.
도메인 쉐이더(230)는, 일 실시예에 따라, 헐 쉐이더(210)로부터 출력 패치를 수신할 수 있고, 테셀레이터(220)로부터 복수의 삼각형들의 무게중심 좌표들을 수신할 수 있다. 일 실시예에 따라, 도메인 쉐이더(230)는 출력 패치와 복수의 삼각형 각각의 무게중심 좌표들을 이용하여, 새로운 복수의 버텍스들을 생성할 수 있다. 따라서, 도메인 쉐이더(230)는, 새롭게 생성된 버텍스로써 테셀레이티드 버텍스들(tessellated vertices)을 출력할 수 있다.
따라서, 버텍스 쉐이더로부터 출력된 버텍스들이 입력 패치로써 테셀레이션 파이프라인에 입력되고, 테셀레이션 파이프라인에서 테셀레이션 과정을 거쳐 테셀레이션 파이프라인에 입력된 버텍스들의 개수보다 훨씬 더 많은 버텍스들이 생성되어 테셀레이션 파이프라인으로부터 출력될 수 있다. 이에 따라, 더 많은 버텍스들이 생성되는 바, 더 많은 프리미티브들이 생성될 수 있어, 더 많은 연산량 및 대역폭이 요구될 수 있다.
도 3은, 일 실시예에 따라, 본 개시에 따른 렌더링 장치(100)를 설명하기 위한 도면이다.
도 3에 도시된 렌더링 장치(100)는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 3에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함할 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 3을 참조하면, 렌더링 장치(100)는 타일 비닝부(tile binning unit)(310), 깊이 테스트부(320), 프리미티브 버퍼(330)(primitive buffer)(이하, P-버퍼라고 하자.), 깊이 버퍼(340)(이하, Z-버퍼라고 하자.), 스트림 생성부(350) 및 렌더링부(360)를 포함할 수 있다.
타일 비닝부(310)는, 렌더링 이미지로 출력되는 프레임을 기 설정된 크기의 타일로 분할할 수 있다. 일 실시예에 따라, 분할되는 타일의 크기는 설정에 따라, 모두 동일할 수도 있고 서로 상이할 수도 있다. 예를 들어, 프레임이 800ⅹ600 픽셀들을 포함하도록 구성될 있는데, 타일 비닝부(310)는 프레임을 10ⅹ10 타일들로 분할할 수 있고, 각각의 타일은 80ⅹ60 픽셀들을 포함할 수 있게 된다.
또한, 타일 비닝부(310)는, 일 실시예에 따라, 각 타일에 포함된 프리미티브를 인식할 수 있다. 즉, 타일 비닝부(310)는 각 타일마다 포함된 프리미티브에 대한 정보를 획득할 수 있다. 프리미티브에 대한 정보의 예로는, 각 프리미티브의 식별자, 위치, 색상 및 질감에 대한 정보 등을 포함할 수 있다. 또한, 타일 비닝부(310)는, 각 타일에 포함된 버텍스 또는 패치를 인식하고, 버텍스 또는 패치에 대한 정보를 획득할 수 있다.
Z-버퍼(340)는, 프레임을 구성하는 각 픽셀의 깊이값을 저장할 수 있다.
P-버퍼(330)는, 프레임을 구성하는 각 픽셀마다 프리미티브의 식별자를 저장할 수 있다. 일 실시예에 따라, P-버퍼(330)는, 각 픽셀마다 가시적(visible)인 프리미티브의 식별자를 저장할 수 있다. 가시적이라는 의미는, 출력 이미지에서 보일 수 있다는 의미이며, 가시적인 프리미티브는 출력 이미지에서 프리미티브의 형상이 보일 수 있다는 의미이다.
깊이 테스트부(320)는, 일 실시예에 따라, 입력되는 프래그먼트의 깊이값과 Z-버퍼(340)에 저장된 깊이값의 크기 비교를 실시한다. 깊이 테스트부(320)는, 일 실시예에 따라, 입력되는 프래그먼트의 깊이값이 Z-버퍼(340)에 저장된 ‘프래그먼트에 대응되는 픽셀의 깊이값’보다 더 작은 경우에는, 입력되는 프래그먼트의 깊이값으로 Z-버퍼(340)에 저장된 해당 픽셀의 깊이값을 업데이트 할 수 있다. 입력되는 프래그먼트의 깊이 값이 Z-버퍼(340)에 저장된 깊이값보다 더 작은 경우에는, 최종 출력 이미지에서 입력되는 프래그먼트가 Z-버퍼(340)에 저장된 입력되는 프래그먼트에 대응되는 픽셀보다 화면상 더 가까이 보이는 경우이다. 따라서, 하나의 프레임 또는 하나의 타일에 포함된 모든 프래그먼트에 대한 깊이 테스트를 수행하면, 최종적으로 Z-버퍼(340)에 저장된 깊이값들은 가시적(visible)인 프래그먼트의 깊이값들로만 이루어지게 된다. 가시적이라는 표현은 출력 이미지에서 보인다는 의미이며, 가시적인 프래그먼트라는 표현은 출력 이미지에서 프래그먼트의 형상이 보일 수 있다는 의미이다.
또한, 깊이 테스트부(320)는, 일 실시예에 따라, 입력되는 프래그먼트의 깊이값이 Z-버퍼(340)에서 업데이트될 때마다, 입력되는 프래그먼트에 대응되는 프리미티브의 식별자로 P-버퍼(330)의 기 저장된 프리미티브의 식별자를 업데이트할 수 있다. 즉, 입력되는 프래그먼트의 깊이값이 Z-버퍼(340)에 저장된 프래그먼트에 대응되는 픽셀의 깊이값보다 더 작은 경우에는, 입력되는 프래그먼트에 대응되는 프리미티브의 식별자로 P-버퍼(330)에 저장된 프래그먼트에 대응되는 픽셀의 프리미티브 식별자를 업데이트할 수 있다. 따라서, 하나의 프레임 또는 하나의 타일에 포함된 모든 프래그먼트에 대한 깊이 테스트를 수행하면, 최종적으로 P-버퍼(330)에 저장된 프리미티브 식별자들은 가시적(visible)인 프리미티브의 식별자들로만 이루어지게 된다.
스트림 생성부(350)는, 일 실시예에 따라, 프리미티브의 가시성 정보를 나타내는 프리미티브 가시성 스트림(primitive visibility stream)을 생성할 수 있다. 프리미티브 가시성 스트림은 복수의 프리미티브 각각마다 가시적인지 여부를 나타내는 정보를 포함한다. 일 실시예에 따라, 스트림 생성부(350)는 프레임을 구성하는 복수의 타일 각각마다 프리미티브 가시성 스트림을 생성할 수 있으며, 프리미티브 가시성 스트림은 해당 타일에 포함된 프리미티브가 가시적인지 여부를 나타내는 정보를 포함할 수 있다. 예를 들어, 각 프리미티브의 식별자에 대해, 가시적인 경우에는 ‘1’을, 가시적이지 않은 경우에는 ‘0’을 나타내도록 하여 프리미티브 가시성 스트림을 생성하거나, 또는 그 반대로 생성할 수도 있다 보다 구체적인 실시예에 대해서는 이하의 도 4에서 설명하기로 한다.
도 4은, 일 실시예에 따라, 프리미티브 가시성 스트림을 생성하는 실시예를 설명하기 위한 도면이다.
도 4에서는, 프레임(410)은 복수의 타일로 구성되고 있으며, 복수의 타일 중 타일(420)은 복수의 프리미티브를 포함하고 있는 것을 나타낸다. 일 실시예에 따라, 도 3의 타일 비닝부(310)에 의해 프레임(410)이 복수의 타일로 분할되고, 복수의 타일 중 각 타일은 각 타일에서 포함되는 프리미티브를 인식할 수 있게 된다. 도 4에서는 일 실시예에 따라, 블록(430)은 타일(420)이 ID 0, ID 1 및 ID 2인 프리미티브를 포함하는 것을 나타낸다. 한편, 타일(420)은 그 밖의 식별자(예를 들어, 3,4,5…)를 갖는 프리미티브를 포함할 수 있으나 타일(420) 및 블록(430)에서는 그 밖의 식별자에 대해서 도시하는 것은 생략하였다.
도 4을 참조하면, 프리미티브 식별자 블록(440)는 P-버퍼(330)의 일 실시예를 나타낸다. 일 실시예에 따라, P-버퍼(330)는 타일(420)에 대응되는 프리미티브 식별자 블록(440)을 포함할 수 있는데, 프리미티브 식별자 블록(440)은 타일(420)의 각 픽셀의 위치에서 가시성이 있는 프리미티브의 식별자(ID)를 각 픽셀의 위치마다 포함할 수 있다. 즉, 특정 타일(420)이 5ⅹ5 픽셀로 구성된 경우, 1행 1열에 위치한 픽셀에서 가시성이 있는 프리미티브의 식별자(ID)는 3이고, 2행 3열에 위치한 픽셀에서 가시성이 있는 프리미티브의 식별자(ID)는 1이 될 수 있다. 또한, P-버퍼(330)는 프레임을 구성하는 각 타일마다 생성되는 프리미티브 식별자 블록을 포함할 수 있다.
또한, 일 실시예에 따라, 도 3의 스트림 생성부(350)는 P-버퍼에 저장된 프리미티브 식별자 블록(440)을 이용하여, 타일(420)의 프리미티브 가시성 스트림(450)을 생성할 수 있다. 즉, 스트림 생성부(350)는, 프리미티브 식별자 블록(440)에 포함되어 있는 식별자 값들을 이용하여, 타일(420)에 포함된 모든 프리미티브 식별자들 중 프리미티브 식별자 블록(440)에 포함된 식별자들에 대해서는 가시적임을 나타내는 ‘1’을 부여하고, 타일(420)에 포함된 모든 프리미티브 식별자들 중 프리미티브 식별자 블록(440)에 포함되지 않은 식별자에 대해서는 가시적이지 않음을 나타내는 ‘0’을 부여할 수 있다. 따라서, 일 실시예에 따라, 도 4의 프리미티브 가시성 스트림(450)은 ID 0을 갖는 프리미티브에 대해서는 가시성을 나타내는 지표인 ‘0’이 부여되었음을 나타내고, ID 1을 갖는 프리미티브에 대해서는 가시성을 나타내는 지표인 ‘1’이 부여되었음을 나타낸다.
도 3의 스트림 생성부(350)는, 일 실시예에 따라, 프리미티브에 대응되는 버텍스의 가시성 정보를 나타내는 버텍스 가시성 스트림(vertex visibility stream)을 생성할 수 있다. 버텍스 가시성 스트림은 해당 타일에 포함된 버텍스가 가시적인지 여부를 나타내는 정보를 포함할 수 있다. 일 실시예에 따라, 스트림 생성부(350)는 프리미티브의 구조체로부터 프리미티브가 어느 버텍스로부터 생성되는 지를 인식할 수 있다. 즉, 프리미티브의 구조체는 해당 프리미티브를 생성하게 하는 버텍스들의 식별자를 포함하는 바, 스트림 생성부(350)는 타일에 포함된 각 프리미티브의 구조체를 통해, 각 프리미티브와 대응되는 버텍스들의 식별자를 획득할 수 있다. 따라서, 스트림 생성부(350)는 P-버퍼에 저장되어 있는 각 프리미티브 식별자 및 각 프리미티브와 대응되는 버텍스의 식별자를 통해, 버텍스 가시성 스트림을 생성할 수 있다. 또한, 일 실시예에 따라, 스트림 생성부(350)는 생성된 프리미티브 가시성 스트림, 및 프리미티브 가시성 스트림에 포함된 프리미티브에 대응되는 버텍스 식별자를 통해, 버텍스 가시성 스트림을 생성할 수 있다. 보다 구체적인 설명은 도 7에서 설명하기로 한다.
도 3의 스트림 생성부(350)는, 일 실시예에 따라, 프리미티브에 대응되는 패치의 가시성 정보를 나타내는 패치 가시성 스트림(patch visibility stream)을 생성할 수 있다. 패치 가시성 스트림은 해당 타일에 포함된 패치가 가시적인지 여부를 나타내는 정보를 포함할 수 있다. 일 실시예에 따라, 스트림 생성부(350)는 프리미티브 구조체로부터 프리미티브가 어느 패치로부터 생성되는 지를 인식할 수 있다. 즉, 프리미티브의 구조체는 해당 프리미티브를 생성하게 하는 패치들의 식별자를 포함하는 바, 스트림 생성부(350)는 타일에 포함된 각 프리미티브의 구조체를 통해, 각 프리미티브와 대응되는 패치들의 식별자를 획득할 수 있다. 따라서, 스트림 생성부(350)는 P-버퍼에 저장되어 있는 각 프리미티브 식별자 및 각 프리미티브 식별자와 대응되는 패치의 식별자를 통해, 패치 가시성 스트림을 생성할 수 있다. 또한, 일 실시예에 따라, 스트림 생성부(350)는 생성된 프리미티브 가시성 스트림, 및 프리미티브 가시성 스트림에 포함된 프리미티브에 대응되는 버텍스 식별자를 통해, 버텍스 가시성 스트림을 생성할 수 있다. 보다 구체적인 설명은 하기의 도 5에서 설명하기로 한다.
도 5는, 일 실시예에 따라, 패치 가시성 스트림 및 버텍스 가시성 스트림을 생성하는 내용을 설명하기 위한 도면이다.
도 5를 참조하면, 타일에 포함된 복수의 프리미티브 각각마다 프리미티브 구조체(510)가 존재할 수 있다. 프리미티브 구조체(510)는 프리미티브와 관련된 버텍스, 패치 등의 정보를 포함하며, 도 5에서는, 설명의 편의를 위해 프리미티브 구조체(510)를 표와 같은 형태로 도시되었다. 즉, 프리미티브 구조체(510)에 도시된 바와 같이, ID 0인 프리미티브는 ID 0인 패치로부터 생성되었으며, ID 0, 1, 2,…인 버텍스로부터 생성되었다. 또한, ID 2인 프리미티브는 ID 1인 패치로부터 생성되었으며, ID 2, 4, 5,…인 버텍스들로부터 생성되었다. 따라서, 프리미티브는 패치로부터 생성될 수 있으며 프리미티브는 버텍스로부터 생성될 수 있기 때문에, 스트림 생성부(350)는, 프리미티브 구조체(510)로부터 프리미티브가 어느 버텍스로부터 생성되었는지, 프리미티브가 어느 패치로부터 생성되었는지에 대한 정보를 획득하여, 패치 가시성 스트림 또는 버텍스 가시성 스트림을 생성할 수 있다. 즉, 스트림 생성부(350)는, P-버퍼를 통해 타일에 포함되어 있는 각각의 프리미티브에 대한 가시성 정보를 획득할 수 있고, 각각의 프리미티브의 식별자에 대응하는 패치의 식별자 또는 버텍스의 식별자를 프리미티브 구조체(510)를 통해 획득할 수 있고, 결국 타일에 포함된 패치의 식별자 별로 가시성 정보를 나타내는 패치 가시성 스트림 및 타일에 포함된 버텍스의 식별자 별로 가시성 정보를 나타내는 버텍스 가시성 스트림을 생성할 수 있다.
도 5을 참조하면, 일 실시예에 따라, 스트림 생성부(350)는 프리미티브 구조체(510) 및 P-버퍼(520)(또는, P-버퍼에 포함된 프리미티브 식별자 블록이라고 볼 수도 있을 것이다.)를 통해 패치 가시성 스트림(530)을 생성할 수 있다. 스트림 생성부(350)는 P-버퍼(520)를 통해 ID 0인 프리미티브는 가시적이지 않지만, ID 1인 프리미티브는 가시적이라는 정보를 획득할 수 있고, ID 0인 패치는 ID 0 및 ID 1 인 프리미티브에 모두 대응될 수 있고, ID 1인 프리미티브가 가시적이기 때문에, ID 0 인 패치 또한 가시적이라는 정보를 획득할 수 있다.
또한, 도 5을 참조하면, 일 실시예에 따라, 스트림 생성부(350)는 프리미티브 구조체(510) 및 P-버퍼(520)를 통해 버텍스 가시성 스트림(540)을 생성할 수 있다. ID 1인 버텍스 ID 0 및 ID 1 인 프리미티브에 모두 대응될 수 있고, ID 1인 프리미티브가 가시적이기 때문에, ID 1인 버텍스 또한 가시적이라는 것을 확인할 수 있다.
도 3의 스트림 생성부(350)는, 일 실시예에 따라, 프리미티브 가시성 스트림을 생성하여 렌더링부(360)에 전송할 수 있다. 또한, 일 실시예에 따라, 스트림 생성부는, 버텍스 가시성 스트림 또는 패치 가시성 스트림을 생성하여 렌더링부(360)에 전송할 수 있다.
도 3의 렌더링부(360)는, P-버퍼(330)에 저장된 프리미티브의 식별자에 기초하여 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행할 수 있다. 일 실시예에 따라, 렌더링부(360)는 스트림 생성부(350)로부터 전달 받은 프리미티브 가시성 스트림에 포함되는 복수의 프리미티브에 대해 선택적 렌더링을 수행할 수 있다. 또한, 일 실시예에 따라, 렌더링부(360)는, 스트림 생성부(350)로부터 전달 받은 패치 가시성 스트림에 포함되는 복수의 패치에 대해 선택적 렌더링을 수행할 수 있다. 또한, 일 실시예에 따라, 렌더링부(360)는, 스트림 생성부(350)로부터 전달 받은 버텍스 가시성 스트림에 포함되는 복수의 패치에 대해 선택적 렌더링을 수행할 수 있다. 보다 구체적인, 선택적 렌더링과 관련된 내용은 도 6에서 설명하기로 한다.
도 6은, 일 실시예에 따라, 본 개시에 따른 렌더링 장치(200)를 설명하기 위한 도면이다.
렌더링 장치(200)는, 깊이 테스트부(610), P-버퍼(620), 스트림 생성부(630) 및 렌더링부(640)를 포함할 수 있으며, 도 6에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 깊이 테스트부(610), P-버퍼(620) 및 스트림 생성부(630)는 도 3에서 설명한 바와 같으므로 자세한 설명은 생략한다.
렌더링부(640)는, 일 실시예에 따라, 버텍스 쉐이더(650), 테셀레이션 파이프라인(660) 및 래스터화부(670)(rasterization unit)를 포함할 수 있다.
버텍스 쉐이더(650)는, 일 실시예에 따라, 입력되는 버텍스들에 대해 쉐이딩을 수행하는 단계이다. 또한, 일 실시예에 따라, 버텍스 쉐이더(650)는 스트림 생성부(630)로부터 버텍스 가시성 스트림을 전달 받을 수 있다. 따라서, 버텍스 쉐이더(650)는, 입력되는 버텍스 중에 버텍스 가시성 스트림에서 가시적이지 않다고 판단되는 버텍스들에 대해서는 쉐이딩을 생략할 수 있다. 즉, 버텍스 쉐이더(650)는, 프레임을 구성하는 복수의 타일 중 일 타일에 포함되는 버텍스 중에 버텍스 가시성 스트림에서 가시적이라고 판단되는 버텍스들에 대해서만 쉐이딩을 수행할 수 있다.
테셀레이션 파이프라인(660)은, 일 실시예에 따라, 버텍스 쉐이더(650)에 의해 전달되는 입력 패치에 대해 테셀레이션을 수행할 수 있다. 구체적인 테셀레이션은 도 2에 설명한 바와 같다. 일 실시예에 따라, 테셀레이션 파이프라인(660)은 스트림 생성부(630)로부터 패치 가시성 스트림을 전달 받을 수 있다. 따라서, 테셀레이션 파이프라인(660)은, 입력되는 패치들 중에 패치 가시성 스트림에서 가시적이지 않다고 판단되는 패치에 대해서는 테셀레이션을 생략할 수 있다. 즉, 테셀레이션 파이프라인(660)은, 프레임을 구성하는 복수의 타일 중 일 타일에 포함되는 패치 중에, 패치 가시성 스트림에서 가시적이라고 판단되는 패치들에 대해서만 테셀레이션을 수행할 수 있다. 보다 구체적으로, 테셀레이션 파이프라인(660)에 포함되는 헐 쉐이더(미도시)는, 입력되는 패치 중에 패치 가시성 스트림에서 가시적이라고 판단되는 패치들에 대해서만, 출력 패치를 생성하여 도메인 쉐이더(미도시)로 전송할 수 있고, 가시적이라고 판단되는 패치들에 대해서만 테셀레이션 레벨을 결정할 수 있다.
래스터화부(670)는, 일 실시예에 따라, 입력되는 프리미티브에 대해 래스터화를 수행하는 단계이다. 또한, 일 실시예에 따라, 래스터화부(670)는 스트림 생성부(630)로부터 프리미티브 가시성 스트림을 전달 받을 수 있다. 따라서, 래스터화부(670)는, 입력되는 프리미티브 중에 프리미티브 가시성 스트림에서 가시적이지 않다고 판단되는 프리미티브들에 대해서는 레스터화를 생략할 수 있다. 즉, 래스터화부(670)는, 프레임을 구성하는 복수의 타일 중 일 타일에 포함되는 프리미티브 중에, 프리미티브 가시성 스트림에서 가시적이라고 판단되는 프리미티브들에 대해서만 레스터화를 수행할 수 있다.
따라서, 렌더링 장치(200)는 가시성 스트림을 이용하여, 버텍스, 패치 및 프리미티브에 대한 렌더링 과정를 위한 계산량 및 대역폭을 줄일 수 있다.
도 7은, 일 실시예에 따라, 도 6의 렌더링 장치(200)가 렌더링을 수행하는 방법을 파이프라인을 통해 설명하기 위한 도면이다.
일 실시예에 따라, 렌더링 장치(200)는 렌더링 장치(200)에 포함되는 버텍스 쉐이더(650), 테셀레이션 파이프라인(660), 래스터화부(670) 및 깊이 테스트부(610)가 파이프라인으로 구성되어 있을 수 있다. 따라서, 본 개시에 따른 렌더링 수행 방법은 2번의 렌더링(2-pass 렌더링)이 연속적으로 수행될 수 있는 바, 파이프라인으로 구성된 렌더링 장치(200)가 제 1 파이프라인(710) 및 제 2 파이프라인(720)으로써 연속적으로 렌더링을 수행한다고 볼 수 있을 것이다.
제 1 파이프라인(710)에서, 버텍스 쉐이더(650)는 버텍스의 위치값만을 이용하여 버텍스 쉐이딩을 수행할 수 있고, 테셀레이션 파이프라인(660)은 패치의 위치값만을 이용하여 테셀레이션을 수행할 수 있고, 래스터화부(670)는 프리미티브의 위치값만을 이용하여 레스터화를 수행할 수 있다. 또한, 제 1 파이프라인(710)에서, 깊이 테스트부(610)는, 깊이 테스트를 통해 가시적인 프래그먼트를 결정할 수 있고, P-버퍼(620)는 가시적이라고 결정된 프래그먼트에 대응되는 프리미티브의 식별자를 저장할 수 있다. 또한, 스트림 생성부(630)는 P-버퍼(620)에 저장된 프리미티브의 식별자에 기초하여, 프리미티브 가시성 스트림, 패치 가시성 스트림 및 버텍스 가시성 스트림을 생성할 수 있다.
제 2 파이프라인(720)에서, 버텍스 쉐이더(650)는 기 생성된 버텍스 가시성 스트림에 기초하여, 가시적이지 않다고 판단되는 버텍스들에 대해서는 쉐이딩을 생략할 수 있다. 즉, 버텍스 쉐이더(650)는 기 생성된 버텍스 가시성 스트림에 기초하여, 가시적이라고 판단되는 버텍스들에 대해서는 쉐이딩을 수행할 수 있다. 또한, 테셀레이션 파이프라인(660)은, 기 생성된 패치 가시성 스트림에 기초하여, 가시적이지 않다고 판단되는 패치들에 대해서는 테셀레이션을 생략할 수 있다. 즉, 테셀레이션 파이프라인(660)은, 기 생성된 패치 가시성 스트림에 기초하여, 가시적라고 판단되는 패치들에 대해서만 테셀레이션을 수행할 수 있다. 또한, 래스터화부(670)는, 기 생성된 프리미티브 가시성 스트림에 기초하여, 가시적이지 않다고 판단되는 프리미티브들에 대해서는 래스터화를 생략할 수 있다. 즉, 래스터화부(670)는, 기 생성된 프리미티브 가시성 스트림에 기초하여, 가시적이지 않다고 판단되는 프리미티브들에 대해서는 래스터화를 생략할 수 있다.
도 8은, 일 실시예에 따라, 도 3의 렌더링 장치(100)가 렌더링을 수행하는 방법을 설명하기 위한 도면이다.
단계 S810에서, 렌더링 장치(100)는, 타일에 포함된 복수의 프래그먼트들에 대한 깊이 테스트에 기초하여, 가시적인 프래그먼트를 결정할 수 있다. 또한, 렌더링 장치(100)는, 프레임을 복수의 타일로 분할하고, 복수의 타일 각각에 포함된 프리미티브 또는 프리미티브로부터 생성되는 프래그먼트를 인식할 수 있다. 보다 구체적으로, 렌더링 장치(100)에 포함된 깊이 테스트부는, 타일에 포함된 복수의 프래그먼트들 각각의 깊이값과 Z-버퍼에 저장된 깊이값의 크기 비교를 실시할 수 있다. 따라서, 깊이 테스트부는, 복수의 프래그먼트들 중 일 프래그먼트의 깊이값이 Z-버퍼에 저장된, ‘일 프래그먼트에 대응되는 픽셀의 깊이값’보다 더 작은 경우에는, 일 프래그먼트의 깊이값으로 Z-버퍼에 저장된 해당 픽셀의 깊이값을 업데이트할 수 있다. 따라서, 하나의 타일에 포함된 모든 프래그먼트에 대한 깊이 테스트를 수행하면, 최종적으로 Z-버퍼에 저장된 깊이값들은 가시적(visible)인 프래그먼트의 깊이값들로만 이루어지게 된다.
단계 S820에서, 렌더링 장치(100)는, 가시적이라고 결정된 프래그먼트에 대응되는 프리미티브의 식별자를 저장할 수 있다. 즉, 렌더링 장치(100)는, 타일에 포함된 복수의 프래그먼트들 각각의 깊이값에 대한 깊이 테스트 결과, 가시적이라고 결정된 프래그먼트에 대응되는 프리미티브의 식별자를 P-버퍼에 저장할 수 있다. 또한, 깊이 테스트부는, 복수의 프래그먼트 중 일 프래그먼트의 깊이값이 Z-버퍼에서 업데이트될 때마다, 일 프래그먼트에 대응되는 프리미티브의 식별자로 P-버퍼의 기 저장된 프리미티브의 식별자를 업데이트할 수 있다. 따라서, 하나의 프레임 또는 하나의 타일에 포함된 모든 프래그먼트들에 대한 깊이 테스트를 수행하면, 최종적으로 P-버퍼에 저장된 프리미티브 식별자들은 가시적인 프리미티브의 식별자들로만 이루어지게 된다.
단계 S830에서, 렌더링 장치(100)는, P-버퍼에 저장된 프리미티브의 식별자에 기초하여, 타일에 포함된 복수의 가시성 정보를 나타내는 프리미티브 가시성 스트림을 생성할 수 있다. 보다 구체적으로, 렌더링 장치(100)에 포함된 스트림 생성부는, 프레임을 구성하는 복수의 타일 각각마다, 복수의 타일 각각에 포함된 프리미티브가 가시적인지 여부를 나타내는 프리미티브 가시성 스트림을 생성할 수 있다. 또한, 스트림 생성부는, 프리미티브에 대응되는 버텍스의 가시성 정보를 나타내는 버텍스 가시성 스트림을 생성할 수 있다. 일 실시예에 따라, 스트림 생성부는 프리미티브 구조체로부터 프리미티브가 어느 버텍스로부터 생성되는 지를 인식할 수 있고, 프리미티브를 생성하게 하는 버텍스의 식별자를 인식할 수 있다. 따라서, 스트림 생성부는, P-버퍼에 저장되어 있는 각 프리미티브 식별자 및 각 프리미티브와 대응되는 버텍스의 식별자를 이용하여, 버텍스 가시성 스트림을 생성할 수 있다. 또한, 스트림 생성부는, 프리미티브에 대응되는 패치의 가시성 정보를 나타내는 패치 가시성 스트림을 생성할 수 있다. 일 실시예에 따라, 스트림 생성부는 프리미티브 구조체로부터 프리미티브가 어느 패치로부터 생성되는 지를 인식할 수 있고, 프리미티브를 생성하는 패치의 식별자를 인식할 수 있다. 따라서, 스트림 생성부는, P-버퍼에 저장되어 있는 각 프리미티브의 식별자 및 각 프리미티브와 대응되는 패치의 식별자를 이용하여, 패치 가시성 스트림을 생성할 수 있다.
단계 S840에서, 렌더링 장치(100)는, P-버퍼에 저장되어 있는 프리미티브의 식별자에 기초하여 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행할 수 있다. 일 실시예에 따라, 렌더링 장치(100)는 프리미티브 가시성 스트림을 이용하여, 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행할 수 있다. 보다 구체적으로, 렌더링 장치(100)에 포함된 렌더링부는 스트림 생성부로부터 전달 받은 프리미티브 가시성 스트림에 포함되는 복수의 프리미티브에 대해 선택적 렌더링을 수행할 수 있다. 즉, 렌더링부는 프리미티브 가시성 스트림을 이용하여, 복수의 프리미티브들 중 가시적이라고 판단된 프리미티브에 대해서만 래스터라이징을 수행할 수 있다. 또한, 렌더링 장치(100)는, 패치 가시성 스트림을 이용하여, 타일에 포함된 복수의 패치들에 대해 선택적 렌더링을 수행할 수 있다. 즉, 렌더링부는 패치 가시성 스트림을 이용하여, 복수의 패치들 중 가시적이라고 판단된 패치에 대해서만 테셀레이션을 수행할 수 있다. 또한, 렌더링 장치(100)는, 버텍스 가시성 스트림을 이용하여, 타일에 포함된 복수의 버텍스들에 대해 선택적 렌더링을 수행할 수 있다. 즉, 렌더링부는 버텍스 가시성 스트림을 이용하여, 복수의 버텍스들 중 가시적이라고 판단된 버텍스에 대해서만 쉐이딩을 수행할 수 있다.
도 9는, 다른 실시예에 따라, 렌더링 장치(300)를 설명하기 위한 도면이다.
렌더링 장치(300)는, 깊이 테스트부(910), P-버퍼(920), 스트림 생성부(930) 및 렌더링부(940)를 포함할 수 있으며, 도 9에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 깊이 테스트부(910), P-버퍼(920) 및 스트림 생성부(930)는 도 3에서 설명한 바와 같으므로 자세한 설명은 생략한다.
렌더링부(940)는, 일 실시예에 따라, 버텍스 쉐이더(950) 및 래스터화부(960)을 포함할 수 있다.
버텍스 쉐이더(950)는, 일 실시예에 따라, 입력되는 버텍스들에 대해 쉐이딩을 수행하는 단계이다. 또한, 일 실시예에 따라, 버텍스 쉐이더(950)는 스트림 생성부(930)로부터 버텍스 가시성 스트림을 전달 받을 수 있다. 따라서, 버텍스 쉐이더(950)는, 입력되는 버텍스 중에 버텍스 가시성 스트림에서 가시적이지 않다고 판단되는 버텍스들에 대해서는 쉐이딩을 생략할 수 있다. 즉, 버텍스 쉐이더(950)는, 프레임을 구성하는 복수의 타일 중 일 타일에 포함되는 버텍스 중에 버텍스 가시성 스트림에서 가시적이라고 판단되는 버텍스들에 대해서만 쉐이딩을 수행할 수 있다.
래스터화부(960)는, 일 실시예에 따라, 입력되는 프리미티브에 대해 래스터화를 수행하는 단계이다. 또한, 일 실시예에 따라, 래스터화부(960)는 스트림 생성부(930)로부터 프리미티브 가시성 스트림을 전달 받을 수 있다. 따라서, 래스터화부(960)는, 입력되는 프리미티브 중에 프리미티브 가시성 스트림에서 가시적이지 않다고 판단되는 프리미티브들에 대해서는 레스터화를 생략할 수 있다. 즉, 래스터화부(960)는, 프레임을 구성하는 복수의 타일 중 일 타일에 포함되는 프리미티브 중에, 프리미티브 가시성 스트림에서 가시적이라고 판단되는 프리미티브들에 대해서만 레스터화를 수행할 수 있다.
도 10은, 일 실시예에 따라, 도 9의 렌더링 장치(300)가 렌더링을 수행하는 방법을 파이프라인을 통해 설명하기 위한 도면이다.
일 실시예에 따라, 렌더링 장치(300)는 렌더링 장치(300)에 포함되는 버텍스 쉐이더(950) 및 래스터화부(960) 및 깊이 테스트부(910)가 파이프라인으로 구성되어 있을 수 있다. 따라서, 본 개시에 따른 렌더링 수행 방법은 2번의 렌더링(2-pass 렌더링)이 연속적으로 수행될 수 있는 바, 파이프라인으로 구성된 렌더링 장치(200)가 제 1 파이프라인(1010) 및 제 2 파이프라인(1020)으로써 연속적으로 렌더링을 수행한다고 볼 수 있을 것이다.
제 1 파이프라인(1010)에서, 버텍스 쉐이더(950)는 버텍스의 위치값만을 이용하여 버텍스 쉐이딩을 수행할 수 있고, 래스터화부(960)는 프리미티브의 위치값만을 이용하여 래스터화를 수행할 수 있다. 또한, 제 1 파이프라인(1010)에서, 깊이 테스트부(910)는, 깊이 테스트를 통해 가시적인 프래그먼트를 결정할 수 있고, P-버퍼(920)는 가시적이라고 결정된 프래그먼트에 대응되는 프리미티브의 식별자를 저장할 수 있다. 또한, 스트림 생성부(930)는 P-버퍼(920)에 저장된 프리미티브의 식별자에 기초하여, 프리미티브 가시성 스트림 및 버텍스 가시성 스트림을 생성할 수 있다.
제 2 파이프라인(1020)에서, 버텍스 쉐이더(950)는 기 생성된 버텍스 가시성 스트림에 기초하여, 가시적이지 않다고 판단되는 버텍스들에 대해서는 쉐이딩을 생략할 수 있다. 즉, 버텍스 쉐이더(950)는 기 생성된 버텍스 가시성 스트림에 기초하여, 가시적이라고 판단되는 버텍스들에 대해서는 쉐이딩을 수행할 수 있다. 또한, 래스터화부(960)는, 기 생성된 프리미티브 가시성 스트림에 기초하여, 가시적이지 않다고 판단되는 프리미티브들에 대해서는 래스터화를 생략할 수 있다. 즉, 래스터화부(960)는, 기 생성된 프리미티브 가시성 스트림에 기초하여, 가시적이라고 판단되는 프리미티브들에 대해서만 래스터화를 수행할 수 있다.
도 11은, 일 실시예에 따라, 본 개시에 따른 렌더링 장치(400)을 포함하는 디바이스(1000)를 설명하기 위한 도면이다. 디바이스(1000)의 예들은, 무선 디바이스, 이동 전화기, PDA(personal digital assistants), 휴대형 미디어 플레이어, 비디오 게임용 콘솔, 모바일 화상 회의 유닛, 랩탑 컴퓨터, 데스크탑 컴퓨터, 텔레비전 셋탑 박스, 태블릿 컴퓨팅 디바이스, 이북 리더 등을 포함하지만, 이들에 제한되지 않는다. 디바이스(1000)는, 프로세서(1110), 렌더링 장치(400), 디스플레이(1120), 프레임 버퍼(1130), 저장 디바이스(1140), 트랜시버 모듈(1150), 사용자 인터페이스(1160) 및 타일 메모리(1170)를 포함할 수도 있다. 디바이스(1000)는, 도 10에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 또한, 도 11에 도시된 구성요소들은 디바이스(1000) 외부에 구비되어 있을 수 있다.
렌더링 장치(400)는 도 3의 렌더링 장치(100), 도 6의 렌더링 장치(200) 및 도 9의 렌더링 장치(300)가 될 수 있는 바, 자세한 설명은 생략한다.
프로세서(1110)는, 적어도 하나의 애플리케이션을 실행할 수 있다. 애플리케이션의 예로는, 웹 브라우져, 이메일 애플리케이션, 스프레드시트, 비디오 게임, 또는 표시를 위해 가시적인 오브젝트들을 생성하는 다른 애플리케이션이 있다. 적어도 하나의 애플리케이션은 저장 디바이스(1000) 내에 저장될 수 있다. 또한, 일 실시예에 있어서, 프로세서(1110)는 인터넷 또는 다른 네트워크로부터 트랜시버 모듈(1150)을 통해 적어도 하나의 애플리케이션을 다운로드 할 수 있다. 프로세서(1110)는 사용자 인터페이스(1160)를 통한 사용자에 의한 선택에 기초하여 적어도 하나의 애플리케이션을 실행할 수 있다. 또한, 일 실시예에 있어서, 프로세서(1110)는 사용자와의 상호작용 없이 적어도 하나의 애플리케이션을 실행할 수도 있다.
프로세서(1110)의 예들로는, 디지털 신호 프로세서(DSP), 범용 마이크로프로세서, 주문형 반도체(ASIC), 필드 프로그램 가능 로직 어레이(FPGA), 또는 다른 등가의 집적 또는 이산 로직 회로부를 포함하는데, 이들에 제한되는 것은 아니다.
저장 디바이스(1140)는 하나 이상의 컴퓨터 판독 가능 저장 매체들을 포함할 수 있다. 저장 디바이스(1140)의 예들은 RAM, ROM, EEPROM, CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기적 저장 디바이스들, 또는 플래시 메모리가 될 수 있으며, 컴퓨터 또는 프로세서에 의해 액세스 될 수 있는 임의의 다른 매체를 포함할 수 있다. 일 실시예에 따라, 저장 디바이스(1140)는, 프로세서(1110) 또는 렌더링 장치(400)로 하여금, 본 개시에서의 프로세서(1110) 또는 렌더링 장치(400)에 의한 기능들을 수행하게 하는 명령들을 포함할 수 있다.
일 실시예에 따라, 저장 디바이스(1140)는 비 일시적 저장 매체로서 간주될 수 있다. ‘비 일시적’이란, 저장 매체가 반송파 또는 전파 신호로 구체화되지 않는 것을 나타낼 수도 있다. 하지만, ‘비 일시적’은 저장 디바이스(1140)가 움직일 수 없다는 것을 의미하는 것으로 해석되어선 안된다. 일 실시예로써, 저장 디바이스(1140)는 디바이스(1000)가 아닌, 다른 디바이스에 포함될 수도 있다. 또한, 저장 디바이스(1140)와 유사한 다른 저장 디바이스가 디바이스(1000)에 삽입될 수도 있다. 일 실시예에서, 비 일시적 저장 매체는 경시적으로 변할 수 있는 데이터를(예를 들면, RAM에) 저장할 수도 있다.
사용자 인터페이스(1160)의 예들은, 트랙볼, 마우스, 키보드, 게임용 컨트롤러 및 다른 타입의 입력 디바이스들을 포함하는데, 이들에 제한되는 것은 아니다. 사용자 인터페이스(1160)는 터치 스크린일 수도 있고, 디스플레이(1000)의 일부로서 내장될 수도 있다.
트랜스시버 모듈(1150)은, 디바이스(1000)와 다른 디바이스 또는 네트워크 사이의 무선 또는 유선 통신을 가능하게 하는 회로부를 포함할 수 있다. 트랜스시버 모듈(1150)은 변조기들, 복조기들, 증폭기들 및 유선 또는 무선 통신을 위한 다른 회로부를 포함할 수도 있다.
타일 메모리(1170)는, 일 실시예에 따라, 도 3의 타일 비닝부(310)에 의해 분할된 기 설정된 크기의 타일들을 저장할 수 있다. 또한, 타일 메모리(1170)는, 일 실시예에 따라, 각 타일마다 포함된 프리미티브에 대한 정보를 저장할 수 있다. 프리미티브에 대한 정보의 예로는, 각 프리미티브의 식별자, 위치, 색상 및 질감에 대한 정보 등을 포함할 수 있다. 일 실시예에 따라, 타일 메모리(1170)는 저장 디바이스(1140)의 일부로서 형성될 수도 있고, 렌더링 장치(400) 내에 구비될 수도 있다.
프레임 버퍼(1130)는, 일 실시예에 따라, 렌더링 장치(4000)에 의해 렌더링 된 이미지 프레임을 저장할 수 있다.
디스플레이(1120)는, 일 실시예에 따라, 프레임 버퍼(1130)에 저장된 프레임을 디스플레이(1120) 상에 표시할 수 있다.
상기 살펴 본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 실시 예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.
본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (20)

  1. 타일 기반 렌더링을 수행하는 방법에 있어서,
    타일에 포함된 복수의 프래그먼트(fragment)들에 대한 깊이 테스트(depth test)에 기초하여, 가시적(visible)인 프래그먼트를 결정하는 단계;
    상기 가시적인 프래그먼트에 대응되는 프리미티브(primitive)의 식별자를 저장하는 단계; 및
    상기 프리미티브의 식별자에 기초하여, 상기 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 단계;를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 프리미티브의 식별자에 기초하여, 상기 복수의 프리미티브들의 가시성(visibility) 정보를 나타내는 프리미티브 가시성 스트림(primitive visibility stream)을 생성하는 단계; 및
    상기 프리미티브 가시성 스트림을 이용하여, 상기 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 단계;를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 프리미티브의 식별자에 기초하여, 상기 타일에 포함된 복수의 패치들의 가시성 정보를 나타내는 패치 가시성 스트림(patch visibility stream)을 생성하는 단계; 및
    상기 패치 가시성 스트림을 이용하여, 상기 복수의 패치들 중 가시적이라고 판단된 패치에 대해서만 테셀레이션을 수행하는 단계;를 더 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 패치 가시성 스트림을 생성하는 단계는,
    상기 프리미티브의 식별자에 기초하여, 상기 프리미티브와 대응되는 패치의 식별자를 획득하는 단계; 및
    상기 획득된 패치의 식별자에 기초하여, 상기 패치 가시성 스트림을 생성하는 단계;를 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 프리미티브의 식별자에 기초하여, 상기 타일에 포함된 복수의 버텍스들의 가시성 정보를 나타내는 버텍스 가시성 스트림(vertex visibility stream)을 생성하는 단계; 및
    상기 버텍스 가시성 스트림을 이용하여, 상기 복수의 버텍스들 중 가시적이라고 판단된 버텍스에 대해서만 쉐이딩을 수행하는 단계;를 더 포함하는, 방법.
  6. 제 2 항에 있어서,
    상기 선택적 렌더링을 수행하는 단계는,
    상기 복수의 프리미티브들 중 가시적이라고 판단된 프리미티브에 대해서만 래스터라이징(rasterizing)을 수행하는 단계;를 포함하는, 방법
  7. 제 2 항에 있어서,
    프레임을 복수의 타일로 구분하여, 상기 복수의 타일 각각에 포함된 프리미티브를 인식하는 단계;를 더 포함하고,
    상기 프리미티브 가시성 스트림은,
    상기 복수의 타일 각각마다 생성되고, 상기 복수의 타일 각각에 포함된 프리미티브가 가시적인지 여부를 나타내는, 방법.
  8. 제 1 항에 있어서,
    상기 저장하는 단계는,
    상기 복수의 프래그먼트들 중 일 프래그먼트가 가시적인 경우, 기존의 식별자를 상기 일 프래그먼트에 대응되는 프리미티브의 식별자로 갱신하여 저장하는 단계;를 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 방법이 제 1 파이프라인 및 제 2 파이프라인을 통해 연속적으로 수행되는 경우,
    상기 프리미티브의 식별자를 저장하는 단계는 상기 제 1 파이프라인에서 수행되고,
    상기 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 단계는 상기 제 2 파이프라인에서 수행되는, 방법
  10. 제 9 항에 있어서,
    상기 제 1 파이프라인에서 수행되는 렌더링은, 상기 복수의 프래그먼트들의 상기 타일 상의 좌표 정보 및 상기 복수의 프리미티브들의 상기 타일 상의 좌표 정보를 이용하여 수행되는, 방법.
  11. 타일 기반 렌더링을 수행하는 장치에 있어서,
    타일에 포함된 복수의 프래그먼트(fragment)들에 대한 깊이 테스트(depth test)에 기초하여 가시적(visible)인 프래그먼트를 결정하는 깊이 테스트부;
    상기 결정된 프래그먼트에 대응되는 프리미티브(primitive)의 식별자가 저장되는 프리미티브 버퍼(primitive buffer); 및
    상기 프리미티브의 식별자에 기초하여, 상기 타일에 포함된 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 렌더링부;를 포함하는, 장치
  12. 제 11 항에 있어서,
    상기 프리미티브의 식별자에 기초하여, 상기 복수의 프리미티브들의 가시성(visibility) 정보를 나타내는 프리미티브 가시성 스트림(primitive visiblity stream)을 생성하는 스트림 생성부;를 더 포함하고,
    상기 렌더링부는,
    상기 프리미티브 가시성 스트림을 이용하여, 상기 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는, 장치.
  13. 제 11 항에 있어서,
    상기 프리미티브의 식별자에 기초하여, 상기 타일에 포함된 복수의 패치들의 가시성 정보를 나타내는 패치 가시성 스트림(patch visibility stream)을 생성하는 스트림 생성부;를 더 포함하고,
    상기 렌더링부는,
    상기 패치 가시성 스트림을 이용하여, 상기 복수의 패치들 중 가시적이라고 판단된 패치에 대해서만 테셀레이션을 수행하는 테셀레이션 파이프라인;을 포함하는, 장치.
  14. 제 13 항에 있어서,
    상기 스트림 생성부는,
    상기 프리미티브의 식별자에 기초하여, 상기 프리미티브와 대응되는 패치의 식별자를 획득하고, 상기 획득된 패치의 식별자에 기초하여, 상기 패치 가시성 스트림을 생성하는, 장치.
  15. 제 11 항에 있어서,
    상기 프리미티브의 식별자에 기초하여, 상기 타일에 포함된 복수의 버텍스들의 가시성 정보를 나타내는 버텍스 가시성 스트림(vertex visibility stream)을 생성하는 스트림 생성부;를 더 포함하고,
    상기 렌더링부는,
    상기 버텍스 가시성 스트림을 이용하여, 상기 복수의 버텍스들 중 가시적이라고 판단된 버텍스에 대해서만 쉐이딩을 수행하는 버텍스 쉐이딩부;를 포함하는, 장치.
  16. 제 12 항에 있어서,
    상기 렌더링부는,
    상기 복수의 프리미티브들 중 가시적이라고 판단된 프리미티브에 대해서만 래스터라이징(rasterizing)을 수행하는, 장치.
  17. 제 12 항에 있어서,
    프레임을 복수의 타일로 구분하여 상기 복수의 타일 각각에 포함된 프리미티브를 인식하는 타일 비닝부(tile binning unit);를 더 포함하고,
    상기 프리미티브 가시성 스트림은,
    상기 복수의 타일 각각마다 생성되고, 상기 복수의 타일 각각에 포함된 프리미티브가 가시적인지 여부를 나타내는, 장치.
  18. 제 11 항에 있어서,
    상기 복수의 프래그먼트들 중 일 프래그먼트가 가시적인 경우, 상기 프리미티브 버퍼에 기 저장된 식별자가 상기 일 프래그먼트에 대응되는 프리미티브의 식별자로 갱신되어 저장되는, 장치.
  19. 제 11 항에 있어서,
    상기 장치가 파이프라인으로 구성되어, 제 1 파이프라인 및 제 2 파이프라인으로써 연속적인 렌더링을 수행하는 경우,
    상기 제 1 파이프라인에서, 상기 프리미티브 버퍼는 상기 결정된 프래그먼트에 대응되는 프리미티브의 식별자를 저장하고,
    상기 제 2 파이프라인에서, 상기 렌더링부는, 상기 프리미티브의 식별자를 이용하여, 상기 복수의 프리미티브들에 대해 선택적 렌더링을 수행하는 것인, 장치.
  20. 제 19 항에 있어서,
    상기 제 1 파이프라인에서 수행되는 렌더링은, 상기 복수의 프래그먼트들의 상기 타일 상의 좌표 정보 및 상기 복수의 프리미티브들의 상기 타일 상의 좌표 정보를 이용하여 수행되는, 장치.
KR1020140150626A 2014-10-31 2014-10-31 렌더링 장치 및 방법 KR20160051155A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140150626A KR20160051155A (ko) 2014-10-31 2014-10-31 렌더링 장치 및 방법
US14/722,435 US20160125649A1 (en) 2014-10-31 2015-05-27 Rendering apparatus and rendering method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140150626A KR20160051155A (ko) 2014-10-31 2014-10-31 렌더링 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20160051155A true KR20160051155A (ko) 2016-05-11

Family

ID=55853237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140150626A KR20160051155A (ko) 2014-10-31 2014-10-31 렌더링 장치 및 방법

Country Status (2)

Country Link
US (1) US20160125649A1 (ko)
KR (1) KR20160051155A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180042738A (ko) * 2016-10-18 2018-04-26 삼성전자주식회사 영상 처리 방법 및 장치
KR20180080517A (ko) * 2017-01-04 2018-07-12 삼성전자주식회사 그래픽스 처리 방법 및 시스템

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2526598B (en) 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
GB2532495B (en) * 2014-11-21 2018-05-02 Advanced Risc Mach Ltd Graphics processing systems
US10062139B2 (en) * 2016-07-25 2018-08-28 Qualcomm Incorporated Vertex shaders for binning based graphics processing
US20180082464A1 (en) * 2016-09-16 2018-03-22 Tomas G. Akenine-Moller Apparatus and method for an efficient 3d graphics pipeline
GB2572996A (en) * 2018-04-19 2019-10-23 Nokia Technologies Oy Processing video patches for three-dimensional content
US11080928B2 (en) * 2019-04-01 2021-08-03 Qualcomm Incorporated Methods and apparatus for visibility stream management
WO2022104583A1 (en) * 2020-11-18 2022-05-27 Qualcomm Incorporated Methods and apparatus for selection of rendering modes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8436854B2 (en) * 2009-05-29 2013-05-07 Qualcomm Incorporated Graphics processing unit with deferred vertex shading
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
GB2520365B (en) * 2013-12-13 2015-12-09 Imagination Tech Ltd Primitive processing 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180042738A (ko) * 2016-10-18 2018-04-26 삼성전자주식회사 영상 처리 방법 및 장치
KR20180080517A (ko) * 2017-01-04 2018-07-12 삼성전자주식회사 그래픽스 처리 방법 및 시스템

Also Published As

Publication number Publication date
US20160125649A1 (en) 2016-05-05

Similar Documents

Publication Publication Date Title
KR20160051155A (ko) 렌더링 장치 및 방법
JP6709038B2 (ja) グラフィックス・パイプラインを遂行する方法及びコンピューティング装置
KR101925292B1 (ko) 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정
KR101868200B1 (ko) 타일 기반 렌더링에서의 테셀레이션
US9202303B2 (en) System and method for compositing path color in path rendering
CN105574931B (zh) 一种电子地图道路绘制方法及装置
EP3129973A1 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
TW201033937A (en) Discarding of vertex points during two-dimensional graphics rendering using three-dimensional graphics hardware
KR102150993B1 (ko) 쉘 메쉬에 기초한 최적화된 다각형을 형성하기 위한 방법
KR20160130629A (ko) 양안 시차 영상에 대한 렌더링 방법 및 장치
CN111557021B (zh) 加速遮挡运算
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
CN103021020A (zh) 一种基于多光源的3d渲染方法
CN105550973B (zh) 图形处理单元、图形处理系统及抗锯齿处理方法
JP2016510473A (ja) デプスマップのコンテンツを強化するための方法およびデバイス
US10074211B2 (en) Method and device for establishing the frontier between objects of a scene in a depth map
US20160148426A1 (en) Rendering method and apparatus
KR20180071767A (ko) 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치
KR20170040698A (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
CN111145329A (zh) 模型渲染方法、系统及电子装置
KR20160032935A (ko) 렌더링 데이터를 처리하는 방법, 장치 및 기록매체
KR102644276B1 (ko) 그래픽 처리 장치 및 방법
EP2803040A1 (en) Method for rendering an image synthesis and corresponding device
KR20170031480A (ko) 렌더링 장치 및 방법
US20150054842A1 (en) Image shader using two-tiered lookup table for implementing style attribute references

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid