KR101623502B1 - 계층적 공간 분할 구조의 부분 업데이트 장치 및 방법 - Google Patents

계층적 공간 분할 구조의 부분 업데이트 장치 및 방법 Download PDF

Info

Publication number
KR101623502B1
KR101623502B1 KR1020090106994A KR20090106994A KR101623502B1 KR 101623502 B1 KR101623502 B1 KR 101623502B1 KR 1020090106994 A KR1020090106994 A KR 1020090106994A KR 20090106994 A KR20090106994 A KR 20090106994A KR 101623502 B1 KR101623502 B1 KR 101623502B1
Authority
KR
South Korea
Prior art keywords
node
space
division
split
unit
Prior art date
Application number
KR1020090106994A
Other languages
English (en)
Other versions
KR20110050143A (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 KR1020090106994A priority Critical patent/KR101623502B1/ko
Publication of KR20110050143A publication Critical patent/KR20110050143A/ko
Application granted granted Critical
Publication of KR101623502B1 publication Critical patent/KR101623502B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

계층적 공간 분할 구조의 부분 업데이트 장치 및 방법을 개시한다. 계층적 공간 분할 구조의 부분 업데이트 장치는, 객체의 움직임 영역을 판단하고, 움직임 영역을 포함하는 노드에 대해서만 공간 분할 구조를 업데이트하여, 공간 전체가 아닌 계층적 공간 분할 구조의 일부를 업데이트하는 장치를 제공할 수 있다.
계층적 공간 분할 구조, 업데이트, 움직임 영역, 레이 트레이싱, 노드

Description

계층적 공간 분할 구조의 부분 업데이트 장치 및 방법{APPARATUS AND METHOD FOR PARTIAL UPDATE IN ACCELERATION STRUCTURE}
본 발명의 실시예들은 계층적 공간 분할 구조의 부분 업데이트 장치 및 방법에 관한 것으로, 특히 객체의 움직임 영역을 판단하여 움직임 영역을 포함하는 노드에 대해서만 공간 분할 구조를 업데이트하는 기술과 관련된 것이다.
레이 트레이싱(Ray-tracing) 렌더링은 광선과 삼차원 객체간의 충돌을 통해 화면 상의 각 화소(Pixel)의 색상을 결정하는 방식으로써, 광선과 삼차원 객체간 충돌 검사는 레이 트레이싱 방식의 주요 구성 요소이다. 따라서 대부분의 레이 트레이싱 기법은 레이와 삼차원 객체간 충돌 검사를 가속화하기 위해 계층적 공간 분할 구조를 생성한다.
계층적 공간 분할 구조에서는 각 구조의 단계에 따라 처리해야 하는 삼각형의 수가 다르며, 모든 단계의 노드에 대해 동일한 처리 방식을 적용한다면, 동시에 처리할 수 있는 쓰레드(Thread)의 한계로 인해 경우에 따라 동시에 모든 입력 삼각형을 처리할 수 없는 경우도 있고, 삼각형의 수보다 처리할 수 있는 쓰레드의 수가 많아 아이들(Idle)이 발생하는 경우도 있다.
또한, 정적 장면(Scene)에 레이 트레이싱을 적용할 경우, 장면에 대해 한 번만 계층적 공간 분할 구조를 생성하여 반복 사용할 수 있지만, 동적 장면에 레이 트레이싱을 적용할 경우에는 장면 내 객체가 시간에 따라 움직이기 때문에 매 프레임마다 새로운 계층적 공간 분할 구조(Acceleration Structure)를 생성해야 한다.
따라서, 장면 전체가 아니라 동적 객체의 움직임에 따른 계층적 공간 분할 구조의 일부 영역을 업데이트하고, 계층적 분할 구조의 각 단계에 따라 서로 다른 방식으로 삼각형을 처리하는 장치 및 방법에 대한 연구가 필요하다.
본 발명의 일실시예에 따른 계층적 공간 분할 구조의 부분 업데이트 장치는, 객체의 움직임 영역을 추출하는 움직임 영역 추출부, 계층적 공간 분할 구조 내의 최상위 노드를 기준 노드로 지정하는 기준 노드 결정부, 상기 기준 노드의 각 자식 노드가 모두 상기 움직임 영역과 중첩되는지 판단하는 중첩 판단부, 상기 움직임 영역이 상기 기준 노드의 각 자식 노드와 모두 겹치는 경우, 상기 기준 노드를 분할대상 노드로 결정하는 분할대상 노드 결정부 및 상기 분할대상 노드에 대하여 공간 분할을 수행하는 공간 분할부를 포함할 수 있다.
이때, 상기 기준 노드 결정부는, 상기 움직임 영역이 상기 기준 노드의 자식 노드 중 하나와 겹치는 경우, 상기 겹치는 하나의 자식 노드를 새로운 기준 노드로 설정할 수 있다.
또한, 상기 공간 분할부는, 상기 객체의 위치에 따라 분할 최적 위치를 계산하는 분할 위치 계산부, 상기 분할 최적 위치에 따라 공간을 분할하고 객체를 분배하는 객체 분배부 및 분할된 각 공간의 경계와 중첩되는 객체를 처리하는 중첩 객체 처리부를 포함할 수 있다.
또한, 상기 분할 위치 계산부는, 상기 객체를 구성하는 각 삼각형의 위치를 분할 최적 위치 후보로 선정하는 분할 후보 선정부, 하나 이상의 상기 분할 최적 위치 후보를 좌표값에 따라 오름차순 정렬하는 정렬부, 상기 정렬된 각 분할 최적 위치 후보에 대하여 SAH(Surface Area Heuristic) 값을 계산하는 SAH 계산부 및 각 분할 최적 위치 후보 중 최소의 SAH값을 갖는 분할면을 분할 최적 위치로 선택하는 분할 위치 선택부를 포함할 수 있다.
또한, 상기 분할 위치 계산부는, 상위 노드에서 선정된 분할 최적 위치 후보를 하위 노드 분할을 위한 분할 최적 위치 후보로 사용할 수 있다.
또한, 상기 객체의 움직임 영역이 복수개 존재하고, 각 움직임 영역이 서로 다른 노드에 속하는 경우, 공간분할을 복수의 프로세서에서 병렬 처리할 수 있다.
또한, 상기 공간 분할부는, 상기 분할대상 노드가 포함하는 삼각형의 수에 대응하여, 복수의 처리 모드 중 하나의 모드로 공간 분할을 수행할 수 있다.
또한, 상기 공간 분할부는, 초대형 모드, 대형 모드, 중형 모드, 소형 모드를 포함하는 상기 복수의 처리 모드에 따라 상기 분할대상 노드를 처리하기 위한 블록의 수를 결정하고, 상기 결정된 블록의 수로 상기 분할대상 노드의 공간을 분할할 수 있다.
본 발명의 일실시예에 따른 계층적 공간 분할 구조의 부분 업데이트 방법은, 객체의 움직임 영역을 추출하는 단계, 계층적 공간 분할 구조 내의 최상위 노드를 기준 노드로 지정하는 단계, 상기 기준 노드의 각 자식 노드가 모두 상기 움직임 영역과 중첩되는지 판단하는 단계, 상기 움직임 영역이 상기 기준 노드의 각 자식 노드와 모두 겹치는 경우, 상기 기준 노드를 분할대상 노드로 결정하는 단계, 상기 움직임 영역이 상기 기준 노드의 자식 노드 중 하나와 겹치는 경우, 상기 겹치는 하나의 자식 노드를 새로운 기준 노드로 설정하는 단계 및 상기 분할대상 노드에 대하여 공간 분할을 수행하는 단계를 포함하고, 상기 판단하는 단계 내지 상 기 설정하는 단계는, 상기 분할대상 노드가 결정될 때까지 반복 수행될 수 있다.
본 발명의 일실시예에 따르면, 객체의 움직임 영역을 추출하고, 상기 움직임 영역을 포함하는 노드에 대해서만, 계층적 공간 분할 구조를 업데이트함으로써, 레이 트레이싱의 연산량 및 렌더링 시간을 줄이고, 객체의 움직임을 보다 효율적으로 반영하는 장치 및 방법을 제공할 수 있다.
본 발명의 일실시예에 따르면, 계층적 공간 분할 구조의 생성 또는 업데이트시, 계층적 공간 분할 구조의 각 단계에 따라, 복수의 처리 모드 중 하나의 모드로 계층적 공간 분할 구조의 생성 또는 업데이트를 수행함으로써, 멀티 코어의 성능을 극대화할 수 있는 장치 및 방법을 제공할 수 있다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 실시예들을 상세하게 설명한다.  다만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다.  각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
레이 트레이싱은 각 픽셀에 대한 연산이 독립적으로 수행될 수 있으므로, 병렬처리 효과를 극대화 할 수 있는, 매니 코어 아키텍쳐(Many-core architecture)가 사용될 수 있다. 매니 코어 아키텍쳐란 다수의 연산 코어가 존재하여 병렬적으로 연산을 수행함으로써, 성능을 높이는 방식의 아키텍쳐로, 고속으로 그래픽 연산을 처리하는 GPU (Graphics Processing Unit) 등에 널리 쓰이는 아키텍쳐이다.
여기서, GPU의 하드웨어 구조의 일예를 살펴보면, GPU는 여러 개의 멀티 프 로세서(Multiprocessor)로 이루어져 있으며, 멀티 프로세서 내에는 공유 메모리(Shared Memory)와 인스트럭션 유닛(Instruction Unit)을 공유하는 여러 개의 프로세서로 이루어 있다. 이러한 GPU 하드웨어 구조에서는 상기 GPU 하드웨어 상에서 실행되는 쓰레드(Thread)의 모임으로 이루어진 블록(Block)과 블록의 모임으로 이루어진 그리드(Grid)가 있다. 이때 하나의 블록은 하나의 멀티 프로세서 안에서 실행이 이루어지며, 같은 블록에 속하는 쓰레드는 같은 멀티 프로세서 내의 프로세서가 담당해서 처리한다. 또한, 같은 블록 내의 쓰레드는 GPU의 하드웨어 구조 상 같은 공유 메모리(Shared Memory)를 사용할 수 있으며, 하나의 블록이 가질 수 있는 쓰레드의 수는 프로세서의 수에 비례한다.
도 1은 본 발명의 일실시예에 따른, 계층적 공간 분할 구조의 부분 업데이트 장치의 블록도이다.
도 1을 참고하면, 계층적 공간 분할 구조의 부분 업데이트 장치(100)는 움직임 영역 추출부(110), 기준 노드 결정부(120), 중첩 판단부(130), 분할대상 노드 결정부(140), 및 공간 분할부(150)를 포함할 수 있다.
움직임 영역 추출부(110)는 동적 객체의 움직임 영역(Bounding Volume)을 추출할 수 있다. 예를 들어, 객체가 움직이는 경우, 객체를 구성하는 삼각형이 움직이므로, 상기 삼각형이 움직이는 영역을 추출할 수 있다. 여기서, 움직임 영역은 동적 객체의 이전 위치와 현재 위치를 포함하는 영역을 의미할 수 있다.
기준 노드 결정부(120)는, 계층적 공간 분할 구조 내의 최상위 노드를 기준 노드로 지정할 수 있다. 여기서, 계층적 공간 분할 구조는 레이 트레이싱을 위한 공간을 분할하여 계층적으로 구성한 것으로 아래 도 3을 참고하여 보다 상세하게 설명한다.
도 3은 본 발명의 일실시예에 따라, 공간을 분할하는 과정을 설명하기 위한 도면이다.
도 3을 참고하면, 레이 트레이싱을 수행하고자 하는 하나의 공간(310)은 복수의 삼각형을 포함할 수 있고, 상기 삼각형의 분포를 고려하여 하나의 공간(310)을 두 개의 공간(321, 322)로 분할할 수 있다. 마찬가지로, 분할된 두 개의 공간(321, 322) 각각을 다시 분할하여 네 개의 공간(331, 332, 333, 334)을 생성할 수 있다.
이때, 분할된 공간들과 분할전의 공간들을 노드로 표현하여 노드간의 관계를 계층적으로 표현(ex. 트리 형태로 표현)할 수 있으며, 이러한 분할의 과정을 통해 계층적 공간 분할을 수행할 수 있다.
다시 도 1을 참고하면, 중첩 판단부(130)는 기준 노드의 각 자식 노드가 상기 움직임 영역과 중첩되는지 판단할 수 있다. 이때, 상기 움직임 영역은 상기 기준노드의 각 자식 노드와 모두 중첩될 수도 있고, 상기 기준노드의 각 자식 노드 중 하나의 노드와 중첩될 수도 있다.
분할대상 노드 결정부(140)는 움직임 영역이 상기 기준 노드의 각 자식 노드와 모두 겹치는 경우, 상기 기준 노드를 분할대상 노드로 결정할 수 있다.
공간 분할부(150)는 결정된 분할대상 노드에 대하여 공간 분할을 수행할 수 있다. 이때, 공간 분할부(150)는 분할대상 노드가 포함하는 삼각형의 수에 대응하 여, 복수의 처리 모드 중 하나의 모드로 공간 분할을 수행할 수 있다. 여기서, 복수의 처리 모드는 초대형 모드, 대형 모드, 중형 모드, 소형 모드를 포함할 수 있고, 상기 복수의 처리 모드에 따라 상기 분할대상 노드를 처리하기 위한 블록의 수를 결정하고, 상기 결정된 블록의 수로 상기 분할대상 노드의 공간을 분할할 수 있다. 여기서, 블록은, 상기 언급한 바와 같이, 하드웨어 상에서 수행되는 쓰레드의 모임을 의미할 수 있다. 한편, 공간 분할부는 도 2를 참고하여 아래에서 보다 상세하게 설명한다.
도 2는 도 1에 도시한 공간 분할부의 일실시예를 나타낸 도면이다.
도 2를 참고하면, 공간 분할부(150)는 분할 위치 계산부(210), 객체 분배부(220), 및 중첩 객체 처리부(230)를 포함할 수 있다.
분할 위치 계산부(210)는 객체의 위치에 따라 분할 최적 위치를 계산할 수 있다. 즉, 객체의 위치 분포를 고려하여 공간을 분할하기 위한 최적의 위치를 계산할 수 있다. 여기서, 분할 위치 계산부(210)는 분할 후보 선정부(211), 정렬부(212), SAH 계산부(213), 및 분할 위치 선택부(214)를 포함할 수 있다.
분할 후보 선정부(211)는 객체를 구성하는 각 삼각형의 위치를 분할 최적 위치 후보로 선정할 수 있다. 즉, 분할 최적 위치 후보를 선정하는 방식은 노드의 형태에 따라 크게 두 가지로 나누어질 수 있다. 노드가 소형인 경우, 삼각형의 Bounding Box의 최대, 최소 위치가 모두 분할 최적 위치 후보가 될 수 있고, 소형이 아닌 나머지 형태의 노드의 경우, 입력 삼각형의 수가 많기 때문에 모든 삼각형의 Bounding Box의 위치를 모두 분할 최적 위치 후보로 선정하는 것이 아니라, 노 드에 해당하는 분할 공간을 각 좌표축에 대해 N개로 균일하게 분할하고, N개로 균일하게 분할하는 (N-1)개의 면 위치에 대해서만 분할 최적 위치 후보로 선정할 수 있다.
정렬부(212)는 하나 이상의 상기 분할 최적 위치 후보를 좌표값에 따라 오름차순 정렬할 수 있다.
SAH 계산부(213)는 상기 정렬된 각 분할 최적 위치 후보에 대하여 SAH(Surface Area Heuristic) 값을 계산할 수 있다. 여기서, SAH 기반 분할 공간은 분할 내 삼각형의 분포를 기반으로 하기 때문에, 공간 분할 시, 각 분할 공간 내에 속하는 삼각형의 수를 고려해서 분할 최적 위치를 선택할 수 있다.
분할 위치 선택부(214)는 각 분할 최적 위치 후보 중 최소의 SAH값을 갖는 분할면을 분할 최적 위치로 선택할 수 있다.
객체 분배부(220)는 분할 최적 위치에 따라 공간을 분할하고 객체를 분배할 수 있다. 이때, 객체의 분배를 수행하기 위해서 각 쓰레드는 하나의 삼각형을 핸들링하며, 분할 최적 위치를 기준으로 오른쪽/왼쪽에 속하는지 또는 분할 면과 겹치는지 판단하고, 각 상황에 따라 정해진 위치에 객체의 정보를 기록할 수 있다.
중첩 객체 처리부(230)는 분할된 각 공간의 경계와 중첩되는 객체를 처리할 수 있다. 이때, 각 쓰레드는 분할 면과 충돌한 객체에 대해서 분할 면과 객체의 Bounding Box를 고려해 한쪽 하위 노드에만 속하는 새로운 Bounding Box를 계산할 수 있다.
도 4는 본 발명의 일실시예에 따라, 객체의 움직임 영역을 추출하여 계층적 공간 분할 구조를 부분적으로 업데이트하는 과정을 설명하기 위한 도면이다.
도 4를 참고하면, 공간 내의 삼각형(411)이 움직이는 경우, 삼각형(411)은 다른 노드의 공간으로 이동할 수 있다. 이러한 경우, 삼각형의 이전 위치와 현재 위치를 포함하는 움직임 영역을 추출하고, 상기 움직임 영역이 계층적 공간 분할 구조 내의 어느 노드에 속하는지 판단할 수 있다. 이를 위해, 최상위 노드 A의 두 자식 노드인 B, C 노드와 움직임 영역(420)을 비교할 수 있고, 도 4의 경우 움직임 영역이 노드 B와만 겹치기 때문에, 노드 C 및 노드 C의 하위 노드를 수정할 필요가 없다. 따라서, 노드 B를 새로운 기준 노드로 설정하고, 노드 B의 두 자식 노드인 D, E 노드와 움직임 영역(430)을 비교할 수 있다. 이 경우는, 움직임 영역이 D, E 노드와 모두 겹치므로, 기준 노드인 노드 B를 분할 대상 노드로 결정할 수 있다.
즉, 결정된 분할 대상 노드 B에 대해서만 공간 분할을 수행하여 객체의 움직임을 반영할 수 있으므로, 전체 공간을 다시 분할하지 않고, 일부 공간만 분할할 수 있으며, 이를 통해 레이 트레이싱의 효율을 높일 수 있다.
도 5는 본 발명의 일실시예에 따라, 복수개의 움직임 영역을 병렬 처리하는 과정을 설명하기 위한 도면이다.
도 5를 참고하면, 두 개의 삼각형 각각의 움직임을 표현하는 움직임 영역(511, 512)이 서로 다른 노드 B, C와 각각 겹치는 경우, 각 움직임 영역(511, 512)에 대해서 독립적으로 병렬 처리가 가능하다.
도 6은 본 발명의 일실시예에 따른, 노드의 크기에 따라 복수의 처리모드 중 하나의 모드로 공간 분할을 처리하는 것을 설명하기 위한 도면이다.
도 6을 참고하면, 일예로, 계층적 공간 분할 구조의 노드는 노드의 크기에 따라 4가지로 분류할 수 있다. 첫째, 입력 삼각형의 크기가 블록(Block)에서 생성할 수 있는 최대 쓰레드의 수보다 크고, 주어진 단계에서의 노드 수가 블록 수보다 작은 경우를 초대형 노드(610)로 분류할 수 있다. 둘째, 삼각형의 수가 블록에서 생성할 수 있는 쓰레드의 수보다 크고, 주어진 단계에서의 노드 수가 블록의 수보다 큰 경우를 대형 노드(620)로 분류할 수 있다. 셋째, 삼각형의 수가 33개를 초과하고, 블록에서 동시에 처리할 수 있는 쓰레드의 수보다는 작은 경우를 중형 노드(630)로 분류할 수 있다. 넷째, 삼각형의 수가 32개 이하인 경우 소형 노드(640)로 분류할 수 있다.
상기와 같이, 노드의 크기에 따라 초대형 노드, 대형 노드, 중형 노드, 소형 노드로 분류할 수 있고, 분류된 노드의 형태에 따라 노드를 처리하기 위한 블록의 수를 결정할 수 있다.
예를 들어, 초대형 노드의 경우, 입력으로 들어오는 삼각형의 수가 많기 때문에, 동시에 삼각형을 최대한 많이 처리하기 위해서는 여러 개의 블록에서 처리하도록 할 수 있다. 따라서, 이 경우, 하나의 노드를 복수 개의 멀티 프로세서(Multiprocessor)에서 처리하도록 할 수 있다.
대형 노드의 경우, 상기 초대형 노드와 마찬가지로, 입력으로 들어온 삼각형의 수가 많기 때문에 하나의 노드를 처리하기 위해서 여러 개의 블록이 필요하다. 이 경우 분할 면 위치를 계산하기 위해서 각 좌표축에 대해 각각 독립적인 블록을 생성하여 3개의 축(x축, y축, z축)에 대한 최적 공간 분할 위치를 결정하고, 각각의 축에 대한 최적 공간 분할 위치 중 최적의 분할 면을 선택할 수 있다.
중형 노드의 경우, 하나의 노드를 하나의 블록에서 처리하도록 할 수 있으며, 하나의 멀티 프로세서에서는 여러 개의 블록, 즉 여러 개의 노드를 처리할 수 있다.
소형 노드의 경우, 하나의 블록에서 여러 개의 노드를 동시에 처리할 수 있다.
도 7은 본 발명의 일실시예에 따른, 상위 노드에서 계산한 분할 최적 위치 후보를 하위 노드에서 참조하는 과정을 설명하기 위한 도면이다.
도 7을 참고하면, 상위 노드에서 계산한 분할 최적 위치 후보를 하위 노드에서 재사용하도록 할 수 있다. 분할 최적 위치의 계산 시 복수의 삼각형(701, 702, 703, 704, 705)의 분포를 고려하여, 모든 축에 대해서 분할 최적 위치 후보를 계산하지만, 이 중 하나만 선택하여 공간을 분할한다. 따라서 선택한 축이 아닌 나머지 축의 분할 최적 위치 후보는 하위 노드에서도 재사용할 수 있다. 도 7에 도시된 바와 같이 공간 A를 x축의 위치에 따라 분할을 했지만, 이 위치를 얻기 위해서 각 축에 대한 분할 최적 위치 후보를 추출하였다. 따라서 분할 공간 C를 분할할 때, A에서 계산한 분할 최적 위치 후보를 활용함으로써, 계산해야 하는 분할 최적 위치 후보의 수를 줄일 수 있다. 상기에서 언급했듯이, SAH 기반 분할 공간은 분할 내 삼각형의 분포를 기반으로 하므로, 분할 전후로 분할 면 좌우 삼각형 분포가 변화하는 정도를 파악하여 검색 영역을 선택할 수 있다. 즉, 분할 공간 C에서 상위 공간 A에서 계산한 y 축의 분할 면 좌우의 삼각형 분포 변화를 보고, 상 위 노드에서 계산했던 분할 위치에서 감소 비율이 더 작은 쪽으로 이동함으로써, 분할 위치 좌우 삼각형 분포가 균일해질 수 있고, 전체 분할 위치 후보에 대해서 계산 없이 SAH 값을 최소로 하는 분할 위치를 얻을 수 있다.
도 8은 본 발명의 다른 일실시예에 따른, 계층적 공간 분할 구조의 부분 업데이트 방법의 동작 흐름도이다.
도 8을 참고하면, 단계(810)에서는 객체의 움직임 영역을 추출할 수 있다.
단계(820)에서는 계층적 공간 분할 구조 내의 최상위 노드를 기준 노드로 지정할 수 있다.
단계(830)에서는 상기 기준 노드의 각 자식 노드가 모두 상기 움직임 영역과 중첩되는지 판단할 수 있다.
단계(840)에서는 상기 움직임 영역이 상기 기준 노드의 각 자식 노드와 모두 겹치는 경우, 상기 기준 노드를 분할대상 노드로 결정할 수 있다.
단계(850)에서는 상기 분할대상 노드에 대하여 공간 분할을 수행할 수 있다. 여기서, 단계(850)는, 상기 분할대상 노드가 포함하는 삼각형의 수에 따라 분류되는 복수의 처리 모드(ex. 초대형 모드, 대형 모드, 중형 모드, 소형 모드)에 따라 상기 분할대상 노드를 처리하기 위한 블록의 수를 결정하고, 상기 결정된 블록의 수로 상기 분할대상 노드의 공간을 분할할 수 있다. 또한, 단계(850)는 상기 객체의 위치에 따라 분할 최적 위치를 계산하는 단계, 상기 분할 최적 위치에 따라 공간을 분할하고 객체를 분배하는 단계 및 분할된 각 공간의 경계와 중첩되는 객체를 처리하는 단계를 포함할 수 있다.
또한, 상기 분할 최적 위치를 계산하는 단계는, 상기 객체를 구성하는 각 삼각형의 위치를 분할 최적 위치 후보로 선정하는 단계, 하나 이상의 상기 분할 최적 위치 후보를 좌표값에 따라 오름차순 정렬하는 단계, 상기 정렬된 각 분할 최적 위치 후보에 대하여 SAH(Surface Area Heuristic) 값을 계산하는 단계 및 각 분할 최적 위치 후보 중 최소의 SAH값을 갖는 분할면을 분할 최적 위치로 선택하는 단계를 포함할 수 있다.
또한, 상기 분할 최적 위치를 계산하는 단계는, 상위 노드에서 선정된 분할 최적 위치 후보를 하위 노드 분할을 위한 분할 최적 위치 후보로 사용할 수 있다.
단계(860)에서는 움직임 영역이 상기 기준 노드의 자식 노드 중 하나와 겹치는 경우, 상기 겹치는 하나의 자식 노드를 새로운 기준 노드로 설정할 수 있다.
한편, 객체의 움직임 영역이 복수개 존재하고, 각 움직임 영역이 서로 다른 노드에 속하는 경우, 단계(810) 내지 단계(860)는, 각 움직임 영역별로 복수의 블록에서 병렬 처리될 수 있다.
한편, 도 8에서 설명되지 않은 부분은 도 1 내지 도 7의 설명을 참고할 수 있다.
상기와 같이, 객체의 움직임 영역을 추출하고, 상기 움직임 영역을 포함하는 노드에 대해서만, 계층적 공간 분할 구조를 업데이트함으로써, 레이 트레이싱의 연산량 및 렌더링 시간을 줄일 수 있다.
또한, 계층적 공간 분할 구조의 생성 또는 업데이트시, 계층적 공간 분할 구조의 각 단계에 따라, 복수의 처리 모드 중 하나의 모드로 계층적 공간 분할 구 조의 생성 또는 업데이트를 수행함으로써, 멀티 코어의 성능을 극대화할 수 있다.
본 발명의 실시예에 따른 계층적 공간 분할 구조의 부분 업데이트 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명의 일실시예는 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명의 일실시예는 상기 설명된 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.  따라서, 본 발명의 일실시예는 아래에 기재된 특허 청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 본 발명의 일실시예에 따른, 계층적 공간 분할 구조의 부분 업데이트 장치의 블록도이다.
도 2는 도 1에 도시한 공간 분할부의 일실시예를 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따라, 공간을 분할하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따라, 객체의 움직임 영역을 추출하여 계층적 공간 분할 구조를 부분적으로 업데이트하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따라, 복수개의 움직임 영역을 병렬 처리하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른, 노드의 크기에 따라 복수의 처리모드 중 하나의 모드로 공간 분할을 처리하는 것을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른, 상위 노드에서 계산한 분할 최적 위치 후보를 하위 노드에서 참조하는 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 일실시예에 따른, 계층적 공간 분할 구조의 부분 업데이트 방법의 동작 흐름도이다.

Claims (18)

  1. 객체를 구성하는 적어도 하나의 삼각형의 이전 위치와 현재 위치를 포함하는 적어도 하나의 움직임 영역을 추출하는 움직임 영역 추출부;
    계층적 공간 분할 구조 내의 최상위 노드를 기준 노드로 지정하는 기준 노드 결정부;
    상기 기준 노드의 각 자식 노드가 모두 상기 움직임 영역과 중첩되는지 판단하는 중첩 판단부;
    상기 움직임 영역이 상기 기준 노드의 각 자식 노드와 모두 겹치는 경우, 상기 기준 노드를 분할대상 노드로 결정하는 분할대상 노드 결정부; 및
    상기 분할대상 노드에 대하여 공간 분할을 수행하는 공간 분할부
    를 포함하고,
    상기 기준 노드 결정부는, 상기 움직임 영역이 상기 기준 노드의 자식 노드 중 어느 하나에만 겹치는 경우, 상기 겹치는 하나의 자식 노드를 새로운 기준 노드로 설정하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 계층적 공간 분할 구조는,
    공간 내의 객체 분포에 따라, 공간을 계층적으로 분할한 구조인 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  4. 제1항에 있어서,
    상기 공간 분할부는,
    상기 분할대상 노드의 공간 내에 속하는 상기 적어도 하나의 삼각형의 분포에 기초하여, 상기 공간을 분할하기 위한 분할 최적 위치를 계산하는 분할 위치 계산부;
    상기 분할 최적 위치에 따라 공간을 분할하고 객체를 분배하는 객체 분배부; 및
    분할된 각 공간의 경계와 중첩되는 객체를 처리하는 중첩 객체 처리부
    를 포함하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  5. 제4항에 있어서,
    상기 분할 위치 계산부는,
    상기 객체를 구성하는 각 삼각형의 위치를 분할 최적 위치 후보로 선정하는 분할 후보 선정부;
    하나 이상의 상기 분할 최적 위치 후보를 좌표값에 따라 오름차순 정렬하는 정렬부;
    상기 정렬된 각 분할 최적 위치 후보에 대하여 SAH(Surface Area Heuristic) 값을 계산하는 SAH 계산부; 및
    각 분할 최적 위치 후보 중 최소의 SAH값을 갖는 분할면을 분할 최적 위치로 선택하는 분할 위치 선택부
    를 포함하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  6. 제5항에 있어서,
    상기 분할 위치 계산부는,
    상위 노드에서 선정된 분할 최적 위치 후보를 하위 노드 분할을 위한 분할 최적 위치 후보로 사용하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  7. 제1항에 있어서,
    상기 객체의 움직임 영역이 복수개 존재하고, 각 움직임 영역이 서로 다른 노드에 속하는 경우,
    공간분할을 복수의 프로세서에서 병렬 처리하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  8. 제1항에 있어서,
    상기 공간 분할부는,
    상기 분할대상 노드가 포함하는 삼각형의 수에 대응하여, 복수의 처리 모드 중 하나의 모드로 공간 분할을 수행하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  9. 제8항에 있어서,
    상기 공간 분할부는,
    초대형 모드, 대형 모드, 중형 모드, 소형 모드를 포함하는 상기 복수의 처리 모드에 따라 상기 분할대상 노드를 처리하기 위한 블록의 수를 결정하고, 상기 결정된 블록의 수로 상기 분할대상 노드의 공간을 분할하며,
    상기 블록은,
    하드웨어 상에서 수행되는 쓰레드의 모임을 의미하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 장치.
  10. 객체를 구성하는 적어도 하나의 삼각형의 이전 위치와 현재 위치를 포함하는 적어도 하나의 움직임 영역을 추출하는 단계;
    계층적 공간 분할 구조 내의 최상위 노드를 기준 노드로 지정하는 단계;
    상기 기준 노드의 각 자식 노드가 모두 상기 움직임 영역과 중첩되는지 판단하는 단계;
    상기 움직임 영역이 상기 기준 노드의 각 자식 노드와 모두 겹치는 경우, 상기 기준 노드를 분할대상 노드로 결정하는 단계;
    상기 움직임 영역이 상기 기준 노드의 자식 노드 중 어느 하나에만 겹치는 경우, 상기 겹치는 하나의 자식 노드를 새로운 기준 노드로 설정하는 단계; 및
    상기 분할대상 노드에 대하여 공간 분할을 수행하는 단계를 포함하고,
    상기 판단하는 단계 내지 상기 설정하는 단계는,
    상기 분할대상 노드가 결정될 때까지 반복 수행되는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  11. 제10항에 있어서,
    상기 계층적 공간 분할 구조는,
    공간 내의 객체 분포에 따라, 공간을 계층적으로 분할한 구조인 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  12. 제10항에 있어서,
    상기 공간 분할을 수행하는 단계는,
    상기 분할대상 노드의 공간 내에 속하는 상기 적어도 하나의 삼각형의 분포에 기초하여, 상기 공간을 분할하기 위한 분할 최적 위치를 계산하는 단계;
    상기 분할 최적 위치에 따라 공간을 분할하고 객체를 분배하는 단계; 및
    분할된 각 공간의 경계와 중첩되는 객체를 처리하는 단계
    를 포함하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  13. 제12항에 있어서,
    상기 분할 최적 위치를 계산하는 단계는,
    상기 객체를 구성하는 각 삼각형의 위치를 분할 최적 위치 후보로 선정하는 단계;
    하나 이상의 상기 분할 최적 위치 후보를 좌표값에 따라 오름차순 정렬하는 단계;
    상기 정렬된 각 분할 최적 위치 후보에 대하여 SAH(Surface Area Heuristic) 값을 계산하는 단계; 및
    각 분할 최적 위치 후보 중 최소의 SAH값을 갖는 분할면을 분할 최적 위치로 선택하는 단계
    를 포함하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  14. 제13항에 있어서,
    상기 분할 최적 위치를 계산하는 단계는,
    상위 노드에서 선정된 분할 최적 위치 후보를 하위 노드 분할을 위한 분할 최적 위치 후보로 사용하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  15. 제10항에 있어서,
    상기 객체의 움직임 영역이 복수개 존재하고, 각 움직임 영역이 서로 다른 노드에 속하는 경우,
    각 움직임 영역별로 상기 지정하는 단계 내지 공간 분할을 수행하는 단계를 병렬 처리하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  16. 제10항에 있어서,
    상기 공간 분할을 수행하는 단계는,
    상기 분할대상 노드가 포함하는 삼각형의 수에 대응하여, 복수의 처리 모드 중 하나의 모드로 공간 분할을 수행하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  17. 제16항에 있어서,
    상기 공간 분할을 수행하는 단계는,
    초대형 모드, 대형 모드, 중형 모드, 소형 모드를 포함하는 상기 복수의 처리 모드에 따라 상기 분할대상 노드를 처리하기 위한 블록의 수를 결정하고, 상기 결정된 블록의 수로 상기 분할대상 노드의 공간을 분할하며,
    상기 블록은,
    하드웨어 상에서 수행되는 쓰레드의 모임을 의미하는 것을 특징으로 하는 계층적 공간 분할 구조의 부분 업데이트 방법.
  18. 제10항 내지 제17항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록 되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020090106994A 2009-11-06 2009-11-06 계층적 공간 분할 구조의 부분 업데이트 장치 및 방법 KR101623502B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090106994A KR101623502B1 (ko) 2009-11-06 2009-11-06 계층적 공간 분할 구조의 부분 업데이트 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090106994A KR101623502B1 (ko) 2009-11-06 2009-11-06 계층적 공간 분할 구조의 부분 업데이트 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110050143A KR20110050143A (ko) 2011-05-13
KR101623502B1 true KR101623502B1 (ko) 2016-05-23

Family

ID=44361003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090106994A KR101623502B1 (ko) 2009-11-06 2009-11-06 계층적 공간 분할 구조의 부분 업데이트 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101623502B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102238693B1 (ko) * 2014-06-20 2021-04-09 삼성전자주식회사 포인트 클라우드에서 특징 영역을 추출하는 방법 및 장치
KR101782816B1 (ko) * 2015-05-12 2017-09-28 아주대학교산학협력단 트리맵 시각화 방법 및 그 방법을 이용하는 장치
KR102467031B1 (ko) 2015-08-31 2022-11-14 삼성전자주식회사 가속 구조를 생성 및 탐색하는 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Shevtsov M., Soupikov A., Kapustin A., "Highly Parallel Fast KD-tree Construction for Interactive Ray Tracing of Dynamic Scenes", Computer Graphics Forum, Volume 26, Number 3, pp. 395-404*

Also Published As

Publication number Publication date
KR20110050143A (ko) 2011-05-13

Similar Documents

Publication Publication Date Title
JP7184503B2 (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
EP2927877B1 (en) Method and apparatus for rendering same regions of multi frames
US8279227B2 (en) Method for detecting collisions among large numbers of particles
US8384723B2 (en) Method and system of rendering parallel global illumination
JP2008077627A (ja) 3次元画像のレンダリングにおける早期zテスト方法およびシステム
KR102242566B1 (ko) 레이 트레이싱 처리 장치 및 방법
Audet et al. Robust and efficient polygon overlay on parallel stream processors
KR20220154706A (ko) 광선 추적 다중 샘플 앤티-에일리어싱
US20130116984A1 (en) Designing a Modeled Volume Represented by Dexels
KR20230027083A (ko) 광선 추적을 위한 초기 컬링
KR101623502B1 (ko) 계층적 공간 분할 구조의 부분 업데이트 장치 및 방법
KR102018699B1 (ko) 타일 비닝 장치 및 방법
US10460506B2 (en) Method and apparatus for generating acceleration structure
CN106056657B (zh) 执行针对路径渲染的图块合并的方法和设备
EP3425593A1 (en) Highly parallelizable algorithm for detecting intersections of shapes
Kim et al. Optimizing seam carving on multi-GPU systems for real-time content-aware image resizing
US10134184B2 (en) Method of rendering object including path and rendering apparatus for performing path rendering
KR101235506B1 (ko) 초기 클러스터링을 사용한 병합식 계층적 클러스터링 방법 및 장치
KR20140103407A (ko) 이중모드 정점 분할기법을 이용한 지형 렌더링 가속화 방법
KR20130124125A (ko) 공간 가속 구조 탐색 장치 및 방법
KR20130124618A (ko) 영상 처리 장치 및 방법
JP5919111B2 (ja) 外郭データ生成装置および外郭データ生成方法およびプログラム
US10035297B2 (en) Apparatus and method for generating bitmap of 3-dimensional model
JP2019040419A (ja) 画像処理装置、及びプログラム
US20240144580A1 (en) Split-based trees for ray tracing

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: 20190422

Year of fee payment: 4