KR101517465B1 - 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 - Google Patents
폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 Download PDFInfo
- Publication number
- KR101517465B1 KR101517465B1 KR1020070126848A KR20070126848A KR101517465B1 KR 101517465 B1 KR101517465 B1 KR 101517465B1 KR 1020070126848 A KR1020070126848 A KR 1020070126848A KR 20070126848 A KR20070126848 A KR 20070126848A KR 101517465 B1 KR101517465 B1 KR 101517465B1
- Authority
- KR
- South Korea
- Prior art keywords
- rasterization
- polygon
- order
- information
- generator
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 3
- 230000015654 memory Effects 0.000 abstract description 14
- 230000007423 decrease Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000002156 mixing Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 150000002632 lipids Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
3차원 그래픽스 시스템이 개시된다. 본 발명의 3차원 그래픽스 시스템은 정점(Vertex)들로부터 생성된 폴리곤(polygon)들을 폴리곤들 각각의 특징에 적응된 순서로 래스터화한다. 이를 위해, 상기 3차원 그래픽스 시스템은 정점(Vertex)들을 입력받아 폴리곤(polygon) 및 그 폴리곤의 래스터화 정보를 생성하는 폴리곤 생성기; 및 상기 폴리곤 생성기로부터 전달된 정보를 이용하여 픽셀을 래스터화하되, 대응된 폴리곤의 특징에 적응된 순서로 래스터화를 수행하는 픽셀 생성기를 포함하는 래스터화 엔진을 포함한다. 따라서 본 발명은 생성된 픽셀의 응집성의 증가로 인한 캐시 메모리의 적중률을 높이고, 이로 인해 3차원 그래픽스 시스템의 성능을 향상시키는 효과가 있다. 상기 캐시 메모리의 적중률이 높아짐에 따라 시스템 내 버스 트래픽(bus traffic)이 감소하고, 이로 인해 소비전력 절감의 효과도 얻을 수 있다.
3차원 그래픽스, 픽셀 생성, 래스터화, 트라이앵글
Description
본 발명은 래스터화 엔진 및 3차원 그래픽스 시스템에 관한 것으로서, 특히 폴리곤(polygon)의 특징(예컨대, 텍스쳐 매핑(texture mapping) 사용 여부, 알파 블렌딩(Alpha blending) 사용 여부 및 인접한 폴리곤과의 관계 등)에 적응된 순서로 래스터화(rasterization)하는 래스터화 엔진 및 3차원 그래픽스 시스템에 관한 것이다.
‘3차원 그래픽스’란 물체의 모습을 평면도가 아닌 입체도로서 디스플레이에 표현하는 기술을 말하는 것으로서, 특수 효과를 이용한 영화, 지질해석, 컴퓨터 지원 설계(CAD)에 의한 건축 설계나 자동차 설계 시 활용되는 입체 화상을 묘화하기 위해 주로 활용된다. 최근에는 이러한 3차원 그래픽스를 이용하여 게임 화면을 구성하기도 한다.
이와 같이 입체감 있는 3차원 영상을 표현하기 위해 3차원 그래픽스 시스템은 수많은 점들로 이루어진 오브젝트들을 폴리곤(Polygon)(예컨대, 트라이앵 글(Triangle) 등)으로 분해하고, 래스터화(Rasterization)를 통해 각 폴리곤 내에 포함된 픽셀을 찾아 인터폴레이션한 후 렌더링을 수행한다. 이를 위해 종래의 3차원 그래픽스 시스템은 트라이앵글 내부의 픽셀 응집성을 고려하여 결정된 순서로 래스터화(Rasterization)를 수행하였다. 예를 들어 종래의 3차원 그래픽스 시스템은 폴리곤을 이루는 픽셀들을 스팬(span)순서에 의해 래스터화(Rasterization)하였다. 즉 트라이앵글(Triangle)을 이루는 픽셀들을 위에서 아래(Downward)의 순서로 생성하는 3차원 그래픽스 시스템의 경우 각각의 트라이앵글 마다 이와 같은 순서, 즉 위에서 아래(Downward)의 순서로 래스터화(rasterization)를 수행하였다.
도 1은 종래의 3차원 그래픽스 시스템에 의한 래스터화(Rasterization) 방법들의 예를 도시한 도면이다. 상기 래스터화는 정점(Vertex) 정보로부터 폴리곤(Polygon)(예컨대, 트라이앵글(Triangle))을 셋업하고, 그 폴리곤에 포함된 픽셀을 찾아 인터폴레이션(interpolation)함으로써 수행된다.
도 1은 상기와 같은 래스터화(Rasterization)를 스팬 성향의 순서로 수행하는 방법들의 예를 도시한 도면이다.
도 1의 (a), (b), (c) 및 (d)를 참조하면, 종래의 3차원 그래픽스 시스템은 직선 또는 지그재그 등 다양한 방법으로 래스터화(Rasterization)를 수행하되, 그 순서는 우측에서 좌측, 그리고 위에서 아래의 순서를 따르고 있음을 알 수 있다. 즉, 종래의 3차원 그래픽스 시스템은 해당 시스템의 스팬 성향의 순서로 래스터화를 수행함을 알 수 있다.
이러한 종래의 3차원 그래픽스 시스템은 폴리곤 래스터화를 수행할 때에 폴 리곤 내부의 픽셀 응집성 만을 고려하였다. 즉, 폴리곤이 바뀌는 시점에서 폴리곤 간의 픽셀 응집성은 고려하지 않았다. 따라서 종래의 3차원 그래픽스 시스템은 폴리곤이 바뀌는 시점에서 캐시 메모리의 적중률이 떨어지고, 그래픽스 시스템의 성능이 저하되는 문제가 있었다.
본 발명은 이러한 문제점을 보완하기 위한 것으로서, 폴리곤 간의 픽셀 응집성을 향상시켜 3차원 그래픽스 시스템에 적용된 캐시 메모리의 적중률을 향상시킴으로써 그 성능이 향상된 래스터화 엔진을 제공하고자 한다.
또한 본 발명은 폴리곤의 특징(예컨대, 텍스쳐 매핑(texture mapping) 사용 여부, 알파 블렌딩(Alpha blending) 사용 여부 및 인접한 폴리곤과의 관계 등)에 적응된 순서로 래스터화(Rasterization)하는 래스터화 엔진을 제공하고자 한다.
또한 본 발명은 상기 래스터화 엔진이 적용된 3차원 그래픽스 시스템을 제공하고자 한다.
상기 기술적 과제를 달성하기 위해 본 발명에서 제공하는 래스터화 엔진은 정점(Vertex)들을 입력받아 폴리곤(polygon) 및 그 폴리곤의 래스터화 정보를 생성하는 폴리곤 생성기; 상기 폴리곤 생성기로부터 전달된 래스터화 정보를 이용하여 픽셀을 생성하되, 대응된 폴리곤의 특징에 적응된 순서로 래스터화를 수행하는 픽셀 생성기; 및 상기 픽셀 생성기에서 생성된 픽셀에 텍스쳐링을 수행하는 텍스쳐부 를 포함한다.
바람직하기로는, 상기 래스터화 순서는 다음 래스터화를 수행할 폴리곤의 위치 정보 중 이전 폴리곤의 래스터화가 끝난 지점에서 가까운 곳으로부터 먼 방향으로 래스터화를 수행하도록 결정된 순서이다.
또는 상기 래스터화 순서는 미리 저장된 복수의 래스터화 순서(예컨대, 위에서 아래로의 순서(Downward) 및 아래에서 위로의 순서(Upward))가 번갈아가면서 적용되는 것이 바람직하다.
또한 상기 폴리곤은 트라이앵글인 것이 바람직하다.
또한 상기 폴리곤의 특징은 텍스쳐 매핑 사용 여부, 알파 블렌딩 사용 여부 및 인접한 트라이앵글과의 관계 중 어느 하나인 것이 바람직하다.
또한 상기 래스터화 엔진은 3차원 그래픽스 시스템, 3차원 그래픽스 소프트웨어 가속기 및 3차원 그래픽스 하드웨어 가속기에 적용 가능하다.
상술한 바와 같은 본 발명은 인접한 폴리곤들 간의 관계에 의거하여 폴리곤들 각각의 래스터화 순서를 결정하도록 한다. 예를 들어, 본 발명은 이전 폴리곤의 래스터화가 끝난 지점에 인접한 지점부터 다음 폴리곤의 래스터화를 시작하도록 함으로써, 픽셀들의 응집성을 높여 이전 폴리곤의 래스터화 후 캐시 메모리에 남아 있는 데이터를 다시 사용할 수 있도록 한다. 이로 인해 픽셀 생성기 이후에 사용되는 모든 캐시 메모리(예컨대, 텍스쳐 캐시 등)에서의 캐시 메모리 적중률이 향상되는 효과를 기대할 수 있다.
또한 상기 캐시 메모리 적중률의 향상으로 인해 3차원 그래픽스 시스템의 성능을 향상시키는 효과 및 시스템 내 버스 트래픽(bus traffic)이 감소하는 효과가 있으며, 상기 트래픽 감소로 인해 소비전력 절감의 효과도 얻을 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시 예에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 실시 예를 예시하는 첨부도면 및 첨부도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일실시 예에 따른 3차원 그래픽스 시스템에 대한 개략적인 블록도이다. 도 2를 참조하면 본 발명의 일실시 예에 따른 3차원 그래픽스 시스템(100)은 트라이앵글 생성기(110), 픽셀 생성기(120), 텍스쳐부(130), 픽셀 연산기(140), 래스터라이징 순서 결정부(150), 텍스쳐 캐쉬(160) 및 텍스쳐 메모리(170)를 포함한다.
트라이앵글 생성기(Triangle Setup unit)(110)는 뷰포트 매핑(Viewport mapping)에 의해 정해진 정점(Vertex)들을 입력받아 트라이앵글을 생성한다. 즉, 트라이앵글 생성기(110)는 수많은 점들로 이루어진 오브젝트들로부터, 트라이앵글 래스터화(triangle rasterization) 정보를 생성하여 픽셀 생성기(rasterizer)(120)로 전달한다.
픽셀 생성기(Rasterizer)(120)는 트라이앵글 생성기(110)로부터 전달된 트라이앵글 래스터화 정보를 이용하여 픽셀을 생성한다. 즉, 픽셀 생성기(120)는 트라이앵글 생성기(110)로부터 전달된 트라이앵글에 포함된 픽셀(pixel)들을 찾아 인터폴레이션(interpolation)한다. 이 때 픽셀 생성기(120)는 해당 트라이앵글의 특징에 적응된 순서로 래스터화를 수행하는데, 이를 위해 3차원 그래픽스 시스템(100)은 래스터화 순서를 결정하기 위한 소정의 알고리즘을 수행하는 것이 바람직하다.
예를 들어, 3차원 그래픽스 시스템(100)은 상기 래스터화 순서 결정 알고리즘을 내장한 픽셀 생성기(120)를 구현하거나, 상기 래스터화 순서 결정을 위한 별도의 장치를 더 포함하는 것이 바람직하다.
도 2에는 상기 래스터화 순서 결정을 위한 별도의 장치(순서 결정부(150))를 더 포함하고, 순서 결정부(150)에서 결정된 래스터화 순서에 의거하여 래스터화를 수행하는 예를 도시하고 있다. 즉 픽셀 생성기(120)는 순서 결정부(150)에서 전달된 래스터화 순서(예컨대, Downward 또는 Upward 등)에 의거하여 해당 트라이앵글에 포함된 픽셀을 찾고 인터폴레이션한다.
순서 결정부(150)는 트라이앵글 생성기(110)에서 생성된 트라이앵글의 특징(예컨대, 텍스쳐 매핑(texture mapping) 사용 여부, 알파 블렌딩(Alpha blending) 사용 여부 및 인접한 트라이앵글과의 관계 등)에 적응된 순서로 래스터화 순서를 결정한다. 이를 위해 순서 결정부(150)는 픽셀 생성기(120)로부터 트라이앵글 정보를 전달받고, 그에 의거하여 결정된 래스터화 순서를 픽셀 생성기(120)로 전달한다.
예를 들어, 순서 결정부(150)는 픽셀 생성기(120)로부터 이전 트라이앵글의 래스터화가 끝난 지점(도 6의 ‘A’)에 대한 정보를 전달받고, 그(도 6의 ‘A’)에 인접한 다음 트라이앵글의 위치 정보(도 6의 ‘B’)를 참고하여 그(도 6의 ‘B’)로부터 상기 이전 트라이앵글의 래스터화가 끝난 지점(도 6의 ‘A’)에서 먼 방향으로 래스터화를 수행하도록 그 순서를 결정한다.
또는 순서 결정부(150)는 복수의 래스터화 순서 정보(예컨대, Downward 또는 Upward 등)를 저장하고, 그 복수의 순서 정보를 번갈아가면서 픽셀 생성기(120)에게 전달할 수도 있다. 이를 위해 순서 결정부(150)는 이전 순서 정보를 자체적으로 저장하고 있을 수도 있고, 픽셀 생성기(120)로부터 이전 래스터화시 사용된 순서 정보를 전달받을 수도 있다. 예를 들어 3차원 그래픽스 시스템(100)이 텍스쳐 매핑(texture mapping)이나 알파 블렌딩(Alpha blending)을 사용하는 경우, 순서 결정부(150)는 상기와 같이 복수의 래스터화 순서 정보를 저장하고 그 복수의 순서 정보를 번갈아가면서 픽셀 생성기(120)에게 전달하고, 그렇지 않은 경우 순서 결정부(150)는 고정된 하나의 순서 정보를 픽셀 생성기(120)에게 전달한다.
상기 방법들은 모두 이전 트라이앵글의 래스터화 후 캐시 메모리에 남아 있는 데이터를 다시 사용할 수 있도록 하기 위한 방법들이다.
상기 픽셀 생성부(120)에 내장된 래스터화 순서 결정 알고리즘의 처리 과정도 상기 순서 결정부(150)의 처리 과정과 유사하다.
텍스쳐부(texture unit)(130)는 픽셀 생성기(120)에서 생성된 픽셀에 텍스쳐링(texturing)을 수행한다. 즉 텍스쳐부(130)는 텍스쳐 캐쉬(texture cache)(160) 에 저장된 텍스쳐 영상 데이터를 이용하여 상기 픽셀을 필터링한 후 각종 블렌딩(blending)을 수행한다. 이 때 블렌딩이란 선택된 레이어(layer)와 그 아래 있는 레이어(layer)를 합성하여 이미지에 특정한 효과를 주는 방법을 말하는 것으로서, 디졸브(dissolve), 오버레이(overlay), 새츄레이션(saturation) 및 디퍼런스(difference) 등 그 종류는 무수히 많다.
텍스쳐 메모리(texture memory)(170)는 상기 텍스쳐 영상 데이터(예컨대, 사람 모양의 그림, 자동차 모양의 그림 등)를 저장하고, 텍스처 캐시(texture cache)(160)는 텍스쳐부(130)의 요청시 텍스쳐 영상 데이터를 신속하게 제공할 수 있도록 하기 위해 텍스쳐 메모리(170)에 저장된 텍스쳐 영상 데이터들 중 필요한 영상 데이터를 미리 저장한다. 이 때, 텍스쳐 메모리(170)와 텍스쳐 캐시(160)는 시스템 버스(system bus)를 통해 데이터를 주고받는다.
픽셀 연산기(per-pixel operator)(140)는 상기 입체화된 영상 데이터의 후처리를 수행한다.
도 2의 예에서는 트라이앵글(triangle) 단위로 래스터화하는 경우의 예를 들어 설명하고 있다. 하지만 이는 현재 ‘트라이앵글’단위로 래스터화하는 것이 보편화되어 있기 때문에 이해를 돕기 위한 것일 뿐, 본 발명은 래스터화 단위가 트라이앵글로 제한되는 것은 아니다. 즉 본 발명은 사각형, 오각형 등 다양한 폴리곤(polygon)들을 단위로 하는 래스터화에 모두 적용이 가능한 것이다(이후 동일).
도 3은 도 2에 예시된 3차원 그래픽스 시스템의 처리 과정의 예를 도시한 순서도이다. 도 2 및 도 3을 참조하면 도 2에 예시된 3차원 그래픽스 시스템(100)은 다음과 같이 동작한다.
먼저 트라이앵글 생성기(110)는 뷰포트 매핑에 의해 정해진 정점들을 입력받아 트라이앵글을 생성한다(S100). 그리고 그 트라이앵글 래스터화 정보를 픽셀 생성기(110)로 전달하면 픽셀 생성기(110)는 그 정보를 이용하여 픽셀을 생성하고(S200), 그 결과를 전달받은 텍스쳐부(130)는 상기 픽셀을 이용하여 텍스쳐링을 수행한다(S300).
이 때 픽셀 생성과정(S200)은 해당 트라이앵글에 포함된 픽셀을 찾고 인터폴레이션을 수행하는 래스터화 과정을 포함하는데, 픽셀 생성기(110)는 해당 트라이앵글의 특징에 적응된 순서(예컨대, Downsard 또는 Upward 등)로 래스터화를 수행한다.
상기 래스터화 과정을 포함한 픽셀 생성 과정에 대한 제1 및 제2 실시 예가 도 4 및 도 5에 예시되어 있다.
도 4는 도 3에 예시된 픽셀 생성 과정(S200)에 대한 제1 실시 예(S200a)를 도시한 순서도이고, 도 5는 도 3에 예시된 픽셀 생성 과정(S200)에 대한 제2 실시 예(S200b)를 도시한 순서도이다. 즉 도 4는 미리 설정된 하나 이상의 래스터화 순서들을 번갈아 가면서 적용하여 래스터화를 수행하는 방법에 대한 예를 나타내고, 도 5는 인접 트라이앵글과의 관계에 의거하여 결정된 순서로 래스터화를 수행하는 방법에 대한 예를 나타낸다.
도 2 및 도 4를 참조하면 상기 제1 실시 예에 따른 픽셀 생성 과정(S200a)은 다음과 같다. 먼저, 래스터라이징할 트라이앵글(이하, ‘제1 트라이앵글’이라 칭 함) 정보가 입력되면(S210a) 픽셀 생성기(120)는 미리 설정된 제1 순서로 상기 제1 트라이앵글을 래스터화한다(S220a). 그리고 다음 트라이앵글(이하, ‘제2 트라이앵글’이라 칭함) 정보가 입력되면(S230a) 픽셀 생성기(120)는 상기 제1 순서와 다른 제2 순서로 상기 제2 트라이앵글을 래스터화한다(S240a). 이 때 상기 제1 순서는 ‘Downward 또는 Upward’중 어느 하나이고, 상기 제2 순서는 그 나머지 하나인 것이 바람직하다.
그리고 다음 트라이앵글(이하, ‘제3 트라이앵글’이라 칭함)이 존재하면(S250a) 그 제3 트라이앵글 정보를 입력받아(S260a) 래스터화를 수행하되, 상기 제1 순서에 의거하여 상기 제3 트라이앵글을 래스터화한다.
이와 같이 본 발명의 제1 실시 예에 따른 픽셀 생성과정(S200a)은 다음 트라이앵글이 존재하지 않을 때까지, 즉 오브젝트에 존재하는 정점(vertex)들을 이용하여 생성 가능한 모든 트라이앵글에 대한 래스터화가 수행될 때까지, 픽셀 생성기(120)는 상기 제1 순서 및 제2 순서를 번갈아 가면서 적용하여 해당 트라이앵글을 래스터화한다. 이 때 픽셀 생성기(120)는 순서 결정부(150)로부터 해당 순서 정보를 전달받을 수 있다.
한편 도 2 및 도 5를 참조하면 상기 제2 실시 예에 따른 픽셀 생성 과정(S200b)은 다음과 같다. 먼저, 래스터라이징할 트라이앵글(이하, ‘제4 트라이앵글’이라 칭함) 정보가 입력되면(S210b) 픽셀 생성기(120)는 미리 설정된 제3 순서로 상기 제4 트라이앵글을 래스터화한다(S220b). 그리고 다음 트라이앵글(이하, ‘제5 트라이앵글’이라 칭함) 정보가 입력되면(S230b) 픽셀 생성기(120)는 상기 제3 순서와는 다른 순서에 의거하여 상기 제5 트라이앵글을 래스터화한다(S240b). 즉, 상기 제4 트라이앵글의 마지막 픽셀과 인접한 픽셀로부터 먼 순서로 래스터화를 수행한다.
그리고 다음 트라이앵글(이하, ‘제5 트라이앵글’이라 칭함)이 존재하면(S250b) 상기 일련의 처리 과정들(S230b 및 S240b)을 반복 수행한다. 즉 오브젝트에 존재하는 정점(vertex)들을 이용하여 생성 가능한 모든 트라이앵글에 대한 래스터화가 수행될 때까지, 픽셀 생성기(120)는 상기 처리 과정들(S230b 및 S240b)을 반복 수행한다. 이 때 픽셀 생성기(120)는 순서 결정부(150)로부터 해당 순서 정보를 전달을 수 있다.
도 6 및 도 7은 본 발명의 3차원 그래픽스 시스템에 의해, 연속한 트라이앵글을 래스터화(rasterization)하는 방법에 대한 제1 및 제2 실시 예를 도시한 도면들이다. 즉, 도 6은 스트립(Strip)에 속한 연속된 트라이앵글들의 래스터화 순서 적용예를 나타내고, 도 7은 팬(Fan)에 속한 연속된 트라이앵글들의 래스터화 순서 적용예를 나타낸다.
도 6의 예에서, 제1 트라이앵글(10a)의 래스터화가 위에서 아래의 순서(Downward)로 이루어진 경우 상기 제1 트라이앵글(10a)에 인접한 제2 트라이앵글(20a)은 아래에서 위의 순서(Upward)로 래스터화가 이루어지고, 상기 제2 트라이앵글(20a)에 인접한 제3 트라이앵글(30a)은 다시 위에서 아래의 순서(Downward)로 래스터화가 이루어지고, 상기 제3 트라이앵글(30a)에 인접한 제4 트라이앵글(40a)은 다시 아래에서 위의 순서(Upward)로 래스터화가 이루어짐을 알 수 있다. 즉, 스 트립(strip)에 속한 연속된 트라이앵글들이 생성될 때마다 복수의 래스터화 순서 중 이전 래스터화를 위해 사용된 래스터화 순서와는 다른 래스터화 순서를 적용하여 해당 트라이앵글을 래스터화함을 알 수 있다.
또는 이전 트라이앵글의 래스터 종료 지점에 인접한 지점부터 다음 트라이앵글의 래스터를 시작함을 알 수 있다.
도 7의 예에서도, 서로 인접한 트라이앵글들의 경우 이전에 래스터화된 트라이앵글에 인접한 트라이앵글의 래스터화를 위해 이전의 래스터화 순서와는 다른 순서로 해당 트라이앵글을 래스터함을 알 수 있다.
이와 같이 본 발명은 서로 다른 두 순서를 번갈아 가면서 인접한 트라이앵글들의 래스터화를 수행하거나, 트라이앵글의 특징(특히, 인접한 트라이앵글과의 관계)에 의거하여 결정된 래스터화 순서로 트라이앵글 래스터화를 수행한다. 따라서 본 발명은 래스터화를 위해 캐시 메모리에 저장되었던 데이터들을 재사용할 수 있는 확률을 높이고, 이로 인해 3차원 그래픽스 시스템의 성능을 향상시킬 수 있게 되는 것이다.
상기 본 발명의 내용은 도면에 도시된 일실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 예를 들어, 상기 예에서는 트라이앵글을 래스터화하는 경우를 예로 들어 설명하고 있으나, 본 발명은 트라이앵글을 래스터화하는 경우로 한정되는 것은 아니다. 즉 본 발명은 트라이앵글이 아닌, 다른 폴리곤들의 경우에도 적용할 수 있는 것이다. 또한 본 발명 은 트라이앵글의 특징에 적응된 순서로 래스터화를 수행하는 3차원 그래픽스 시스템을 예로 들어 설명하고 있으나, 상기 3차원 그래픽스 시스템에 적용된 래스터화 엔진은 다른 3차원 그래픽스 관련 장치들(예컨대, 3차원 그래픽스 소프트웨어 가속기 및 3차원 그래픽스 하드웨어 가속기)에도 적용 가능하다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래의 3차원 그래픽스 시스템에 의해 스팬 성향의 순서로 래스터화(rasterization)하는 방법들의 예를 도시한 도면이다.
도 2는 본 발명의 일실시 예에 따른 3차원 그래픽스 시스템에 대한 개략적인 블록도이다.
도 3은 도 2에 예시된 3차원 그래픽스 시스템의 처리 과정의 예를 도시한 순서도이다.
도 4는 도 3에 예시된 픽셀 생성 과정에 대한 제1 실시 예를 도시한 순서도이다.
도 5는 도 3에 예시된 픽셀 생성 과정에 대한 제2 실시 예를 도시한 순서도이다.
도 6은 본 발명의 3차원 그래픽스 시스템에 의해 연속한 트라이앵글을 래스터화(rasterization)하는 방법에 대한 제1 실시 예를 도시한 도면이다.
도 7은 본 발명의 3차원 그래픽스 시스템에 의해 연속한 트라이앵글을 래스터화(rasterization)하는 방법에 대한 제2 실시 예를 도시한 도면이다.
Claims (20)
- 삭제
- 삭제
- 래스터화 엔진을 실행 가능한 컴퓨터 장치에 있어서,뷰포트 매핑에 의해 정해진 정점(Vertex)들을 입력받아 폴리곤(polygon) 및 그 폴리곤의 래스터화 정보를 생성하는 폴리곤 생성기; 및상기 폴리곤 생성기로부터 전달된 래스터화 정보를 이용하여 픽셀을 생성하되, 대응된 폴리곤의 특징에 적응된 순서로 래스터화를 수행하는 픽셀 생성기를 포함하며,상기 픽셀 생성기는기 저장된 래스터화 순서 결정 알고리즘에 의거하여 대응된 폴리곤의 특징에 적응된 순서를 결정하고,상기 순서 결정 알고리즘은이전 폴리곤의 래스터화가 끝난 지점에 대한 정보를 저장하고, 다음 래스터화를 수행할 폴리곤의 위치 정보 중 상기 지점에서 가까운 곳으로부터 먼 방향으로 래스터화를 수행하도록 상기 래스터화 순서를 결정하는 래스터화 엔진을 실행 가능한 컴퓨터 장치.
- 제3항에 있어서, 상기 순서 결정 알고리즘은복수의 래스터화 순서 정보를 미리 저장하고, 그 복수의 순서를 번갈아가면서 선택한 후, 상기 선택된 순서를 상기 래스터화할 폴리곤의 특징에 적응된 순서로 결정하는 래스터화 엔진을 실행 가능한 컴퓨터 장치.
- 제4항에 있어서, 상기 복수의 순서는상기 래스터화할 폴리곤의 위에서 아래로의 순서(Downward) 및 상기 래스터화할 폴리곤의 아래에서 위로의 순서(Upward)인 래스터화 엔진을 실행 가능한 컴퓨터 장치.
- 삭제
- 래스터화 엔진을 실행 가능한 컴퓨터 장치에 있어서,뷰포트 매핑에 의해 정해진 정점(Vertex)들을 입력받아 폴리곤(polygon) 및 그 폴리곤의 래스터화 정보를 생성하는 폴리곤 생성기;상기 폴리곤 생성기로부터 전달된 래스터화 정보를 이용하여 픽셀을 생성하되, 대응된 폴리곤의 특징에 적응된 순서로 래스터화를 수행하는 픽셀 생성기; 및상기 픽셀 생성기로부터 대응된 폴리곤의 특징 정보를 전달받고, 그 정보에 의거하여 해당 폴리곤의 래스터화 순서를 결정한 후 그 래스터화 순서를 상기 픽셀 생성기에게 전달하는 순서 결정부를 포함하며,상기 순서 결정부는상기 픽셀 생성기로부터 이전 폴리곤의 래스터화가 끝난 지점에 대한 정보를 전달받고, 다음 래스터화를 수행할 폴리곤의 위치 정보 중 상기 지점에서 가까운 곳으로부터 먼 방향으로 래스터화를 수행하도록 상기 래스터화 순서를 결정하는 래스터화 엔진을 실행 가능한 컴퓨터 장치.
- 제7항에 있어서, 상기 순서 결정부는복수의 래스터화 순서 정보를 미리 저장하고, 상기 복수의 순서를 번갈아가면서 선택한 후, 상기 선택된 순서를 상기 래스터화할 폴리곤의 특징에 적응된 순서로 결정하는 래스터화 엔진을 실행 가능한 컴퓨터 장치.
- 제8항에 있어서, 상기 순서 결정부는이전 래스터화시 사용된 순서 정보를 자체적으로 저장하거나,상기 픽셀 생성기로부터 이전 래스터화시 사용된 순서 정보를 전달받는 래스터화 엔진을 실행 가능한 컴퓨터 장치.
- 3차원 그래픽스 시스템에 있어서,뷰포트 매핑에 의해 정해진 정점(Vertex)들로부터 생성된 폴리곤(polygon)들을 폴리곤들 각각의 특징에 적응된 순서로 래스터화하는 래스터화 엔진을 실행 가능한 컴퓨터 장치를 포함하고,상기 래스터화 엔진을 실행 가능한 컴퓨터 장치는뷰포트 매핑에 의해 정해진 정점(Vertex)들을 입력받아 폴리곤(polygon) 및 그 폴리곤의 래스터화 정보를 생성하는 폴리곤 생성기;상기 폴리곤 생성기로부터 전달된 래스터화 정보를 이용하여 픽셀을 생성하되, 대응된 폴리곤의 특징에 적응된 순서로 래스터화를 수행하는 픽셀 생성기;상기 픽셀 생성기에서 생성된 픽셀에 입체감을 주기 위한 텍스쳐링을 수행하는 텍스쳐부; 및상기 픽셀 생성기로부터 대응된 폴리곤의 특징 정보를 전달받고, 그 정보에 의거하여 해당 폴리곤의 래스터화 순서를 결정한 후 그 래스터화 순서를 상기 픽셀 생성기에게 전달하는 순서 결정부를 포함하며,상기 순서 결정부는상기 픽셀 생성기로부터 이전 폴리곤의 래스터화가 끝난 지점에 대한 정보를 전달받고, 다음 래스터화를 수행할 폴리곤의 위치 정보 중 상기 지점에서 가까운 곳으로부터 먼 방향으로 래스터화를 수행하도록 상기 래스터화 순서를 결정하는 3차원 그래픽스 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070126848A KR101517465B1 (ko) | 2007-12-07 | 2007-12-07 | 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 |
US12/313,886 US8300045B2 (en) | 2007-12-07 | 2008-11-25 | Rasterization engine and three-dimensional graphics system for rasterizing in order adapted to characteristics of polygon |
US13/662,609 US8570321B2 (en) | 2007-12-07 | 2012-10-29 | Rasterization engine and three-dimensional graphics system for rasterizing in order adapted to characteristics of polygon |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070126848A KR101517465B1 (ko) | 2007-12-07 | 2007-12-07 | 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090059800A KR20090059800A (ko) | 2009-06-11 |
KR101517465B1 true KR101517465B1 (ko) | 2015-05-04 |
Family
ID=40721155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070126848A KR101517465B1 (ko) | 2007-12-07 | 2007-12-07 | 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8300045B2 (ko) |
KR (1) | KR101517465B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101517465B1 (ko) | 2007-12-07 | 2015-05-04 | 삼성전자주식회사 | 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 |
WO2014185900A1 (en) * | 2013-05-15 | 2014-11-20 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
KR102188543B1 (ko) | 2014-02-07 | 2020-12-08 | 삼성전자주식회사 | 그래픽 처리 장치 |
US9922449B2 (en) | 2015-06-01 | 2018-03-20 | Intel Corporation | Apparatus and method for dynamic polygon or primitive sorting for improved culling |
US9959643B2 (en) | 2015-10-29 | 2018-05-01 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020158865A1 (en) * | 1998-04-27 | 2002-10-31 | Dye Thomas A. | Graphics system and method for rendering independent 2D and 3D objects using pointer based display list video refresh operations |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0877338A (ja) | 1994-09-06 | 1996-03-22 | Dainippon Screen Mfg Co Ltd | 画像データ格納方法及び画像データ格納装置 |
US6160559A (en) * | 1997-09-30 | 2000-12-12 | Intel Corporation | Method and apparatus for providing frame-time feedback to graphics application programs |
US6028607A (en) * | 1998-01-15 | 2000-02-22 | Sun Microsystems, Inc. | Method of producing a sequence of triangles from a vertex raster with and without half resolution edges while decompressing a compressed geometry stream |
JP3507057B2 (ja) | 2002-06-03 | 2004-03-15 | 三菱電機株式会社 | 三角形ポリゴン描画装置および三角形ポリゴン描画方法 |
KR100703709B1 (ko) | 2005-06-02 | 2007-04-06 | 삼성전자주식회사 | 그래픽스 처리장치와 처리방법, 및 그 기록 매체 |
KR101517465B1 (ko) | 2007-12-07 | 2015-05-04 | 삼성전자주식회사 | 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 |
-
2007
- 2007-12-07 KR KR1020070126848A patent/KR101517465B1/ko active IP Right Grant
-
2008
- 2008-11-25 US US12/313,886 patent/US8300045B2/en not_active Expired - Fee Related
-
2012
- 2012-10-29 US US13/662,609 patent/US8570321B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020158865A1 (en) * | 1998-04-27 | 2002-10-31 | Dye Thomas A. | Graphics system and method for rendering independent 2D and 3D objects using pointer based display list video refresh operations |
Also Published As
Publication number | Publication date |
---|---|
US20090146999A1 (en) | 2009-06-11 |
US8570321B2 (en) | 2013-10-29 |
KR20090059800A (ko) | 2009-06-11 |
US8300045B2 (en) | 2012-10-30 |
US20130050211A1 (en) | 2013-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6563048B2 (ja) | スクリーンの位置によって異なる解像度のターゲットの複数レンダリングのテクスチャ・マッピングの傾き調整 | |
US20050259100A1 (en) | Graphic processing apparatus, graphic processing system, graphic processing method and graphic processing program | |
JP6863693B2 (ja) | グラフィックス処理システムおよび方法 | |
US20090046098A1 (en) | Primitive binning method for tile-based rendering | |
KR100833842B1 (ko) | 3차원 그래픽 엔진에서의 픽셀 래스터라이제이션 처리방법및 그의장치 | |
JP2006106705A (ja) | アウトラインフォントのレンダリング | |
KR20150039495A (ko) | 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치 | |
EP2985735B1 (en) | Method and apparatus for performing tile-based path rendering | |
EP3142074B1 (en) | Method and apparatus for performing path stroking | |
US10332290B2 (en) | Fast, coverage-optimized, resolution-independent and anti-aliased graphics processing | |
KR101507776B1 (ko) | 3차원 지도의 외곽선 표현 방법 | |
KR101517465B1 (ko) | 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템 | |
KR20160046614A (ko) | 텍스쳐를 처리하는 방법 및 장치 | |
US9898838B2 (en) | Graphics processing apparatus and method for determining level of detail (LOD) for texturing in graphics pipeline | |
US10417736B2 (en) | Graphics processing unit and method of controlling cache bypass thereof | |
US10192348B2 (en) | Method and apparatus for processing texture | |
US20170061682A1 (en) | Rendering method and apparatus | |
US20160321835A1 (en) | Image processing device, image processing method, and display device | |
JP2008299642A (ja) | 図形描画装置 | |
JP5738442B2 (ja) | 地図描画装置、ナビゲーション装置および地図描画方法 | |
JP4042377B2 (ja) | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
KR101654865B1 (ko) | 스트로크 기반의 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램 | |
US11217005B1 (en) | Techniques for rendering 2D vector graphics on mobile devices | |
JP5024831B2 (ja) | 画像作成装置及びプログラム | |
JP2010256986A (ja) | 描画装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190329 Year of fee payment: 5 |