Discover coex, A DESTINATION FOR BUSINESS, CULTURE, AND ENTERTAINMENT
SIGGRAPH ASIA 2010   Community Tech in Computer Graphics
 
SIGGRAPH2007을 빛낸 한국인 #3
KoreaGraph 2010-10-31

■http://blog.naver.com/handicapman

Nearly Rigid Deformation by linear Optimization
형상 변형은 모델링, 애니메이션 등 컴퓨터 그래픽스의 다양한 분야의 기반이 되는 연구 분야 중의 하나이다. 어떠한 형상의 비슷하지만 조금은 다른 형상을 생성하기 위해서, 처음부터 모델링 하는 것보다, 최초 형상을 조금 바꿔서 만드는 것이 훨씬 더 효율적이라는 것은 분명하다. 형상을 사용자에 의도에 맞는 다른 형상으로 변형되는 과정에서 다양한 문제가 발생할 수 있는데, 우리의 연구는 그 중 변형된 형상의 품질을 향상 시키고, 또 그 과정에서 생기는 연산 시간을 최소화함으로써 사용자의 인터랙티비티를 극대화하는 데 초점을 두었다.
As-rigid-as-possible 변형은 형상 변형의 품질을 향상시키는 대표적인 방법 중 하나이다. 크기
변형, 찌그러짐과 달리 이동과 회전 변형을 수행하면, 변형된 형상은 최초 형상과의 왜곡이 전혀 발생하지 않는다. 이 회전과 이동 변형만으로 조합된 변형을 바로 강체 변형(rigid ransformation)이라고 하는데, as-rigid-as-possible 변형은 전체 형상을 이루는 점, 또는 삼각형 등이 지역적으로 강체 변형을 수행함으로써, 전체 형상은 거의 강체의 변형을 수행하도록 하는 방법이다. 2005년과 2006년에 차례로 2차원 메시와 이미지를 변형하는 방법이 소개되었으나, 두 연구 모두 2차원 형상에 제한적인 방법이었다. 따라서 우리는 기존의 방법을 3차원으로 확장하는 연구를 시작하게 되었다. 이 확장된 방법을 이용하여, 사용자는 2차원 방법과 동일하게, 조종점을 지정하
고 그것을 이동하는 간단한 방법으로 3차원 형상을 변형할 수 있게된다. 3차원 형상의 각 점의 강체 변형은 사용자가 조종점을 이동시키는 변형을 샘플링하고 Moving Least Squares를 이용하여 근사함으로써 계산할 수 있다. 샘플링하는 각각의 조종점의 값은 조종점과 각 점의 거리에 따라서 서로 다른 weight를 가지기 때문에, 형상의 각 점은 그 주위의 조종점의 위치 분포에 따라 각각 독립적인 강체 변형을 가지게 된다. 연구의 가장 큰 이슈는 형상의 각 점 v의 강체 변형 중에서 회전 변형을 근사하는 문제 이다. 2차원의 경우, 회전 변형은 간단한 벡터 연산으로 통하여 빠르게 계산할 수 있지만, 3차원의 경우 최적의 회전을 근사하기 위해서는 eigen-vector 문제를 풀어야 하는데, 이 것은 복잡한 행렬 연산을 요구하며, 계산 비용을 훨씬 더 증가시킨다. 만약 eigen-vector 문제를 풀이하면 좀 더 정확한 계산을 할 수 있지만, 많은 시간을 요구하기 때문에 일정 시간 이하의 빠른 연산을 위해서는 변형 대상의 포인트 수를 제한 할 수밖에 없고결국 변형 대상의 품질을 떨어뜨리는 결과를 가져온다.
우리의 방법은 3차원에서의 비선형적인 회전 근사문제를 선형적인 문제로 최적화함으로써, 3차원에서의 회전 근사 문제를 여전히 간단한 벡터 연산을 통하여 근사하여 연산 효율을 극대화하고자 했다. 다시 말하자면, 2차 방정식을 푸는 것보다 1차 방정식을 풀이하는 것이 훨씬 더 쉽고 빠른 것처럼, 비선형적 문제를 선형적(1차)으로 풀이하는 것은 문제를 매우 단순화하며 빠르게 풀이할 수 있다. 따라서 우리의 방법으로 몇 십만 개의 포인트에 대해서도 실시간으로 변형 가능하며, 최대 몇 백만 개에 점에 대해서도 인터렉티브하게 그 결과를 얻을 수 있습니다.
많은 형상변형 방법이 메시 데이터에 종속적임에 비하여, 우리의 방법은 메시뿐만이 아니라, 포인트 기반 표면, 폴리곤 숲, 볼륨 메시, Curve 등 컨트롤 포인트 등의 형상의 좌표를 가지고 있는 다양한 데이터 타입에 적용이 가능하다. 그러면, 갓 스캔한 3차원 포인트 모델을 변형하기 위해서 포인트 모델을 메시로 바꾸어 변형을 수행할 필요 없이, 포인트 모델 그 자체로 변형을 수행할 수 있게 된다. 그러나 한편으로 변형 계산시 형상의 위상 정보를 고려하지 않기 때문에, 메시 모델의 변형에 있어서는 문제점이 될 수 있습니다. 형상을 그것을 포함하는 공간을 덩어리 채로 변형하
기 때문에, 예를 들어, 손가락이나 입과 같이 분리되어야 하는 부분이 의도대로 벌어지지 않고 왜곡이 발생할 수 있다. 이 문제 역시 쉽게 해결할 수 있는데, 앞에서 조종점을 샘플링 할 때 두는 weight를 두 점의 공간적인 거리가 아닌, 메시 위의 최단 거리로 대체하면 형상의 위상 정보를 포함할 수 있다. 그림에서 용의 변형은 바로 이 위상 거리 기반 weight 를 사용하였고, 따라서 입이 크게 벌어지는 변형 결과를 낼 수 있었다. 사용자는 형상의 변형을 정의하기 위해서, 조종점뿐만이 아니라 두 개의 점으로 정의되는 선분을 이용할 수 있는데, 조종점은 좌표를 이동함으로써 변형을 수행하는 매우 간단하고 직관적인 방법이지만, 한편으로는 너무 단순한 변형만을 허용하기 때문에, 형상을 비틀거나 구부리거나 하는 변형을 정의하기에는 어려움이 있다. 선분의 경우, <그림 4>처럼, 두 개의 선분을 일렬로 정의하고, 그 중 하나의 선분의 끝점을 이동함으로써 형상을 구부리는 것을 쉽게 정의할 수 있다. 또한, 선분 핸들은 사람과 같은 관절체 모델의 변형에 매우 유용하게 사용할 수 있다. 관절체 모델에 뼈대를 선분으로 설치하고, 그 뼈대를 조종함으로써 관절체의 움직임을 표현할 수 있다. <그림 3>이 변형 방법은 많은 분야에 활용될 수 있을 거라고 생각한다. 우선 얼굴 모델의 특징 부분에 조종점을 찍고 그것을 움직임으로써 <그림 2>처럼 얼굴을 쉽게 변형 할 수 있고 또한, 사용자가 변형한 형상을 키 프레임으로 하고 그 중간 형상을 자동으로 생성하는 애니메이션 시스템, 스캔 데이터의 포인트 보정 등에서도 활용 할 수 있다. 우리의 방법은 충분히 큰 데이터에 대해서 변형이 가능하지만, 목표는 수 천 만개 이상의 데이터에 대해서도 실시간 변형이 가능하도록 하는 것이다. 이를 위해서 현재 다양한 해결 방법을 생각하고 있는데, GPU를 이용한 구현이 그 중 하나의 방법이 될 거라고 생각한다.

 
Days after/since SIGGRAPH Asia 2010 : 1401
In the News Mailing List
 Follow us