I. Introduction
물리 기반 유체 시뮬레이션에서 표면 재복원(Surface reconstruction)은 결과를 시각화하기 위해 필요한 과정이다. 이때 활용하는 방법이 음함수 표면(Implicit surface)이며, 복잡한 기하구조(Geometry)와 연결 정보를 효율적으로 생성할 수 있기 때문에 렌더링(Rendering) 분야에서 활용되고 있다[1-4]. 음함수를 시각화하기 위해서는 표면으로부터의 거리를 표현한 부호거리장과 레벨셋뿐만 아니라 제로 컨투어(Zero-contour)를 찾기 위해 마칭 큐브(Marching cubes)와 듀얼 컨투어링이 널리 활용되고 있다[5,6]. Kim et al.은 그래픽스분야에서 처음으로 구면 좌표계 시스템을 활용하여 구면 옥트리를 구성하고 이를 듀얼 컨투어링 기법에 적용했다. 이 기법은 모델의 형태가 구형에 가까울수록 메쉬(Mesh) 압축성이 개선된다는 결과를 보여주었다[7] (그림 1 참조).
Fig. 1. Grid construction with Cartesian coordinate(a) and Spherical coordinate(b).
하지만 이 방법은 몇 가지 문제가 있다. 첫 번째로 내부구를 계산하는 방식에서 구의 중점이 표면에 있으면 반지름을 계산할 수 없기 때문에 시스템이 불안정해진다. 이 같은 문제는 듀얼 컨투어링에 대한 한계가 아닌, 구면 옥트리가 잘못 구성된 문제이다. 두번째는 극좌표 부근에서 발생하는 홀을 채우는 과정에서 정확도가 떨어진다는 것이다. 본 논문에서는 표면의 법선벡터를 통해 극좌표 홀을 채울 수 있는 기법을 제안한다. 본 논문에서는 이러한 문제들을 해결함으로써 안정적으로 구면 옥트리를 생성하고, 이를 통해 복원된 표면의 품질을 개선시킨다. 앞에서 언급했듯이 제안하는 방법은 이전 기법과 비교했을 때 계산양이 거의 같으면서[7], 장점을 그대로 유지하고 안정성을 높일 수 있다는 특징이 있다.
⦁ 직교 좌표계를 이용한 표면 복원 방식과 유사한 왜곡을 가지면서 적은 기하구조 정보를 이용하여 음함수를 표현
⦁ 구면 형태로 이루어진 노드를 이용하기 때문에 부드러운 표면을 가진 3D모델에서 직교 좌표계보다 곡면을 잘 표현
⦁ 직과 좌표계보다 다양한 방향을 가진 법선벡터를 표현할 수 있기 때문에 구면 옥트리로 표현된 메쉬를 이용하여 충돌 처리/렌더링을 할 경우 직교 좌표계보다 정확하게 계산할 수 있음
그림 1은 직교와 구면 좌표계를 이용하여 공간적으로 이산화된 노드를 시각화 한 그림이다. 음함수가 곡선(빨간색)임에도 불구하고 직교 좌표계는 격자(Grid) 형태로 공간을 표현하지만, 구면 좌표계로 계산된 노드는 음함수 표면과 유사한 형태로 공간을 근사할 수 있다. 이 노드는 점진적 압축(Progressive compression) 같이 메쉬 표현을 위해 충분한 데이터가 주어지지 않은 경우에 나타나는 결과이며, 곡면 처리에 있어서 부드러운 특징을 잘 표현한다. 데이터가 부족하다는 것은 트리의 깊이가 낮아서 메쉬를 처리하는데 있어서 기하구조 정보가 부족한 경우를 의미하며, 특히 직교 좌표계 기반의 옥트리(Octree)에서 이렇게 부족한 기하구조로는 그림 1(a)에서 보듯이 각진 형태로 보이거나 곡면을 표현하기 어렵게 한다.
II. Related Works
마칭 큐브는 3차원 공간에서 음함수 형태로 표현된 메쉬 표면을 추출하는 알고리즘이며[5], 다양한 방법으로 개선되어 왔다[6,8,9]. 마칭 큐브는 3차원 이산 스칼라 필드(Scalar field)인 복셀(Voxel)에서 등위면(Isosurface)을 추출하며, 여기서 등위면은 볼륨 안에서 같은 값을 연결할 때 생성되는 표면을 의미한다. 이 접근법은 공간을 격자로 이산화하고 내/외부 정보를 가진 거리 값을 통해 제로 컨투어를 찾는 방식이다. 3차원 격자는 8개의 노드(Node)를 가지고, 이 노드들은 음함수 내/외부에 따라서 256가지 패턴으로 분류된다. 음함수 표면을 나타내는 삼각형은 최대 4개까지 생성되며, 그림 2는 마칭 큐브에서 정점(Vertex)의 위치가 결정되는 조건을 표현한 그림이다.
Fig. 2. Marching cube algorithm(red : isoline, gray : implicit surface)[5].
그러나 마칭 큐브는 격자와 음함수 사이의 교차점만을 이용하기 때문에 정확도가 낮으며, 날카로운 특징을 표현하는데 한계가 있다. 이 문제를 해결하기 위해 정점과 에지(Edge)의 듀얼(Dual) 관계를 가지는 듀얼 격자(Dual grid) 분할 방식이 제안되었다[6,9]. 이 접근법에서 가장 유명한 방법은 듀얼 컨투어링이다[6]. 이 방식은 격자 공간 내에서 정점의 위치를 결정하기 때문에 마칭 큐브보다 정확도가 높으며, 정점의 위치를 결정하기 위해 2차 에러 함수를 사용하고, 그 방식은 수식 1과 같다.
\(\begin{aligned}Q(x)=\sum_{i}\left(n_{i} \cdot\left(x-p_{i}\right)\right)^{2}\end{aligned}\) (1)
여기서 pi는 격자의 에지와 음함수 표면의 교차점 위치이며, ni는 교차점의 법선 벡터이다. 따라서 ni ∙ (x - pi) = 0을 만족하는 점인 x는 pi를 지나면서 법선 벡터 ni를 가지는 평면이다. 따라서 수식 1을 최소화하는 위치 x는 각 평면의 교차점임을 알 수 있다. 그림 3은 듀얼 컨투어링에서 정점의 위치가 결정되는 조건을 표현한 그림이다.
Fig. 3. Dual contouring algorithm[6] (black arrow : normal vector).
이 방법은 격자의 에지에서 정점을 생성하는 마칭 큐브와는 달리 격자 공간 내에서 정점을 생성하기 때문에 날카로운 부분을 잘 표현한다. 격자 공간 내 정점의 위치를 찾기 위해 연립방정식을 풀어야하지만 교차점이 없는 경우는 격자 중심점에 정점을 위치시켰고, 제안하는 방법에서도 이를 활용하여 정점의 위치를 결정하였다[6].
이 과정에서 옥트리는 공간을 효율적으로 사용하거나 적응적으로 음함수 표면을 표현하기 위해 사용되는 접근법이다[10,11]. 일반적으로 옥트리는 내부 노드에 8개의 자식이 있는 트리 구조이다. 옥트리는 3차원 공간을 8개의 팔분 공간으로 분할한다. 리프노드(Leaf node)와 관련된 데이터는 애플리케이션에 따라 다르지만 일반적으로 “관심 있는 정보의 최소 단위”를 갖는다. 옥트리에서는 기하 구조를 포함하지 않거나 교차하지 않는 노드는 분할하지 않으며, 어떤 객체를 완전하게 담지 못하는 노드는 트리에서 제거된다. 최근에 인공신경망을 이용하여 듀얼 컨투어링을 계산할 수 있는 방법이 제시했다[19]. 이들은 부호거리장으로부터 메쉬의 형태(복셀 데이터 혹은 포인트 데이터)를 학습시킨다. 결과적으로 전통적인 듀얼 컨투어링보다 날카로운 부분이나 부드러운 표면을 원본 메쉬에 가깝게 표현하는 결과를 보여준다.
앞에서 언급한 접근법 뿐만 아니라 대부분의 기하구조를 다루는 방법들에서는 직교 좌표계에서 음함수 표면을 다룬다. Kim et al.은 구면 좌표계를 기반으로 옥트리를 분할하는 방법을 처음으로 제시했고[7], 이것을 듀얼 컨투어링에 활용할 수 있는 방법을 보여주었다. 하지만, 구면 옥트리를 구성하는 과정에서 불안정성이 나타나기 때문에 특정 모델에서만 동작하는 한계가 있다. 본 논문에서는 안정성 문제를 개선하여 구면 옥트리를 다양한 모델에 적용 가능하도록 시스템 개선하고, 원주율로 인해 나타나는 오차를 기존 기법에 비해 정확하게 보완할 수 있는 방법을 소개한다. 또한, 제안하는 방법을 듀얼 컨투어링에 적용하여 이전 구면 옥트리[7]가 갖는 장점을 그대로 유지할 수 있는지 다양한 실험을 통해 보여준다.
III. The Proposed Scheme
1. Implicit Surface
일반적으로 동적 재메쉬(Dynamic remesh)를 표현하기 위해 음함수 형태를 이용할 경우 아이코날 방정식(Eikonal equation)을 만족하는 함수인 수식 2로 표현이 가능해야 한다[12].
f(x, y, z) = f(p) = 0 (2)
위 수식에서 f(p) = 0를 만족시키는 위치인 p는 표면위에 존재하는 점이며, 이 수식은 표면으로부터 가장 가까운 거리를 나타내는 음함수이다. 구 방정식이나 평면의 방정식이 수식 2를 만족하는 식이며, 0인 지점은 표면 위에 존재하는 점이기 때문에 접점을 찾을 때 활용된다. 이 거리는 표면 내부일 때 음수를 가지고, 표면 외부일 때 양수를 가진다. 이 같은 특징은 물리 기반 시뮬레이션에서 렌더링 및 충돌 처리를 계산하는데 활용된다[13,14].
음함수 표면의 또 다른 장점은 CSG(Constructive solid geometry)에 쉽게 적용이 가능하다는 것이다[15]. 음함수로 표현된 점들의 집합에서 서로간의 차집합, 교집합, 합집합을 통해 복잡한 모델을 만들 수 있다. 또한 블렌딩(Blending)과 같은 변형이 가능하기 때문에 유체 시뮬레이션에서 표면을 표현하는데 활용하기도 한다[16]. 음함수로 표현된 간단한 형태는 구 방정식이며, 단위 구는 f(x, y, z) = x2 + y2 + z2 - r2으로 표현된다. 이 함수에 대한 기울기는 수식 3과 같이 계산된다.
\(\begin{aligned}\nabla f(x, y, z)=\left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z}\right)\end{aligned}\) (3)
음함수 표면의 블렌딩은 블로비 모델링(Blobby modeling)[17], 소프트 오브젝트(Soft object), 메타볼(Metaball) 등의 모델링에서도 활용된다[18]. 이러한 함수는 앞에서 언급했듯이 삼각형 메쉬로 변환할 수 있으며, 일반적으로 구현이 쉽고 널리 활용되고 있는 방법이 마칭 큐브이다[5]. 요약하면 다음과 같다 : 수식 2는 아이코날 방정식을 만족하는 일반적인 함수 형태이며, 수식 3은 그 함수에 대한 기울기이다. 구 형태를 표현하고 싶으면 구 방정식을, 평면을 표현하고 싶다면 평면의 방정식을 적용하면 된다. 임의의 모델에 대해서 수식 2를 적용하려면 부호거리장[20]을 통해 근사된 필드를 활용하면 된다.
2. Spherical Coordinate System
구면 좌표계는 3차원 공간에서 점의 위치를 표현할 수 있는 좌표계 중의 하나이다 (그림 4 참조).
Fig. 4. Spherical coordinate system (a) and spherical octree with inner/outer circles(b), (top view).
일반적으로 구면 좌표계는 공간에 있는 위치를 (r,θ,ϕ)로 나타낸다. 원점으로부터의 거리 r은 0부터 거리를 표현하고, z축과 r방향이 이루는 각도인 θ는 0부터 π까지, Z축과 X축이 이루는 각도인 ϕ는 0부터 2π까지 범위가 지정된다. 그림 4에서 (r,θ,ϕ)는 다음과 같이 정의되며, 주어진 위치가 p라고 했을 때,
⦁ r : 원점으로부터 p 사이의 거리, r ≥ 0
⦁ θ : Z축 방향으로부터 원점과 p가 이루는 직선까지의 각도, 0 ≤ θ ≤ π
⦁ ϕ : X축으로부터 원점과 p가 이루는 직선을 XY평면에 투영시킨 각도, 0 ≤ ϕ ≤ 2π
직교 좌표계와 구면 좌표계의 변환은 수식 4~5와 같다.
\(\begin{aligned}r=\sqrt{x^{2}+y^{2}+z^{2}}, \theta=\arccos \frac{z}{r}, \phi=\arctan \frac{y}{x}\end{aligned}\) (4)
x = rsinθcosϕ, y = rsinθcosϕ, z = rcosθ (5)
수식 4는 직교 좌표계를 구면 좌표계로 변환하는 수식이며, 구면 옥트리는 x,y,z 대신에 r,θ,ϕ를 분할하기 때문에 수식 4가 필요하다. 반대로 수식 5는 구면 좌표계를 직교 좌표계를 변환하는 수식이며, 최종적으로 구면 옥트리의 결과를 렌더링할 때 다시 직교 좌표계 공간으로 변환해야하기 때문에 이 과정이 필요하다.
3. Stable Construction of Spherical Octree
앞에서 언급했듯이 음함수 표면을 복원하기 위해서 본 논문에서는 구면 옥트리를 이용한다. 기하구조 분야에서는 표면 모델만 다루기 때문에 옥트리를 적용하면 불필요한 내부 공간을 무시하고 표면에 근접한 공간만을 다룰 수 있 다는 장점이 있다.
구면 옥트리를 구성하기 위해서 본 논문에서는 이전 기법에서 사용한 최소/최대 구를 정의하여 활용한다[7]. 내부에 있는 구가 최소 반지름, 외부에 있는 구가 최대 반지름을 나타낸다. 직교 좌표계 기반 옥트리가 x,y,z를 기준으로 분할하듯이, 구면 옥트리는 r,θ,ϕ를 기준으로 분할한다. 구면 옥트리에서 주의해야 할 점 중 하나는 구면 좌표계의 원점 정의이다. 이전 기법에서는 Smallest enclosing discs방법을 이용했지만[7], 정점을 기반으로 구면 좌표계의 중심점이 결정되기 때문에 이 과정에서 모델 표면에 원점이 설정되면 반지름을 계산할 수 없고, 결과적으로 구면 옥트리는 발산하게 된다 (그림 5 참조). 이 문제를 해결하기 위해 본 논문에서는 표면의 레벨셋을 이용한 원점 보정 기법을 제안한다. 만약에 구면 좌표계의 원점이 메쉬의 표면이라면 레벨셋의 기울기를 이용하여 원점 x를 이동한다 (수식 6 참조). 원점이 표면이라는 조건은 레벨셋으로 계산된 거리 값을 이용한다.
Fig. 5. Divergent surfaces due to an incorrect origin in previous Spherical octree[7] : (a) only surfaces, (b) surfaces and spherical octree nodes.
x1 = x0 + δ∇ f(x0) (6)
여기서 x0는 원점의 초기 위치이고, x1는 다음 스텝에서 업데이트된 원점의 위치이며, δ는 수렴방향으로 이동하는 가중치이다. 원점이 표면 내부/외부에 위치될 때 까지 반복적으로 원점을 갱신한다. 내부 혹은 외부 중 최종적인 수렴 방향을 결정하는 조건은 좀 더 가까운 거리 방향을 선택한다. 제로 컨투어 반대 방향으로 이동해야 되기 때문에 증가하는 방향인 양수를 곱했고, δ는 1보다 큰 가중치이다. 이 값이 1이라면 표면에서 움직이지 않거나 극소점(Local minima)에 빠질 가능성이 있으므로 δ는 1보다 큰 값으로 설정한다. 그림 6은 구의 중심 위치가 업데이트되는 과정을 보여주고 있다. 본 논문에서 제안하는 구면 옥트리에 듀얼 컨투어링를 적용하기 위해서는 옥트리의 인접노드 리스트를 구축해야 하며 이 과정은 이전 기법을 활용했다[7].
Fig. 6. Origin of spherical coordinate being updated via level-set's gradient.
4. Dual Contouring on Spherical Octree
구면 옥트리 기반에서 듀얼 컨투어링을 적용하는 과정은 앞에서도 언급했듯이 (x,y,z)대신에 (r,θ,ϕ)를 이용하여 폴리곤화(Polygonization)를 수행한다. 직교 좌표계의 경우 노드가 사각형 형태로 나타나기 때문에 법선 벡터도 X, Y, Z축에 평행한 방향으로 설정되며 이 같은 특징은 곡면으로 나타나야 할 부분이 평면처럼 표현된다. 이 뿐만 아니라 좌표계를 변환하는 과정에서 원주율에 대한 정확도 오차 때문에 한 가지 문제가 더 발생한다. 그림 4(b)는 구면 옥트리를 위에서 바라본 모습이며, 원주율에 대한 수치적 오차 때문에 빈 공간이 발생한다. 이 문제는 이전 기법에서도 정의하고 있는 부분이다[7].
구면 좌표계를 이용한 폴리곤화 과정에서 모든 계산은 구면 좌표계에서 계산하지만 그래픽하드웨어 시스템의 좌표가 직교 좌표계이고, 시각화를 위해서는 다시 직교 좌표계로 변환해야 한다. 두 좌표 시스템을 변환하는 과정에서 수치적인 오차가 발생하며, 이 원인은 기본적으로 무한 소수인 원주율이 시스템에서는 64비트 double형으로 표현되면서 유한한 값을 가지기 때문이다. 이전 기법에서는 오차를 완화하기 위해 극좌표로 수직 투영하는 방식인 고스트 노드 기법을 제안했다[7]. 하지만 이 방법은 방향을 고려하지 않았기 때문에 트리 깊이가 낮을 때는 오차가 커지며, 트리 깊이가 커진다고 해서 온전하게 해결되지 않는 문제이다. 듀얼 컨투어링에서 정점의 위치를 계산하기 위해 법선 벡터를 이용했듯이, 본 논문에서는 위 문제를 유사하게 해결한다. 즉, 극홀이 포함된 인접 노드의 방향을 이용하여, 이 방향과 극좌표계가 충돌하는 지점을 기반으로 고스트 노드를 실행하여 이 문제를 해결한다. 그림 7(a)에서 보듯이 원형에 가깝게 표현되어야 될 음함수 표면이 이전 기법에서는 수직벡터로 근사했기 때문에 곡면과는 다른 표면이 표현된다[7]. 반면에 제안하는 방법은 곡면의 형태를 상대적으로 잘 표현한다 (그림 7(b) 참조).
Fig. 7. Comparison results between the accuracy of polar hole filling using a surface gradient and previous methods[7].
극홀 필링을 구현하기 위한 과정은 다음과 같다 :
⦁ ϕ,θ에서 최소/최대 각을 원주율의 근사값(64비트 double)으로 조정
⦁ 홀 부분(벌어진 부분)을 극좌표 기준으로 투영시킨다(이때 방향은 표면의 법선 벡터 방향으로 설정). 홀을 기준으로 음과 양의 범위에서 투영된 위치가 일치하는 곳에 고스트 노드를 삽입
⦁ 직교 좌표계에서 고스트 노드로 연결된 부분에 새로운 정점과 삼각형을 삽입
IV. Experiment and Results
본 연구의 결과들을 만들기 위해 실험한 환경은 Intel Core i7-7700K CPU, 32GB RAM, Geforce GTX 1080Ti GPU가 탑재된 컴퓨터를 이용하였다. 본 논문에서는 이전 구면 옥트리 기법[7]에서 제대로 표현하지 못했던 다양한 모델에 대해서 실험을 진행했다. 그림 8(a)에서 보듯이 이전 결과에서는 구면 옥트리를 구성하는 과정에서 튀는 노드가 발생했고, 이 문제가 표면을 복원하는 과정에서도 그대로 나타났다. 하지만 제안하는 방법은 같은 모델에서도 튀는 노드 없이 안정적으로 구면 옥트리를 구성했고, 듀얼 컨투어링으로 복원된 표면에서도 깔끔한 결과를 만들어냈다 (그림 8(b) 참조).
Fig. 8. Comparison results between previous method[7] and our method.
그림 9는 다양한 모델에서 복원된 표면을 보여주고 있으며, 모든 결과에서 튀는 장면 없이 안정적으로 결과를 만들어 냈다. 특히 ‘C’형태로 오픈된 모델에서도 안정적으로 수행됐다. 동일한 옥트리 레벨에서 듀얼 컨투어링을 위해 필요한 정점의 개수가 줄어든다는 장점을 가지고 있다. 본 논문에서 제안하는 방법은 구면 옥트리에 대한 안정성을 개선한 방법으로써 안정성 측면뿐만 아니라 기존 구면 옥트리 기법[7]의 장점을 그대로 가지고 있기 때문에 활용 분야가 넓다. Table 1은 직교와 구면 좌표계에서 듀얼 컨투어링 기반으로 복원된 모델의 정점 개수를 비교한 결과이다. Table 1에서 보듯이 듀얼 컨투어링을 통해 생성된 메쉬는 각 레벨에서 직교 좌표계보다 구면 좌표계가 더 적은 정점 개수로 표현되었음을 보여주고 있다.
Fig. 9. Various results with our method (red box : hole filling region).
Table 1. Comparison number of vertices in Cartesian versus Spherical coordinate systems (CR=Compression ratio).
이 테이블에서 보여주고자 한 것은 안정성이 개선된 채정점의 개수가 줄어드는지 확인하고자 한 실험이다. 이 같은 결과는 더 적은 정보로 3D 모델을 효율적으로 표현하고 있다는 의미하며, 본 논문에서 제안한 방법은 이전 구면 좌표계[7]의 결과와 동일하지만 더 안정적으로 구면 옥트리를 표현했다. Table 1에서 Compression ratio는 압축비를 나타내며 이는 다음과 같이 계산한다 : \(\begin{aligned}C R=\frac{\text { Octree }_{\text {artesian }}}{\text { Octree }_{\text {spherical }}}\\\end{aligned}\). 압축비는 1 이상이고 압축비가 높을 수록 압축이 더 잘되는 것을 말하며, 제안한 방법은 동일한 모델을 적은 개수의 정점으로 표현하기 때문에 효율적이다. 여기서 말하는 안정성은 그림 9에서 보듯이 다양한 형태의 모델에서도 구면 옥트리 기반의 듀얼 컨투어링을 표현할 수 있다는 것을 의미한다. 이 모델들은 기존 기법[7]에서는 발산하여 제대로 된 결과를 만들어 내지 못했으며, 본 논문에서 제안하는 방법은 특정 모델에만 국한하지 않고 모든 모델에서 안정적으로 구면 옥트리를 구성했다(그림 5와 8 참조). 원본 구면 옥트리 기법과 비교했을 때[7], 전체적인 성능은 같지만 안정성이 개선되었다.
정량적인 비교뿐만 아니라 시각적인 측면에서도 직교 좌표계에 비해 부드럽고 개선된 표면을 표현할 수 있다. 그림 10은 직교와 구면 옥트리에서 구현된 듀얼 컨투어링을 비교한 결과이다. 직교 좌표계에서 구현된 옥트리보다 적은 개수의 정점 정보를 가지고 모델을 표현했음에도 불구하고 계단현상(Aliasing)이 줄어들고 부드러운 표면을 표현했다. 직교 옥트리(Cartesian octree)에서 만들어진 특징은 세밀한 디테일이 아니라, 격자의 형태가 그대로 나타난 계단현상 문제이며, 울퉁불퉁한 부분이 모두 노이즈 표면이다. 그림 10(a)에서 보듯이 이 문제는 부드러운 곡면 형태로 갈수록 문제가 더 심각하게 발생한다. 반면에 구면 옥트리는 드래곤 모델의 목 부분에 표현되는 주름도 잘 포착했으며 전체적으로 노이즈 없이 깔끔하게 표면을 복원했다. 결과적으로 본 논문에서 제안한 구면 옥트리는 이전 기법의 장점을(정량적인 측면과 시각적인 측면) 유지하면서 안정성이 개선된 결과를 보여준다.
Fig. 10. Dual contouring results based on Cartesian(Top)/Spherical(Bottom) octree.
V. Comparison and Discussion
이전 기법인 Kim et al.[7]은 구면 옥트리를 처음 제안했고 이 방법을 듀얼 컨투어링에 적용하여 구면 옥트리의 활용성을 보여주었다. 하지만 구의 중심과 반지름을 계산하는 과정에서 발산하는 문제가 발생한다. 이 문제는 구면 옥트리 구성뿐만 아니라 듀얼 컨투어링으로 표면을 복원하는 과정에서도 정점이 튀는 문제를 야기시킨다. 특정 모델에서만 적용된다는 한계가 있고, 안정성이 떨어지기 때문에 다목적으로 활용하기 어려워진다. 특히 메쉬를 표현하는데 있어서 정점 개수가 줄어든다는 장점이 있음에도 불구하고, 정점이 튀는 것은 정확성에 오차가 있다는 것을 의미한다[7]. 정점 데이터 개수는 줄어들지만 부정확한 표면을 표현하기 때문에 데이터 자체에 오차가 포함되어 있다는 것을 나타낸다.
본 논문에서는 이 문제를 다음과 같은 방식으로 해결하였다. 1) 구면 옥트리를 구성하는데 필요한 구의 중심을 안정적으로 계산하는 방법을 제안하였고, 특정 모델에만 적용이 가능했던 구면 옥트리를 다양한 모델에서 수행되도록 했다. 또한 이를 듀얼 컨투어링에 적용함으로써 복원된 표면에서 발생했던 발산문제를 완화시켰다. 또한 정점 개수가 줄어든다는 이전 구면 옥트리의 장점을 그대로 가지고 있다는 것을 Table 1에서 보여주었다. 이전 구면 옥트리[7]와 제안한 방법의 결과를 비교했을 때 정점 개수는 같지만 그림 5와 8에서 보여주듯이 안정적인 정점 위치를 갖고 있기 때문에 이전 기법에 비해 오차가 줄어든 정점 데이터 셋이라고 할 수 있다. 2) 원주율 정확도로 인해 나타나는 극홀을 채우는 과정에서 노드의 방향을 고려함으로써 구 형태에 가까운 노드를 정확하게 근사할 수 있다.
VI. Conclusions
본 논문은 구면 옥트리를 안정적으로 표현할 수 있는 새로운 알고리즘 제안했으며, 기존 기법에서 나타났던 1) 내부 원의 중점 개선과 2) 극좌표 부근에서 발생하는 홀을 2차 정확도로 채우는 기법을 제안하여 전반적인 시스템 안정성을 개선시켰다.
그럼에도 불하고 몇 가지 한계점이 있다. 1) 극좌표 부근에서 발생하는 홀은 2곳에서 발생하기 때문에 이를 해결해야 온전한 매니폴드 메쉬가 될 수 있다. 구면 옥트리는 내/외부 원의 바깥쪽뿐만 아니라 원 중심에서도 원주율에 대한 오차가 발생한다. 2) 듀얼 컨투어링을 계산할 때 2차 에러 함수가 수렴하지 않을 때는 정점의 위치를 노드 중심으로 설정했다. 물론, 노드가 가지고 있는 정점을 가중치로 두어 이 문제를 완화시킬 수 있지만 2차 에러 함수에 의해 결정된 위치가 아니기 때문에 정확성이 떨어질 수 있다. 향후 연구에서는 구면 좌표계에서 발생하는 홀을 온전히 채울 수 있는 방법과 구면 옥트리 기반에서 2차 에러 함수를 적용할 수 있는 방법에 대해 연구할 계획이다.
References
- Onderik, Juraj, Michal Chladek, and Roman Durikovic. "SPH with small scale details and improved surface reconstruction." In Proceedings of the 27th Spring Conference on Computer Graphics, pp. 29-36, 2011. DOI: 10.1145/2461217.2461224.
- Akinci, Gizem, Nadir Akinci, Edgar Oswald, and Matthias Teschner. "Adaptive surface reconstruction for SPH using 3-level uniform grids.", 2013.
- Akinci, Gizem. "Efficient surface reconstruction for SPH fluids." PhD diss., Dissertation, Universitat Freiburg, 2014.
- Yu, J. and Turk, G., Reconstructing surfaces of particle-based fluids using anisotropic kernels. ACM Transactions on Graphics (TOG), Vol. 32, No. 1, pp.1-12, 2013. DOI: 10.1145/2421636.2421641.
- Lorensen, W.E. and Cline, H.E., Marching cubes: A high resolution 3D surface construction algorithm. ACM siggraph computer graphics, Vol. 21, No. 4, pp.163-169, 1987. DOI: 10.1145/37401.37422.
- Ju, T., Losasso, F., Schaefer, S. and Warren, J., July. Dual contouring of hermite data. In Proceedings of the 29th annual conference on Computer graphics and interactive techniques. pp. 339-346, 2002. DOI: 10.1145/566654.566586.
- Kim, J.H., Park, T.J. and Kim, C.H., Enhanced Dual Contouring method by using the Feature of Spherical Coordinate System. Journal of the Korea Computer Graphics Society, Vol. 17, No. 2, pp.27-36. 2011. DOI: 10.15701/kcgs.2011.17.2.27.
- Kobbelt, Leif P., Mario Botsch, Ulrich Schwanecke, and Hans-Peter Seidel. "Feature sensitive surface extraction from volume data." In Proceedings of the 28th annual conference on Computer graphics and interactive techniques, pp. 57-66, 2001. DOI: 10.1145/383259.383265.
- Schaefer, Scott, and Joe Warren. "Dual marching cubes: Primal contouring of dual grids." In 12th Pacific Conference on Computer Graphics and Applications, pp. 70-76, 2004. DOI: 10.1111/j.1467-8659.2005.00843.x.
- Schaefer, S., Ju, T. and Warren, J., Manifold dual contouring. IEEE Transactions on Visualization and Computer Graphics, Vol. 13, No. 3, pp.610-619, 2007. DOI: 10.1109/TVCG.2007.1012.
- Ju, Tao, and Tushar Udeshi. "Intersection-free contouring on an octree grid." In Proceedings of Pacific graphics, 2006.
- Bruss, A.R., The eikonal equation: Some results applicable to computer vision. Journal of Mathematical Physics, Vol. 23, No. 5, pp.890-896, 1982. DOI: 10.1063/1.525441.
- Macklin, M., Erleben, K., Muller, M., Chentanez, N., Jeschke, S. and Corse, Z., Local optimization for robust signed distance field collision. Proceedings of the ACM on Computer Graphics and Interactive Techniques, Vol. 3, No. 1, pp.1-17, 2020. DOI: 10.1145/3384538.
- Fuhrmann, Arnulph, Gerrit Sobotka, and Clemens Gross. "Distance fields for rapid collision detection in physically based modeling." In Proceedings of GraphiCon, pp. 58-65, 2003.
- Requicha, A.A. and Voelcker, H.B., Constructive solid geometry, 1977.
- Cohen-Or, D., Solomovic, A. and Levin, D., Three-dimensional distance field metamorphosis. ACM transactions on graphics (TOG), Vol. 17, No. 2, pp.116-141, 1998. DOI: 10.1145/274363.274366.
- Payne, B.A. and Toga, A.W., Distance field manipulation of surface models. IEEE Computer graphics and applications, Vol. 12, No. 1, pp.65-71, 1992. DOI: 10.1109/38.135885.
- Jones, M.W., Baerentzen, J.A. and Sramek, M., 3D distance fields: A survey of techniques and applications. IEEE Transactions on visualization and Computer Graphics, Vol. 12, No. 4, pp.581-599, 2006. DOI: 10.1109/TVCG.2006.56.
- Chen, Z., Tagliasacchi, A., Funkhouser, T. and Zhang, H., Neural dual contouring. ACM Transactions on Graphics (TOG), Vol. 41, No. 4, pp.1-13, 2022. DOI: 10.1145/3528223.3530108.
- Frisken, S. F., Perry, R. N., Rockwood, A. P., & Jones, T. R. Adaptively sampled distance fields: A general representation of shape for computer graphics. In Proceedings of the 27th annual conference on Computer graphics and interactive techniques, pp. 249-254, 2000. DOI: 10.1145/344779.344899.