메타볼(metaball)은 수은 액체와 같이 점을 중심으로 점성을 지니면서 형태를 이루는 차원의 등가면이다. 두 메타볼의 중심이 서로 가까워지면 상호 작용하여 물방울처럼 병합된다. 두 메타볼의 중심이 서로 멀어지면 원래의 모양으로 복원된다. 컴퓨터 그래픽에서 메타볼의 볼록한 모양은 생체와 같은 유기적인 형상을 모델링하고 기본 메시를 만드는 데 널리 사용될 수 있다.[1] 메타볼을 렌더링하는 기법은 1980년대 초 짐 블린(Jim Blinn)이 칼 세이건의 TV 시리즈 코스모스에 사용될 원자 상호작용을 모델링하기 위해 발명했다.[2]

두 개의 메타볼이 병합되는 과정.
두 개의 메타볼이 병합되는 과정.

정의

편집

하나의 메타볼은  차원의 함수로 정의된다. 이를테면 3차원의 경우  로 정의될 수 있다. 메타볼의 표면을 정의하기 위한 임계값  를 지정하면

 

 개의 메타볼로 정의된 표면에 대하여 점  가 해당 표면의 내부에 존재하는지의 여부를 나타내는 수식이 된다. 하나의 메타볼을 표현하는 함수  역제곱 법칙을 만족한다. 즉, 메타볼 중심에서 거리가 증가함에 따라 함수의 값은 종 모양의 곡선으로 감소한다. 3차원의 경우 이러한 상황은,

 

와 같이 나타낼 수 있으며, 여기서 점   번째 메타볼의 중심,  는 반지름이다. 그러나 이러한 방식은 메타볼이 분열되는 과정에서 계산에 시스템 자원이 많이 소모된다. 따라서 이를 근사하기 위한 다항식 함수가 널리 사용된다.

구현

편집

메타볼을 화면에 렌더링하는 방법에는 여러 가지가 있는데, 3차원 메타볼을 렌더링하는 가장 일반적인 방법은 무차별 대입 광선 투사와 행진 입방체 알고리즘이다.

각주

편집

추가 자료

편집