[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100436815B1 - 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 - Google Patents

실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 Download PDF

Info

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
Application number
KR10-2001-0084214A
Other languages
English (en)
Other versions
KR20030054108A (ko
Inventor
박태준
표순형
추창우
최병태
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2001-0084214A priority Critical patent/KR100436815B1/ko
Priority to US10/067,321 priority patent/US20030117403A1/en
Publication of KR20030054108A publication Critical patent/KR20030054108A/ko
Application granted granted Critical
Publication of KR100436815B1 publication Critical patent/KR100436815B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Abstract

본 발명은 하드웨어 그래픽 가속 장치를 이용하여 3차원 객체를 컴퓨터 화면 상에 출력할 때 그래픽 가속 장치 내부의 상태 변화나 연산 순서를 최적화하여 화면 출력 속도를 향상시키는 시스템 및 그 방법에 관한 것으로, 화면 출력 전에 미리 주어진 3차원 객체의 표면 속성을 파악하여 이들 3차원 객체를 구성하는 삼각형들을 그 표면 속성이 같은 것끼리 분류하여 표면 속성 개수만큼의 그룹을 생성한 후 각각의 그룹 내의 삼각형들을 카메라로부터의 거리에 따라 정렬(sort)하여 관리하며, 화면 출력 시에는 이들 그룹에서 카메라로부터 거리가 가장 먼 삼각형을 각각 하나씩 추출하고 다시 추출된 삼각형 중에서도 카메라로부터 가장 먼 하나가 최종적으로 선택되어 출력되도록 하되, 선택된 삼각형이 출력되고 난 후에도 같은 그룹에서 추출된 또 다른 삼각형이 다른 그룹에서 추출된 삼각형과 출력 화면에서 서로 중첩되지 않는 한 계속적으로 출력되도록 제어하여 그래픽 가속 장치 내에서의 카메라로부터의 거리 제어에 따른 효과적인 화면 출력 상태를 유지하면서 표면 속성 전환을 줄일 수 있어 그래픽 가속 장치를 이용한 빠른 화면 출력이 가능한 것이다.

Description

실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템 및 그 방법{method and apparatus for optimizing hardware graphics acceleration board operation for real time rendering}
본 발명은 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템 및 그 방법에 관한 것으로서, 특히 하드웨어 그래픽 가속 장치(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)

  1. 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템에 있어서,
    3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 하드웨어 최적화 전 처리부;
    상기 하드웨어 최적화 전처리부에서 처리되어 출력된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 삼각형 정렬부;
    상기 삼각형 정렬부에서 정렬된 각각의 삼각형 그룹에서 삼각형을 하나씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치로 출력하는 삼각형 출력 선택부를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  2. 제1항에 있어서,
    상기 하드웨어 최적화 전처리부에서 처리된 표면 속성 별 삼각형 그룹의 각 삼각형 객체들을 불투명, 투명, 반투명 체로 각각 구분하여 상기 삼각형 출력 선택부에 객체 형태 정보를 제공하는 객체 구분기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  3. 제1항에 있어서,
    상기 카메라 정보는 카메라 거리 척도 정보인 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  4. 제1항에 있어서,
    상기 하드웨어 최적화 전처리부는,
    주어진 3차원 객체 기하 정보를 분석하여 표면 속성 정보만을 추출하고, 추출된 표면 속성 정보에 따라 표면 속성 리스트를 구성하는 표면 속성 분석기;
    상기 3차원 객체 기하 정보를 구성하는 복수의 삼각형을 분석하여, 분석된 각각의 삼각형들을 상기 표면 속성 정보 분석기에서 분석된 표면 속성에 따라 분류하여 해당되는 표면 속성 별 삼각형 그룹에 각각 추가하는 삼각형 분류기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  5. 제4항에 있어서,
    상기 표면 속성 분석기는,
    한 객체에 대한 표면 속성을 분석하고 있는 시점에서 그 때까지 구성된 표면 속성 리스트를 참조하여 이 표면 속성이 이미 리스트에 포함되어 있는지를 비교하는 비교 판단기;
    a) 상기 판단부의 판단 결과, 현재 분석된 한 객체에 대한 표면 속성이 이미 리스트에 포함되어 있는 경우, 해당 객체를 표면 속성 리스트에 포함시키지 않고,
    b) 현 시점까지의 표면 속성 리스트에 분석 중인 표면 속성이 포함되어 있지 않다면 리스트에 새롭게 표면 속성을 포함시켜 표면 속성을 가지는 삼각형을 관리하기 위한 삼각형 그룹을 새롭게 생성하는 리스트 추가 생성기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  6. 제1항에 있어서,
    상기 삼각형 출력 선택부는, 삼각형 선택 및 출력 단계를 두 번 수행하여 첫 번째 수행에서는 불투명한 물체가 출력되도록 하고, 두 번째 수행에서 투명 혹은 반투명한 물체가 출력되도록 하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  7. 제6항에 있어서,
    상기 삼각형 출력 선택부에서 첫 번째로 출력되는 불투명한 물체는, 카메라로부터 가까운 물체부터 출력하고, 두 번째로 출력하는 투명 혹은 반투명한 물체는 카메라로부터 먼 물체부터 출력하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  8. 제1항에 있어서,
    상기 삼각형 출력 선택부는,
    상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 삼각형 정렬기에서 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 삼각형 추출기;
    상기 삼각형 추출기에서 추출된 삼각형 들중 제공되는 카메라 정보에 따라 하나의 삼각형을 선택하는 제1 삼각형 선택기;
    상기 삼각형 추출기에서 추출된 삼각형들 중 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 선택하는 제2 삼각형 선택기
    a) 상기 제1,2 삼각형 선택기에서 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 검사하고,
    b) 검사 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 제2 삼각형 선택기에서 선택된 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 제1 삼각형 출력기에서 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 디스플레이하는 삼각형 출력기를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 시스템.
  9. 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법에 있어서,
    3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 단계;
    상기 생성된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 거리 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 단계;
    상기 출력되는 정렬된 각각의 삼각형 그룹에서 삼각형을 하나 씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치에 디스플레이하는 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
  10. 제9항에 있어서,
    상기 디스플레이하는 단계는,
    표면 속성 별 삼각형 그룹의 각 삼각형 객체들을 불투명, 투명, 반투명 체로 각각 구분하여 구분된 객체 형태에 따라 디스플레이하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
  11. 제9항에 있어서,
    상기 삼각형 그룹을 생성하는 단계는,
    입력되는 3차원 객체 기하 정보를 분석하여 표면 속성 정보만을 추출하고, 추출된 표면 속성 정보에 따라 표면 속성 리스트를 구성하는 단계;
    상기 3차원 객체 기하 정보를 구성하는 복수의 삼각형을 분석하여, 분석된 각각의 삼각형들을 상기 추출된 표면 속성에 따라 분류하여 해당되는 표면 속성 별 삼각형 그룹에 추가하는 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
  12. 제11항에 있어서,
    상기 표면 속성 리스트를 구성하는 단계는,
    한 객체에 대한 표면 속성을 분석하고 있는 시점에서 그 때까지 구성된 표면 속성 리스트를 참조하여 이 표면 속성이 이미 리스트에 포함되어 있는지를 비교하는 단계;
    a) 상기 비교 결과, 현재 분석된 한 객체에 대한 표면 속성이 이미 리스트에 포함되어 있는 경우, 해당 객체를 표면 속성 리스트에 포함시키지 않고,
    b) 현 시점까지의 표면 속성 리스트에 분석 중인 표면 속성이 포함되어 있지 않다면 리스트에 새롭게 표면 속성을 포함시켜 표면 속성을 가지는 삼각형을 관리하기 위한 삼각형 그룹을 새롭게 생성하는 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
  13. 제9항에 있어서,
    상기 디스플레이하는 단계에서, 삼각형 선택 및 출력 과정을 두 번 수행하여 첫 번째 수행에서는 불투명한 물체가 출력되도록 하고, 두 번째 수행에서 투명 혹은 반투명한 물체가 화면 출력 장치로 출력되도록 하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
  14. 제13항에 있어서,
    상기 첫 번째로 출력되는 불투명한 물체는, 카메라로부터 가까운 물체부터 출력하고, 두 번째로 출력하는 투명 혹은 반투명한 물체는 카메라로부터 먼 물체부터 출력하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
  15. 제9항에 있어서,
    상기 디스플레이하는 단계는,
    상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 단계;
    상기 추출된 삼각형들 중 제공되는 카메라 정보 및 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 각각 선택하는 단계;
    상기 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 판단하는 단계;
    상기 판단 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 단계를 포함하는 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법.
  16. 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산 최적화 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체에 있어서,
    3차원 객체 기하 정보 및 표면 속성 정보가 입력되면, 기하 정보를 분석하여 표면 속성 리스트를 구성하고 3차원 객체를 구성하는 삼각형들을 분석하여 표면 속성 개수만큼의 삼각형 그룹을 생성하는 단계;
    상기 생성된 표면 속성 별 삼각형 그룹들을 제공되는 카메라 거리 정보에 따라 정렬하여 정렬된 삼각형 그룹들을 각각 출력하는 단계;
    상기 출력되는 정렬된 각각의 삼각형 그룹에서 삼각형을 하나 씩 추출한 후, 이들 중에서 화면에 출력될 삼각형을 선택하여 제공되는 객체 형태 정보에 따라 화면 출력 장치에 디스플레이하는 단계를 수행하되,
    상기 상기 디스플레이하는 단계는,
    상기 화면 출력 장치의 화면에 출력되어야 할 삼각형을 선택하기 위해서 상기 정렬된 개개의 삼각형 그룹으로부터 그 그룹에 속한 삼각형 중 카메라로부터 가장 가까운 또는 가장 먼 삼각형을 우선적으로 추출하는 단계;
    상기 추출된 삼각형들 중 제공되는 카메라 정보 및 현재 출력된 삼각형과 같은 표면 속성을 가진 삼각형을 각각 선택하는 단계;
    상기 각각 선택된 두 삼각형이 화면상에 출력된 후 화면에서 서로 중첩되는가를 판단하는 단계;
    상기 판단 결과, 상기 선택된 두 삼각형이 화면에 서로 중첩되지 않으면, 상기 표면 속성이 같은 삼각형을 화면 출력 장치로 출력하고, 두 삼각형이 화면에 서로 중첩되면, 상기 카메라로부터의 거리에 따라 선택된 삼각형을 화면 출력 장치로 출력하여 단계를 수행하는 기록 매체.
KR10-2001-0084214A 2001-12-24 2001-12-24 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법 KR100436815B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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