KR101155689B1 - 프리미티브 트리에 기반한 거리장 계산장치 및 방법 - Google Patents

프리미티브 트리에 기반한 거리장 계산장치 및 방법 Download PDF

Info

Publication number
KR101155689B1
KR101155689B1 KR1020110033709A KR20110033709A KR101155689B1 KR 101155689 B1 KR101155689 B1 KR 101155689B1 KR 1020110033709 A KR1020110033709 A KR 1020110033709A KR 20110033709 A KR20110033709 A KR 20110033709A KR 101155689 B1 KR101155689 B1 KR 101155689B1
Authority
KR
South Korea
Prior art keywords
data structure
distance
tree
primitive
primitives
Prior art date
Application number
KR1020110033709A
Other languages
English (en)
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 KR1020110033709A priority Critical patent/KR101155689B1/ko
Application granted granted Critical
Publication of KR101155689B1 publication Critical patent/KR101155689B1/ko

Links

Images

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/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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

Landscapes

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

Abstract

프리미티브 트리에 기반한 거리장 계산장치 및 방법이 개시된다. 자료구조 생성부는 복수의 프리미티브로 구성된 기하도형을 포함하는 좌표공간에 대응하며, 단말노드에는 좌표공간에서 단말노드에 대응하는 좌표로부터 가장 근접한 한 개의 프리미티브 정보가 포함된 트리 형태의 자료구조를 생성하며, 거리장 연산부는 좌표공간에서 거리장 값을 계산하고자 하는 요구지점에 인접한 좌표들에 드응하는 단말노드들에 포함된 후보 프리미티브들의 정보를 자료구조로부터 추출하고, 요구지점으로부터 각각의 후보 프리미티브까지의 거리 중 최단거리를 요구지점에 대응하는 거리장 값으로 결정하고, 렌더링부는 기하도형에서 서로 인접한 프리미티브 사이의 누락지점에 대응하는 법선벡터를 누락지점으로부터 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링한다. 본 발명에 따르면, 프리미티브 트리를 이용하여 거리장을 보다 빠르고 정확하게 측정할 수 있으며 충돌감지 등에 사용될 수 있다.

Description

프리미티브 트리에 기반한 거리장 계산장치 및 방법 {Apparatus and method for estimating distance field based on primitive tree}
본 발명은 프리미티브 트리에 기반한 거리장 계산장치 및 방법에 관한 것으로, 보다 상세하게는, 트리 구조의 자료구조를 생성하여 요구지점과 프리미티브와의 거리장 값을 계산하는 장치 및 방법에 관한 것이다.
거리장(distance field)은 다양한 컴퓨터 그래픽스 분야에서 응용되는데, 특히 관통 깊이 계산, 지리학적 모델링, 유체 표면 추적 및 충돌검사 분야에서 사용된다.
삼차원 모델링에서 요구지점으로부터의 최단거리를 결정하는 것은 다수의 그래픽 프로그램에 있어서 병목지점으로 지적되어 왔다. 이에 대하여 kd-tree가 널리 이용되어 왔으나 이러한 접근은 계산해야할 요구지점이 많아지는 경우 시스템에 과부하가 생기는 문제가 있다. 다른 방법으로 미리 거리장 값을 샘플링에 의해 계산하고 저장하였다가 이를 보간하는(interpolate) 방법(Lefebvre and Hoppe 2007 "Compressed randomaccess trees for spatially coherent data", 이하 '선행기술 1'이라고 한다)이 있었다. 그러나 이는 샘플 간격이 너무 크면 정확도가 감소하고 샘플 간격이 너무 조밀하면 저장공간이 커지고 계산시간이 길어지는 단점을 가진다.
또한 대다수의 거리장 계산 방법은 삼차원 모델링의 표면에만 집중해왔다. 결국 표면 이외의 영역에서는 정확도가 감소하는 문제가 있었고 이러한 제한 때문에 기존의 거리장 계산 방법은 모든 영역에서의 균일한 정확도를 보장하지 못했다.
따라서 기존의 거리장 계산 방법에서 나타나는 위와 같은 단점을 극복하고 정밀하면서도 빠른 거리장 계산 방법이 필요하다.
본 발명이 이루고자 하는 기술적 과제는, 단말노드에는 좌표공간에서 단말노드에 대응하는 좌표로부터 가장 가까운 프리미티브의 정보를 저장하는 트리 형태의 자료구조를 생성하고 이로부터 빠르고 정확하게 거리장을 계산하는 장치 및 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 단말노드에는 좌표공간에서 단말노드에 대응하는 좌표로부터 가장 가까운 프리미티브의 정보를 저장하는 트리 형태의 자료구조를 생성하고 이로부터 빠르고 정확하게 거리장을 계산하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산장치는, 복수의 프리미티브(primitive)로 구성된 기하도형을 포함하는 좌표공간에 대응하며, 단말노드에는 상기 좌표공간에서 상기 단말노드에 대응하는 좌표로부터 가장 근접한 한 개의 프리미티브 정보가 포함된 트리 형태의 자료구조를 생성하는 자료구조 생성부; 및 상기 좌표공간에서 거리장 값을 계산하고자 하는 요구지점에 인접한 좌표들에 대응하는 단말노드들에 포함된 후보 프리미티브들의 정보를 상기 자료구조로부터 추출하고, 상기 요구지점으로부터 상기 각각의 후보 프리미티브까지의 거리 중 최단거리를 상기 요구지점에 대응하는 거리장 값으로 결정하는 거리장 연산부;를 구비한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산방법은, 복수의 프리미티브(primitive)로 구성된 기하도형을 포함하는 좌표공간에 대응하며, 단말노드에는 상기 좌표공간에서 상기 단말노드에 대응하는 좌표로부터 가장 근접한 한 개의 프리미티브 정보가 포함된 트리 형태의 자료구조를 생성하는 자료구조 생성단계; 및 상기 좌표공간에서 거리장 값을 계산하고자 하는 요구지점에 인접한 좌표들에 대응하는 단말노드들에 포함된 후보 프리미티브들의 정보를 상기 자료구조로부터 추출하고, 상기 요구지점으로부터 상기 각각의 후보 프리미티브까지의 거리 중 최단거리를 상기 요구지점에 대응하는 거리장 값으로 결정하는 거리장 연산단계;를 구비한다.
본 발명에 따른 프리미티브 트리에 기반한 거리장 계산장치 및 방법에 의하면, 보다 정확한 거리장과 법선 벡터성분을 구할 수 있고, 저장공간을 절약할 수 있다. 또한 불완전하거나 다양체가 아닌(non-manifold) 메쉬, 삼각형이 아닌 프리미티브에도 적용가능하다.
도 1은 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 2는 프라이멀 트리의 단말노드에 프리미티브의 인덱스를 하나 저장하는 프리미티브 트리의 개념을 이진 트리로 나타낸 도면,
도 3은 트리구조를 단계적으로 분할하여 계층적 데이터 구조로 만들 때 세분화가 일찍 종료된 경우의 문제를 나타낸 도면,
도 4는 트리의 동일한 레벨에 속하는 단말노드들에 각각 대응되는 좌표들로 둘러싸인 영역 내에 위치하는 프리미티브들 중에서 트리의 단말노드들에 저장되지 않은 프리미티브가 존재하면 단말노드를 예상 하위노드로 분할하는 것을 설명하기 위한 도면,
도 5는 기준지점으로 인하여 거리장에 영향을 받는 지역에 속하는 추가지점을 더 선택하는 방법을 2차원 평면에서 예시적으로 나타낸 도면,
도 6은 벡터 C를 이진 트리에서 구하는 함수를 구현한 소스코드를 나타낸 도면,
도 7은 법선 벡터가 잘못 계산되어진 경우 누락된 프리미티브 부분의 법선 벡터를 가장 가까운 프리미티브의 법선벡터로 대체한 결과를 나타낸 도면,
도 8은 법선 벡터가 잘못 계산되어진 경우 누락된 프리미티브 부분의 법선 벡터를 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링한 결과를 나타낸 도면,
도 9는 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도,
도 10은 파워 플렌트를 기하도형으로 하여 프리미티브 트리를 적용하여 렌더링한 영상을 나타낸 도면,
도 11은 무너진 집, 부처, 도시, 유조차를 기하도형으로 프리미티브 트리를 적용하여 렌더링한 영상을 나타낸 도면,
도 12는 정유소를 기하도형으로 하여 프리미티브 트리를 적용하여 렌더링한 영상을 나타낸 도면,
도 13은 트리의 단말노드에 여러 개의 프리미티브를 저장하는 경우 기하도형의 오목한 부분에서 저장해야하는 프리미티브의 개수가 증가하는 것을 나타내는 도면,
도 14는 프리미티브 트리가 기하도형의 표면에서 멀어질수록 성긴 트리 구조임에도 에러가 높지 않음을 나타내는 도면,
도 15는 91개의 모깍은 기둥(chamfered boxes)을 레이케스팅 기법으로 렌더링한 영상을 나타내는 도면, 그리고,
도 16은 도 15의 모깍은 기둥에 있어, 선행기술1에서 제안한 보간법에 의해 거리장을 계산하는 것에 비하여 프리미티브 트리가 거리장을 더 정확하게 계산함을 나타내는 도면이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산장치는, 자료구조 생성부(110), 거리장 연산부(120) 및 렌더링부(130)를 구비한다.
자료구조 생성부(110)는 복수의 프리미티브로 구성된 기하도형을 포함하는 좌표공간에 대응하며, 단말노드에는 상기 좌표공간에서 상기 단말노드에 대항하는 좌표로부터 가장 근접한 한 개의 프리미티브 정보가 포함된 트리 형태의 자료구조를 생성한다.
프리미티브(primitive)란 컴퓨터 그래픽에서 그래픽 프로그램에 의해 개별적인 실체로 그려지고 저장, 조작될 수 있는 선, 원, 곡선, 다각형 등과 같은 그래픽 디자인을 창작하는데 필요한 요소를 말하며, 일반적으로는 삼각형을 사용하나 본 발명은 그 형태에 구애받지 않고 적용가능하다.
컴퓨터 그래픽스 분야에서 거리장을 계산하는데는 여러가지 트리 형태의 자료구조가 사용될 수 있는데, 본 발명에서는 단말노드(leaf node)에 좌표공간에서 단말노드에 대응하는 좌표로부터 가장 근접한 프리미티브의 정보를 한 개 저장하는 자료구조를 사용하며, 이를 프리미티브 트리(primitive tree)라 한다.
본 발명의 트리 구조는 원본 데이터에 따라 이진트리(binarytree), 쿼드트리(quadtree), 팔진트리(octree)의 형태로 변형 가능하다. 원본 데이터는 보통 3차원 형태이므로 팔진트리를 사용하게 되는데, 팔진트리는 삼차원 공간을 재귀적으로 분할하며 중간노드는 한 번의 분할시마다 8개의 하위노드로 분할된다. 하나 이상의 자식노드를 갖는 노드를 중간노드라 하고 그 외에는 단말노드(leaf node)라고 칭하며, 프리미티브 트리의 단말노드에 한 개의 프리미티브 정보가 기록된다.
도 2는 본 발명에 따른 프리미티브 트리의 형성방법을 이진트리를 예로들어 나타낸 도면이다.
도 2를 참조하면, 이진 프리미티브 트리는 중간노드에서 하위노드로 재귀적으로 분할되고 단말노드에는 좌표공간에서 단말노드에 대응하는 좌표로부터 가장 근접한 한 개의 프리미티브의 정보가 기록된다.
트리 구조를 하위노드로 재귀적 분할하는 과정을 반복할 수록 거리장의 정확도가 증가되는 반면에 단말노드(leaf node)의 수가 증가하므로 자료구조 구축시간이 증가한다. 따라서 거리장의 정확도를 유지하면서 빠르게 자료구조를 구축할 수 있도록 다음과 같은 이웃 프리미티브 분할방법이 사용될 수 있다.
첫 번째 이웃 프리미티브 분할방법은 자료구조 생성부(110)에서 반복적 분할에 의해 자료구조를 생성하되, 현재 트리의 단말노드를 분할할 경우에 생겨날 예상 하위노드를 가정하고, 그 예상 하위노드에 대응하는 좌표를 기준지점으로 하여, 기준지점으로부터 단말노드에 포함된 프리미티브까지의 거리를 기초로 산출된 거리값과 기준지점으로부터 기하도형까지의 실제 거리값 간의 차가 사전에 설정된 임계값을 초과하면 단말노드를 예상 하위노드로 분할하는 것이다. 임계값은 영상에 따라 실험적으로 결정하되, 예를 들면 10-6 정도의 값을 사용한다.
도 3은 트리 구조를 단계적으로 분할하여 계층적 데이터 구조로 만들 때 세분화가 일찍 종료된 경우의 문제를 나타낸 도면인데, 도 3의 (b)에 나타낸 실측 영상에 비해 도 3의 (a) 영상에는 하위노드로의 분할이 충분히 이루어지지 않고 조기 종료되어 인위적 요소가 많이 발생하였다. 도 3의 (c) 영상은 본 발명에서 제안하는 이웃 프리미티브 분할방법에 따라 충분히 하위노드로 분할한 자료구조를 구축하여 이러한 인위적 오류 요소를 제거한 영상이다.
도 4는 두 번째 이웃 프리미티브 분할방법을 설명한 것으로, 트리의 동일한 레벨에 속하는 단말노드들에 각각 대응되는 좌표들로 둘러싸인 영역 내에 위치하는 프리미티브들 중에서 트리의 단말노드들에 저장되지 않은 프리미티브가 존재하면 단말노드를 예상 하위노드로 분할하는 것을 설명하기 위한 도면이다.
도 4를 참조하면, 사각형의 모서리에 위치한 점은 트리 구조의 동일한 깊이(level l)에 속하는 단말노드들에 대응하는 좌표를 의미한다. 단말노드들은 그 단말노드에 대응하는 좌표로부터 최단거리에 위치한 프리미티브를 화살표로 지시하고 있다. 반지름
Figure 112011026691785-pat00001
(l은 트리의 깊이, D는 단말노드를 포함하는 좌표공간의 차원)에 해당하는 원 내부를 단말노드들에 대응되는 좌표들로 둘러싸인 영역으로 본다. 원 내부에는 기존 단말노드에 의해 화살표로 지시되지 않은 음영으로 표시된 삼각형 프리미티브가 존재하는데 이런 새로운 프리미티브가 발견되면 현재의 단말노드를 하위노드로 분할한다.
도 5는 세 번째 이웃 프리미티브 분할방법을 설명한 것으로, 기준지점으로 인하여 거리장에 영향을 받는 지역에 속하는 추가지점을 더 선택하는 방법을 2차원 평면에서 예시적으로 나타낸 도면이다. 자료구조 생성부는 기준지점(×점)으로 인하여 거리장에 영향을 받는 지역에 속하는 추가지점(●점)을 더 선택한다. 추가지점은 다음 수학식 1에 따라 선정한다.
Figure 112011026691785-pat00002
여기서 Q는 추가지점, ŋ은 단말노드, Xŋ는 단말노드에 대응되는 좌표평면에서의 좌표, i, j, k 는 좌표 Xŋ에 더해지는 값, l은 트리에서의 깊이(level)를 나타낸다.
추가지점이 선택되면 자료구조 생성부는 기준지점 또는 추가지점으로부터 트리의 단말노드에 포함된 프리미티브까지의 거리를 기초로 산출된 거리값과 기준지점 또는 추가지점으로부터 기하도형까지의 실제 거리값 간의 차가 사전에 설정된 임계값을 초과하면 단말노드를 예상 하위노드로 분할한다.
이와 같이 추가지점을 더 선택하여 하위노드를 분할하는 경우 에러가 1/3 가량 감소하고 자료구조 구축시간은 50퍼센트 가량 증가한다.
거리장 연산부(120)는 좌표공간에서 거리장 값을 계산하고자 하는 요구지점에 인접한 좌표들에 대응하는 단말노드들에 포함된 후보 프리미티브들의 정보를 자료구조로부터 추출하고, 요구지점으로부터 각각의 후보 프리미티브까지의 거리 중 최단거리를 요구지점에 대응하는 거리장 값으로 결정한다.
좌표공간 상에서 기하도형을 구성하는 프리미티브(o)중에서 요구지점(x)과 가장 가까운 프리미티브를 수학식 2와 같이 정의한다.
Figure 112011026691785-pat00003
이때 O는 좌표공간 상 기하도형을 의미하고, o는 기하도형을 구성하는 개개의 프리미티브를 의미한다. d(x,o)는 프리미티브(o)와 요구지점(x) 간 거리를 의미한다.
또한 좌표공간 상의 기하도형과 요구지점 간 실제거리는 수학식 3과 같이 표현된다.
Figure 112011026691785-pat00004
수학식 3으로 거리장 값을 계산하는 경우 기하도형을 구성하는 모든 프리미티브에 대하여 거리를 구하였을 때 가장 정확하지만 시간과 자원의 요구가 심하므로 본 발명은 후보 프리미티브의 집단(이를 벡터 C라 칭한다)을 생성하고 그 중에서 요구지점과 가장 가까운 후보 프리미티브와의 거리값을 거리장 값으로 근사하는 계산하는 방법을 취한다.
이때 요구지점 x에서 실제 거리장 값과 벡터 C로 추천받아 구한 거리장 값의 오차를 정의하면 수학식 4와 같다.
Figure 112011026691785-pat00005
이하 거리장 값을 계산하기 위한 후보 프리미티브의 집단인 벡터 C를 구하는 방법을 설명한다.
도 6은 벡터 C를 이진 트리에서 구하는 함수를 구현한 소스코드를 나타낸 도면이다. 이 소스코드는 1차원에서 이진트리에 관한 것이나 2차원에서 쿼드트리, 3차원에서 팔진트리로 확장되어질 수 있다.
벡터 C라 함은 앞서 설명한 바와 같이 좌표공간상 요구지점으로부터 최단거리에 있는 프리미티브를 구해서 거리장 값을 계산하기 위해서 최단거리에 있을 것으로 예상되는 유력한 후보 프리미티브들로 구성된 집합을 말한다. 벡터 C에 속하는 후보 프리미티브의 개수는 이진트리에선 2, 쿼드트리에서는 4, 팔진트리에서는 8개가 된다. 즉 3차원 공간에서는 팔진트리를 사용하고 벡터 C의 구성원은 8개의 프리미티브가 되므로 거리장값을 구할 때는 요구지점 x와 이 8개의 프리미티브만을 비교하여 거리장 값을 구하면 된다. 따라서 그 계산량이 획기적으로 감소되나 에러는 소폭 상승하는데 그친다. 이에 대한 실험데이터는 추후 설명한다.
렌더링부(130)은 거리장 연산부가 벡터 C를 이용하여 계산한 거리장 값으로 거리장 영상을 합성하되 다각형화(polygonization) 또는 레이케스팅(ray-casting)기법 등으로 렌더링할 수 있다. 이때 잠재적인 문제점으로 법선벡터의 부호가 불연속적으로 변화하는 현상이 발생할 수 있다.
도 7은 기하도형에서 서로 인접한 프리미티브 사이의 누락된 지점때문에 법선벡터의 부호가 불연속적으로 나타나는 잠재적 문제점을 나타낸 것이다. 도 7의 (a) 영상에서는 누락된 프리미티브(missing primitive)에 해당하는 지점의 법선벡터가 잘못 계산된 것을 보여준다. 이를 해결하기 위해 본 발명의 렌더링부에서는 도 7의 (b) 영상과 같이 기하도형에서 서로 인접한 프리미티브 사이의 누락지점에 대응하는 법선벡터를 누락지점으로부터 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링하도록 한다.
도 8은 기하도형에서 서로 인접한 프리미티브 사이의 누락지점에 대응하는 법선벡터를 누락지점으로부터 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링한 결과를 나타낸 도면이다. 도 8의 (a) 영상은 트리 구조의 깊이 6에서 토르소 모델을 렌더링한 것으로 프리미티브가 누락된 지점에서의 법선벡터에 대한 대체가 없는 경우 표면이 울퉁불퉁하게 나타나는 것을 나타낸다. 반면 도 8의 (b), (c), (d) 영상은 각각 깊이 6,7,8에서 렌더링한 결과로서, 서로 인접한 프리미티브 사이의 누락지점에 대응하는 법선벡터를 누락지점으로부터 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링한 결과로 표면이 한결 부르럽게 렌더링된 것을 알 수 있다.
도 9는 본 발명에 따른 프리미티브 트리에 기반한 거리장 계산방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 9를 참조하면, 자료구조 생성부(110)는 복수의 프리미티브(primitive)로 구성된 기하도형을 포함하는 좌표공간에 대응하며, 단말노드에는 좌표공간에서 단말노드에 대응하는 좌표로부터 가장 근접한 한 개의 프리미티브 정보가 포함된 트리 형태의 자료구조를 생성한다(S1110). 거리장 연산부(120)는 좌표공간에서 거리장 값을 계산하고자 하는 요구지점에 인접한 좌표들에 대응하는 단말노드들에 포함된 후보 프리미티브들의 정보를 자료구조로부터 추출하고, 요구지점으로부터 각각의 후보 프리미티브까지의 거리 중 최단거리를 요구지점에 대응하는 거리장 값으로 계산한다(S1120). 렌더링부(130)는 기하도형에서 서로 인접한 프리미티브 사이의 누락지점에 대응하는 법선벡터를 누락지점으로부터 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링한다(S1130).
본 발명의 성능을 평가하기 위한 실험을 수행하였다. 도 10, 11, 12는 프리미티브 트리를 여러 기하도형에 대하여 적용하고 레이케스팅 기법으로 렌더링한 영상이다. 에러 ε는 1003 개의 샘플을 좌표공간에서 균일하게 추출하여 계산한 실제 거리값과 프리미티브 트리에 기반하여 거리장 값을 계산한 것과의 차이를 절대값으로 처리하여 계산한다. 프리미티브 트리의 생성과 렌더링에는 두 개의 8-코어 중앙처리장치를 구비한 컴퓨터에서 16개의 병렬 스레드를 이용하였다.
도 10은 파워 플렌트를 기하도형으로 하여 프리미티브 트리를 적용하여 렌더링한 영상을 나타낸 도면이다. 도 10의 (a) 영상은 13*106 개의 삼각형 프리미티브로부터 실제거리값을 측정하여 레이케스팅 기법으로 렌더링한 것이고, 도 10의 (b) 영상은 프리미티브 트리에 기반하여 렌더링한 영상이다. 프리미티브 트리는 복잡한 기하도형에 대하여 고해상도 거리장을 저장하는데 유용하며, 레벨셋(level-set)값은 상호비율(interactive rates)에 따라 변경될 수 있다.
도 11은 무너진 집, 부처, 도시, 유조차를 기하도형으로 프리미티브 트리를 적용하여 렌더링한 영상을 나타낸 도면이다. 도 11의 (a)는 무너진 집을 제로 레벨셋에서 렌더링한 영상, 도 11의 (b)는 무너진 집을 포지티브 레벨셋(positive level-set)에서 렌더링한 영상, 도 11의 (c)는 부다를 제로 레벨셋에서 렌더링한 영상, 도 11의 (d)는 부다를 포지티브 레벨셋(positive level-set)에서 렌더링한 영상, 도 11의 (e)는 도시를 제로 레벨셋에서 렌더링한 영상, 도 11의 (f)는 도시를 포지티브 레벨셋(positive level-set)에서 렌더링한 영상, 도 11의 (g)는 유조차를 제로 레벨셋에서 렌더링한 영상, 도 11의 (h)는 유조차를 포지티브 레벨셋(positive level-set)에서 렌더링한 영상을 나타낸 도면이다.
도 12는 정유소를 기하도형으로 하여 프리미티브 트리를 적용하여 렌더링한 영상을 나타낸 도면이다. 도 12의 (a)는 제로 레벨셋에서 렌더링한 영상, 도 12의 (b)는 프리미티브 트리에서 제로 레벨셋이 아닌 경우에서 렌더링한 영상, 도 12의 (c)는 선행기술1의 방법으로 렌더링한 영상을 나타낸 도면이다. 프리미티브 트리의 방법에서는 선형 보간(linear interpolation)을 하지 않으므로 이로 인한 인위적 요소가 없다.
표 1은 도 10 내지 도 12에 포함된 여러 기하도형에 대한 실험결과를 나타낸다.

삼각형
kd-tree
요구시간
프리미티브 트리
요구시간 거리차
(ε)
법선 차 트리의 최대깊이 트리저장공간 트리 생성 시간 렌더링 시간
무너진 집 66K 201us 1.73us 4.00u 1.11m 11 27MB 1m56s 3.16s
부다 100K 336us 2.32us 4.84u 1.43m 10 5MB 1m07s 2.40s
정유소 291K 456us 2.21us 4.37u 1.81m 11 31MB 3m43s 3.29s
유조차 310K 633us 1.97us 9.49u 1.43m 11 10MB 3m47s 2.70s
도시 1676K 3730us 1.55us 3.49u 3.47m 12 34MB 9m06s 5.84s
파워플렌트 12748K 9580us 1.78us 3.56u 8.70m 13 99MB 50m34s 5.31s
표 1을 참고하면 프리미티브 트리를 이용하면 1.2*107 개의 삼각형이 있는 기하도형에서도 매우 빠르게 거리값을 계산할 수 있음을 알 수 있다. 프리미티브 트리는 kd-tree에 비하여 200~5000배 빠르다. 또한 프리미티브의 평균 요구시간은 프리미티브의 개수에 무관함을 알 수 있다. 즉 무너진 집의 삼각형 개수에 비해 파워플렌트의 삼각형 개수는 현저하게 증가했으나 요구시간은 거의 변화가 없다. 프리미티브 트리를 이용하여 렌더링하는 시간 역시 프리미티브의 개수에 무관하다.
도 13은 트리의 단말노드에 여러 개의 프리미티브를 저장하는 경우 기하도형의 오목한 부분에서 저장해야하는 프리미티브의 개수가 증가하는 것을 나타내는 도면이다. 도 13의 (a)는 단말노드에 거리값이 비슷한 모든 프리미티브를 저장하는 방법의 경우 기하도형의 오목한 부분에서 저장해야할 프리미티브의 개수가 증가하는 것을 확인할 수 있게 나타낸 도면이다. 도 13의 (b)는 kd-tree의 방법으로 자료구조 생성시 기하도형의 오목한 부분에서 저장해야할 프리미티브의 개수가 증가하는 것을 색상의 변화로 확인할 수 있게 나타낸 도면이다.
프리미티브 트리의 경우 기하도형의 오목한 부분에서도 하나의 프리미티브 정보만을 저장함에도 불구하고 정확한 거리장 값을 계산할 수 있게 되는데 이는 오목한 부분을 둘러싼 다수의 프리미티브 사이에서는 프리미티브와 단말노드의 거리차가 미미하기 때문이다. 따라서 프리미티브 트리는 단말노드에 하나의 프리미티브 정보만을 저장하더라도 오차가 크지 않다.
표 2는 도 8의 토르소 기하도형에 대하여 최대 트리 깊이(L)에 따른 메모리 소모, 트리 생성 시간, 에러발생을 비교한 표이다. 최대 트리 깊이 값이 작을 수록 메모리소모는 적고 트리생성시간은 감소하나 에러는 증가한다. 프리미티브 트리는 최대 트리 깊이 값을 조정하여 이러한 요소간 균형을 맞출 수 있다.
실측 정보 L=6 L=7 L=8
메모리 263KB 93KB 296KB 827KB
트리생성시간 N/A 674ms 3sec 8sec
에러/sample N/A 7.00*10-5 1.20*10-5 4.11*10-6
프리미티브 트리에서 3차원 공간 좌표를 사용한다고 가정하면 팔진트리를 사용하므로 부모노드는 8개의 자식노드를 갖게된다. 8개의 자식노드들은 고정된 순서대로 지정되므로 부모는 어떤 것이 첫번째 자식 노드인지를 지칭하는 하나의 정보만을 저장하면 된다. 프리미티브 트리의 노드 중에서 단말노드는 31-bit의 프리미티브 정보(index)를 저장하며, 단말노드가 아닌 경우는 31-bit의 자식노드 정보(index)를 저장하며, 모든 노드는 자신이 단말노드인지 아닌지를 나타내는 1-bit 플레그 데이터를 저장한다.
표 3은 프리미티브 트리외 다양한 방법에 의해 도 8의 토르소 기하도형을 분석한 결과를 나타낸다. 법선차란 실측한 법선 벡터와 계산된 법선 벡터와의 차이(라디안값)를 나타내는 것으로 프리미티브 트리의 경우 법선 벡터를 보다 정확하게 계산할 수 있다.
추천된 모든 프리미티브를 단말노드에 저장 프리미티브 트리 선행기술1의 등가크기 타입 선행기술2의 작은 에러타입
메모리 3240KB 1090KB 1038KB 114MB
에러 0 4.10*10-6 1.77*10-3 4.01*10-4
법선차 0 2.45*10-3 2.01*10-1 2.00*10-1
평균요구시간 6150ms 2.94us 2.20us 2.59us
트리생성시간 2m34s 14sec 6.2sec 7m37s
도 14는 프리미티브 트리가 기하도형의 표면에서 멀어질 수록 성긴 트리 구조임에도 에러가 높지 않음을 나타내는 도면이다. 도 14의 (a)는 실측값에 의한 거리장을 나타내며, 도 14의 (b)는 프리미티브 트리에 의한 거리장을 나타내고, 도 14의 (c)는 프리미티브 트리의 구조가 기하도형의 표면에서 멀어질 수록 성긴 구조를 갖음을 나타낸다.
프리미티브 트리는 프리미티브가 삼각형이 아닌 경우에도 효과적으로 적용된다. 도 15는 91개의 모깍은 기둥을 레이케스팅 기법으로 렌더링한 영상을 나타내는 도면이다. 도 15의 (a)는 실측값을 나타내고, 도 15의 (b)는 프리미티브 방법에 의한 영상이며, 도 15의 (c)는 선행기술1에서 제안한 방법에 의한 영상을 나타낸다.
도 16은 도 15의 모깍은 기둥에 있어, 선행기술1에서 제안한 보간법에 의해 거리장을 계산하는 것에 비하여 프리미티브 트리가 거리장을 더 정확하게 계산함을 나타내는 도면이다. 선행기술1의 보간법은 더 많은 노드를 사용할 뿐만 아니라 더 큰 에러를 보인다. 보간법은 프리미티브가 없는 곳 사이의 거리를 근처의 프리미티브와의 거리들 간 평균으로 구하는 방법이다. 이에 반해 프리미티브 트리에서는 항상 가장 가까운 프리미티브 하나를 선정하여 그 값을 그대로 거리값으로 사용한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
110 - 자료구조 생성부
120 - 거리장 연산부
130 - 렌더링부

Claims (13)

  1. 복수의 프리미티브(primitive)로 구성된 기하도형을 포함하는 좌표공간에 대응하며, 단말노드에는 상기 좌표공간에서 상기 단말노드에 대응하는 좌표로부터 가장 근접한 한 개의 프리미티브 정보가 포함된 트리 형태의 자료구조를 생성하는 자료구조 생성부; 및
    상기 자료구조로부터 거리장 값을 계산하는 거리장 연산부;를 포함하며,
    상기 자료구조 생성부는 반복적 분할에 의해 상기 자료구조를 생성하되, 상기 트리의 단말노드를 분할할 경우에 생겨날 예상 하위노드를 가정하고, 상기 예상 하위노드에 대응하는 좌표인 기준지점으로부터 상기 단말노드에 포함된 프리미티브까지의 거리를 기초로 산출된 거리값과 상기 기준지점으로부터 상기 기하도형까지의 실제 거리값 간의 차가 사전에 설정된 임계값을 초과하면 상기 단말노드를 상기 예상 하위노드로 분할하는 것을 특징으로 하는 거리장 계산장치.
  2. 제 1항에 있어서,
    상기 거리장 연산부는 상기 좌표공간에서 거리장 값을 계산하고자 하는 요구지점에 인접한 좌표들에 대응하는 단말노드들에 포함된 후보 프리미티브들의 정보를 상기 자료구조로부터 추출하고, 상기 요구지점으로부터 상기 각각의 후보 프리미티브까지의 거리 중 최단거리를 상기 요구지점에 대응하는 거리장 값으로 결정하는 것을 특징으로 하는 거리장 계산장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 기하도형에서 서로 인접한 프리미티브 사이의 누락지점에 대응하는 법선벡터를 상기 누락지점으로부터 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링하는 렌더링부를 더 포함하는 것을 특징으로 하는 거리장 계산장치.
  4. 삭제
  5. 제 1항에 있어서,
    상기 자료구조 생성부는 상기 기준지점으로 인하여 거리장에 영향을 받는 지역에 속하는 추가지점을 더 선택하고, 상기 기준지점 또는 상기 추가지점으로부터 상기 트리의 단말노드에 포함된 프리미티브까지의 거리를 기초로 산출된 거리값과 상기 기준지점 또는 추가지점으로부터 상기 기하도형까지의 실제 거리값 간의 차가 사전에 설정된 임계값을 초과하면 상기 단말노드를 상기 예상 하위노드로 분할하는 것을 특징으로 하는 거리장 계산장치.
  6. 제 1항에 있어서,
    상기 자료구조 생성부는 반복적 분할에 의해 상기 자료구조를 생성하되, 상기 트리의 동일한 레벨에 속하는 단말노드들에 각각 대응되는 좌표들로 둘러싸인 영역 내에 위치하는 프리미티브들 중에서 상기 트리의 단말노드들에 저장되지 않은 프리미티브가 존재하면 상기 단말노드를 상기 예상 하위노드로 분할하는 것을 특징으로 하는 거리장 계산장치.
  7. 복수의 프리미티브(primitive)로 구성된 기하도형을 포함하는 좌표공간에 대응하며, 단말노드에는 상기 좌표공간에서 상기 단말노드에 대응하는 좌표로부터 가장 근접한 한 개의 프리미티브 정보가 포함된 트리 형태의 자료구조를 생성하는 자료구조 생성단계; 및
    상기 자료구조로부터 거리장 값을 계산하는 거리장 연산단계;를 포함하며,
    상기 자료구조 생성단계에서, 반복적 분할에 의해 상기 자료구조를 생성하되, 상기 트리의 단말노드를 분할할 경우에 생겨날 예상 하위노드를 가정하고, 상기 예상 하위노드에 대응하는 좌표인 기준지점으로부터 상기 단말노드에 포함된 프리미티브까지의 거리를 기초로 산출된 거리값과 상기 기준지점으로부터 상기 기하도형까지의 실제 거리값 간의 차가 사전에 설정된 임계값을 초과하면 상기 단말노드를 상기 예상 하위노드로 분할하는 것을 특징으로 하는 거리장 계산방법.
  8. 제 7항에 있어서,
    상기 거리장 연산단계에서, 상기 좌표공간에서 거리장 값을 계산하고자 하는 요구지점에 인접한 좌표들에 대응하는 단말노드들에 포함된 후보 프리미티브들의 정보를 상기 자료구조로부터 추출하고, 상기 요구지점으로부터 상기 각각의 후보 프리미티브까지의 거리 중 최단거리를 상기 요구지점에 대응하는 거리장 값으로 결정하는 것을 특징으로 하는 거리장 계산방법.
  9. 제 7항 또는 제 8항에 있어서,
    상기 기하도형에서 서로 인접한 프리미티브 사이의 누락지점에 대응하는 법선벡터를 상기 누락지점으로부터 가장 가까운 프리미티브의 법선벡터로 대체하여 렌더링하는 렌더링단계를 더 포함하는 것을 특징으로 하는 거리장 계산방법.
  10. 삭제
  11. 제 7항에 있어서,
    상기 자료구조 생성단계에서, 상기 기준지점으로 인하여 거리장에 영향을 받는 지역에 속하는 추가지점을 더 선택하고, 상기 기준지점 또는 상기 추가지점으로부터 상기 트리의 단말노드에 포함된 프리미티브까지의 거리를 기초로 산출된 거리값과 상기 기준지점 또는 추가지점으로부터 상기 기하도형까지의 실제 거리값 간의 차가 사전에 설정된 임계값을 초과하면 상기 단말노드를 상기 예상 하위노드로 분할하는 것을 특징으로 하는 거리장 계산방법.
  12. 제 7항에 있어서,
    상기 자료구조 생성단계에서, 반복적 분할에 의해 상기 자료구조를 생성하되, 상기 트리의 동일한 레벨에 속하는 단말노드들에 각각 대응되는 좌표들로 둘러싸인 영역 내에 위치하는 프리미티브들 중에서 상기 트리의 단말노드들에 저장되지 않은 프리미티브가 존재하면 상기 단말노드를 상기 예상 하위노드로 분할하는 것을 특징으로 하는 거리장 계산방법.
  13. 제 7항 또는 제 8항에 기재된 거리장 계산방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020110033709A 2011-04-12 2011-04-12 프리미티브 트리에 기반한 거리장 계산장치 및 방법 KR101155689B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110033709A KR101155689B1 (ko) 2011-04-12 2011-04-12 프리미티브 트리에 기반한 거리장 계산장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110033709A KR101155689B1 (ko) 2011-04-12 2011-04-12 프리미티브 트리에 기반한 거리장 계산장치 및 방법

Publications (1)

Publication Number Publication Date
KR101155689B1 true KR101155689B1 (ko) 2012-06-12

Family

ID=46607473

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110033709A KR101155689B1 (ko) 2011-04-12 2011-04-12 프리미티브 트리에 기반한 거리장 계산장치 및 방법

Country Status (1)

Country Link
KR (1) KR101155689B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950001352A (ko) * 1993-06-23 1995-01-03 박경팔 액정 표시장치의 제조방법
KR20060108741A (ko) * 2003-12-31 2006-10-18 인텔 코오퍼레이션 멀티 스레드화된 아키텍처를 사용하는 시각 및 그래픽데이터 처리

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950001352A (ko) * 1993-06-23 1995-01-03 박경팔 액정 표시장치의 제조방법
KR20060108741A (ko) * 2003-12-31 2006-10-18 인텔 코오퍼레이션 멀티 스레드화된 아키텍처를 사용하는 시각 및 그래픽데이터 처리

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문 1 *
논문 2 *

Similar Documents

Publication Publication Date Title
Ochmann et al. Automatic reconstruction of fully volumetric 3D building models from oriented point clouds
Shi et al. Adaptive simplification of point cloud using k-means clustering
Bauchet et al. Kinetic shape reconstruction
US10268917B2 (en) Pre-segment point cloud data to run real-time shape extraction faster
US9189862B2 (en) Outline approximation for point cloud of building
Lafarge et al. A hybrid multiview stereo algorithm for modeling urban scenes
US10417821B2 (en) Method of simplifying a geometry model
US20100284607A1 (en) Method and system for generating a 3d model from images
Zhang et al. Dual contouring with topology-preserving simplification using enhanced cell representation
EP2887262B1 (en) Point Cloud Simplification
KR100959349B1 (ko) 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법
CN113012063B (zh) 一种动态点云修复方法、装置及计算机设备
Bauchet et al. City reconstruction from airborne LiDAR: A computational geometry approach
Hao et al. Slice-based building facade reconstruction from 3D point clouds
CN112102467A (zh) 一种基于gpu的并行八叉树生成、装置及电子设备
Wang et al. A new upsampling method for mobile lidar data
Yang et al. A hybrid spatial index for massive point cloud data management and visualization
Leymarie et al. Computation of the shock scaffold for unorganized point clouds in 3D
Azri et al. Review of spatial indexing techniques for large urban data management
CN116258840B (zh) 层级细节表示树的生成方法、装置、设备及存储介质
KR100843292B1 (ko) 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법
KR101155689B1 (ko) 프리미티브 트리에 기반한 거리장 계산장치 및 방법
Mateo et al. Hierarchical, Dense and Dynamic 3D Reconstruction Based on VDB Data Structure for Robotic Manipulation Tasks
Bajaj et al. Seed sets and search structures for optimal isocontour extraction
Cruz-Matías et al. A new lossless orthogonal simplification method for 3D objects based on bounding structures

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee