KR20170025099A - 렌더링 방법 및 장치 - Google Patents
렌더링 방법 및 장치 Download PDFInfo
- Publication number
- KR20170025099A KR20170025099A KR1020150121034A KR20150121034A KR20170025099A KR 20170025099 A KR20170025099 A KR 20170025099A KR 1020150121034 A KR1020150121034 A KR 1020150121034A KR 20150121034 A KR20150121034 A KR 20150121034A KR 20170025099 A KR20170025099 A KR 20170025099A
- Authority
- KR
- South Korea
- Prior art keywords
- order
- rasterization
- primitive
- texture
- directionality
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
Abstract
렌더링 수행 방법에 있어서, 플렉서블한 래스터화 순서에 따라, 프리미티브에 포함된 프래그먼트들에 대한 래스터화를 수행하는 렌더링 방법 및 장치를 개시한다.
Description
렌더링 방법 및 장치에 관한 것이다.
‘3차원 그래픽스’란 물체의 모습을 평면도가 아닌 입체도로서 디스플레이에 표현하는 기술을 말하는 것으로서, 특수 효과를 이용한 영화, 지질해석, 컴퓨터 지원 설계(CAD)에 의한 건축 설계나 자동차 설계 시 활용되는 입체 화상을 디스플레이하기 위해 주로 활용된다. 최근에는 이러한 3차원 그래픽스를 이용하여 게임 화면을 구성하기도 한다.
이와 같이 입체감 있는 3차원 영상을 표현하기 위해 3차원 그래픽스 시스템은 수많은 점들로 이루어진 오브젝트들을 폴리곤(Polygon)(예컨대, 트라이앵글(Triangle) 등)으로 분해하고, 래스터화(Rasterization)를 통해 각 폴리곤 내에 포함된 픽셀을 찾아 인터폴레이션한 후 렌더링을 수행한다. 이를 위해 3차원 그래픽스 시스템은 트라이앵글 내부의 픽셀에 대하여 래스터화(Rasterization)를 수행한다.
일 실시 예는 렌더링을 수햄함에 있어서, 렌더링 효율을 높일 수 있도록 플랙서블(flexible)한 래스터화를 수행하는 방법 및 장치를 개시한다.
제 1 측면에 따른, 렌더링 방법은 렌더링 수행 방법에 있어서, 프리미티브(primitive)를 획득하고 상기 획득한 프리미티브에 포함된 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득하는 단계; 상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 단계; 및 상기 결정된 래스터화 순서에 따라 상기 프래그먼트들에 대한 래스터화를 수행하는 단계를 포함할 수 있다.
또한, 상기 프래그먼트 쉐이딩 순서는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 포함할 수 있다.
또한, 상기 래스터화 순서를 결정하는 단계는 복수의 기설정된 래스터화 순서 중 하나를 결정할 수 있다.
또한, 상기 기설정된 래스터화 순서는 Z-순서, N-순서 및 U-순서 중 적어도 하나를 포함할 수 있다.
또한, 상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 단계는 상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계; 및 상기 획득한 텍스쳐의 방향성에 기초하여 상기 래스터화 순서를 결정하는 단계를 포함 할 수 있다.
또한, 상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계는 상기 프리미티브에 대응되는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지 획득하여 상기 텍스쳐의 방향성을 획득 할 수 있다.
또한, 상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계는 상기 프리미티브를 구성하는 버텍스들의 좌표 값을 이용하여 상기 텍스쳐의 방향성을 획득 할 수 있다.
또한, 상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계는 상기 프리미티브의 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 좌표 차이 값을 이용하여 상기 방향성을 획득 할 수 있다.
또한, 상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 단계는 픽셀 값 또는 프래그먼트의 값을 획득하기 위해 메모리에 저장된 텍스쳐 데이터에 접근하는 순서에 따라 상기 래스터화 순서를 결정 할 수 있다.
또한, 제 2 측면에 따른, 렌더링 장치는 프리미티브(primitive)를 획득하고 상기 획득한 프리미티브에 포함된 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득하고, 상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 순서 결정부; 상기 결정된 래스터화 순서에 따라 상기 프래그먼트들에 대한 래스터화를 수행하는 래스터라이저를 포함 할 수 있다.
또한, 상기 프래그먼트 쉐이딩 순서는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 포함 할 수 있다.
또한, 상기 순서 결정부는 복수의 기설정된 래스터화 순서 중 하나를 결정 할 수 있다.
또한, 상기 기설정된 래스터화 순서는 Z-순서, N-순서 및 U-순서 중 적어도 하나를 포함할 수 있다.
또한, 상기 순서 결정부는 상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하고, 상기 획득한 텍스쳐의 방향성에 기초하여 상기 래스터화 순서를 결정할 수 있다.
또한, 상기 순서 결정부는 상기 프리미티브에 대응되는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지 획득하여 상기 텍스쳐의 방향성을 획득할 수 있다.
또한, 상기 순서 결정부는 상기 프리미티브를 구성하는 버텍스들의 좌표 값을 이용하여 상기 텍스쳐의 방향성을 획득 할 수 있다.
또한, 상기 순서 결정부는 상기 프리미티브의 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 좌표 차이 값을 이용하여 상기 방향성을 획득할 수 있다.
또한, 상기 순서 결정부는 픽셀 값 또는 프래그먼트의 값을 획득하기 위해 메모리에 저장된 텍스쳐 데이터에 접근하는 순서에 따라 상기 래스터화 순서를 결정할 수 있다.
또한, 제 1 측면에 따른, 렌더링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
도 1은 일 실시 예에 따른 그래픽 처리 장치를 나타낸 도면이다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
도 3은 일 실시 예에 따른 렌더링 장치의 구성과 동작을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 렌더링 장치가 프래그먼트 쉐이딩 순서를 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시 예에 따른 렌더링 장치가 메모리에 저장된 데이터에 접근하는 순서를 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시 예에 따른 렌더링 장치가 텍스쳐의 방향성을 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
도 7a는 일 실시 예에 따른 렌더링 장치가 래스터화를 수행하는 순서를 설명하기 위한 도면이다.
도 7b는 일 실시 예에 따른 렌더링 장치가 렌더링을 위해 접근하는 메모리를 설명하기 위한 도면이다.
도 8a는 일 실시 예에 따른 렌더링 장치가 텍스쳐 방향이 변경된 경우 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 8b는 일 실시 예에 따른 렌더링 장치가 텍스쳐 방향이 변경된 경우 N-순서(N-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따른 렌더링 장치가 텍스쳐 방향성을 결정하는 방법을 설명하기 위한 도면이다.
도 10a는 일 실시 예에 따른 렌더링 장치가 왼쪽에서 오른쪽 방향으로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10b는 일 실시 예에 따른 렌더링 장치가 위에서 아래쪽 방향으로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10c는 일 실시 예에 따른 렌더링 장치가 Z-순서(Z-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10d는 일 실시 예에 따른 렌더링 장치가 N-순서(N-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10e는 일 실시 예에 따른 렌더링 장치가 U-순서(U-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
도 3은 일 실시 예에 따른 렌더링 장치의 구성과 동작을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 렌더링 장치가 프래그먼트 쉐이딩 순서를 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시 예에 따른 렌더링 장치가 메모리에 저장된 데이터에 접근하는 순서를 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시 예에 따른 렌더링 장치가 텍스쳐의 방향성을 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
도 7a는 일 실시 예에 따른 렌더링 장치가 래스터화를 수행하는 순서를 설명하기 위한 도면이다.
도 7b는 일 실시 예에 따른 렌더링 장치가 렌더링을 위해 접근하는 메모리를 설명하기 위한 도면이다.
도 8a는 일 실시 예에 따른 렌더링 장치가 텍스쳐 방향이 변경된 경우 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 8b는 일 실시 예에 따른 렌더링 장치가 텍스쳐 방향이 변경된 경우 N-순서(N-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따른 렌더링 장치가 텍스쳐 방향성을 결정하는 방법을 설명하기 위한 도면이다.
도 10a는 일 실시 예에 따른 렌더링 장치가 왼쪽에서 오른쪽 방향으로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10b는 일 실시 예에 따른 렌더링 장치가 위에서 아래쪽 방향으로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10c는 일 실시 예에 따른 렌더링 장치가 Z-순서(Z-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10d는 일 실시 예에 따른 렌더링 장치가 N-순서(N-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
도 10e는 일 실시 예에 따른 렌더링 장치가 U-순서(U-order)로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시 예를 상세히 설명하기로 한다. 하기 실시 예는 기술적 내용을 구체화하기 위한 것일 뿐 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시 예로부터 해당 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 실시 예들은 렌더링 방법 및 장치에 관한 것으로서 이하의 실시 예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일 실시 예에 따른 그래픽 처리 장치(100)를 나타낸 도면이다. 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 관련 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참조하면, 그래픽 처리 장치(100)는 렌더링 장치 (110), 쉐이더 코어(shader core)(120), 텍스쳐 처리 장치(texture processing unit)(130), 픽셀 처리 장치(pixel processing unit)(140), 타일 버퍼(tile buffer)(150) 등을 포함할 수 있다. 그래픽 처리 장치(100)는 버스(BUS)(300)를 통하여 외부의 메모리(200)와 데이터를 송수신할 수 있다.
도 1에 도시된 그래픽 처리 장치(100)는 3차원 그래픽스를 처리하는 장치로서, 타일에 기초한 렌더링(tile based rendering, TBR) 방식을 사용할 수 있다. 다시 말해서, 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 3차원 그래픽스를 생성하기 위해서, 일정한 크기로 분할된 복수 개의 타일들을 렌더링 장치(110), 쉐이더 코어(120), 픽셀 처리 장치(140)를 거치도록 하여, 처리 결과를 타일 버퍼(150)에 저장할 수 있다. 그래픽 처리 장치(100)는 프레임을 구성하는 모든 타일들에 대해서, 렌더링 장치(110), 쉐이더 코어(120), 및 픽셀 처리 장치(140)로 구성되는 채널을 복수 개 이용하여, 병렬 처리할 수 있다. 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 복수 개의 타일들이 처리되면, 타일 버퍼(150)에 저장된 처리 결과를 메모리(200)의 프레임 버퍼(미도시)로 전송할 수 있다.
렌더링 장치(110)는 기하 변환 과정을 거쳐 버텍스 쉐이더로부터 생성된 프리미티브에 대해 래스터화(rasterization)를 수행할 수 있다.
쉐이더 코어(120)는 렌더링 장치(110)로부터 래스터화된 프리미티브를 전달받아, 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 래스터화를 거쳐 생성된 프리미티브의 프래그먼트들을 포함하는 타일들에 대하여, 타일을 구성하는 모든 픽셀들의 색상을 결정하는 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 픽셀 쉐이딩 과정에서 입체적이고 현실감있는 3차원 그래픽스를 생성하기 위해 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다.
쉐이더 코어(120)는 픽셀 쉐이더(pixel shader)를 포함할 수 있다. 또한 쉐이더 코어(120)는 버텍스 쉐이더(vertex shader)를 더 포함한 형태이거나, 버텍스 쉐이더와 픽셀 쉐이더가 통합된 형태의 통합 쉐이더일 수도 있다. 쉐이더 코어(120)가 버텍스 쉐이더의 기능을 수행할 수 있는 경우, 오브젝트를 나타내는 프리미티브(primitive)를 생성하여 렌더링 장치(110)에 전달할 수 있다.
쉐이더 코어(120)가 원하는 픽셀에 대응되는 픽셀 값을 전달해 줄 것을 텍스쳐 처리 장치(130)에 요청하면, 텍스쳐 처리 장치(130)는 미리 준비된 텍스쳐를 처리하여 생성된 픽셀 값을 전달해 줄 수 있다. 텍스쳐는 텍스쳐 처리 장치(130) 내부 또는 외부의 소정의 공간 또는 그래픽 처리 장치(100) 외부의 메모리(200)에 저장되어 있을 수 있다. 텍스쳐 처리 장치(130)는 쉐이더 코어(120)에서 요청한 픽셀 값을 생성하는데 이용되는 텍스쳐가 텍스쳐 처리 장치(130) 내부의 소정의 공간에 없는 경우, 텍스쳐 처리 장치(130) 외부의 공간 또는 메모리(200)로부터 텍스쳐를 가져와 사용할 수 있다.
픽셀 처리 장치(140)는 하나의 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등의 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 모든 픽셀 값들을 결정할 수 있다.
타일 버퍼(150)는 픽셀 처리 장치(140)로부터 전달된 하나의 타일에 해당하는 모든 픽셀 값들을 저장할 수 있다. 하나의 프레임을 구성하는 모든 타일들에 대한 그래픽 처리 과정이 완료되면, 타일 버퍼(150)에 저장된 처리 결과가 메모리(200)의 프레임 버퍼로 전달될 수 있다.
도 2는 그래픽 처리 장치(100)에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
3차원 그래픽스를 처리하는 과정은 크게 기하변환, 래스터화, 픽셀 쉐이딩의 3단계로 나눌 수 있으며, 이하 도 2를 참조하여, 보다 세부적인 과정에 대해 설명한다. 도 2를 참조하면, 단계 11 내지 단계 18을 통해 3차원 그래픽스를 처리하는 과정을 나타낸다.
단계 11은 버텍스들(vertices)을 생성하는 단계이다. 버텍스들은 3차원 그래픽스에 포함된 오브젝트(object)들을 나타내기 위해 생성된다.
단계 12는 생성된 버텍스들을 쉐이딩(shading)하는 단계이다. 버텍스 쉐이더는 단계 11에서 생성된 버텍스들의 위치를 지정함으로써, 버텍스들에 대한 쉐이딩을 수행할 수 있다.
단계 13은 프리미티브들을 생성하는 단계이다. 프리미티브는 적어도 하나의 버텍스를 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 일 예로서, 프리미티는 버텍스들을 연결하여 형성된 삼각형으로 나타낼 수 있다.
단계 14는 프리미티브를 래스터화(rasterization)하는 단계이다. 프리미티브를 래스터화하는 것은 프리미티브를 프래그먼트들(fragments)로 분할하는 것을 의미한다. 프래그먼트는 프리미티브에 대해 그래픽 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터화 단계에서 버텍스와 버텍스 사이의 프래그먼트들을 생성함으로써, 3차원 그래픽스에 대한 그래픽 처리를 수행할 수 있도록 한다.
단계 15는 픽셀을 쉐이딩하는 단계를 나타낸다. 래스터화에 의해 생성된, 프리미티브를 구성하는 프래그먼트들은 타일을 구성하는 픽셀들이 될 수 있다. 당해 분야에서, 프래그먼트와 픽셀이란 용어는 경우에 따라 혼용해서 사용되기도 한다. 예를 들어, 픽셀 쉐이더는 프래그먼트 쉐이더라고 부를 수 있다. 일반적으로, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프래그먼트라고 부르고, 이후, 픽셀 쉐이딩부터의 그래픽 처리의 기본 단위를 픽셀이라 부를 수 있다. 픽셀 쉐이딩에서는 픽셀의 색을 결정할 수 있다.
단계 16은 픽셀의 색을 결정하기 위한 텍스쳐링(texturing) 단계를 나타낸다. 텍스쳐링은 미리 준비된 이미지인 텍스쳐를 이용하여 픽셀의 색을 결정하는 과정이다. 실세계의 다양한 색상과 패턴의 모습을 표현하기 위해서 각각의 픽셀의 색상을 계산하여 결정하는 것은 그래픽 처리에 필요한 데이터 연산량과 그래픽 처리 시간을 증가시키므로, 미리 준비된 텍스쳐를 이용하여 픽셀의 색상을 결정하는 것이다. 예를 들어, 오브젝트의 표면 색상을 텍스쳐라는 별도의 2차원 영상으로 저장하고, 오브젝트의 화면상의 위치 및 크기 등에 따라 저장된 텍스쳐를 확대 및 축소하거나, 다양한 해상도를 갖는 텍스쳐들을 이용하여 텍셀 값들을 혼합함으로써, 픽셀의 색상을 결정할 수 있다.
보다 구체적으로, 픽셀 쉐이딩 과정에서 더욱 빠른 3차원 그래픽스 처리를 위해, 미리 준비된 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다. 이때, 오브젝트의 크기에 적응적으로 대응할 수 있도록, 서로 다른 해상도를 가지는 복수 개의 텍스쳐들을 미리 준비해놓고, 이들을 조합하여 픽셀 값을 생성할 수도 있다. 이때, 서로 다른 해상도를 가지는, 미리 준비된 텍스쳐를 밉맵(mipmap)이라고 한다. 예를 들어, 미리 준비된 두 개의 밉맵들의 중간 해상도를 가지는 오브젝트의 픽셀 값들을 생성하기 위해서, 두 개의 밉맵들로부터 오브젝트에 대응되는 위치의 텍셀(texel) 값들을 추출하여 이들을 필터링함으로써, 오브젝트를 구성하는 픽셀 값들을 생성할 수 있다.
단계 17은 테스트 및 믹싱(testing and mixing) 단계를 나타낸다. 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 픽셀 값들을 결정할 수 있다. 이와 같은 과정을 거쳐 생성된 복수 개의 타일들을 믹싱하여, 하나의 프레임에 해당하는 3차원 그래픽스를 생성할 수 있다.
단계 18은 11 내지 단계 17을 통해 생성된 프레임을 프레임 버퍼에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계를 나타낸다.
도 3은 일 실시 예에 따른 렌더링 장치(110)의 구성과 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 렌더링 장치(110)는 순서 결정부(310) 및 래스터라이저(320)를 포함한다. 도 3에 도시된 렌더링 장치(110)에는 본 실시 예와 관련된 구성 요소들만이 도시되어 있다. 따라서, 도 3에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
또한, 도 3에 도시된 순서 결정부(310) 및 래스터라이저(320)는 각각 독립적인 장치로 존재할 수도 있음을 본 발명과 관련된 기술 분야에서 통상의 지식을 가진 자라면 알 수 있다.
또한, 도 3에 도시된 순서 결정부(310) 및 래스터라이저(320)는 하나 또는 복수 개의 프로세서에 해당할 수 있다. 프로세서는 다수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서와 이 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 또한, 다른 형태의 하드웨어로 구현될 수도 있음을 본 실시 예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
일 실시 예에 따른 순서 결정부(310)는 프리미티브(primitive)를 획득할 수 있다.
프리미티브는 적어도 하나의 버텍스를 이용하여 형성되는 점, 선, 다각형일 수 있다. 예를 들면 프리미티브는 버텍스들을 연결하여 형성된 삼각형일 수 있다.
예를 들면, 순서 결정부(310)는 프리미티브 생성부(미도시)로부터 프리미티브를 획득할 수 있다. 일 실시 예에 따른 프리미티브 생성부는 뷰포트 매핑(Viewport mapping)에 의해 정해진 버텍스들을 입력받아 프리미티브를 생성할 수 있다.
일 실시 예에 따른 순서 결정부(310)는 획득한 프리미티브에 포함된 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득할 수 있다. 일 실시 예에 따른 프래그먼트는 프리미티브를 구성하는 그래픽 처리의 기본 단위를 의미할 수 있으며, 프래그먼트와 픽셀이란 용어는 경우에 따라 혼용되어 사용될 수 있다.
일 실시 예에 따른 프래그먼트 쉐이딩은 쉐이더 코어(120)에서 수행될 수 있다. 일 실시 예에 따른 쉐이더 코어(120)는 프리미티브에 포함되는 프래그먼트들 또는 픽셀들의 값을 획득 하는 등 프래그먼트 쉐이딩을 수행할 수 있다.
예를 들면, 쉐이더 코어(120)는 쉐이더 프로그래머(programmer)에 의해 구현된 코드를 수행함으로써 생성된 프래그먼트들 각각에 대해 하나 이상의 효과를 적용할 수 있다. 일 예로, 프래그먼트 쉐이딩을 수행하는 쉐이더 코어(120)는 텍스쳐 매핑(mapping) 및 빛의 반사 등을 계산함으로써 프래그먼트의 색상을 계산하거나, 디스카드(discard) 명령어를 사용함으로써 특정한 프래그먼트를 제거할 수 있다.
일 실시 예에 따른 순서 결정부(310)는 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득할 수 있다.
예를 들면, 순서 결정부(310)는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서에 대한 정보를 획득할 수 있다. 예를 들면, 순서 결정부(310)는 픽셀 값 또는 프래그먼트의 값을 획득하기 위해 메모리에 저장된 텍스쳐 데이터에 접근하는 순서에 따라 래스터화 순서를 결정할 수 있다. 예를 들면, 순서 결정부(310)는 렌더링 과정에서 DRAM(Dynamic Random Access Memory)에 접근할 메모리 주소에 대한 순서를 획득할 수 있다. 일 실시 예에 따른 프래그먼트 쉐이딩 순서는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 포함하는 개념일 수 있다.
다른 예로, 순서 결정부(310)는 렌더링 대상이 되는 프리미티브에 대응되는 텍스쳐의 방향성을 획득하고, 획득한 텍스쳐의 방향성에 기초하여 래스터화 순서를 결정할 수 있다. 일 실시 예에 따른 프래그먼트 쉐이딩 순서는 텍스쳐 방향성에 따른 프래그먼트 쉐이딩 순서를 의미할 수 있다.
일 실시 예에 따른 프래그먼트 쉐이딩 순서는 텍스쳐의 방향성에 기초하여 결정될 수 있다. 예를 들면, 제1 데이터, 제2 데이터 순서로 데이터가 저장된 DRAM에 접근하는 경우에 대해 설명한다. 그래픽 처리 장치(100)는 텍스쳐의 방향이 제1 방향인 경우, 좌측 프래그먼트는 제1 데이터, 우측 프래그먼트는 제2 데이터를 이용하여 처리할 수 있고, 텍스쳐의 방향이 제2 방향인 경우, 좌측 프래그먼트는 제2 데이터, 우측 프래그먼트는 제1 데이터를 이용하여 처리할 수 있다. 이 경우 프래그먼트 쉐이딩 순서는 텍스쳐의 방향이 제1 방향인 경우 왼쪽에서 오른쪽 순서이고, 텍스쳐의 방향이 제2 방향인 경우 오른쪽에서 왼쪽의 순서일 수 있다. 또한 일 실시 예에 따른 순서 결정부(310)는 텍스쳐의 방향성에 기초하여 결정된 프래그먼트 쉐이딩 순서에 따라 래스터화 순서를 결정할 수 있다.
일 실시 예에 따른 순서 결정부(310)는 프리미티브에 대응되는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지 획득하여 텍스쳐의 방향성을 획득하고, 획득한 텍스쳐의 방향성에 기초하여 래스터화 순서를 결정할 수 있다. 예를 들면, 순서 결정부(310)는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지를 결정하고, 텍스쳐가 가로 방향성인 경우 래스터화 순서를 Z-순서로 결정하고, 세로 방향성인 경우 래스터화 순서를 N-순서로 결정할 수 있다. 다른 예로, 순서 결정부(310)는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지를 결정하고, 텍스쳐가 가로 방향성인 경우 래스터화 순서를 좌측에서 우측 방향으로 결정하고, 세로 방향성인 경우 래스터화 순서를 위에서 아래 방향으로 결정할 수 있다.
일 실시 예에 따른 순서 결정부(310)는 프리미티브를 구성하는 버텍스들의 좌표 값을 이용하여 텍스쳐의 방향성을 획득할 수 있다. 예를 들면, 순서 결정부(310)는 프리미티브의 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 좌표 차이 값을 이용하여 방향성을 획득할 수 있다. 일 예로, 순서 결정부(310)는 프리미티브의 가장 왼쪽에 위치한 버텍스와 가장 오른 쪽에 위치한 버텍스를 선택하여 선택된 버텍스들간의 X축 좌표 차이인 ΔU와 Y축 좌표 차이인 ΔV를 획득하고, ΔU와 ΔV의 크기를 비교하여, ΔU가 ΔV보다 큰 경우 가로측 방향성, ΔV가 ΔU보다 큰 경우 세로측 방향성으로 결정할 수 있다. 본 실시 예에 대해서는 도 9에서 구체적으로 설명한다.
일 실시 예에 따른 순서 결정부(310)는 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정할 수 있다.
본 명세서에서 사용된 바와 같이, "래스터화된다"라는 용어는 컬러 값 또는 벡터를 래스터 형식으로 변환하는 임의의 기술을 지칭할 수 있다. 구체적으로 프리미티브를 래스터화하는 것은 프리미티브를 프래그먼트들(fragments)로 분할하는 것을 의미할 수 있다. 예를 들면, 렌더링 장치(110)는 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐(texture) 좌표 등을 보간 함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 프래그먼트는 프리미티브에 대해 그래픽 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터화 단계에서 버텍스와 버텍스 사이의 프래그먼트들을 생성함으로써, 3차원 그래픽스에 대한 그래픽 처리를 수행할 수 있도록 한다.
예를 들면, 순서 결정부(310)가 획득한 프래그먼트 쉐이딩 순서가 프리미티브의 좌에서 우측 방향인 경우, 일 실시 예에 따른 순서 결정부(310)는 좌에서 우측 방향으로 래스터화 순서를 결정할 수 있다.
다른 예로, 순서 결정부(310)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 Z-순서인 경우, Z-순서를 래스터화 순서로 결정할 수 있다. Z-순서란 좌상단, 우상단, 좌하단, 우하단 순서를 의미할 수 있다.
다른 예로, 순서 결정부(310)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 N-순서인 경우, N-순서를 래스터화 순서로 결정할 수 있다. N-순서란 좌하단, 좌상단, 우하단, 우상단 순서를 의미할 수 있다.
다른 예로, 순서 결정부(310)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 U-순서인 경우, U-순서를 래스터화 순서로 결정할 수 있다. U-순서란 좌상단, 좌하단, 우하단, 우상단 순서를 의미할 수 있다.
일 실시 예에 따른 순서 결정부(310)는 획득한 프래그먼트 쉐이딩 순서에 대응하도록 복수개의 기설정된 래스터화 순서 중 하나를 결정할 수 있다.
일 실시 예에 따른 순서 결정부(310)는 좌에서 우방향의 순서, 위에서 아래 방향의 순서, Z-순서, N-순서 및 U-순서 중 적어도 하나 중에서 프래그먼트 쉐이딩 순서에 대응하는 래스터화 순서를 결정할 수 있다.
예를 들면, 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서에 대응 되는 순서가 기설정된 래스터화 순서인 좌에서 우방향의 순서, 위에서 아래 방향의 순서, Z-순서, N-순서 및 U-순서 중에서 Z-순서인 경우, 순서 결정부(310)는 Z-순서를 래스터화 순서로 결정할 수 있다.
일 실시 예에 따른 래스터라이저(320)는 순서 결정부(310)에서 결정된 래스터화 순서에 따라 프래그먼트들에 대한 래스터화를 수행할 수 있다.
예를 들면, 순서 결정부(310)에서 결정된 래스터화 순서가 좌에서 우측 방향인 경우, 일 실시 예에 따른 래스터라이저(320)는 좌에서 우측 방향으로 래스터화를 수행할 수 있다. 일 예로, 일 실시 예에 따른 래스터라이저(320)는 좌에서 우측 방향으로 프리미티브를 하나 이상의 프래그먼트로 분할할 수 있다. 다른 예로, 일 실시 예에 따른 래스터라이저(320)는 좌에서 우측 방향으로 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표 등을 보간함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 다른 예로, 일 실시 예에 따른 래스터라이저(320)는 좌에서 우측 방향으로 프리미티브 내에 포함된 픽셀 또는 프래그먼트를 획득할 수 있다.
다른 예로, 순서 결정부(310)에서 결정된 래스터화 순서가 Z 방향인 경우, 일 실시 예에 따른 래스터라이저(320)는 Z 방향으로 래스터화를 수행할 수 있다.
다른 예로, 순서 결정부(310)에서 결정된 래스터화 순서가 N 방향인 경우, 일 실시 예에 따른 래스터라이저(320)는 N 방향으로 래스터화를 수행할 수 있다.
다른 예로, 순서 결정부(310)에서 결정된 래스터화 순서가 U 방향인 경우, 일 실시 예에 따른 래스터라이저(320)는 U 방향으로 래스터화를 수행할 수 있다.
도 4는 일 실시 예에 따른 렌더링 장치(110)가 프래그먼트 쉐이딩 순서를 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
단계 S410에서 일 실시 예에 따른 렌더링 장치(110)는 프리미티브를 획득한다.
프리미티브는 적어도 하나의 버텍스를 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 일 예로서, 프리미티는 버텍스들을 연결하여 형성된 삼각형으로 나타낼 수 있다. 프리미티브는 렌더링 장치(110)의 외부로부터 수신될 수 있다. 예를 들면 프리미티브 생성부(미도시)에서 생성된 프리미티브가 렌더링 장치(110)에서 수신될 수 있다. 일 실시 예에 따른 프리미티브 생성부는 뷰포트 매핑(Viewport mapping)에 의해 정해진 버텍스들을 입력받아 프리미티브를 생성할 수 있다.
단계 S420에서 일 실시 예에 따른 렌더링 장치(110)는 단계 S410에서 획득한 프리미티브에 포함된 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득한다.
일 실시 예에 따른 프래그먼트는 프리미티브를 구성하는 그래픽 처리의 기본 단위를 의미할 수 있으며, 프래그먼트와 픽셀이란 용어는 경우에 따라 혼용되어 사용될 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득할 수 있다.
예를 들면, 렌더링 장치(110)는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서에 대한 정보를 획득할 수 있다. 예를 들면, 렌더링 장치(110)는 픽셀 값 또는 프래그먼트의 값을 획득하기 위해 메모리에 저장된 텍스쳐 데이터에 접근하는 순서에 따라 래스터화 순서를 결정할 수 있다. 예를 들면, 렌더링 장치(110)는 렌더링 과정에서 DRAM(Dynamic Random Access Memory)에 접근할 메모리 주소에 대한 순서를 획득할 수 있다. 일 실시 예에 따른 프래그먼트 쉐이딩 순서는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 포함하는 개념일 수 있다.
다른 예로, 렌더링 장치(110)는 렌더링 대상이 되는 프리미티브에 대응되는 텍스쳐의 방향성을 획득하고, 획득한 텍스쳐의 방향성에 기초하여 래스터화 순서를 결정할 수 있다. 일 실시 예에 따른 프래그먼트 쉐이딩 순서는 텍스쳐 방향성에 따른 프래그먼트 쉐이딩 순서를 의미할 수 있다.
일 실시 예에 따른 프래그먼트 쉐이딩 순서는 텍스쳐의 방향성에 기초하여 결정될 수 있다. 예를 들면, 제1 데이터, 제2 데이터 순서로 데이터가 저장된 DRAM에 접근하는 경우에 대해 설명한다. 그래픽 처리 장치(100)는 텍스쳐의 방향이 제1 방향인 경우, 좌측 프래그먼트는 제1 데이터, 우측 프래그먼트는 제2 데이터를 이용하여 처리할 수 있고, 텍스쳐의 방향이 제2 방향인 경우, 좌측 프래그먼트는 제2 데이터, 우측 프래그먼트는 제1 데이터를 이용하여 처리할 수 있다. 이 경우 프래그먼트 쉐이딩 순서는 텍스쳐의 방향이 제1 방향인 경우 왼쪽에서 오른쪽 순서이고, 텍스쳐의 방향이 제2 방향인 경우 오른쪽에서 왼쪽의 순서일 수 있다. 또한 일 실시 예에 따른 렌더링 장치(110)는 텍스쳐의 방향성에 기초하여 결정된 프래그먼트 쉐이딩 순서에 따라 래스터화 순서를 결정할 수 있다.
단계 S430에서 일 실시 예에 따른 렌더링 장치(110)는 단계 S430에서 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정한다.
본 명세서에서 사용된 바와 같이, "래스터화된다"라는 용어는 컬러 값 또는 벡터를 래스터 형식으로 변환하는 임의의 기술을 지칭할 수 있다. 구체적으로 프리미티브를 래스터화하는 것은 프리미티브를 프래그먼트들(fragments)로 분할하는 것을 의미할 수 있다. 예를 들면, 렌더링 장치(110)는 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐(texture) 좌표 등을 보간 함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 프래그먼트는 프리미티브에 대해 그래픽 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터화 단계에서 버텍스와 버텍스 사이의 프래그먼트들을 생성함으로써, 3차원 그래픽스에 대한 그래픽 처리를 수행할 수 있도록 한다.
예를 들면, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서가 프리미티브의 좌에서 우측 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 래스터화 순서를 결정할 수 있다.
다른 예로, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 Z-순서인 경우, Z-순서를 래스터화 순서로 결정할 수 있다. Z-순서란 좌상단, 우상단, 좌하단, 우하단 순서를 의미할 수 있다.
다른 예로, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 N-순서인 경우, N-순서를 래스터화 순서로 결정할 수 있다. N-순서란 좌하단, 좌상단, 우하단, 우상단 순서를 의미할 수 있다.
다른 예로, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 U-순서인 경우, U-순서를 래스터화 순서로 결정할 수 있다. U-순서란 좌상단, 좌하단, 우하단, 우상단 순서를 의미할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 획득한 프래그먼트 쉐이딩 순서에 대응하도록 복수개의 기설정된 래스터화 순서 중 하나를 결정할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 좌에서 우방향의 순서, 위에서 아래 방향의 순서, Z-순서, N-순서 및 U-순서 중 적어도 하나 중에서 프래그먼트 쉐이딩 순서에 대응하는 래스터화 순서를 결정할 수 있다.
예를 들면, 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서에 대응 되는 순서가 기설정된 래스터화 순서인 좌에서 우방향의 순서, 위에서 아래 방향의 순서, Z-순서, N-순서 및 U-순서 중에서 Z-순서인 경우, 렌더링 장치(110)는 Z-순서를 래스터화 순서로 결정할 수 있다.
단계 S440에서 일 실시 예에 따른 렌더링 장치(110)는 단계 S430에서 결정된 래스터화 순서에 따라 프래그먼트들에 대한 래스터화를 수행한다.
예를 들면, 렌더링 장치(110)에서 결정된 래스터화 순서가 좌에서 우측 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 래스터화를 수행할 수 있다. 일 예로, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 프리미티브를 하나 이상의 프래그먼트로 분할할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표 등을 보간함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 프리미티브 내에 포함된 픽셀 또는 프래그먼트를 획득할 수 있다.
다른 예로, 렌더링 장치(110)에서 결정된 래스터화 순서가 Z 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 Z 방향으로 래스터화를 수행할 수 있다.
다른 예로, 렌더링 장치(110)에서 결정된 래스터화 순서가 N 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 N 방향으로 래스터화를 수행할 수 있다.
다른 예로, 렌더링 장치(110)에서 결정된 래스터화 순서가 U 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 U 방향으로 래스터화를 수행할 수 있다.
도 5는 일 실시 예에 따른 렌더링 장치(110)가 메모리에 저장된 데이터에 접근하는 순서를 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
단계 S510 및 단계 S540은 각각 단계 S410 및 단계 S440에 대응되므로 전체적인 설명을 간단히 하기 위해 상세한 설명을 생략한다.
단계 S520에서 일 실시 예에 따른 렌더링 장치(110)는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 획득한다.
일 실시 예에 따른 렌더링 장치(110)는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근할 수 있다. 예를 들면, 렌더링 장치(110)는 캐시 메모리에 저장된 데이터를 수신하여 렌더링을 수행할 수 있다.
렌더링 장치(110)가 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근할 때 메모리에 접근하는 순서가 결정될 수 있다. 예를 들면, 캐시 히트 확률을 높이는 방식으로 메모리 접근 순서가 결정될 수 있다. 예를 들면, 현재 캐시 메모리에 저장된 데이터를 우선 이용하는 방식으로 메모리 접근 순서가 결정될 수 있다. 현재 캐시 메모리에 저장된 데이터가 제1 픽셀 및 제2 픽셀에 대한 것이고, 현재 캐시 메모리에 저장되지 않은 데이터가 제3 픽셀 및 제4 픽셀에 대한 것인 경우, 메모리 접근 순서는 제1 픽셀의 데이터가 저장된 캐시 메모리의 주소 및 제2 픽셀의 데이터가 저장된 캐시 메모리의 주소에 대한 접근 순서가 제3 픽셀의 데이터가 저장된 메모리의 주소 및 제4 픽셀의 데이터가 저장된 메모리의 주소에 대한 접근 순서보다 앞설 수 있다.
일 실시 예에 따른 그래픽 처리 장치(100)는 캐시 메모리 또는 DRAM에 저장된 데이터에 우선 순위를 부여하는 방식으로 데이터 접근 순서를 결정하고, 결정된 접근 순서에 따라 프래그먼트 쉐이딩을 수행할 수 있다. 이 경우, 결정된 접근 순서를 렌더링 장치(110)가 획득할 수 있다.
일 실시 예에 따른 그래픽 처리 장치(100)는 캐시 메모리 또는 DRAM에 저장된 데이터 중 접근이 용이한 데이터에 우선 순위를 부여하는 방식으로 데이터 접근 순서를 결정하고, 결정된 접근 순서에 따라 프래그먼트 쉐이딩을 수행할 수 있다. 예를 들면, DRAM의 앞쪽 주소에 저장된 데이터에 뒤쪽 주소에 저장된 데이터보다 높은 우선 순위가 부여될 수 있다. 이 경우, 결정된 접근 순서를 렌더링 장치(110)가 획득할 수 있다.
단계 S530에서 일 실시 예에 따른 렌더링 장치(110)는 단계 S520에서 획득한 순서에 대응하도록 래스터화 순서를 결정한다.
예를 들면, 제1 픽셀에 대한 데이터에 접근하는 순서가 제2 픽셀에 대한 데이터에 접근하는 순서보다 앞설 경우, 렌더링 장치(110)는 제1 픽셀에 대한 래스터화를 제2 픽셀에 대한 래스터화보다 우선하여 수행할 수 있다.
다른 예로, 단계 S520에서 획득한 순서가 N-순서에 대응될 경우, 렌더링 장치(110)는 N-순서로 래스터화를 수행할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 픽셀 값 또는 프래그먼트의 값을 획득하기 위해 메모리에 저장된 텍스쳐 데이터에 접근하는 순서에 따라 래스터화 순서를 결정할 수 있다. 예를 들면, 렌더링 장치(110)는 렌더링 과정에서 DRAM(Dynamic Random Access Memory)에 접근할 메모리 주소에 대한 순서를 획득하고 획득한 순서에 따라 래스터화를 수행할 수 있다. 일 실시 예에 따른 프래그먼트 쉐이딩 순서는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 포함하는 개념일 수 있다.
다른 예로, 렌더링 장치(110)는 렌더링 대상이 되는 프리미티브에 대응되는 텍스쳐의 방향성을 획득하고, 획득한 텍스쳐의 방향성에 기초하여 래스터화 순서를 결정할 수 있다. 일 실시 예에 따른 프래그먼트 쉐이딩 순서는 텍스쳐 방향성에 따른 프래그먼트 쉐이딩 순서를 의미할 수 있다.
또한, 상술된 바와 같이 단계 S540에서는 단계 S530에서결정된 래스터화 순서에 따라 래스터화를 수행할 수 있다.
도 6은 일 실시 예에 따른 렌더링 장치(110)가 텍스쳐의 방향성을 이용하여 래스터화를 수행하는 방법을 설명하기 위한 흐름도이다.
단계 S610 및 단계 S640은 각각 단계 S410 및 단계 S440에 대응되므로 전체적인 설명을 간단히 하기 위해 상세한 설명을 생략한다.
단계 S620에서 일 실시 예에 따른 렌더링 장치(110)는 프리미티브에 대응되는 텍스쳐의 방향성을 획득한다.
일 실시 예에 따른 텍스쳐의 방향성은 기설정된 여러가지 방향 중 하나일 수 있다. 예를 들면, 텍스쳐의 방향성은 가로 방향 및 세로 방향 중 하나일 수 있다.
일 실시 예에 따른 텍스쳐의 방향성이란 프리미티브의 방향에 텍스쳐가 대응되는 방향을 의미할 수 있다.
단계 S630에서 일 실시 예에 따른 렌더링 장치(110)는 단계 S610에서 획득한 텍스쳐의 방향성에 기초하여 래스터화 순서를 결정한다.
일 실시 예에 따른 프래그먼트 쉐이딩 순서는 텍스쳐의 방향성에 기초하여 결정될 수 있다. 예를 들면, 제1 데이터, 제2 데이터 순서로 데이터가 저장된 DRAM에 접근하는 경우에 대해 설명한다. 그래픽 처리 장치(100)는 텍스쳐의 방향이 제1 방향인 경우, 좌측 프래그먼트는 제1 데이터, 우측 프래그먼트는 제2 데이터를 이용하여 처리할 수 있고, 텍스쳐의 방향이 제2 방향인 경우, 좌측 프래그먼트는 제2 데이터, 우측 프래그먼트는 제1 데이터를 이용하여 처리할 수 있다. 이 경우 프래그먼트 쉐이딩 순서는 텍스쳐의 방향이 제1 방향인 경우 왼쪽에서 오른쪽 순서이고, 텍스쳐의 방향이 제2 방향인 경우 오른쪽에서 왼쪽의 순서일 수 있다. 또한 일 실시 예에 따른 렌더링 장치(110)는 텍스쳐의 방향성에 기초하여 결정된 프래그먼트 쉐이딩 순서에 따라 래스터화 순서를 결정할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 프리미티브에 대응되는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지 획득하여 텍스쳐의 방향성을 획득하고, 획득한 텍스쳐의 방향성에 기초하여 래스터화 순서를 결정할 수 있다. 예를 들면, 렌더링 장치(110)는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지를 결정하고, 텍스쳐가 가로 방향성인 경우 래스터화 순서를 Z-순서로 결정하고, 세로 방향성인 경우 래스터화 순서를 N-순서로 결정할 수 있다. 다른 예로, 렌더링 장치(110)는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지를 결정하고, 텍스쳐가 가로 방향성인 경우 래스터화 순서를 좌측에서 우측 방향으로 결정하고, 세로 방향성인 경우 래스터화 순서를 위에서 아래 방향으로 결정할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 프리미티브를 구성하는 버텍스들의 좌표 값을 이용하여 텍스쳐의 방향성을 획득할 수 있다. 예를 들면, 렌더링 장치(110)는 프리미티브의 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 좌표 차이 값을 이용하여 방향성을 획득할 수 있다. 일 예로, 렌더링 장치(110)는 프리미티브의 가장 왼쪽에 위치한 버텍스와 가장 오른 쪽에 위치한 버텍스를 선택하여 선택된 버텍스들간의 X축 좌표 차이인 ΔU와 Y축 좌표 차이인 ΔV를 획득하고, ΔU와 ΔV의 크기를 비교하여, ΔU가 ΔV보다 큰 경우 가로측 방향성, ΔV가 ΔU보다 큰 경우 세로측 방향성으로 결정할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정할 수 있다. 또한 상술한 바와 같이 프래그먼트 쉐이딩 순서는 텍스쳐의 방향성에 기초하여 결정될 수 있다.
본 명세서에서 사용된 바와 같이, "래스터화된다"라는 용어는 컬러 값 또는 벡터를 래스터 형식으로 변환하는 임의의 기술을 지칭할 수 있다. 구체적으로 프리미티브를 래스터화하는 것은 프리미티브를 프래그먼트들(fragments)로 분할하는 것을 의미할 수 있다. 예를 들면, 렌더링 장치(110)는 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐(texture) 좌표 등을 보간 함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 프래그먼트는 프리미티브에 대해 그래픽 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터화 단계에서 버텍스와 버텍스 사이의 프래그먼트들을 생성함으로써, 3차원 그래픽스에 대한 그래픽 처리를 수행할 수 있도록 한다.
예를 들면, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서가 프리미티브의 좌에서 우측 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 래스터화 순서를 결정할 수 있다.
다른 예로, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 Z-순서인 경우, Z-순서를 래스터화 순서로 결정할 수 있다. Z-순서란 좌상단, 우상단, 좌하단, 우하단 순서를 의미할 수 있다.
다른 예로, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 N-순서인 경우, N-순서를 래스터화 순서로 결정할 수 있다. N-순서란 좌하단, 좌상단, 우하단, 우상단 순서를 의미할 수 있다.
다른 예로, 렌더링 장치(110)가 획득한 프래그먼트 쉐이딩 순서에 대응하는 방향이 U-순서인 경우, U-순서를 래스터화 순서로 결정할 수 있다. U-순서란 좌상단, 좌하단, 우하단, 우상단 순서를 의미할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 텍스쳐의 방향성에 대응하도록 복수개의 기설정된 래스터화 순서 중 하나를 결정할 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 좌에서 우방향의 순서, 위에서 아래 방향의 순서, Z-순서, N-순서 및 U-순서 중 적어도 하나 중에서 텍스쳐의 방향성에 대응하는 래스터화 순서를 결정할 수 있다.
예를 들면, 텍스쳐의 방향성에 대응 되는 순서가 기설정된 래스터화 순서인 좌에서 우방향의 순서, 위에서 아래 방향의 순서, Z-순서, N-순서 및 U-순서 중에서 Z-순서인 경우, 렌더링 장치(110)는 Z-순서를 래스터화 순서로 결정할 수 있다.
도 7a는 일 실시 예에 따른 렌더링 장치(110)가 래스터화를 수행하는 순서를 설명하기 위한 도면이다.
본 명세서에서, 원 안의 숫자는 픽셀 ID(identification)이고, 네모 안의 숫자는 생성된 순서를 나태낼 수 있다.
일 실시 예에 따른 렌더링 장치(110)가 획득한 래스터화 순서가 Z-순서인 경우에 대해서 설명한다.
렌더링 장치(110)가 획득한 래스터화 순서가 Z-순서인 경우, 렌더링 장치(110)는 Z-순서로 래스터화를 수행할 수 있다. 예를 들면, 렌더링 장치(110)는 제1 블록(710), 제2 블록(720), 제3 블록(730) 및 제4 블록(740) 순서로 래스터화를 수행할 수 있다. 또한, 각 블록 내에서도 Z-순서로 래스터화를 수행할 수 있다. 예를 들면, 제1 블록(710)에서 제0 픽셀, 제1 픽셀, 제2 픽셀, 제3 픽셀의 순서로 래스터화를 수행할 수 있다. 이 경우, 픽셀이 생성된 순서와 픽셀의 ID가 상호 대응될 수 있다.
도 7b는 일 실시 예에 따른 렌더링 장치(110)가 렌더링을 위해 접근하는 메모리를 설명하기 위한 도면이다.
렌더링을 위해 접근하는 메모리(700)는 DRAM일 수 있다. 또는 렌더링을 위해 접근하는 메모리(700)는 캐시메모리일 수 있다. 렌더링을 위해 접근하는 메모리(700)는 제1 메모리(750), 제2 메모리(760), 제3 메모리(770) 및 제4 메모리(780)를 포함할 수 있다.
렌더링을 위해 접근하는 메모리(700) 내부에 기재된 숫자는 해당 해당 메모리 내의 데이터에 대응되는 픽셀 ID 또는 프래그먼트 ID일 수 있다. 예를 들면, 제1 메모리(750)에 저장된 데이터는 제0 픽셀 내지 제3 픽셀의 렌더링에 이용될 수 있다.
도 7b를 참조하면, 각 픽셀들에 대한 렌더링을 수행함에 있어, 픽셀 ID 순서대로 렌더링을 수행하는 것이 효율적일 수 있다. 만약 제0 픽셀보다 제16 픽셀에 대한 렌더링을 먼저 수행해야 한다면, 제1 메모리(750)에 저장된 데이터를 삭제하여 데이터 저장 공간을 확보한 후, 제16픽셀에 대한 데이터를 수신하여 메모리(700)에 저장하는 동작이 요구될 수 있다. 또한 이 경우, 나중에 제0 픽셀에 대한 렌더링이 수행될 때, 다시 메모리(700)에 제0 픽셀에 대한 데이터를 수신하여 저장하는 동작이 요구될 수 있다. 따라서 제0 픽셀을 제16픽셀보다 먼저 처리하는 경우, 불필요한 동작이 생략될 수 있다.
픽셀 데이터는 픽셀 ID가 0에서부터 픽셀 ID가 15까지인 순서로 메모리(700)에 저장되어 있다. 따라서 도 7a를 참조하면, Z-순서로 래스터화를 수행할 경우 제0 픽셀부터 제15 픽셀의 순서로 래스터화를 수행할 수 있다. 따라서 렌더링 장치(110)는 메모리에 저장된 데이터에 접근하는 순서에 대응하는 래스터화 순서를 Z-순서로 결정하고, 결정된 Z-순서에 따라 래스터화를 수행하여, 효율적인 래스터화를 수행할 수 있다. 이 경우, 제1 메모리(750), 제2 메모리(760), 제3 메모리(770) 및 제4 메모리(780)의 순서로 메모리(700)에 대한 접근이 수행될 수 있다.
도 8a는 일 실시 예에 따른 렌더링 장치(110)가 텍스쳐 방향이 변경된 경우 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
예를 들면, 텍스쳐 방향이 90도 회전할 수 있다. 이 경우, 픽셀 ID가 도7a의 경우에 비해 90도 변경될 수 있다. 종래 도7a의 제1 블록(710)에 대응되는 블록이 도8a에서 제1 블록(810)이 되고, 종래 도7a의 제2 블록(720)에 대응되는 블록이 도8a에서 제2 블록(820)이 되고, 종래 도7a의 제3 블록(730)에 대응되는 블록이 도8a에서 제3 블록(830)이 되고, 종래 도7a의 제4 블록(740)에 대응되는 블록이 도8a에서 제4 블록(840)이 될 수 있다.
또한 블록 내의 픽셀의 위치도 변경될 수 있다. 블록 내의 픽셀의 위치도 90도 회전된 형태로 변경되어 각 블록 내에서 위치할 수 있다.
그러나, 텍스쳐 방향이 변경되었음에도 불구하고, 메모리에 저장된 데이터의 순서는 동일할 수 있다.
도 8b는 일 실시 예에 따른 렌더링 장치(110)가 텍스쳐 방향이 변경된 경우 N-순서로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
이 경우 도7a에서와 같이 Z-순서로 래스터화를 수행할 경우 메모리에 접근하는 순서는 제2 메모리(760), 제4 메모리(780), 제1 메모리(750) 및 제3 메모리(770)의 순서일 수 있다. 따라서 도 8a에서와 같은 텍스쳐 방향인 경우에 Z-순서로 래스터화를 수행할 경우 캐시 메모리에 데이터를 불필요하게 삭제 및 복사하는 동작이 요구될 수 있다.
일 실시 예에 따른 렌더링 장치(110)는 텍스쳐 방향 또는 메모리에 저장된 데이터에 접근하는 순서에 따라 래스터화 순서를 결정할 수 있다.
예를 들면, 도 8a에서와 같이 텍스쳐 방향이 결정된 경우, 일 실시 예에 따른 렌더링 장치(110)는 N-순서에 따라 래스터화를 수행할 수 있다.
렌더링 장치(110)가 획득한 래스터화 순서가 N-순서인 경우, 렌더링 장치(110)는 N-순서로 래스터화를 수행할 수 있다. 예를 들면, 렌더링 장치(110)는 제1 블록(810), 제2 블록(820), 제3 블록(830) 및 제4 블록(840) 순서로 래스터화를 수행할 수 있다. 또한, 각 블록 내에서도 N-순서로 래스터화를 수행할 수 있다. 예를 들면, 제1 블록(810)에서 제0 픽셀, 제1 픽셀, 제2 픽셀, 제3 픽셀의 순서로 래스터화를 수행할 수 있다. 이 경우, 픽셀이 생성된 순서와 픽셀의 ID가 상호 대응될 수 있다.
픽셀 데이터는 픽셀 ID가 0에서부터 픽셀 ID가 15까지인 순서로 메모리(700)에 저장되어 있다. 따라서 도 8a를 참조하면, N-순서로 래스터화를 수행할 경우 제0 픽셀부터 제15 픽셀의 순서로 래스터화를 수행할 수 있다. 따라서 렌더링 장치(110)는 메모리에 저장된 데이터에 접근하는 순서에 대응하는 래스터화 순서를 N-순서로 결정하고, 결정된 N-순서에 따라 래스터화를 수행하여, 효율적인 래스터화를 수행할 수 있다.
렌더링 장치(110)가 제1 블록(810), 제2 블록(820), 제3 블록(830) 및 제4 블록(840) 순서로 래스터화를 수행하는 경우, 제1 메모리(750), 제2 메모리(760), 제3 메모리(770) 및 제4 메모리(780)의 순서로 메모리(700)에 대한 접근이 수행될 수 있다. 이 경우 DRAM에 접근하는 순서가 제1 메모리(750), 제2 메모리(760), 제3 메모리(770) 및 제4 메모리(780)의 순서로 메모리(700)에 대한 접근이 수행되어 연속적인 접근이 가능하고, 이에 따라 캐시 히트 비율(cache hit ration)이 향상될 수 있다.
도 9는 일 실시 예에 따른 렌더링 장치(110)가 텍스쳐 방향성을 결정하는 방법을 설명하기 위한 도면이다.
일 실시 예에 따른 렌더링 장치(110)는 텍스쳐 접근 패턴 분석을 통해 텍스쳐의 접근 방향성을 결정할 수 있다. 예를 들면, 일 실시 예에 따른 렌더링 장치(110)는 처음에 획득되는 소정 개수의 프래그먼트의 텍스쳐 좌표 변화(texture coordinate varying) 값을 분석하여 x축이 주된 방향인지 y축이 주된 방향인지 결정할 수 있다.
다른 실시 예에 따른 렌더링 장치(110)는 프리미티브를 구성하는 버텍스들의 좌표 값을 이용하여 텍스쳐의 방향성을 획득할 수 있다. 일 실시 예에 따른 프리미티브는 제1 버텍스(910), 제2 버텍스(920) 및 제3 버텍스(930)로 구성될 수 있다.
예를 들면, 렌더링 장치(110)는 프리미티브의 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 좌표 차이 값을 이용하여 방향성을 획득할 수 있다. 일 예로, 렌더링 장치(110)는 프리미티브의 가장 왼쪽에 위치한 버텍스인 제1 버텍스(910)와 가장 오른 쪽에 위치한 버텍스인 제2 버텍스(920)를 선택하여 선택된 버텍스들간의 X축 좌표 차이인 ΔU와 Y축 좌표 차이인 ΔV를 획득하고, ΔU와 ΔV의 크기를 비교하여, ΔU가 ΔV보다 큰 경우 가로측 방향성, ΔV가 ΔU보다 큰 경우 세로측 방향성으로 결정할 수 있다.
이와 같은 방향성 결정 방법을 수도 코드(pseudo code)로 나타내면 다음과 같다.
[수도 코드]
다른 예로, 렌더링 장치(110)는 프리미티브의 가장 위쪽 버텍스와 가장 아래쪽 버텍스간의 Y좌표값의 차이와 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 X좌표를 비교하여 방향성을 결정할 수 있다. 예를 들면, 렌더링 장치(110)는 프리미티브의 가장 왼쪽에 위치한 버텍스인 제1 버텍스(910)와 가장 오른 쪽에 위치한 버텍스인 제2 버텍스(920)간의 X축 좌표 차이 값인 ΔU와 프리미티브의 가장 위쪽에 위치한 버텍스인 제3 버텍스(930)와 가장 아래 쪽에 위치한 버텍스인 제2 버텍스(920)간의 Y축 좌표 차이 값인 ΔV를 획득하고, ΔU와 ΔV의 크기를 비교하여, ΔU가 ΔV보다 큰 경우 가로측 방향성, ΔV가 ΔU보다 큰 경우 세로측 방향성으로 결정할 수 있다.
도 10a는 일 실시 예에 따른 렌더링 장치(110)가 왼쪽에서 오른쪽 방향으로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
일 실시 예에 따른 렌더링 장치(110)는 제1 프리미티브(1010)에 대해 결정된 래스터화 순서에 따라 프래그먼트들에 대한 래스터화를 수행할 수 있다.
예를 들면, 렌더링 장치(110)가 결정가 래스터화 순서가 좌에서 우측 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 래스터화를 수행할 수 있다. 일 예로, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 프리미티브를 하나 이상의 프래그먼트로 분할할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표 등을 보간함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 좌에서 우측 방향으로 프리미티브 내에 포함된 픽셀 또는 프래그먼트를 획득할 수 있다.
이 경우 일 실시 예에 따른 렌더링 장치(110)는 제1 래스터화(1011), 제2 래스터화(1012), 제3 래스터화(1013), 제4 래스터화(1014), 제5 래스터화(1015), 제6 래스터화(1016), 제7 래스터화(1017), 제8 래스터화(1018)의 순서대로 래스터화를 수행할 수 있다.
도 10b는 일 실시 예에 따른 렌더링 장치(110)가 위에서 아래쪽 방향으로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
일 실시 예에 따른 렌더링 장치(110)는 제2 프리미티브(1020)에 대해 결정된 래스터화 순서에 따라 프래그먼트들에 대한 래스터화를 수행할 수 있다.
예를 들면, 렌더링 장치(110)가 결정가 래스터화 순서가 위에서 아래쪽 방향인 경우, 일 실시 예에 따른 렌더링 장치(110)는 위에서 아래쪽 방향으로 래스터화를 수행할 수 있다. 일 예로, 일 실시 예에 따른 렌더링 장치(110)는 위에서 아래쪽 방향으로 프리미티브를 하나 이상의 프래그먼트로 분할할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 위에서 아래쪽 방향으로 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표 등을 보간함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 위에서 아래쪽 방향으로 프리미티브 내에 포함된 픽셀 또는 프래그먼트를 획득할 수 있다.
이 경우 일 실시 예에 따른 렌더링 장치(110)는 제1 래스터화(1021), 제2 래스터화(1022), 제3 래스터화(1023), 제4 래스터화(1024), 제5 래스터화(1025), 제6 래스터화(1026), 제7 래스터화(1027), 제8 래스터화(1028), 제9 래스터화(1029)의 순서대로 래스터화를 수행할 수 있다.
도 10c는 일 실시 예에 따른 렌더링 장치(110)가 Z-순서로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
일 실시 예에 따른 렌더링 장치(110)는 제3 프리미티브(1030)에 대해 결정된 래스터화 순서에 따라 프래그먼트들에 대한 래스터화를 수행할 수 있다.
예를 들면, 렌더링 장치(110)가 결정가 래스터화 순서가 Z-순서인 경우, 일 실시 예에 따른 렌더링 장치(110)는 Z-순서로 래스터화를 수행할 수 있다. 일 예로, 일 실시 예에 따른 렌더링 장치(110)는 Z-순서로 프리미티브를 하나 이상의 프래그먼트로 분할할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 Z-순서로 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표 등을 보간함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 Z-순서로 프리미티브 내에 포함된 픽셀 또는 프래그먼트를 획득할 수 있다.
이 경우 일 실시 예에 따른 렌더링 장치(110)는 제1 래스터화(1031), 제2 래스터화(1032), 제3 래스터화(1033)의 순서대로 래스터화를 수행할 수 있다.
도 10d는 일 실시 예에 따른 렌더링 장치(110)가 N-순서로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
일 실시 예에 따른 렌더링 장치(110)는 제4 프리미티브(1040)에 대해 결정된 래스터화 순서에 따라 프래그먼트들에 대한 래스터화를 수행할 수 있다.
예를 들면, 렌더링 장치(110)가 결정가 래스터화 순서가 N-순서인 경우, 일 실시 예에 따른 렌더링 장치(110)는 N-순서로 래스터화를 수행할 수 있다. 일 예로, 일 실시 예에 따른 렌더링 장치(110)는 N-순서로 프리미티브를 하나 이상의 프래그먼트로 분할할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 N-순서로 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표 등을 보간함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 N-순서로 프리미티브 내에 포함된 픽셀 또는 프래그먼트를 획득할 수 있다.
이 경우 일 실시 예에 따른 렌더링 장치(110)는 제1 래스터화(1041), 제2 래스터화(1042), 제3 래스터화(1043)의 순서대로 래스터화를 수행할 수 있다.
도 10e는 일 실시 예에 따른 렌더링 장치(110)가 U-순서로 래스터화를 수행하는 방법을 설명하기 위한 도면이다.
일 실시 예에 따른 렌더링 장치(110)는 제5 프리미티브(1050)에 대해 결정된 래스터화 순서에 따라 프래그먼트들에 대한 래스터화를 수행할 수 있다.
예를 들면, 렌더링 장치(110)가 결정가 래스터화 순서가 U-순서인 경우, 일 실시 예에 따른 렌더링 장치(110)는 U-순서로 래스터화를 수행할 수 있다. 일 예로, 일 실시 예에 따른 렌더링 장치(110)는 U-순서로 프리미티브를 하나 이상의 프래그먼트로 분할할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 U-순서로 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표 등을 보간함으로써 버텍스 내의 프래그먼트들을 생성할 수 있다. 다른 예로, 일 실시 예에 따른 렌더링 장치(110)는 U-순서로 프리미티브 내에 포함된 픽셀 또는 프래그먼트를 획득할 수 있다.
이 경우 일 실시 예에 따른 렌더링 장치(110)는 제1 래스터화(1051), 제2 래스터화(1052), 제3 래스터화(1053)의 순서대로 래스터화를 수행할 수 있다.
한편, 상술한 텍스쳐 처리 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 이와 같은 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 이와 같은 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 실시 예들을 중심으로 살펴보았다. 개시된 실시 예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시 예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 실시 예 발명의 범위는 전술한 실시 예들의 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.
100 ... 그래픽 처리 장치
110 ... 렌더링 장치
120 ... 쉐이더 코어
130 ... 텍스쳐 처리 장치
140 ... 픽셀 처리 장치
150 ... 타일 버퍼
200 ... 메모리
300 ... 버스
310 ... 순서 결정부
320 ... 래스터라이저
110 ... 렌더링 장치
120 ... 쉐이더 코어
130 ... 텍스쳐 처리 장치
140 ... 픽셀 처리 장치
150 ... 타일 버퍼
200 ... 메모리
300 ... 버스
310 ... 순서 결정부
320 ... 래스터라이저
Claims (19)
- 렌더링 수행 방법에 있어서,
프리미티브(primitive)를 획득하고 상기 획득한 프리미티브에 포함된 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득하는 단계;
상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 단계; 및
상기 결정된 래스터화 순서에 따라 상기 프래그먼트들에 대한 래스터화를 수행하는 단계를 포함하는 렌더링 방법. - 제 1 항에 있어서,
상기 프래그먼트 쉐이딩 순서는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 포함하는 렌더링 방법. - 제 1 항에 있어서,
상기 래스터화 순서를 결정하는 단계는 복수의 기설정된 래스터화 순서 중 하나를 결정하는 렌더링 방법. - 제 3 항에 있어서,
상기 기설정된 래스터화 순서는 Z-순서, N-순서 및 U-순서 중 적어도 하나를 포함하는 렌더링 방법. - 제 1 항에 있어서,
상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 단계는
상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계; 및
상기 획득한 텍스쳐의 방향성에 기초하여 상기 래스터화 순서를 결정하는 단계를 포함하는 렌더링 방법. - 제 5 항에 있어서,
상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계는
상기 프리미티브에 대응되는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지 획득하여 상기 텍스쳐의 방향성을 획득하는 렌더링 방법. - 제 5 항에 있어서,
상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계는
상기 프리미티브를 구성하는 버텍스들의 좌표 값을 이용하여 상기 텍스쳐의 방향성을 획득하는 렌더링 방법. - 제 5 항에 있어서,
상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하는 단계는
상기 프리미티브의 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 좌표 차이 값을 이용하여 상기 방향성을 획득하는 렌더링 방법. - 제 1 항에 있어서,
상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 단계는
픽셀 값 또는 프래그먼트의 값을 획득하기 위해 메모리에 저장된 텍스쳐 데이터에 접근하는 순서에 따라 상기 래스터화 순서를 결정하는 렌더링 방법. - 렌더링 수행 장치에 있어서,
프리미티브(primitive)를 획득하고 상기 획득한 프리미티브에 포함된 프래그먼트들에 대한 쉐이딩 순서인 프래그먼트 쉐이딩 순서를 획득하고, 상기 획득한 프래그먼트 쉐이딩 순서에 대응하도록 래스터화 순서를 결정하는 순서 결정부;
상기 결정된 래스터화 순서에 따라 상기 프래그먼트들에 대한 래스터화를 수행하는 래스터라이저를 포함하는 렌더링 장치. - 제 10 항에 있어서,
상기 프래그먼트 쉐이딩 순서는 프래그먼트 쉐이딩을 수행하기 위해 메모리에 저장된 데이터에 접근하는 순서를 포함하는 렌더링 장치. - 제 10 항에 있어서,
상기 순서 결정부는 복수의 기설정된 래스터화 순서 중 하나를 결정하는 렌더링 장치. - 제 12 항에 있어서,
상기 기설정된 래스터화 순서는 Z-순서, N-순서 및 U-순서 중 적어도 하나를 포함하는 렌더링 장치. - 제 10 항에 있어서,
상기 순서 결정부는
상기 프리미티브에 대응되는 텍스쳐의 방향성을 획득하고,
상기 획득한 텍스쳐의 방향성에 기초하여 상기 래스터화 순서를 결정하는 렌더링 장치. - 제 14 항에 있어서,
상기 순서 결정부는
상기 프리미티브에 대응되는 텍스쳐가 가로 방향성인지 또는 세로 방향성인지 획득하여 상기 텍스쳐의 방향성을 획득하는 렌더링 장치. - 제 14 항에 있어서,
상기 순서 결정부는
상기 프리미티브를 구성하는 버텍스들의 좌표 값을 이용하여 상기 텍스쳐의 방향성을 획득하는 렌더링 장치. - 제 14 항에 있어서,
상기 순서 결정부는
상기 프리미티브의 가장 왼쪽 버텍스와 가장 오른쪽 버텍스간의 좌표 차이 값을 이용하여 상기 방향성을 획득하는 렌더링 장치. - 제 10 항에 있어서,
상기 순서 결정부는
픽셀 값 또는 프래그먼트의 값을 획득하기 위해 메모리에 저장된 텍스쳐 데이터에 접근하는 순서에 따라 상기 래스터화 순서를 결정하는 렌더링 장치. - 제 1 항 내지 제 9 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150121034A KR20170025099A (ko) | 2015-08-27 | 2015-08-27 | 렌더링 방법 및 장치 |
US15/131,835 US20170061682A1 (en) | 2015-08-27 | 2016-04-18 | Rendering method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150121034A KR20170025099A (ko) | 2015-08-27 | 2015-08-27 | 렌더링 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170025099A true KR20170025099A (ko) | 2017-03-08 |
Family
ID=58095579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150121034A KR20170025099A (ko) | 2015-08-27 | 2015-08-27 | 렌더링 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170061682A1 (ko) |
KR (1) | KR20170025099A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019216468A1 (ko) * | 2018-05-11 | 2019-11-14 | 재단법인 차세대융합기술연구원 | 모바일 뷰잉 시스템 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
CN109446110A (zh) * | 2018-10-16 | 2019-03-08 | 西安邮电大学 | 可实现数据地址连续的U型布局tile缓存方法 |
CN117689790B (zh) * | 2024-01-29 | 2024-05-14 | 深圳中微电科技有限公司 | 基于缓冲区的像素渲染保序方法、系统及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6160557A (en) * | 1996-10-17 | 2000-12-12 | International Business Machines Corporation | Method and apparatus providing efficient rasterization with data dependent adaptations |
US20070030280A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Global spreader and method for a parallel graphics processor |
US8188999B2 (en) * | 2008-06-17 | 2012-05-29 | Qualcomm Incorporated | Method and apparatus for organizing object geometry for spatial and memory coherency and optimal rendering |
US20100146241A1 (en) * | 2008-12-09 | 2010-06-10 | Novafora, Inc. | Modified-SIMD Data Processing Architecture |
WO2013185062A1 (en) * | 2012-06-08 | 2013-12-12 | Advanced Micro Devices, Inc. | Graphics library extensions |
US9299181B2 (en) * | 2013-08-28 | 2016-03-29 | Qualcomm Incorporated | Target independent stenciling in graphics processing |
-
2015
- 2015-08-27 KR KR1020150121034A patent/KR20170025099A/ko unknown
-
2016
- 2016-04-18 US US15/131,835 patent/US20170061682A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019216468A1 (ko) * | 2018-05-11 | 2019-11-14 | 재단법인 차세대융합기술연구원 | 모바일 뷰잉 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20170061682A1 (en) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3748584B1 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
KR102122454B1 (ko) | 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치 | |
EP2973423B1 (en) | System and method for display of a repeating texture stored in a texture atlas | |
KR102258100B1 (ko) | 텍스쳐 처리 방법 및 장치 | |
US10748332B2 (en) | Hybrid frustum traced shadows systems and methods | |
KR102701851B1 (ko) | 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치 | |
US9710933B2 (en) | Method and apparatus for processing texture | |
KR102650215B1 (ko) | 영상 처리 방법 및 장치 | |
US8325203B1 (en) | Optimal caching for virtual coverage antialiasing | |
US9747692B2 (en) | Rendering apparatus and method | |
US10762696B2 (en) | Graphic processor performing sampling-based rendering and method of operating the same | |
US9530241B2 (en) | Clipping of graphics primitives | |
KR20170025099A (ko) | 렌더링 방법 및 장치 | |
US10432914B2 (en) | Graphics processing systems and graphics processors | |
KR20180060198A (ko) | 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법 | |
US9898838B2 (en) | Graphics processing apparatus and method for determining level of detail (LOD) for texturing in graphics pipeline | |
US10192348B2 (en) | Method and apparatus for processing texture | |
KR20150060026A (ko) | 이전 커맨드 정보를 이용하여 현재 커맨드를 처리하는 방법 및 장치. | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
EP2908289B1 (en) | Information processing apparatus, generation method, program, and storage medium | |
KR20170075440A (ko) | 텍스쳐의 배치를 결정하는 방법 및 장치. | |
KR20150042095A (ko) | 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법 |