메타볼 모델링

1. 메타볼의 선구자들
2. 메타볼의 기본 원리
3. 메타볼의 작업방식
4. 메타볼의 여러 문제
5. 결론


메타볼 기법을 어떤 모델링에 사용할 것인가? 한마디로 표현해서 "organic"한 모델을 만들기 원한다면 가장 적당한 경우일 것이다. 기존의 모델링 기법들은 구, 원기둥, 육면체 등과 같은 기본 요소(primitive)들을 조합하거나 지정한 경로로 돌출(extrude)시키거나 회전(revolve)시켜서 면(polygon)을 생성하게 된다. 그러나, 이러한 작업을 통해 얻을 수 있는 결과는 인간이 만들어낸 인공물을 흉내내는데 그치고 만다. 그보다 그 수가 더 많고 복잡한 자연물을 복사해 내는데는 새로운 모델링 기법들이 필요해지게 되었다. 그 중에 하나가 여기서 소개하는 메타볼 기법이다.

1. 메타볼의 선구자들

메타볼 기법은 우리들에게 흔히 "bump mapping"이라는 기법으로 잘 알려진 "normal perturbation texture mapping"을 개발한 짐 블린(Jim F. Blinn)이 미 항공우주국 제트추진연구소(JPL:Jet Propulsion Laboratory)에 재직중인던 1982년에 "blobby model"이라는 개념으로 최초로 소개하였다. 그는 분자 모델링을 위해 이 기법을 사용하였는데 분자 내부의 각 원자들의 연결은 일정한 형태가 아니며 주변 원자의 존재 여부에 따라 변형된다는 것을 표현하였다. 이렇게 해서 생성된 "isosurface"(일정한 전자밀도를 갖는 면)는 보다 복잡한 형상을 나타내게 되었다.
그러나, "blobby model"에서는 전자밀도를 계산하기 위해 거리에 대한 지수함수를 사용하여 렌더링 시간이 많이 걸렸다. 이를 개선하기 위해 지수함수를 몇 개의 2차함수로 대체하여 계산을 간략화한 방식을 오무라(K. Omura)가 "metaball"이라 이름 붙였고 그들의 LINKS 프로젝트를 위해 사용하였다.
1986년에는 와이빌(B. Wyvill)에 의해 "soft objects"라는 것이 발표되었다. 그는 수식을 단순화함은 물론이고 계산범위를 R이라는 유한한 거리로 제한함으로서 계산시간을 단축시켰다.

2. 메타볼의 기본 원리

메타볼을 이용하여 모델을 완성하기 위해서는 앞서 분자 모델링에서 원자에 해당하는 타원체가 존재해야 한다. 각각의 타원체에 힘의 세기와 한계 영역을 설정해 주기만 하면 서로간의 거리가 힘의 방향에 따라 늘어 붙거나 눌려서 하나의 부드러운 곡면체를 생성하게 된다. 이때 프로그램 내부적으로는 공간상의 각점에 대해 모든 타원체를 상대로 전자밀도를 계산하여 그 합계가 어떤 경계(threshold)내에 들어오면 곡면체 내부의 점으로 인정하는 방식으로 각 타원체가 영향을 미칠 수 있는 공간내의 모든 점에 대해 계산을 수행하게 된다. 그 결과로 찾아낸 경계면을 연결시킴으로서 "isosurface"가 완성된다. 최근에 사용되는 밀도함수는 와이빌의 계산식을 더욱 간략화한 형태를 사용하고 있다. 그림 1의 식에서 t는 최종 밀도값이며 r은 타원체 중심과의 거리이고 R은 타원체의 반경이다.


[그림 1] 밀도함수 식과 그래프

이와 같이 메타볼로 이루어진 곡면은 대수적 특성을 나타내므로 Raytracing을 지원하는 시스템에서는 구현하기가 비교적 간편하다. 그래서, POV-Ray나 Polyray와 같은 PC용 Raytracer에서도 일찍부터 지원되는 기능이었다. 특히, Polyray에서는 구 이외에 원기둥과 평면을 구성요소로 사용할 수도 있다.


[그림 2] POV-Ray를 이용한 제작예

그러나, 3DS MAX와 같이 모든 물체를 다각형의 조합으로 표현하는 시스템에서는 isosurface를 구성하는 각각의 다각형을 찾아내어 물체를 완성해야만 한다. 이를 위해 와이빌은 "marching cubes" 알고리즘을 제안했다. 이것은 타원체들이 영향을 미치는 공간을 작은 육면체(voxel)로 분할한 후 각 육면체의 정점에서 밀도함수 계산을 수행하여 육면체 내부에 존재하는 isosurface 상의 면을 찾아내는 방식인데 육면체의 정점이 8개이고 그 상태는 isosurface의 안과 밖 두가지의 경우가 가능하므로 발생할 수 있는 경우의 수는 총 256(2의 8승)가지이다. 그 중 기하학적으로 같은 것을 모두 제하고 나면 14가지의 가능한 경우만 남게 된다. 그림 3에서 육면체의 정점에 그려진 구가 isosurface의 내부를 뜻하며 각 다각형의 정확한 위치는 주변 정점의 밀도값을 보간하여 구한다.


[그림 3] isosurface와 cube와의 14가지 교차 경우
(원 기사의 그림에 누락된 것이 있어 변경되었습니다.)


[그림 4] isosurface 생성예

3. 메타볼의 작업방식

메타볼 모델링은 얼핏 보기에는 단순해 보인다. 단순히 모델을 형성하는데 필요한 구성 요소(component)만을 배열한 후 서로 뭉치거나 밀치는 결과를 지켜보기만 하면 된다. 구성요소는 각 메타볼 시스템에 따라 다른 형상을 가질 수 있겠지만 대체적으로 구 또는 타원체가 사용되며 원기둥이나 육면체를 사용할 수 있는 시스템도 있다. 이때, 이러한 구성요소들을 통해 결과물을 예상하기란 쉽지 않은 일이다. 아래예와 같이 script를 통해 메타볼 모델링을 수행하는 시스템에서는 더더욱 어려운 일이 아닐 수 없다. 따라서, 예상되는 결과물을 즉각적으로 보여줄 수 있는 시스템이라면 작업 효율은 훨씬 증대될 수 있을 것이다.

blob {
    threshold 0.6
    component 1.0, 1.0, <0.75, 0, 0>
    component 1.0, 1.0, <-0.375, 0.64952, 0>
    component 1.0, 1.0, <-0.375, -0.64952, 0>
    texture {
        color White
    }
}
[리스트 1] POV-Ray 2.0의 BLOB 모델링 데이터 리스트

그러나, 앞서 얘기했던 바대로 결과물을 생성하기 위해서는 복잡한 밀도함수 계산과 면 생성과정을 거쳐야함으로 결과물을 바로 바로 보기란 쉽지 않고 모델을 형성하는 요소들의 강도(strength)와 요소간의 거리에 따라 그 형상은 많은 차이를 보일 수 있으므로 정확한 모델링을 위해서는 많은 인내가 필요하게 된다.


[그림 5] 구성요소와 결과물의 비교

다음에 필자가 개발중인 3D Studio MAX용 Metaball 시스템을 이용하여 만든 간단한 벌레(?)를 만드는 과정을 보였다. 우선, 다리와 몸통, 머리로 나누어 테스트를 해가면서 그림 6과 같이 구를 배치한다. 이때는 빠른 속도로 결과를 볼 수 있도록 결과물의 정밀도를 낮추어서 완성한다. 그림 7에서 그 결과물을 볼 수 있다. 다음으로는 그림 8과 같이 "UVW Map"을 이용하여 텍스쳐 매핑 좌표계를 지정한다. 사실, 메타볼 모델은 하나의 덩어리를 이루게 되므로 그 표면상에 유일한 2차원 텍스쳐 매핑 좌표계를 생성해 줄 방법이 없다. 그래서, 주로 3차원 솔리드 텍스쳐를 사용하게 된다. 그러나, MAX의 "UVW Map"은 모델의 형상과 관계없이 텍스쳐 매핑 평면에 투영된 텍스쳐 매핑 좌표계를 생성해 주므로 때에 따라서는 애니메이션시에도 충분히 사용할 수 있다. 그림 9에서는 텍스쳐 매핑을 적용하여 렌더링한 결과물을 볼 수 있다.


[그림 6] BlobWorm을 위한 구 배치


[그림 7] BlobWorm의 간략화한 모델


[그림 8] BlobWorm을 위한 텍스쳐 매핑 지정


[그림 9] BlobWorm의 렌더링 결과

4. 메타볼의 여러 문제

지금까지의 내용으로 볼 때 메타볼은 최고의 모델링 기법임이 분명하다는 사실에 반대할 사람은 없으리라 믿는다. 그러나, 앞서 조금씩 부각되었던 문제점들이 쉽게 해결되지 않는 까닭에 보편적인 모델링 기법이 될 수 없었다고 생각된다. 여기서 다시 종합해 보면 다음과 같다.
무엇보다 가장 큰 문제는 실시간 처리가 안된다는 것이다. 이것은 모델링의 작업 효율과도 밀접한 관계가 있는 것이다. 실제 모델링 시간보다 모델링의 결과를 확인하는데 더 많은 시간을 보내야한다는 사실은 작업자를 피곤하게 만든다. 다행히 점점 더 빨라지는 컴퓨터 성능에 의해 언제가는 이 문제가 간단히 해결될 수 있으리라 믿는다.
다음으로는 원하는 않는 결과가 종종 발생한다는 것이다. 메타볼의 원리상 서로 근접한 요소간에 서로 붙으려는 성질을 막을 수는 없다. 따라서, 붙지 말아야 할 곳이 서로 붙어서 어색한 모델을 생성할 수 있다는 점이다. 그렇다고, 이를 해결하기 위해 서로 붙을 수 있는 영역을 제한하고 보면 또 부드러운 곡면을 얻는데 문제가 생길 수도 있어서 메타볼 모델링시 까다로운 문제점 중 하나이다.
끝으로 텍스쳐 매핑(texture mapping)의 어려움을 들 수 있겠다. 앞서와 같이 이를 간단히 해결하는 방법은 메타볼로 모델링한 물체를 폴리곤 모델로 변경한 후 텍스쳐를 입히면 된다. 다만, 메타볼의 자유롭게 변형되는 특성을 포기해도 되는 경우라면 가능하겠다.

5. 결론

많은 모델링 기법들 중 어떤 것을 선택할 것인지는 전적으로 사용자의 권리이다. 다만, 거기에 약간의 제약을 둔다면 각 모델링 기법들의 장단점을 이해한 후 작업하려는 용도에 적합한 경우에만 그 기법을 사용하라는 것이다. 그런 점에서 볼 때 메타볼은 서두에서 밝힌 바와 같이 자연물이나 메타볼의 구성요소로 가장 보편적인 구를 통해 가장 쉽게 표현 할 수 있는 물방울 같은 것들을 뭉쳐서 유체의 덩어리와 같은 움직임과 형상을 모델링할 때 가장 적합하다. 그리고, 앞서의 문제점들이 기술의 발전으로 더욱 더 개선되면 더 많은 새로운 적용 분야가 생길 것이며 보다 폭 넓게 사용될 수 있는 모델링 기법이 되리라 믿어 의심치 않는다.



이글은 CAD&그래픽스 1997년 2월호에 기고했던 기사를 옮긴 것입니다.

Last updated 2002-09-03 by choi@moon-sun.com
This page has been accessed : Counter times.
Home