KR100436815B1 - 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 - Google Patents
실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR100436815B1 KR100436815B1 KR10-2001-0084214A KR20010084214A KR100436815B1 KR 100436815 B1 KR100436815 B1 KR 100436815B1 KR 20010084214 A KR20010084214 A KR 20010084214A KR 100436815 B1 KR100436815 B1 KR 100436815B1
- Authority
- KR
- South Korea
- Prior art keywords
- triangles
- output
- triangle
- screen
- surface property
- Prior art date
Links
Classifications
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
본 발명은 하드웨어 그래픽 가속 장치를 이용하여 3차원 객체를 컴퓨터 화면 상에 출력할 때 그래픽 가속 장치 내부의 상태 변화나 연산 순서를 최적화하여 화면 출력 속도를 향상시키는 시스템 및 그 방법에 관한 것으로, 화면 출력 전에 미리 주어진 3차원 객체의 표면 속성을 파악하여 이들 3차원 객체를 구성하는 삼각형들을 그 표면 속성이 같은 것끼리 분류하여 표면 속성 개수만큼의 그룹을 생성한 후 각각의 그룹 내의 삼각형들을 카메라로부터의 거리에 따라 정렬(sort)하여 관리하며, 화면 출력 시에는 이들 그룹에서 카메라로부터 거리가 가장 먼 삼각형을 각각 하나씩 추출하고 다시 추출된 삼각형 중에서도 카메라로부터 가장 먼 하나가 최종적으로 선택되어 출력되도록 하되, 선택된 삼각형이 출력되고 난 후에도 같은 그룹에서 추출된 또 다른 삼각형이 다른 그룹에서 추출된 삼각형과 출력 화면에서 서로 중첩되지 않는 한 계속적으로 출력되도록 제어하여 그래픽 가속 장치 내에서의 카메라로부터의 거리 제어에 따른 효과적인 화면 출력 상태를 유지하면서 표면 속성 전환을 줄일 수 있어 그래픽 가속 장치를 이용한 빠른 화면 출력이 가능한 것이다.
Description
본 발명은 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템 및 그 방법에 관한 것으로서, 특히 하드웨어 그래픽 가속 장치(hardware graphic acceleration board)를 이용하여 3차원 객체(3D objects)를 컴퓨터 화면 상에 출력할 때 그래픽 가속 장치 내부의 연산 횟수나 연산 순서를 최적화하여 화면 출력 속도를 향상시키기 위한 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템 및 그 방법에 관한 것이다.
현재 수요가 급속히 증가하고 있는 3차원 게임 서비스나 Web 3D 응용 서비스의 경우 3차원 객체를 빠르게 화면에 출력하는 기능에 기반을 둔 서비스 형태로서 사회 전반적인 소득 수준의 향상과 새로운 오락물 또는 영상물을 원하는 대중의 기호에 따라 관련 응용 프로그램에 대한 요구가 급격히 증가하고 있다.
특히, 하드웨어 기술의 발달로 고성능 그래픽 가속 장치(graphics acceleration board)가 PC에도 기본적으로 장착됨에 따라 기존에는 고가의 그래픽 전용 워크스테이션(special purpose graphics workstation)이나 3차원 게임 전용기(video game machine)에서만 가능했던 고속 삼각형 처리(high-speed triangle processing)가 일반 PC에서도 가능해지면서 이를 이용한 새로운 응용 프로그램에 대한 요구가 증가하고 있으며 관련 연구 결과와 각종 상용 시스템이 발표되고 있다.
그래픽 가속 장치 개발 이전에는 실시간 3차원 객체 화면 출력을 위해서는 주로 화면 출력을 위한 장치(output device)의 동작 이전에 미리 장치가 처리해야 할 삼각형의 개수를 줄여주는 컬링(culling) 기법과 객체가 화면에 출력된 후 화면에서 차지하는 넓이에 따라 객체를 구성하는 삼각형의 수를 제어하는 LOD 기법이 많이 활용되었다.
그러나, 이러한 기법은 전용의 그래픽 가속 하드웨어가 아직 개발되지 않은 시절에 활용되던 기술로 실시간 화면 출력을 위해서는 대상 객체를 구성하는 삼각형 개수에 대한 많은 제약이 따르며 또한 이 기법을 적용하기 위해서는 복잡한 기하연산으로 이루어진 전처리가 요구되기 때문에 사용이 용이하지가 못하다.
이하에서는, 3차원 객체를 컴퓨터 화면에 실시간 출력하기 위해 활용되던 종래의 방법인 culling 방법과 LOD 방법에 대해 도 1을 참조하여 설명하기로 한다.
도 1은 종래의 LOD 방법 및 컬링 방법을 적용하여 화면 출력 장치 (display device)에서 처리하는 삼각형의 수를 줄이는 과정을 도시하고 있다.
도 1에 따르면, 대상으로 하는 3차원 객체의 기하정보와 표면 속성 정보는 우선 LOD 제어기(10)에 의해 처리되어 그 객체가 화면 출력 후에 화면에서 차지하게 되는 크기에 따라 그 기하 구조가 변경되게 된다. 이 때, 화면에서 차지하는 비율이 낮으면 보다 적은 수의 삼각형으로 구성이 될 것이고, 비율이 높으면 이 객체를 구성하는 삼각형의 수가 많아지게 된다.
계속해서, 이렇게 재구성된 기하 모델은 컬링 제어기(20)를 통하여 화면에 반드시 출력되어야 할 삼각형 리스트의 형태로 변환되고 화면 출력 장치 (display device)(30)를 통해 화면에 출력된다. 처음에 주어진 기하정보에 따라 모든 삼각형을 출력하는 것보다는 이렇듯 LOD 방법 및 culling 방법을 적용한 후 화면에 삼각형을 출력할 때, 화면 출력 장치가 처리해야 할 삼각형의 수가 현저하게 줄어들기 때문에 화면 출력 속도에서 이득을 얻을 수 있다.
도 2a는 상기한 LOD 방법의 동작 구조를 나타낸다. 즉, 도 1에 도시된 LOD 제어기(10)의 제어 방법을 설명하기 위한 도면이다.
LOD(Level of Detail) 란 각 3차원 객체가 화면에 나타나는 크기에 따라 이3차원 객체를 표현하는 정밀도를 변경하는 방법이다. 예를 들어, 약 3,000개의 삼각형으로 이루어진 객체가 실제로 영상에서는 10개정도의 화소(pixel)로 사영된다면, 즉, 많은 정점들이 한 개의 화소로 사영되어 객체가 자세하게 나타나지 않는다면 영상에 출력되는 질에 비해 화면 출력 장치가 너무 많은 계산을 해야 하게 된다.
이러한 문제점을 극복하기 위해 여러 단계의 상세 정도(LOD)를 가진 객체를 이용하여, 시점으로부터 멀리 떨어져 있어서 영상에 작게 나타나는 객체에 대해서는 상세도가 낮은 모델을 사영시키고, 시점에 가까이 있어서 자세하게 출력되어져야 하는 객체에 대해서는 상세하게 표현된 모델을 사용하여 화면에 출력시키는 기법이 LOD 기법이다.
LOD 기법은 실시간에 연속적으로 객체의 정점 개수를 변화시키는 방법과 미리 같은 물체를 여러 상세도의 다수의 객체로 객체 디자인 단계에서 구성하여 화면 출력 시점에서 선택하는 방법이 있다.
일반적으로 높이 지도(height map) 형태의 지형은 연속적인 LOD 기법을 많이 적용하고, 그 외의 객체에 대해서는 연속적인 LOD를 적용할 경우, 텍스츄어(texture)가 일그러지는 경우가 발생하기 때문에, 미리 만들어진 여러 개의 모델에서 선택하는 방법을 사용한다. 하지만, 이렇게 선택적인 방법을 사용할 때에는 객체의 상세 정도가 갑자기 바뀌게 되므로 화면상에서 파핑(popping) 현상이 발생하기도 한다.
도 2a에 보인 LOD 기법은 연속적인 LOD 기법의 동작 구조를 보인 것으로, 주어진 3차원 객체 기하정보 및 표면 속성 정보를 카메라 정보에 따라 처리하여 화면에 출력된 후 화면에서 나타나는 비율을 정하고, 이에 따라 에지 컬렙스(edge collapse)(11), 에지 스프리트(edge split)(12), 에지 제거(edge remove)(13) 등의 방법으로 이 3차원 객체를 구성하는 삼각형의 수를 제어한다. 즉, LOD 제어기(10)에서 에지 컬렙스(11), 에지 스프리트(12) 및 에지 제거(13)의 방법을 통해 화면 차지 비율에 따라 간략화된 기하 정보 및 표면 속성 정보를 출력하여 컬링 제어기(20)로 제공하게 되는 것이다.
도 2b는 도 1에 도시된 컬링 제어기(20)에 대한 컬링 기법을 설명하기 위한 도면이다.
도 2a에 도시된 바와 같이, 3차원 객체로 구성된 환경을 임의의 위치에서 바라본 장면으로 출력하기 위해서는 3차원 환경에 포함되어 있는 모든 객체를 영상 평면으로 원근 사영(perspective projection) 혹은 직교 사영(orthographic projection) 시키는 과정을 거친다. 이 과정은 회전(rotation) 및 이동(translation), 사영 행렬에 각각의 정점(vertex)을 곱하는 것으로, 실제 영상으로 출력되지 않는 객체 모두를 계산하는 것은 비효율적이다.
따라서 미리 현재 카메라의 관점에서 화면에 그려질 가능성이 있는 객체들을 먼저 결정하여 이 객체들만으로 사영 과정을 수행한다면 훨씬 빠르게 영상을 출력할 수 있을 것이다. 이렇게 사영 과정에 앞서 필요한 객체들을 선정하는 것을 컬링이라고 한다.
컬링에는 뷰 프러스텀 컬링(view frustum culling)(21)과 백 페이스컬링(back-face culling)(22), 그리고 히든 서페이스 컬링(hidden surface culling)(23)이 있으며 이 세 가지가 상호 보완적으로 작용하여 주어진 카메라 정보에 대해 전체 삼각형 중 반드시 화면에 출력되어야 할 3차원 삼각형 리스트를 선택한다. 결국, LOD제어기(10)에서 출력되는 화면 차지 비율에 따라 간략화된 기하 정보 및 표면 속성 정보가 입력되면, 컬링 제어기(20)에서 뷰 프러스텀 컬링(21), 백 페이스 컬링(22) 및 히든 서페이스 컬링(23) 기법을 통해 화면 출력 장치(30)를 통해 출력될 3차원 삼각형 리스트를 출력하는 것이다.
여기서, 도 3a 내지 도 3c를 참조하여 상기한 컬링 기법에 대하여 상세하게 살펴보기로 하자.
도 3a는 컬링 기법 중 뷰 프러스텀 컬링(view frustum culling) 기법의 과정을 설명하기 위한 도면이다.
뷰 프러스텀(view frustum) 이란, 주어진 카메라의 시야를 뜻하는 말로, 실제로 화면 출력 시에 생성되는 화면의 가장자리에 나타나는 물체를 화면 출력 장치가 제어할 필요가 없음에 착안한 방법이다. 이를 위해 주어진 3차원 환경을 공간 분할 기법인 oct-tree나 BSP-tree 등을 이용하여 구성해두는 방법이 많이 사용된다.
도 3b는 컬링 기법 중 백 페이스 컬링(back-face culling) 기법을 설명하기 위한 도면이다.
이 방법은 한 물체를 그릴 때, 이 물체가 3차원 공간상에 존재하는 올바른 물체라면, 이 물체의 면 중 카메라 쪽으로 향한 면만 화면에 나타나고, 카메라 쪽으로 향하지 않은 반대 면들은 화면에 나타나지 않는다는 점에 착안한 방법이다. 이 기법의 동작을 위해서는 3차원 객체를 구성하는 각 면들의 법선 벡터(normal vector)와 카메라 시선방향 벡터(camera view direction vector)간에 이루어지는 각도를 검사해야 하며, 이를 위해 각 삼각형들을 그 법선 벡터에 따라 미리 분류하여놓는 방법이 많이 사용된다.
마지막으로 도 3c는 컬링 기법 중 히든 서페이스 컬링(hidden-surface culling) 기법을 설명하기 위한 도면이다.
이 방법은 두 개 이상의 물체가 동시에 화면에 출력될 때, 어느 한 물체가 다른 물체에 의해 완전히 가려진다는 것을 미리 파악할 수 있다면 화면 출력 장치(display device)가 그 가려진 물체를 제어하지 않아도 된다는 점에 착안한 방법으로 물체간의 선후 관계를 빠르고 정확하게 파악할 수 있는 기법이 함께 요구된다.
이를 위해 주어진 3차원 객체를 대상으로 하여 BSP-tree를 구성하여 카메라로부터의 거리에 따라 3차원 객체를 구성하는 각 삼각형을 추출해내는 방법이 많이 활용된다.
BSP 트리는 전체 공간을 매번 1개의 평면을 기준으로 2개의 공간으로 분할한다. 이렇게 별도로 분할된 공간에는 재귀적으로(recursively) 같은 방법이 적용된다. 결과적으로, BSP 트리의 단말 노드(leaf node)에는 배타적인(exclusive) 독립 공간이 하나씩 배정되고, 하나의 공간 내에는 단순하게 렌더링이 가능한 다각형들의 집합만이 남아 있게 된다.
상기와 같이 컬링이나 LOD 등의 방법을 활용할 경우 전체 3차원 객체를 구성하는 삼각형 중 반드시 화면에 나타나야 할 것만을 미리 선택하여 화면 출력을 담당하는 하드웨어 장치(device)로 전송함으로서 장치의 부담을 줄여 화면 출력 속도를 향상시킨다는 장점을 가질 수 있다.
하지만, 이러한 방법은 그래픽 가속장치가 개발되기 이전에 활용되던 방법으로 그 특성 상 상당히 복잡하고 시간이 많이 걸리는 전처리 단계를 거쳐야 하며, 효과적인 처리를 위해서는 3차원 객체를 많은 수의 삼각형으로 구성하지 못한다는 단점이 있다.
한편, 최근 하드웨어 기술의 발전으로 일반 PC에서도 쉽게 접할 수 있게 된 그래픽 가속 하드웨어의 경우 전용의 그래픽 자료 처리 프로세서(GPU: graphic processing unit)를 내부에 채용하고 있어 많은 양의 삼각형을 빠르게 처리할 수 있도록 되어 있다. 이러한 그래픽 가속 하드웨어는 내부에 자체적인 연산 회로를 가지고 있으며 자체적인 파이프라인(pipelining) 방법에 따라 동작하기 때문에 외부에서 내부 연산의 지속성을 가능한 유지해주고 연산의 상태 변화를 최소화해준다면 매우 빠르게 동작할 수 있을 것이다.
따라서, 본 발명은 상기한 종래 기술에 따른 문제점을 해결하기 위하여 안출한 것으로, 본 발명의 목적은, 하드웨어 그래픽 가속 장치(hardware graphic acceleration board)를 이용하여 3차원 객체(3D objects)를 컴퓨터 화면 상에 출력할 때 그래픽 가속 장치 내부의 연산 횟수나 연산 순서를 최적화하여 화면 출력 속도를 향상시키기 위한 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템 및 그 방법을 제공함에 있다.
또한, 본 발명의 다른 목적은 상기한 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법을 수행하기 위한 기록 매체를 제공함에 있다.
즉, 본 발명은 하드웨어 그래픽 가속 장치(hardware graphic acceleration board)를 이용하여 3차원 객체(3D objects)를 컴퓨터 화면 상에 출력하는 과정에서 이와 같이 연산의 지속성 유지 및 상태 변화 최소화를 위한 것으로 화면 출력 전에 미리 주어진 3차원 객체의 표면 속성(material property)을 파악하여 이들 3차원 객체를 구성하는 삼각형들을 그 표면 속성이 같은 것끼리 분류하여 표면 속성 개수만큼의 그룹을 생성한 후, 각각의 그룹 내의 삼각형들을 카메라로부터의 거리에 따라 정렬(sort)하여 관리하며, 화면 출력 시에는 이들 그룹에서 카메라로부터 거리가 가장 먼 삼각형을 각각 하나씩 추출하고 다시 이들 중에서도 다시 카메라로부터 가장 먼 하나가 최종적으로 선택되어 출력되도록 하되, 선택된 삼각형이 출력되고 난 후에도 같은 그룹에서 추출된 또 다른 삼각형이 다른 그룹에서 추출된 삼각형과 출력 화면에서 서로 중첩되지 않는 한 계속적으로 출력되도록 제어하여 빠른 화면 출력이 가능하도록 하기 위한 것이다.
도 1은 종래 기술에 따른 LOD와 컬링(Culling) 기법을 이용한 3차원 객체 중 화면에 출력되어야 하는 부분을 선택하는 시스템에 대한 구성을 나타낸 도면.
도 2a는 도 1에 도시된 LOD 제어기에 대한 상세 블록 구성 및 그 처리 과정을 나타낸 도면.
도 2b는 도 1에 도시된 컬링 제어기에 대한 상세 블록 구성 및 그 처리 과정을 나타낸 도면.
도 3a는 일반적인 컬링 기법의 하나인 뷰 프러스텀 컬링(view frustum culling) 기법의 동작 개념을 설명하기 위한 도면.
도 3b는 일반적인 컬링 기법의 하나인 백 페이스 컬링(back-face culling) 기법의 동작 개념을 설명하기 위한 도면.
도 3c는 일반적인 컬링 기법의 하나인 히든 서페이스 컬링(hidden-surface culling) 기법의 동작 개념을 설명하기 위한 도면.
도 4는 본 발명에 따른 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내연산 최적화 시스템 및 그 방법에 대한 동작 구조를 설명하기 위한 도면.
도 5a는 도 4에 도시된 하드웨어 최적화 전처리기의 상세 구성 및 처리 과정을 설명하기 위한 도면.
도 5b는 도 4에 도시된 삼각형 출력 선택기에 대한 상세 구성 및 처리 과정을 설명하기 위한 도면.
*도면의 주요 부분에 대한 부호의 설명*
100 : 하드웨어 최적화 전처리기
200 : 불투명체/투명, 반투명체 구분기
300 : 삼각형 정렬기
400 : 삼각형 출력 선택기
500 : 화면 출력 장치
이와 같은 목적을 달성하기 위한 본 발명에 따른 하드웨어 그래픽 가속 장치내 연산 최적화 시스템 및 방법은 대상 3차원 객체를 구성하는 모든 삼각형을 화면 출력 이전에 그 표면속성에 따라 분류하여 그룹을 구성하고, 각 그룹 내의 삼각형들을 카메라로부터의 거리에 따라 정렬하며, 화면 출력 시에는 각각의 그룹에서 삼각형을 하나씩 추출하고, 이들 중 한 삼각형만이 선택되어 화면에 출력되도록 하되, 가능한 같은 그룹에서 추출된 삼각형이 계속적으로 선택되도록 제어하여 그래픽 가속 장치 내 연산 지속성을 유지하고 상태 변화를 최소화하는데 그 특징이 있다.
본 발명에 따른 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템의 일 측면에 따르면, 3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 하드웨어 최적화 전 처리부; 상기 하드웨어 최적화 전처리부에서 처리되어 출력된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 삼각형 정렬부; 상기 삼각형 정렬부에서 정렬된 각각의 삼각형 그룹에서 삼각형을 하나씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치로 출력하는 삼각형 출력 선택부를 포함한다.
상기 하드웨어 최적화 전처리부는 처리된 표면 속성 별 삼각형 그룹의 각 삼각형 객체들을 불투명, 투명, 반투명 체로 각각 구분하여 상기 삼각형 출력 선택부에 객체 형태 정보를 제공하는 객체 구분기를 포함한다.
상기 하드웨어 최적화 전처리부는, 주어진 3차원 객체 기하 정보를 분석하여 표면 속성 정보만을 추출하고, 추출된 표면 속성 정보에 따라 표면 속성 리스트를 구성하는 표면 속성 분석기; 상기 3차원 객체 기하 정보를 구성하는 복수의 삼각형을 분석하여, 분석된 각각의 삼각형들을 상기 표면 속성 정보 분석기에서 분석된 표면 속성에 따라 분류하여 해당되는 표면 속성 별 삼각형 그룹에 각각 추가하는 삼각형 분류기를 포함한다.
상기 표면 속성 분석기는, 한 객체에 대한 표면 속성을 분석하고 있는 시점에서 그 때까지 구성된 표면 속성 리스트를 참조하여 이 표면 속성이 이미 리스트에 포함되어 있는지를 비교하는 비교 판단기; a) 상기 판단부의 판단 결과, 현재 분석된 한 객체에 대한 표면 속성이 이미 리스트에 포함되어 있는 경우, 해당 표면 속성을 표면 속성 리스트에 포함시키지 않고, b) 현 시점까지의 표면 속성 리스트에 분석 중인 표면 속성이 포함되어 있지 않다면 리스트에 새롭게 표면 속성을 포함시켜 표면 속성을 가지는 삼각형을 관리하기 위한 삼각형 그룹을 새롭게 생성하는 리스트 추가 생성기를 포함한다.
상기 삼각형 출력 선택부는, 상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 삼각형 정렬기에서 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 삼각형 추출기; 상기 삼각형 추출기에서 추출된 삼각형 들중 제공되는 카메라 정보에 따라 하나의 삼각형을 선택하는 제1 삼각형 선택기; 상기 삼각형 추출기에서 추출된 삼각형들 중 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 선택하는 제2 삼각형 선택기; a) 상기 제1,2 삼각형 선택기에서 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 검사하고, b) 검사 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 제2 삼각형 선택기에서 선택된 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 제1 삼각형 출력기에서 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 디스플레이하는 삼각형 출력기를 포함한다.
한편, 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법의 일측면에 따르면, 3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 단계; 상기 생성된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 거리 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 단계; 상기 출력되는 정렬된 각각의 삼각형 그룹에서 삼각형을 하나 씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치에 디스플레이하는 단계를 포함한다.
상기 디스플레이하는 단계는, 표면 속성 별 삼각형 그룹의 각 삼각형 객체들을 불투명, 투명, 반투명 체로 각각 구분하여 구분된 객체 형태에 따라 디스플레이할 수 있다.
상기 삼각형 그룹을 생성하는 단계는, 입력되는 3차원 객체 기하 정보를 분석하여 표면 속성 정보만을 추출하고, 추출된 표면 속성 정보에 따라 표면 속성 리스트를 구성하는 단계; 상기 3차원 객체 기하 정보를 구성하는 복수의 삼각형을 분석하여, 분석된 각각의 삼각형들을 상기 추출된 표면 속성에 따라 분류하여 해당되는 표면 속성 별 삼각형 그룹에 추가하는 단계를 포함한다.
상기 표면 속성 리스트를 구성하는 단계는, 한 객체에 대한 표면 속성을 분석하고 있는 시점에서 그 때까지 구성된 표면 속성 리스트를 참조하여 이 표면 속성이 이미 리스트에 포함되어 있는지를 비교하는 단계; a) 상기 비교 결과, 현재 분석된 한 객체에 대한 표면 속성이 이미 리스트에 포함되어 있는 경우, 해당 표면 속성을 표면 속성 리스트에 포함시키지 않고, b) 현 시점까지의 표면 속성 리스트에 분석 중인 표면 속성이 포함되어 있지 않다면 리스트에 새롭게 표면 속성을 포함시켜 표면 속성을 가지는 삼각형을 관리하기 위한 삼각형 그룹을 새롭게 생성하는 단계를 포함한다.
상기 디스플레이하는 단계에서, 삼각형 선택 및 출력 과정을 두 번 수행하여 첫 번째 수행에서는 불투명한 물체가 출력되도록 하고, 두 번째 수행에서 투명 혹은 반투명한 물체가 화면 출력 장치로 출력되도록 하는 것이다. 여기서, 상기 첫 번째로 출력되는 불투명한 물체는, 카메라로부터 가까운 물체부터 출력하고, 두 번째로 출력하는 투명 혹은 반투명한 물체는 카메라로부터 먼 물체부터 출력한다.
상기 디스플레이하는 단계는, 상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 단계; 상기 추출된 삼각형들 중 제공되는 카메라 정보 및 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 각각 선택하는 단계; 상기 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 판단하는 단계; 상기 판단 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 단계를 포함하는 것이다.
그리고, 본 발명에 따른 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체의 일 측면에 따르면, 3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 단계; 상기 생성된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 거리 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 단계; 상기 출력되는 정렬된 각각의 삼각형 그룹에서 삼각형을 하나 씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치에 디스플레이하는 단계를 수행하되, 상기 상기 디스플레이하는 단계는, 상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 정렬된 개개의 삼각형 그룹으로부터그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 단계; 상기 추출된 삼각형들 중 제공되는 카메라 정보 및 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 각각 선택하는 단계; 상기 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 판단하는 단계; 상기 판단 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 단계를 수행한다.
이러한 특징을 가지는 본 발명은, 이를 위해 화면 출력 전에 미리 주어진 3차원 객체의 표면 속성(material property)을 파악하여 이들 3차원 객체를 구성하는 삼각형들을 그 표면 속성이 같은 것끼리 분류한 후 카메라로부터의 거리에 따라 정렬(sort)하여 관리한다. 3차원 객체를 화면에 출력할 때는 그 표면속성에 따라 불투명한 물체를 먼저, 그리고 투명 또는 반투명한 물체를 나중에 출력하여야 하며, 올바른 화면 생성을 위해서는 불투명한 물체의 경우에는 카메라에서 가까운 것부터, 투명 또는 반투명한 물체의 경우 카메라로부터 먼 것부터 출력하여야 한다. 이 때 가능한 한 그 표면 속성이 같은 삼각형들을 함께 출력되도록 제어하여야 하드웨어 가속장치 내에서의 속도 향상을 얻을 수 있다.
이를 위해 본 발명에서는 삼각형들을 각각의 표면속성에 따라 분류하여 표면 속성 개수만큼의 그룹으로 분할하고 다시 각각의 그룹 내의 삼각형을 카메라로부터의 거리에 따라 정렬하여 관리한다. 화면 출력 시에는 이들 그룹에서 각각 카메라로부터 거리가 가장 가까운 (또는 먼) 삼각형을 추출하고 다시 이들 중 하나가 카메라로부터의 거리에 따라 선택되어 출력되도록 하되, 현재 선택된 삼각형이 출력되고 난 후에도 계속적으로 같은 그룹에서 추출된 또 다른 삼각형이 이미 추출된 다른 삼각형과 화면상에서 중첩되지 않는 이상 출력되도록 하여 그래픽 가속장치 내에서의 올바른 화면 출력 상태를 유지하면서 표면 속성 전환(material property switching)을 최소화하는데 그 특징이 있다.
이하, 본 발명에 따른 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템 및 그 방법에 대한 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 살펴보기로 하자.
도 4 는 본 발명에 따른 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템의 구성을 나타낸 도면으로서, 하드웨어 최적화 전처리기(100), 불투명체/투명, 반투명체 구분기(200), 삼각형 정렬기(300), 삼각형 출력 선택기(400) 및 화면 출력 장치(500)로 구성될 수 있다.
하드웨어 최적화 전처리기(100)는, 주어진 3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트(material list)를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 만들고 개개의 삼각형들을 이들 그룹에 포함시키게 된다.
불투명/투명, 반투명체 구분기(200)는, 상기 하드웨어 최적화 전처리기(100)에서 처리된 표면 속성 별 삼각형 그룹의 각 삼각형 객체들을 불투명, 투명, 반투명 체로 각각 구분하여 삼각형 출력 선택기(400)로 제공한다.
삼각형 정렬기(300)는 하드웨어 최적화 전처리기(100)에서 처리되어 출력된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 정보(카메라 거리)에 따라 정렬하여 정렬된 삼각형 그룹을 삼각형 출력 선택기(400)로 제공한다.
삼각형 출력 선택기(400)는 생성된 각각의 삼각형 그룹에서 삼각형을 하나씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 화면 출력 장치(500)로 출력하여 화면에 디스플레이하게 되는 것이다.
이와 같은 구성에 대한 구체적인 동작에 대하여 살펴보자.
하드웨어 그래픽 가속 장치(hardware graphic acceleration board)를 이용하여 3차원 객체(3D objects)를 컴퓨터 화면 상에 출력할 때 그래픽 가속 장치 내부의 연산 횟수나 연산 순서를 최적화하여 화면 출력 속도를 향상시키기 위해 화면 출력 전에 미리 주어진 3차원 객체의 표면 속성(material property)을 파악한다.
이렇게 파악된 3차원 객체의 표면 속성 정보에 따라 이들 3차원 객체를 구성하는 삼각형들을 그 표면 속성이 같은 것끼리 분류한 후 카메라로부터의 거리에 따라 정렬(sort)하여 관리한다.
3차원 객체를 화면에 출력할 때는 그 표면속성에 따라 불투명한 물체를 먼저, 그리고 투명 또는 반투명한 물체를 나중에 출력하여야 하며, 올바른 화면 생성을 위해서는 불투명한 물체의 경우에는 카메라에서 가까운 것부터, 투명 또는 반투명한 물체의 경우 카메라로부터 먼 것부터 출력하여야 한다. 이 때 가능한 한 그표면 속성이 같은 삼각형들을 함께 출력되도록 제어하여야 하드웨어 가속장치 내에서의 속도 향상을 얻을 수 있다.
즉, 삼각형들을 각각의 표면속성에 따라 분류하여 표면 속성 개수만큼의 그룹으로 분할하고 다시 각각의 그룹 내의 삼각형을 카메라로부터의 거리에 따라 정렬하여 관리한다.
화면 출력 시에는 이들 그룹에서 각각 카메라로부터 거리가 가장 가까운 (또는 먼) 삼각형을 추출하고 다시 이들 중 하나가 카메라로부터의 거리에 따라 선택되어 출력되도록 한다. 그러나, 현재 선택된 삼각형이 출력되고 난 후에도 계속적으로 같은 그룹에서 추출된 또 다른 삼각형이 이미 추출된 다른 삼각형과 화면상에서 중첩되지 않는 이상 출력되도록 하여 그래픽 가속장치 내의 올바른 화면 출력 상태와 연산 지속성을 유지하면서 표면 속성 전환(material property switching)을 최소화하여 그래픽 하드웨어 가속기 (graphic hardware acceleration board)의 동작 속도를 향상시키는 것이다.
도 5a는 도 4에 도시된 하드웨어 최적화 전처리기의 상세 구성 및 처리 과정을 설명하기 위한 도면으로서, 상기 기술한 방법 중 주어진 기하정보를 분석하여 표면 속성 리스트(material list)를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 만들고 개개의 삼각형들을 이들 그룹에 포함시키는 작업의 과정도이다. 여기서, 도 4에 도시된 하드웨어 최적화 전처리기(100)는 표면 속성 분석기(110) 및 삼각형 분류기(120)로 구성될 수 있다.
즉, 하드웨어 최적화 전처리기(100)는, 표면 속성 분석기(110)를 통한 주어진 3차원 객체 기하정보에 대한 표면 속성 분석 과정과, 삼각형 분류기(120)를 통한 삼각형 분류 과정의 두 단계로 이루어질 수 있다.
우선, 표면 속성 분석기(110)에서의 표면 속성 분석 과정은, 주어진 객체 정보를 분석하여 표면 속성 정보만을 추출하고, 추출된 표면 속성 정보에 따라 표면 속성 리스트를 구성한다. 이 때, 표면 속성 분석기(110)는 한 객체에 대한 표면 속성을 분석하고 있는 시점에서 그 때까지 구성된 표면 속성 리스트를 참조하여 이 표면 속성이 이미 리스트에 포함되어 있는지를 판단한다.
판단 결과, 현재 분석된 한 객체에 대한 표면 속성이 이미 리스트에 포함되어 있는 경우, 이를 새롭게 리스트에 포함시키지 않도록 제어하여 불필요한 정보의 중복을 막는다. 또한 현 시점까지의 표면 속성 리스트에 분석 중인 표면 속성이 포함되어 있지 않다면 리스트에 새롭게 표면 속성을 포함시키면서 이 표면 속성을 가지는 삼각형을 관리하기 위한 삼각형 그룹을 새롭게 생성한다.
그리고, 삼각형 분류기(120)에서의 삼각형 분류 과정은, 3차원 객체를 구성하는 개개의 삼각형을 분석하여 이들을 그 표면 속성에 따라 분류하고 해당되는 삼각형 그룹에 추가시킨다.
도 5b는 도 4에 도시된 삼각형 출력 선택기에 대한 상세 구성 및 처리 과정을 설명하기 위한 도면으로서, 삼각형 출력 선택기(400)는, 삼각형 추출기(410), 제1,2 삼각형 선택기(420, 430) 및 삼각형 출력기(440)으로 구성될 수 있다.
우선, 도 4에 도시된 하드웨어 최적화 전처리기(100)를 통해 처리된 표면 속성 별 삼각형 그룹을 제공되는 카메라 정보(가메라 거리)를 통해 삼각형정렬기(300)에서 각각 정렬하게 된다.
즉, 화면 출력 시점에서의 카메라 위치를 참조하여 삼각형들을 카메라로부터의 거리를 기준으로 정렬해야 한다. 이러한 정렬 과정을 통해 정렬된 삼각형 그룹에서 도 5b에 도시된 삼각형 추출기(410)를 통해 카메라에서 가장 가까운 삼각형이나 가장 먼 삼각형을 우선적으로 추출하게 된다. 여기서, 불투명한 물체와 투명 혹은 반투명한 물체는 전술한 바와 같이 별도로 처리해야 한다. 따라서, 삼각형 선택 및 출력 단계를 두 번 수행하여 첫 번째 수행에서는 불투명한 물체가 출력되도록 하고, 두 번째 수행에서 투명 혹은 반투명한 물체가 출력되도록 한다. 이 때, 불투명한 물체는 카메라로부터 가까운 물체부터 출력해야 하며, 투명 혹은 반투명한 물체는 카메라로부터 먼 물체부터 출력해야 한다.
즉, 삼각형 추출기(410)는 화면에 출력되어야 할 삼각형을 선택하기 위해서 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 (혹은 가장 먼) 삼각형을 우선 추출한다.
이들 추출된 삼각형 중 도 5b에서 보인 삼각형 선택기 1(420)을 통해 역시 카메라 정보(카메라로부터의 거리 척도)에 따라 삼각형을 하나 선택한다.
이러한 방식으로 삼각형을 출력하다 보면 삼각형 선택의 기준이 카메라로부터의 거리뿐이므로 삼각형 출력 단계에서 잦은 표면 속성 전환(material property switching)이 발생하고 따라서 출력 속도가 저하되게 된다. 따라서 도 5b에 도시한 추가적인 삼각형 선택기 2(430)를 통해 이 문제를 해결한다.
삼각형 선택기 2(430)는 각 삼각형 그룹에서 선택한 삼각형 중 현재 출력된삼각형과 같은 표면 속성을 가진 것을 선택하게 되는 것이다.
이렇게 삼각형 선택기1, 2(420, 430)에서 각각 선택된 삼각형 1,2는 삼각형 출력부(440)로 제공된다.
삼각형 출력기(440)는 삼각형 선택기1,2(420, 430)에서 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 검사한다.
검사 결과, 삼각형 1과 삼각형 2가 화면에 서로 중첩되지 않으면, 삼각형 선택기 2(430)에서 선택된 표면속성이 같은 삼각형 2를 화면 출력 장치(500)로 출력하여 디스플레이한다.
그러나, 삼각형 1과 삼각형 2가 화면에 서로 중첩되면, 삼각형 출력기 1(420)에서 카메라로부터의 거리에 따라 선택된 삼각형 1을 화면 출력 장치(500)로 출력하여 디스플레이하는 것이다.
이러한 방법을 통해 본 발명은, 카메라로부터의 거리 척도에 따른 삼각형 출력 양식을 그대로 유지하면서 가능한 그래픽 가속 하드웨어 내의 표면 속성 전환을 줄이는 것이다.
상기한 바와 같은 본 발명에 따른 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템 및 그 방법은, 대상 3차원 객체를 구성하는 모든 삼각형을 화면 출력 이전에 그 표면속성에 따라 분류하여 그룹을 구성하고, 각 그룹 내의 삼각형들을 카메라로부터의 거리에 따라 정렬하며, 화면 출력 시에는 각각의그룹에서 삼각형을 하나씩 추출한다. 그리고, 이들 중 한 삼각형만이 선택되어 화면에 출력되도록 하되, 가능한 같은 그룹에서 추출된 삼각형이 계속적으로 선택되도록 제어하여 그래픽 가속 장치 내 연산 지속성을 유지하고 상태 변화를 최소화하는 것이다.
이를 통하여 별도의 내부 연산 장치를 가지고 파이프라인 기법에 의해 동작하는 그래픽 가속장치 내부의 연산 지속성이 유지되고 상태 변화가 최소화되면, 가속장치 내의 그래픽 자료 처리기(GPU: graphic processing unit)의 성능을 최대로 발휘할 수 있게 되어 주어진 3차원 객체들을 매우 빠른 속도로 화면에 출력할 수 있는 효과를 가지는 것이다.
Claims (16)
- 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템에 있어서,3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 하드웨어 최적화 전 처리부;상기 하드웨어 최적화 전처리부에서 처리되어 출력된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 삼각형 정렬부;상기 삼각형 정렬부에서 정렬된 각각의 삼각형 그룹에서 삼각형을 하나씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치로 출력하는 삼각형 출력 선택부를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 제1항에 있어서,상기 하드웨어 최적화 전처리부에서 처리된 표면 속성 별 삼각형 그룹의 각 삼각형 객체들을 불투명, 투명, 반투명 체로 각각 구분하여 상기 삼각형 출력 선택부에 객체 형태 정보를 제공하는 객체 구분기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 제1항에 있어서,상기 카메라 정보는 카메라 거리 척도 정보인 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 제1항에 있어서,상기 하드웨어 최적화 전처리부는,주어진 3차원 객체 기하 정보를 분석하여 표면 속성 정보만을 추출하고, 추출된 표면 속성 정보에 따라 표면 속성 리스트를 구성하는 표면 속성 분석기;상기 3차원 객체 기하 정보를 구성하는 복수의 삼각형을 분석하여, 분석된 각각의 삼각형들을 상기 표면 속성 정보 분석기에서 분석된 표면 속성에 따라 분류하여 해당되는 표면 속성 별 삼각형 그룹에 각각 추가하는 삼각형 분류기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 제4항에 있어서,상기 표면 속성 분석기는,한 객체에 대한 표면 속성을 분석하고 있는 시점에서 그 때까지 구성된 표면 속성 리스트를 참조하여 이 표면 속성이 이미 리스트에 포함되어 있는지를 비교하는 비교 판단기;a) 상기 판단부의 판단 결과, 현재 분석된 한 객체에 대한 표면 속성이 이미 리스트에 포함되어 있는 경우, 해당 객체를 표면 속성 리스트에 포함시키지 않고,b) 현 시점까지의 표면 속성 리스트에 분석 중인 표면 속성이 포함되어 있지 않다면 리스트에 새롭게 표면 속성을 포함시켜 표면 속성을 가지는 삼각형을 관리하기 위한 삼각형 그룹을 새롭게 생성하는 리스트 추가 생성기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 제1항에 있어서,상기 삼각형 출력 선택부는, 삼각형 선택 및 출력 단계를 두 번 수행하여 첫 번째 수행에서는 불투명한 물체가 출력되도록 하고, 두 번째 수행에서 투명 혹은 반투명한 물체가 출력되도록 하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 제6항에 있어서,상기 삼각형 출력 선택부에서 첫 번째로 출력되는 불투명한 물체는, 카메라로부터 가까운 물체부터 출력하고, 두 번째로 출력하는 투명 혹은 반투명한 물체는 카메라로부터 먼 물체부터 출력하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 제1항에 있어서,상기 삼각형 출력 선택부는,상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 삼각형 정렬기에서 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 삼각형 추출기;상기 삼각형 추출기에서 추출된 삼각형 들중 제공되는 카메라 정보에 따라 하나의 삼각형을 선택하는 제1 삼각형 선택기;상기 삼각형 추출기에서 추출된 삼각형들 중 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 선택하는 제2 삼각형 선택기a) 상기 제1,2 삼각형 선택기에서 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 검사하고,b) 검사 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 제2 삼각형 선택기에서 선택된 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 제1 삼각형 출력기에서 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 디스플레이하는 삼각형 출력기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
- 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법에 있어서,3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 단계;상기 생성된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 거리 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 단계;상기 출력되는 정렬된 각각의 삼각형 그룹에서 삼각형을 하나 씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치에 디스플레이하는 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
- 제9항에 있어서,상기 디스플레이하는 단계는,표면 속성 별 삼각형 그룹의 각 삼각형 객체들을 불투명, 투명, 반투명 체로 각각 구분하여 구분된 객체 형태에 따라 디스플레이하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
- 제9항에 있어서,상기 삼각형 그룹을 생성하는 단계는,입력되는 3차원 객체 기하 정보를 분석하여 표면 속성 정보만을 추출하고, 추출된 표면 속성 정보에 따라 표면 속성 리스트를 구성하는 단계;상기 3차원 객체 기하 정보를 구성하는 복수의 삼각형을 분석하여, 분석된 각각의 삼각형들을 상기 추출된 표면 속성에 따라 분류하여 해당되는 표면 속성 별 삼각형 그룹에 추가하는 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
- 제11항에 있어서,상기 표면 속성 리스트를 구성하는 단계는,한 객체에 대한 표면 속성을 분석하고 있는 시점에서 그 때까지 구성된 표면 속성 리스트를 참조하여 이 표면 속성이 이미 리스트에 포함되어 있는지를 비교하는 단계;a) 상기 비교 결과, 현재 분석된 한 객체에 대한 표면 속성이 이미 리스트에 포함되어 있는 경우, 해당 객체를 표면 속성 리스트에 포함시키지 않고,b) 현 시점까지의 표면 속성 리스트에 분석 중인 표면 속성이 포함되어 있지 않다면 리스트에 새롭게 표면 속성을 포함시켜 표면 속성을 가지는 삼각형을 관리하기 위한 삼각형 그룹을 새롭게 생성하는 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
- 제9항에 있어서,상기 디스플레이하는 단계에서, 삼각형 선택 및 출력 과정을 두 번 수행하여 첫 번째 수행에서는 불투명한 물체가 출력되도록 하고, 두 번째 수행에서 투명 혹은 반투명한 물체가 화면 출력 장치로 출력되도록 하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
- 제13항에 있어서,상기 첫 번째로 출력되는 불투명한 물체는, 카메라로부터 가까운 물체부터 출력하고, 두 번째로 출력하는 투명 혹은 반투명한 물체는 카메라로부터 먼 물체부터 출력하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
- 제9항에 있어서,상기 디스플레이하는 단계는,상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 단계;상기 추출된 삼각형들 중 제공되는 카메라 정보 및 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 각각 선택하는 단계;상기 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 판단하는 단계;상기 판단 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
- 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체에 있어서,3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 단계;상기 생성된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 거리 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 단계;상기 출력되는 정렬된 각각의 삼각형 그룹에서 삼각형을 하나 씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치에 디스플레이하는 단계를 수행하되,상기 상기 디스플레이하는 단계는,상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 단계;상기 추출된 삼각형들 중 제공되는 카메라 정보 및 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 각각 선택하는 단계;상기 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 판단하는 단계;상기 판단 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 단계를 수행하는 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0084214A KR100436815B1 (ko) | 2001-12-24 | 2001-12-24 | 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 |
US10/067,321 US20030117403A1 (en) | 2001-12-24 | 2002-02-07 | System and method for operation optimization in hardware graphics accelerator for real-time rendering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0084214A KR100436815B1 (ko) | 2001-12-24 | 2001-12-24 | 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030054108A KR20030054108A (ko) | 2003-07-02 |
KR100436815B1 true KR100436815B1 (ko) | 2004-06-23 |
Family
ID=19717512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0084214A KR100436815B1 (ko) | 2001-12-24 | 2001-12-24 | 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20030117403A1 (ko) |
KR (1) | KR100436815B1 (ko) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769794B2 (en) | 2003-03-24 | 2010-08-03 | Microsoft Corporation | User interface for a file system shell |
US7421438B2 (en) | 2004-04-29 | 2008-09-02 | Microsoft Corporation | Metadata editing control |
US7627552B2 (en) | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7240292B2 (en) | 2003-04-17 | 2007-07-03 | Microsoft Corporation | Virtual address bar user interface control |
US7823077B2 (en) | 2003-03-24 | 2010-10-26 | Microsoft Corporation | System and method for user modification of metadata in a shell browser |
US7712034B2 (en) * | 2003-03-24 | 2010-05-04 | Microsoft Corporation | System and method for shell browser |
US7827561B2 (en) | 2003-03-26 | 2010-11-02 | Microsoft Corporation | System and method for public consumption of communication events between arbitrary processes |
US7890960B2 (en) * | 2003-03-26 | 2011-02-15 | Microsoft Corporation | Extensible user context system for delivery of notifications |
US7925682B2 (en) | 2003-03-27 | 2011-04-12 | Microsoft Corporation | System and method utilizing virtual folders |
US7650575B2 (en) | 2003-03-27 | 2010-01-19 | Microsoft Corporation | Rich drag drop user interface |
US8024335B2 (en) | 2004-05-03 | 2011-09-20 | Microsoft Corporation | System and method for dynamically generating a selectable search extension |
US7181463B2 (en) | 2003-10-24 | 2007-02-20 | Microsoft Corporation | System and method for managing data using static lists |
US7657846B2 (en) * | 2004-04-23 | 2010-02-02 | Microsoft Corporation | System and method for displaying stack icons |
US7694236B2 (en) | 2004-04-23 | 2010-04-06 | Microsoft Corporation | Stack icons representing multiple objects |
US20050240878A1 (en) * | 2004-04-26 | 2005-10-27 | Microsoft Corporation | System and method for scaling icons |
US7992103B2 (en) | 2004-04-26 | 2011-08-02 | Microsoft Corporation | Scaling icons for representing files |
US8707209B2 (en) | 2004-04-29 | 2014-04-22 | Microsoft Corporation | Save preview representation of files being created |
US7496583B2 (en) * | 2004-04-30 | 2009-02-24 | Microsoft Corporation | Property tree for metadata navigation and assignment |
US8108430B2 (en) | 2004-04-30 | 2012-01-31 | Microsoft Corporation | Carousel control for metadata navigation and assignment |
US7755629B2 (en) * | 2004-06-30 | 2010-07-13 | Canon Kabushiki Kaisha | Method of rendering graphic objects |
US7383503B2 (en) * | 2005-02-23 | 2008-06-03 | Microsoft Corporation | Filtering a collection of items |
US8490015B2 (en) | 2005-04-15 | 2013-07-16 | Microsoft Corporation | Task dialog and programming interface for same |
US8195646B2 (en) | 2005-04-22 | 2012-06-05 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
US20060242591A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | File dialog user interfaces and creation of same |
US8522154B2 (en) * | 2005-04-22 | 2013-08-27 | Microsoft Corporation | Scenario specialization of file browser |
US7665028B2 (en) * | 2005-07-13 | 2010-02-16 | Microsoft Corporation | Rich drag drop user interface |
US20070139430A1 (en) * | 2005-12-21 | 2007-06-21 | Microsoft Corporation | Rendering "gadgets" with a browser |
KR20070092499A (ko) * | 2006-03-10 | 2007-09-13 | 삼성전자주식회사 | 3차원 그래픽 데이터의 처리 방법 및 장치 |
KR100790892B1 (ko) * | 2006-10-18 | 2008-01-02 | 삼성전자주식회사 | 투명 객체의 화질 향상을 위한 3차원 그래픽스 데이터렌더링 방법 및 장치 |
KR100885547B1 (ko) * | 2007-04-23 | 2009-02-26 | 주식회사 지니프릭스 | 디지털 대화형 방송을 위한 3차원 그래픽 형성 방법, 상기방법을 이용한 3차원 그래픽 형성 시스템 |
US8872839B2 (en) | 2011-09-09 | 2014-10-28 | Microsoft Corporation | Real-time atlasing of graphics data |
US10198856B2 (en) * | 2013-11-11 | 2019-02-05 | Oxide Interactive, LLC | Method and system of anti-aliasing shading decoupled from rasterization |
US10569527B2 (en) | 2015-04-24 | 2020-02-25 | Hewlett-Packard Development Company, L.P. | Three-dimensional object presentation |
CN105631923B (zh) * | 2015-12-25 | 2018-10-23 | 网易(杭州)网络有限公司 | 一种渲染方法和装置 |
US10872469B2 (en) * | 2019-03-22 | 2020-12-22 | Cesium GS, Inc. | System and method for subdividing large polygon mesh datasets into hierarchical subsets for level-of-detail use |
US11436783B2 (en) | 2019-10-16 | 2022-09-06 | Oxide Interactive, Inc. | Method and system of decoupled object space shading |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60198690A (ja) * | 1984-03-23 | 1985-10-08 | Hitachi Ltd | 高速図形処理方式 |
JPH05210745A (ja) * | 1991-09-06 | 1993-08-20 | Canon Inc | 3次元グラフィックス処理方法及びその装置 |
JPH09128561A (ja) * | 1995-10-30 | 1997-05-16 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | 三次元図形データ削減方法 |
US5742293A (en) * | 1992-06-19 | 1998-04-21 | International Business Machines Corporation | Data visualizer utilizing exterior selected and depth sorted polyhedron faces |
WO1999056249A1 (en) * | 1998-04-27 | 1999-11-04 | Interactive Silicon, Inc. | Graphics system and method for rendering independent 2d and 3d objects |
-
2001
- 2001-12-24 KR KR10-2001-0084214A patent/KR100436815B1/ko not_active IP Right Cessation
-
2002
- 2002-02-07 US US10/067,321 patent/US20030117403A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60198690A (ja) * | 1984-03-23 | 1985-10-08 | Hitachi Ltd | 高速図形処理方式 |
JPH05210745A (ja) * | 1991-09-06 | 1993-08-20 | Canon Inc | 3次元グラフィックス処理方法及びその装置 |
US5742293A (en) * | 1992-06-19 | 1998-04-21 | International Business Machines Corporation | Data visualizer utilizing exterior selected and depth sorted polyhedron faces |
JPH09128561A (ja) * | 1995-10-30 | 1997-05-16 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | 三次元図形データ削減方法 |
WO1999056249A1 (en) * | 1998-04-27 | 1999-11-04 | Interactive Silicon, Inc. | Graphics system and method for rendering independent 2d and 3d objects |
Also Published As
Publication number | Publication date |
---|---|
KR20030054108A (ko) | 2003-07-02 |
US20030117403A1 (en) | 2003-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100436815B1 (ko) | 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 | |
US5579454A (en) | Three dimensional graphics processing with pre-sorting of surface portions | |
Matusik et al. | Polyhedral visual hulls for real-time rendering | |
US8350846B2 (en) | Updating ray traced acceleration data structures between frames based on changing perspective | |
Sutherland et al. | A characterization of ten hidden-surface algorithms | |
Isenberg et al. | A developer's guide to silhouette algorithms for polygonal models | |
JP3759971B2 (ja) | 3次元像を陰影付けする方法 | |
US6529207B1 (en) | Identifying silhouette edges of objects to apply anti-aliasing | |
US7948487B2 (en) | Occlusion culling method and rendering processing apparatus | |
US7812837B2 (en) | Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method | |
CN101506847B (zh) | 用于划分空间索引的方法和系统 | |
EP2828830A2 (en) | Luggage visualization and virtual unpacking | |
EP1089234A2 (en) | Parallel pipelined volume rendering system | |
KR102151443B1 (ko) | 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치 | |
JP4499291B2 (ja) | 3次元コンピュータ生成画像のシェーディング及びテクスチャリング | |
KR101090660B1 (ko) | 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법 | |
EP3876205A1 (en) | Image generation system and method | |
KR102683773B1 (ko) | 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 | |
US11436797B2 (en) | Image generation system and method | |
Kolivand et al. | Simulated real-time soft shadow in mixed reality using fuzzy logic | |
Ježek et al. | Non-photorealistic rendering and sketching supported by GPU | |
Saeed et al. | Evaluation of Hidden Surface Removal Methods Using Open GL | |
EP1089235A2 (en) | Space leaping in a parallel pipelined volume rendering system | |
Wiche et al. | Performance Evaluation of Acceleration Structures for Cone-tracing Traversal | |
EP1089225A2 (en) | Parallel pipelined volume rendering system |
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: 20130527 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20140529 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20150527 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20160527 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20170529 Year of fee payment: 14 |
|
LAPS | Lapse due to unpaid annual fee |