원을 그냥 여러 개 겹치면 경계가 또렷한 원끼리 겹친 모양이 됩니다. 메타볼은 다르게 접근합니다 — 화면의 모든 지점에 대해 "각 방울로부터 얼마나 가까운가"를 합산한 값(장, field)을 계산하고, 그 값이 특정 문턱값을 넘는 영역만 칠합니다. 방울 두 개가 가까워지면 두 방울의 장이 겹쳐 문턱값을 넘는 영역이 연결되면서, 마치 물방울 두 개가 맞닿아 하나로 이어지듯 부드러운 다리가 생깁니다. 이 개념은 1980년대 초 일본 애니메이션 스튜디오에서 캐릭터의 부드러운 형태를 렌더링하려고 짐 블린 등이 연구하며 정립됐습니다.
이 데모는 화면을 성긴 격자로 나눠 각 격자점에서 장의 값을 계산한 뒤, 문턱값 경계 근처를 부드럽게 밝기로 표현합니다(등고선을 정확히 그리는 마칭 스퀘어 대신 간단한 그라데이션 근사를 씁니다). 실무에서는 마칭 스퀘어(marching squares) 알고리즘으로 경계선을 정확한 벡터 윤곽선으로 뽑아냅니다.
로고의 액체 느낌 애니메이션, 로딩 인디케이터, 유기적인 UI 배경 장식에 씁니다.
언제 쓰나
로고·로딩 인디케이터의 액체 느낌 모션, 유기적인 배경 블롭 애니메이션에. 정확한 윤곽선이 필요하면 마칭 스퀘어로 벡터화하세요.