I. Introduction
가상/증강현실과 같은 혼합현실에서 몰입감을 증대시키기 위해 물리 기반 시뮬레이션은 환경 구축과 상호작용을위한 기술에 다양하게 접목되고 있다[1]. 그 중에서 헤어와털 시뮬레이션에 대한 모델링과 움직임은 가상 캐릭터의스타일과 개성 있는 애니메이션을 표현함에 있어서 중요한 특징 중 하나이다[2]. 헤어 시뮬레이션을 사실적으로 표현하는 것은 디지털 휴먼 제작 과정에서 어려운 작업 중 하나이며, 머리카락 간의 상호작용에 대한 특성을 온전히 표현하기에는 여전히 풀어야 될 문제들이 남아있다.
물리 기반 시뮬레이션은 헤어의 사실적인 움직임을 계산할 수 있지만[3], 복잡한 수치해석을 알아야하고 계산양도 크다. 대표적인 기법으로는 질량-스프링(Mass-spring) 을 사용한 기법이 있으며[4], 이 기법은 머리카락을 입자들로 구성하고 스프링으로 연결된 탄성체로 모델링하였다. 이 기법은 모발의 길이가 늘어나는 것을 스트레칭과 굽힘스프링을 기반으로 제어한다. Muller 등은 모발을 길이가늘어나는 문제를 빠르고 안정적으로 해결하기 위해 PBD(Position-based dynamics)를 DFTL(Dynamic follow-the-leader)로 확장한 헤어 시뮬레이션 기법을 제안하였다[5,6]. 이 외에도 Super-helices, 연속 매질 (Continuous medium) 등 근사 모델에 따른 기법들도 제안되었다[7,8]. 풍성한 모발과 털을 표현하기 위해 수만 가닥 이상의 개체를 연산하는 것은 수치적 안정성 측면뿐만 아니라, 계산시간도 많이 소요된다. 이 문제는 적응형 구조(Adaptive structure)를 사용하여 머리카락의 개수를 줄이거나[9], 사진 데이터 분석을 통해 헤어 형태를 자동으로 만들어주는 방법이 있지만[10], 특정 장면에서만 수행되는 경향이 있기 때문에 온전한 해결책으로 사용하기에는 한계가 있다.
최근에 인공지능을 이용하여 헤어의 형태를 스타일링해주는 기법이 제안되었다[11]. 하지만 이 방법은 헤어 모델링에 가까운 접근법이며 헤어 시뮬레이션에 직접적으로 적용이 어렵다. 또한, 딥마인드(DeepMInd)는 Graph Nets이라는 방법을 제안하였고(12], 이를 통해 물리 기반시뮬레이션을 학습하려는 시도가 있었다. Fig. 1은 그래프네트워크를 훈련시켜 두 노드 사이의 최단경로에 있는 노드와 간선에 레이블을 지정하고, 이 값을 예측한 결과이다. Graph Nets은 그래프뿐만 아니라, 질량-스프링 모델에서도 학습된 결과를 보여준다 (Fig. 2 참조). 아래 그림에서 보여주는 물리 기반 시뮬레이션 데모는 질량-스프링시스템을 생성하고 그래프 네트워크를 훈련시켜 다음 시간인 \(t+\Delta t\)에서의 상태를 예측한 결과이다.
Fig. 1. Predictions at each message-passing step with Graph Nets[12].
Fig. 2. Rollout of mass-spring system pinned at ends[12]
하지만, 탄성적인(Elastic) 움직임이 강한 머리카락의 경우 Graph Nets을 이용해도 안정성 부분에서 문제가 발생했으며, 장면에 따라 학습이 안 되는 경우가 대부분이었다 (Fig. 3 참조). 비선형적인 움직임을 Graph Nets으로 훈련시키는 방법과는 다르게 본 논문에서는 가닥 형태의 지오메트리 이미지를 활용하여 비선형적인 헤어의 움직임을 표현할 수 있는 방법을 제안한다.
Fig. 3. Training results using Graph Nets[12].
Ⅱ.Preliminaries
1. Related work
1.1. 물리 기반 헤어 시뮬레이션
사실적인 가상환경을 구축하기 위한 다양한 물리 기반 접근법 중에 헤어와 동물의 털을 사실적으로 표현하는 연구들이 가상현실이나 패션 디자인 분야에서 활발히 진행되고 있다. 질량-스프링모델은 헤어 시뮬레이션을 구현하기 위한 간단한 방법으로 1차원 탄성 막대들의 집합으로 헤어의 움직임을 표현한 대[4]. 하지만 이 방법은 수치적 불안정성과 모발 길이가 늘어나는 문제를 갖고 있다. 이 문제를 해결하기 위한 기법으로 PBD[5]와 DFTL을 결합하여 실시간으로 수 만개의머리카락을 표현한 기법이 있다[6]. 이 외에도 다양한 접근법으로 헤어 시뮬레이션기법들이 개선되었다 [8,13,14,15,16]. Chang 등은 머리카락 사이의 복잡한 상호작용을 캡처하는 시스템을 제안했고(17], 가이드(Guide) 되는 머리카락으로 듬성듬성한 머리 모델을 풍성하게 업스케일링 해주는 기법으로 확장된 연구들도 제안되었다 [18,19]. 간단한 형태의 머리카락 표현을 넘어 다양한 헤어스타일을 표현할 수 있는 기법들도 활발하게 연구가 진 행되었다. 다양한 헤어스타일을 표현하기 위해 사용된 기법들 중 널리 사용되는 기법은 입자 사이의 밴딩을 제어함으로써 곱슬머리를 표현한다[4]. 구부러진 형태를 유지하는 스프링을 정의하여 곱슬머리를 표현한 기법도 있다 [20]. 다양한 헤어스타일을 모델링하는 방법 중 메쉬 형태로 머리 모양을 제어하는 기법도 제안되었다[21].
1.2. 기계학습을 이용한 물리 기반 시뮬레이션
최근에 기계학습은 영상뿐만 아니라 컴퓨터그래픽스 분야에서도 활발하게 적용되고 있다. 특히, 유체 시뮬레이션에서 계산양이 큰 압력 과정을 회귀 문제로 풀어내려는 시도가 있었다[22]. 이 방법은 큰 시간간격(Time-step)에서도 안정적으로 수행되지만, 학습하면서 관측하지 못한 데이터에 대해서는 추론할 수 없는 한계가 있다. 이후 기계학습을 유체 시뮬레이션에 적용한 연구가 활성화 되었으며[23], ConvNet을 활용하여 압력 계산을 가속화하는 연구도 진행되었다[24]. ConvNet을 기반으로 연기 시뮬레이션을 고해상도로 합성하는 연구도 있다[27]. 이 방법은 해상도 차이와 유체 영역간의 유사성을 활용하여 유체의 움직임을 합성하지만, 비압축성 움직임이 온전하게 표현되지 않는다. Um 등은 인공지능을 통해 스플래쉬를 표현할 수 있는기법을 제안했다[26]. 이 방법은 스플래쉬가 생성되는 위치를 분류하는 모델을 제시하였고, 확률분포 기반으로 스플래쉬 입자의 속도를 예측하였다.
영상 내 물체와 물리적 특성으로 물리엔진을 추론하는 방법도 제안되었다[27]. Fragkiadaki 등은 ConvNet을 이용하여 영상에서 움직이는 공의 중심좌표를 통해 공의 움직임을 예측하고 제어하는 방법을 제안했다[28]. 이와 유사하게 외력에 의한 물체의 움직임을 예측하는 모델도 제 안되었으며[29], 최근에는 ConvNet모델을 기반으로 유체시뮬레이션을 학습하는 연구도 진행되었다[30].
1.3. Graph Networks 기반 시뮬레이션
Scarselli 등은 인공신경망을 그래프 형태로 사용하는 GNN(Graph Neural Network)모델을 처음으로 제안했다[31]. 이 모델은 패턴과 관계로 구성된 데이터 도메인을 다룰수 있다는 가능성을 열어주었으며, 네트워크 입력을 그래프 형태로 적용하여 확장된 모델을 제안하였다[32]. 이 방법에서 입력은 그래프 형태로 사용하고 GRUs(Gated recurrent units)를 사용하여 순서에 기반 한 모델에 비해 유리한 편향을 갖는 네트워크 모델을 제안했다.
GNN의 한 종류로 GN(Graph Networks)는 여러 개체간의 상호작용을 효율적으로 학습하는데 효과적임을 입증했다[12]. GN은 그래프를 구성하는 노드, 에지 및 그래프내 속성들이 잠재적으로 다른 그래프로 매핑되고, 메시지 전달 형태로 학습하도록 훈련할 수 있다[33]. GN과 Interaction network는[34] 강체, 질량-스프링 시스템, 다체(N-body) 및 로봇 제어를 시뮬레이션하는 방법을 학습할 수 있다. 이 연구와 같은 맥락으로 학습 시뮬레이션대해 일반적인 접근방식을 제안한 연구도 있다[35,36] (Fig. 4 참조). 특히, Sanchez 등은 하나의 모델을 통해 PBD, SPH(Smoothed particle dynamics), MPM(Material point method) 등 보편적으로 유체 시뮬레이션에 사용되는 기법들을 학습하였다[37].
Fig. 4. Qualitative results on control with Li et al.[37]
III. The Proposed Scheme
본 논문에서 제안하는 알고리즘 개요는 다음과 같다 (Fig. 5 참조). 그림에서 학습단계(Training stage)는 머리카락에 대한 데이터 쌍을 구축하고, 지오메트리 이미지로 변환하여 ConvNet으로 학습하는 전처리 과정을 나타낸다. 또한, 실행단계(Runtime stage)에서는 네트워크로 학습된 결과를 이용하여 헤어 지오메트리를 합성함으로써 고해상도 헤어 데이터를 생성해내는 과정이다.
Fig. 5. Algorithm overview
1. Conversion Between Strand and Geometry Images
본 논문에서 제안하는 방법은 두피로부터 고정된 머리카락의 루트 입자(즉, 첫 번째 입자)를 기준으로 입자의 위치 정보가 저장된 가닥 지오메트리 이미지를 생성한다. 일반적으로 헤어나 털은 비선형적인 움직임을 갖기 때문에 이미지 슈퍼 해상도와 같은 방식으로는 온전한 헤어의 움직임을 표현할 수 없다. 이미지 공간에서 색상은 연속적인특징을 가지고 있기 때문에 머리카락을 구성하는 입자를 슈퍼 해상도 방식으로 구현을 하게 되면 부정확한 움직임을 갖게 된다.
Fig. 6은 이미지 슈퍼 해상도(SR, Super-Resolution 기법을 직관적으로 활용하여 헤어의 가닥을 업스케일한 결과이다[38]. 그림에서 보듯이 입력 헤어 시뮬레이션에 비해서 가닥의 개수는 많지만 노이즈가 심하게 포함된다. 헤어의 움직임은 비선형이기도 하지만, 이미지를 픽셀단위로 SR하는 과정에서 하나의 픽셀이 튀는 게 헤어 입자의 위치를 복원하는 과정에서 입자의 위치에 영향을 주기 때문에 이 같은 문제가 발생한다. 지오메트리 이미지에서의 픽셀은 3차원 공간에서는 위치로 대응되기 때문이다.
Fig. 6. Result of upscaling(x2) hair intuitively using image super-resolution.
본 논문에서는 이러한 문제를 완화시키기 위해 가닥의전체 입자가 아닌, 루트 입자만을 SR하는 과정에 포함시 킨다. 헤어의 특성상 머리카락의 움직임은 두피에 연결되어 있는 루트 입자에 영향을 많이 받기 때문에 본 논문에서는 아래와 같은 방식을 통해 가락 지오메트리 이미지를 계산한다 : 1) 헤어의 루트 입자 집합을 지오메트리 이미지로 변환하는 함수 \(\gamma_{h\rightarrow g}\)와 2) 그 반대인 \(\gamma_{g \rightarrow h}\)는 다음과 같이 계산한다 (수식 1과2 참조).
\(\gamma _ { h \rightarrow g } = \frac { p - b _ { \text { min } } } { \| b _ { \operatorname { max } } - b _ { \operatorname { min } } \| }\) (1)
\(\gamma _ { g \rightarrow h } = c _ { g } ^ { r g b } \| b _ { \text { max } } - b _ { \text { min } } \| + b _ { \text { min } } \) (2)
여기서 p, bmin , bmax는 가닥의 루트입자에 해당하는 위치, 시뮬레이션 공간 크기의 최소/최댓값의 위치를 나타내며, \(c_g^{rgb}\)는 [x, y, z]를 RGB로 변환한 색상인 [r, g, b]를 의미한다. 수식 1을 이용하여 가닥의 모든 루트 입자들을 RGB 공간으로 변환하고, 그 결과를 이미지로 시각화하면 색상 그라데이션(Color gradation)과 같이 부드럽게 변한 결과를 얻을 수 있다 (Fig. 7 참조). 이 결과는 시뮬 레이션의 공간 크기인 bmin,max내에서 계산되기 때문에 루트 입자의 위치는 0 ∼ 1사이로 제한되며, Fig. 7은 변환된 위치의 각 요소에 255를 곱하여 색상으로 표현한 결과이다. 색상은 정수이기 때문에 이 방법은 시각화를 위한 목적으로만 사용했으며, 실제로는 실수 형태를 사용한다.
가닥 지오메트리 이미지에서 헤어로 변환하는 과정은 개념적으로 \(\gamma_{h\rightarrow g}^{-1}\)이지만, 본 논문에서는 간단하게 \(\gamma_{g \rightarrow h}\) 를 이용하여 변환한다. 헤어와 지오메트리 이미지 사이를변환하는 이 과정은 서로 다른 두 개의 공간을 이용하기때문에 실수형태로 처리 했을 때 정밀도 오차 없이 안정적인 변환이 가능하다.
Fig. 7. Strand geometry image with \(\gamma_{h\rightarrow g}\)
2. Strand Super-Resolution Network
물리 기반 시뮬레이션을 이용하여 헤어의 루트 입자 데이터인 {F0 ,F1, ...}를 얻은 뒤, 이전 장에서 설명한 방법을 이용하여 저해사상도 헤어의 지오메트리 이미지인 \(\left\{\delta_{f w o}^0, \delta_{f w o}^1, \ldots\right\}\)와 고해상도 헤어의 지오메트리 이미지인 \(\left\{\delta_{f w}^0, \delta_{f w}^1, \ldots\right\}\)를 각각 생성한다. 여기서 \(\delta\)는 앞에서 설명한 가닥 지오메트리 이미지를 나타내며, 이것들은 학습 네트워크에 넣기 전에 패치 단위로 분할한다. 학습 데이터가 주어지면, 우리의 목표는 예측값 vs와 GT(Ground truth)인 \(\delta_{fw}\) 사이의 손실을 최소화하는 매핑 함수 f(c)를 찾는 것이다. 이 과정을 수행하기 위한 손실함수는 예측된 지오메트리 이미지와 GT 데이터 사이의 MSE(Mean squared error)이다. 우리의 목표는 vs = f(x)를 최소화하는 것이다. SRCNN(Super-resolution CNN)기법에서는 많은 가중치 레이어를 사용하면 큰 메모리를 요구하기 때문에 깊은 네트워크를 구성하는데 한계가 있다[38]. 이 같은 문제를 피하기 위해 본 논문에서는 잔차 학습(Residuallearning)을 통해 가닥 지오메트리 이미지 데이터를 학습 하고 테스트한다. 입출력 지오메트리 이미지의 잔차맵은 다음과 같이 계산한다 (수식 3 참조).
\(r=\delta_{fw} - \delta_{fwo}\) (3)
SRCNN기법에서의 손실함수는 \(\frac{1}{2}\left\|\delta_{f w}-f(x)\right\|^2\)이지만, 본 논문에서는 잔차맵을 예측하기 위해 최종적인 손실함수 L을 다음과 같이 계산한다 (수식 4 참조).
\(L(r, x)=\frac{1}{2}\|r-x\|^2\) (4)
여기서 T은 잔차이고, X는 f(x)의 값이다. 네트워크 학습과정에서 손실을 측정하는 손실 레이어는 잔차 추정, \(\delta_{fwo},\ \delta_{fw}\)인 3가지 요소를 이용하여 계산한다. 손실은 네트워크를 통해 복원된 맵과 \( \delta_{fw} \) 사이의 유클리디안 거리 (Euclidean distance)로 계산되며, 여기서 복원된 맵은네트워크의 입력과 출력 맵의 합이다.
이 네트워크는 ConvNet기반으로 모델링되었으며, 다음과 같은 구성으로 되어있다 (Fig. 8 참조) : 첫 번째 콘볼루션 연산이 끝난 특징맵이 이후 2번의 컨볼루션을 거쳐나온 결과 값에 다시 더해주는 잔차 보완 방법으로 설계하였다. 이 과정에서 컨볼루션 연산을 통해 손실된 오차를 잔차 보완을 통해 완화한다. 본 논문에서는 이 과정을 10번 반복했으며, 한 번의 주기당 2개의 컨볼루션을 거치므로 총 20번의 컨볼루션 연산이 진행된다. 처음에는 첫 컨볼루션이 끝난 값이 더해지지만, 이후에는 반복적으로 이전 결과 값이 더해진다. 그 다음 업스케링을 통해 크기를 2배로 키우고, 이후 4번의 컨볼루션 연산을 끝으로 종료된다. 이렇게 얻어진 가닥 지오메트리 이미지는 고해상도 헤어 시뮬레이션 표현하는데 활용된다.
Fig. 8. VGG 19 neural network structure (red arrow : residual process).
3. Nonlinear Reconstruction of Geometry Image to Hairs
이번 장에서는 앞에서 계산한 지오메트리 이미지를 이용하여 3차원 헤어로 복원하는 과정에 대해 설명한다. 앞에서 설명했듯이 머리카락은 비선형적인 움직임을 갖기 때문에 네트워크만을 통해 온전히 헤어를 표현하기에는 한계가 있다. 인공지능에서는 비선형적인 문제를 해결하기 위해 다양한 활성화 함수(Activation function)와 GNN을 선택적으로 활용하고 있지만, 앞에서 보여주었듯이 노이즈 한 움직임이 나타난다 (Fig. 6b 참조). 본 논문에서는 이 문제를 해결하기 위해 앞에서 계산한 가닥 지오메트리 이미지를 통해 헤어 SR을 구성한다. 이 과정에서 네트워크 로 인해 업스케일링된 지오메트리 이미지는 SR된 머리카 락을 생성할 때 활용하고, 비선형적인 움직임을 표현할 때 가중치로 사용한다.
본 논문에서는 SR로 인해 새롭게 생성될 머리카락의 루트 입자는 지오메트리 이미지와 4개의 입력 머리카락을 하나의 쌍으로 계산한다. 즉, 쿼드(Quad)형태와 같이 4개의머리카락 당 네트워크로 하나의 가상 모발을 생성해주는 것이다. 새로운 머리카락의 입자와 다음과 같이 계산한다(수식 5와 6 참조).
\(p = p ^ { * } + \frac { \sum _ { i } ^ { n } p _ { s } ^ { i } \gamma _ { s } ^ { i } } { n } , \text { where } p ^ { * } = \frac { \sum _ { i } ^ { n } p _ { s } ^ { i } } { n }\) (5)
\(\gamma ^ { j } = \frac { \| c ^ { * } - c _ { s } ^ { j } \| } { n }\) (6)
여기서 n은 인접 머리카락의 개수이며, 본 논문에서는 쿼드형태로 헤어를 모델링하기 때문에 4로 설정한다. 그리 고 p* 와 C*는 인접 입자의 평균 위치와 지오메트리 이미 지의 평균 색상이다. 위 수식에서 \(\gamma\)는 보간을 진행할 때 사용되는 가중치이며, 이 값은 네트워크로 계산된 지오메트리 이미지를 통해 얻어진다. 이 과정에서 인접 입자를 처리하는 기준이 중요하다. 헤어 입자는 연결정보가 없는 것이 아니라, 가닥인 라인 형태로 연결정보가 있기 때문에 다르게 처리를 해야 했고, 이를 위해 본 논문에서는 \(p_s^i\)라는 인접 머리카락에 해당하는 입자 정보를 이용한다. 여기서 ps는 인접 머리카락을 의미하며 본 논문에서는 4개의 인접 머리카락들이 여기에 속하게 되며, \(p_s^i\)는 해당 가닥인 s를 구성하는 i번째 입자를 나타낸다.
Fig. 9에서는 이 과정을 보여주고 있으며, 녹색과 노란색 원은 각각 인접 머리카락 입자와 네트워크로 생성된 머리카락 입자를 나타낸다. 위 그림에서 사각형은 해당 루트 입자로 계산된 가닥 지오메트리 이미지의 색상을 나타낸 것이다. 즉, SR로 인해 새롭게 생성된 머리카락의 움직임은 동일 선상에 있는 인접 머리카락 입자의 영향을 받도록 설계했다. 실제 머리카락은 마찰력이나 응집력과 같은 물리적 상호작용이 인접 머리카락에 영향을 받기 때문에 본 논문에서도 이를 고려하고자 인접 헤어의 지오메트리이미지로부터 헤어를 복원하였다.
Fig. 9. Restoring strand
4. Handling Collisions
본 논문에서는 머리카락에 대한 SR을 표현할 수 있는 새로운 네트워크 방식을 제안했으며, 이 과정에서 충돌 처리 과정은 포함되어 않았다. 고체와 충돌된 헤어 데이터를 이용하여 학습을 진행해도, 온전하게 충돌 처리하기에는 충분하지 않기 때문에 본 논문에서는 새롭게 생성된 머리 카락에 대해 후처리 과정에서 충돌처리를 적용시켰다. Fig. 10은 충돌 전(a)과 후(b)의 결과를 보여주는 그림이며, 네트워크를 통해 생성된 머리카락도 안정적으로 충돌 처리됨을 잘 보여주고 있다.
Fig. 10. Collision detection and response
IV. Results
본 연구의 결과들을 만들기 위해 실험한 환경은 Intel Core i7-7700K CPU, 32GB RAM, Geforce GTX 1080Ti GPU가 탑재된 컴퓨터를 이용하였다. 본 연구에서는ConvNet을 기반으로 가닥 지오메트리 이미지를 생성 및 SR할 수 있는 새로운 프레임워크를 제안했으며, 이를 통해 3차원 헤어로 복원할 수 있는 결과를 보여준다. 헤어의지오메트리 이미지를 통해 새로운 머리카락을 생성할 때는 인접 머리카락의 움직임과 지오메트리 이미지의 가중치를 통해 계산한다. 제안한 방법의 효율성과 정확성을 실험하기 위해 몇 가지 시나리오를 통해 검증을 한다.
Fig. 11은 입력 헤어 시뮬레이션 데이터로부터 SR을 표현한 결과이다. 이 그림에서 흰색 머리카락은 네트워크로 부터 생성된 결과이며, 사용자 인터랙션에 따라 자연스럽 게 찰랑거리는 헤어의 움직임을 잘 표현했다.
Fig. 11. (Scene-1)Result of SR hairs with our method (yellow input hair data, white : SR strands with our method).
Fig. 12에서도 사용자 상호작용에 따른 헤어의 장면을 표현한 결과이다. Fig. 11과는 달리 풍성한 머리카락에서도 안정적으로 헤어 SR결과를 보여주고 있다. Fig. 13에서는 충돌이 포함된 과정에서 SR 헤어의 결과를 보여주는 그림이다. 헤어와 구의 충돌처리가 제대로 되지 않거나 엉키는 장면 없이 안정적으로 머리카락의 움직임을 보여준다. 후처리과정에서 충돌처리는 네트워크로 합성된 헤어에 대해서만계산이 추가되기 때문에 연산량이 크게 증가되지 않는다.
Fig. 12. (Scene-2)Result of SR hairs with our method
Fig. 13. (Scene-3)Result of SR hairs with our method
V. Conclusions
본 논문에서는 헤어의 지오메트리 이미지를 이용하여 ConvNet 기반으로 헤어 SR을 표현할 수 있는 새로운 방법을 제안하였고, 다양한 헤어 시뮬레이션에서 안적으로 SR을 표현할 수 있는 결과를 보여주었다. 헤어는 머리카락의 개수가 굉장히 많고 이를 처리하기 위해서는 수십 만~수백만 개의 머리카락을 필요로 하는 경우도 존재하며, 이러한 장면에서 제안하는 방법은 더욱더 효율적일 것으로 판단한다. 효율적인 헤어 모델을 위한 메쉬 편집 기법뿐만 아니라, 최근에는 인공지능을 이용하여 단일 이미지로부터 헤어를 캡처할 수 있는 방법들이 제시함으로써 복잡한 헤어스타일을 쉽게 얻을 수 있었다. 하지만, 대부분 헤어모델링을 위한 접근법이며, 헤어의 움직임을 인공지능을 통해 학습한 연구는 본 논문에서 제시한 방법이 처음이다. 그럼에도 불구하고 몇 가지 단점이 존재한다. 현재 쿼드 형태로만 인접 헤어를 찾기 때문에, 임의의 3차원 형상을 고려하려면 삼각형 형태로 인접 헤어를 찾는 방식으로알고리즘을 확장해야 한다. 또한, 머리카락 하나당 많은 개수의 헤어 입자를 사용하기 때문에 풍성한 모발을 디자인을 하려면 여전히 계산 시간이 오래 걸릴 수 있다. 향후이 부분은 머리카락의 굽힘 등을 고려하여 적응형 자료구조로 확장하여 네트워크로 학습할 계획이다.
References
- Xiao, Xiao, Shang Zhao, Yan Meng, Lamia Soghier, Xiaoke Zhang, and James Hahn. "A physics-based virtual reality simulation framework for neonatal endotracheal intubation." In 2020 IEEE Conference on Virtual Reality and 3D User Interfaces (VR), pp. 557-565, 2020. DOI: 10.1109/VR46266.2020.00077
- Lee, Minjae, David Hyde, Michael Bao, and Ronald Fedkiw. "A skinned tetrahedral mesh for hair animation and hair-water interaction." IEEE transactions on visualization and computer graphics 25, no. 3 (2018): 1449-1459. DOI:10.1109/TVCG.2018.2808972.
- Nealen, Andrew, Matthias Muller, Richard Keiser, Eddy Boxerman, and Mark Carlson. "Physically based deformable models in computer graphics." In Computer graphics forum, vol. 25, no. 4, pp. 809-836. Oxford, Blackwell Publishing Ltd, 2006. DOI: 10.1111/j.1467-8659.2006.01000.x.
- Selle, Andrew, Michael Lentine, and Ronald Fedkiw. "A mass spring model for hair simulation." In ACM SIGGRAPH 2008 papers, pp. 1-11. 2008. DOI: 10.1145/1360612.1360663.
- Muller, Matthias, Bruno Heidelberger, Marcus Hennix, and John Ratcliff. "Position based dynamics." Journal of Visual Communication and Image Representation 18, no. 2 (2007): 109-118. DOI: 10.1007/978-3-319-08234-9_92-1.
- Muller, Matthias, Tae-Yong Kim, and Nuttapong Chentanez. "Fast Simulation of Inextensible Hair and Fur." VRIPHYS 12 (2012): 39-44. DOI: 10.2312/PE/vriphys/vriphys12/039-044.
- Bertails, Florence, Basile Audoly, Marie-Paule Cani, Bernard Querleux, Frederic Leroy, and Jean-Luc Leveque. "Super-helices for predicting the dynamics of natural hair." ACM Transactions on Graphics (TOG) 25, no. 3 (2006): 1180-1187. DOI: 10.1145/1141911.1142012.
- Hadap, Sunil, and Nadia Magnenat-Thalmann. "Modeling dynamic hair as a continuum." In Computer Graphics Forum, vol. 20, no. 3, pp. 329-338. Oxford, UK and Boston, USA: Blackwell Publishers Ltd, 2001. DOI: 10.1111/1467-8659.00525.
- Chai, Menglei, Changxi Zheng, and Kun Zhou. "Adaptive skinning for interactive hair-solid simulation." IEEE transactions on visualization and computer graphics 23, no. 7 (2016): 1725-1738. DOI: 10.1109/TVCG.2016.2551242.
- Chai, Menglei, Lvdi Wang, Yanlin Weng, Xiaogang Jin, and Kun Zhou. "Dynamic hair manipulation in images and videos." ACM Transactions on Graphics (TOG) 32, no. 4 (2013): 1-8. DOI: 10.1145/2461912.2461990.
- Ward, Kelly, Florence Bertails, Tae-Yong Kim, Stephen R. Marschner, Marie-Paule Cani, and Ming C. Lin. "A survey on hair modeling: Styling, simulation, and rendering." IEEE transactions on visualization and computer graphics 13, no. 2 (2007): 213-234. DOI: 10.1109/TVCG.2007.30.
- Battaglia, Peter W., Jessica B. Hamrick, Victor Bapst, Alvaro Sanchez-Gonzalez, Vinicius Zambaldi, Mateusz Malinowski, Andrea Tacchetti et al. "Relational inductive biases, deep learning, and graph networks." arXiv preprint arXiv:1806.01261(2018).
- Bergou, Miklos, Max Wardetzky, Stephen Robinson, Basile Audoly, and Eitan Grinspun. "Discrete elastic rods." In ACM SIGGRAPH 2008 papers, pp. 1-12. 2008. DOI: 10.1145/1399504.1360662.
- Bertails, Florence. "Linear time super-helices." In Computer graphics forum, vol. 28, no. 2, pp. 417-426. Oxford, UK: Blackwell Publishing Ltd, 2009. DOI : 10.1111/j.1467-8659.2009.01381.x.
- Kubiak, Blazej, Nico Pietroni, Fabio Ganovelli, and Marco Fratarcangeli. "A robust method for real-time thread simulation." In Proceedings of the 2007 ACM symposium on Virtual reality software and technology, pp. 85-88. 2007. DOI: 10.1145/1315184.1315198.
- Bergou, Miklos, Basile Audoly, Etienne Vouga, Max Wardetzky, and Eitan Grinspun. "Discrete viscous threads." ACM Transactions on graphics (TOG) 29, no. 4 (2010): 1-10. DOI: 10.1145/1833349.1778853.
- Chang, Johnny T., Jingyi Jin, and Yizhou Yu. "A practical model for hair mutual interactions." In Proceedings of the 2002 ACM SIGGRAPH/Eurographics symposium on Computer animation, pp. 73-80. 2002. DOI: 10.1145/545261.545273
- Daldegan, Agnes, Nadia Magnenat Thalmann, Tsuneya Kurihara, and Daniel Thalmann. "An integrated system for modeling, animating and rendering hair." In Computer Graphics Forum, vol. 12, no. 3, pp. 211-221. Edinburgh, UK: Blackwell Science Ltd, 1993. DOI: 10.1111/1467-8659.1230211
- Kurihara, Tsuneya, Ken-ichi Anjyo, and Daniel Thalmann. "Hair animation with collision detection." In Models and Techniques in Computer Animation, pp. 128-138. Springer, Tokyo, 1993.
- Iben, Hayley, Mark Meyer, Lena Petrovic, Olivier Soares, John Anderson, and Andrew Witkin. "Artistic simulation of curly hair." In Proceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation, pp. 63-71. 2013. DOI: 10.1145/2485895.2485913
- Yuksel, Cem, Scott Schaefer, and John Keyser. "Hair meshes." ACM Transactions on Graphics (TOG) 28, no. 5 (2009): 1-7. DOI: 10.1145/1618452.1618512
- Ladicky, L'ubor, SoHyeon Jeong, Barbara Solenthaler, Marc Pollefeys, and Markus Gross. "Data-driven fluid simulations using regression forests." ACM Transactions on Graphics (TOG) 34, no. 6 (2015): 1-9. DOI: 10.1145/2816795.2818129
- Yang, Cheng, Xubo Yang, and Xiangyun Xiao. "Data-driven projection method in fluid simulation." Computer Animation and Virtual Worlds 27, no. 3-4 (2016): 415-424. DOI: 10.1002/cav.1695
- Tompson, Jonathan, Kristofer Schlachter, Pablo Sprechmann, and Ken Perlin. "Accelerating eulerian fluid simulation with convolutional networks." In International Conference on Machine Learning, pp. 3424-3433. PMLR, 2017.
- Chu, Mengyu, and Nils Thuerey. "Data-driven synthesis of smoke flows with CNN-based feature descriptors." ACM Transactions on Graphics (TOG) 36, no. 4 (2017): 1-14. DOI: 10.1145/3072959.3073643
- Um, Kiwon, Xiangyu Hu, and Nils Thuerey. "Liquid splash modeling with neural networks." In Computer Graphics Forum, vol. 37, no. 8, pp. 171-182. 2018. DOI: 10.1111/cgf.13522
- Wu, Jiajun, Ilker Yildirim, Joseph J. Lim, Bill Freeman, and Josh Tenenbaum. "Galileo: Perceiving physical object properties by integrating a physics engine with deep learning." Advances in neural information processing systems 28 (2015).
- Fragkiadaki, Katerina, Pulkit Agrawal, Sergey Levine, and Jitendra Malik. "Learning visual predictive models of physics for playing billiards." arXiv preprint arXiv:1511.07404 (2015).
- Mottaghi, Roozbeh, Mohammad Rastegari, Abhinav Gupta, and Ali Farhadi. ""What happens if..." Learning to Predict the Effect of Forces in Images." In European conference on computer vision, pp. 269-285. Springer, Cham, 2016. DOI: 10.1007/978-3-319-46493-0_17
- Ummenhofer, Benjamin, Lukas Prantl, Nils Thuerey, and Vladlen Koltun. "Lagrangian fluid simulation with continuous convolutions." In International Conference on Learning Representations. 2019.
- Scarselli, Franco, Marco Gori, Ah Chung Tsoi, Markus Hagenbuchner, and Gabriele Monfardini. "The graph neural network model." IEEE transactions on neural networks 20, no. 1 (2008): 61-80. DOI: 10.1109/TNN.2008.2005605
- Li, Yujia, Daniel Tarlow, Marc Brockschmidt, and Richard Zemel. "Gated graph sequence neural networks." arXiv preprint arXiv:1511.05493 (2015).
- Gilmer, Justin, Samuel S. Schoenholz, Patrick F. Riley, Oriol Vinyals, and George E. Dahl. "Neural message passing for quantum chemistry." In International conference on machine learning, pp. 1263-1272. PMLR, 2017.
- Battaglia, Peter, Razvan Pascanu, Matthew Lai, and Danilo Jimenez Rezende. "Interaction networks for learning about objects, relations and physics." Advances in neural information processing systems 29 (2016).
- Li, Yunzhu, Jiajun Wu, Russ Tedrake, Joshua B. Tenenbaum, and Antonio Torralba. "Learning particle dynamics for manipulating rigid bodies, deformable objects, and fluids." arXiv preprint arXiv:1810.01566 (2018).
- Sanchez-Gonzalez, Alvaro, Nicolas Heess, Jost Tobias Springenberg, Josh Merel, Martin Riedmiller, Raia Hadsell, and Peter Battaglia. "Graph networks as learnable physics engines for inference and control." In International Conference on Machine Learning, pp. 4470-4479. PMLR, 2018.
- Ba, Jimmy Lei, Jamie Ryan Kiros, and Geoffrey E. Hinton. "Layer normalization." arXiv preprint arXiv:1607.06450 (2016).
- Dong, Chao, Chen Change Loy, Kaiming He, and Xiaoou Tang. "Image super-resolution using deep convolutional networks." IEEE transactions on pattern analysis and machine intelligence 38, no. 2 (2015): 295-307. DOI: 10.1109/TPAMI.2015.2439281