FLIP-PIC 유체

편집 역사 토론
게임 개발 전산유체역학 마지막 수정: 2026-07-06 04:27:51

FLIP-PIC 유체
FLIP-PIC Fluid Simulation
분야전산유체역학 × 컴퓨터 그래픽스
계열하이브리드 입자-격자법
PICParticle-in-Cell (1955, Harlow)
FLIPFluid-Implicit-Particle (1986, Brackbill & Ruppel)
후속APIC, PolyPIC

1. 개요[편집]

FLIP-PIC 유체는 유체를 추적하는 입자(particle)와 물리량을 계산하는 격자(grid)를 함께 쓰는 하이브리드 방식으로, 순수 입자법과 순수 격자법의 장점을 절충한 유체 시뮬레이션 기법이다. 이름 그대로 PIC(Particle-in-Cell)와 FLIP(Fluid-Implicit-Particle)라는 두 방식을 섞어 쓰며, 현대 영화·게임의 물 시뮬레이션에서 사실상 표준의 지위를 차지하고 있다.1

핵심 발상은 이렇다. 이류(advection, 유체가 자기 자신을 타고 이동하는 항)는 입자로 추적하면 수치 소산 없이 깔끔하고, 압력 투영(pressure projection)처럼 비압축 조건을 강제하는 계산은 나비에-스토크스 방정식을 격자에서 푸는 것이 편하다. 그러니 각 계산을 자기가 잘하는 무대에서 시키자는 것이다.

2. PIC와 FLIP의 뿌리[편집]

PIC는 1955년 로스앨러모스의 프랜시스 할로우(Francis Harlow)가 고안한 유서 깊은 방법이다. 입자가 질량과 위치를 나르고, 매 스텝 물리량을 격자로 옮겨 계산한 뒤 다시 입자로 되돌려주는 왕복 구조를 갖는다. 문제는 이 왕복 과정에서 격자 보간이 반복되면서 속도장이 심하게 뭉개진다는 것 — 물이 마치 꿀처럼 끈적하게 움직이는 과도한 수치 점성이 생긴다.

1986년 브래킬(Brackbill)과 루펠(Ruppel)이 내놓은 FLIP은 이 문제를 정면으로 겨냥했다. 격자로부터 속도의 절댓값을 받아오는 대신 속도의 *변화량(증분)*만 받아와 입자에 더해주는 방식이다. 이렇게 하면 반복 보간에 의한 소산이 극적으로 줄어든다.2

3. 입자와 격자 사이의 전송[편집]

FLIP-PIC의 심장은 매 타임스텝 벌어지는 입자↔격자 왕복이다. 흔히 P2G(Particle-to-Grid)와 G2P(Grid-to-Particle)라 부른다.

  • P2G: 각 입자의 속도·질량을 주변 격자점으로 뿌린다. 보통 삼선형 보간 커널로 가중치를 배분한다.
  • 격자 연산: 격자에서 중력 등 외력을 적분하고, 압력 푸아송 방정식을 풀어 속도장을 발산이 0인 상태로 투영한다. 이것이 비압축성을 강제하는 단계다.
  • G2P: 갱신된 격자 속도를 다시 입자로 되돌린다. 이때 PIC는 절댓값을, FLIP은 증분값을 가져간다.

P2G에서 격자로 전송되는 속도는 커널 가중치 wipw_{ip}로 다음과 같이 모인다.

vi=pwipmpvppwipmp\mathbf{v}_i = \frac{\sum_p w_{ip}\, m_p\, \mathbf{v}_p}{\sum_p w_{ip}\, m_p}

4. 수치 소산과 노이즈의 줄다리기[편집]

FLIP과 PIC는 정반대의 병을 앓는다. PIC는 앞서 말했듯 과도한 소산으로 물이 죽처럼 무거워지고, 반대로 순수 FLIP은 소산이 거의 없다 보니 격자와 입자 자유도의 불일치에서 오는 고주파 노이즈가 쌓여 물 표면이 부글부글 떨리는 불안정을 보인다.3

그래서 실무에서는 둘을 선형 보간해 섞는다. 혼합 계수 α\alpha에 대해

vpnew=αvpFLIP+(1α)vpPIC\mathbf{v}_p^{\text{new}} = \alpha\,\mathbf{v}_p^{\text{FLIP}} + (1-\alpha)\,\mathbf{v}_p^{\text{PIC}}

로 쓰며, 보통 α\alpha를 0.9~0.99 정도로 잡는다. FLIP 쪽으로 크게 기울여 생동감을 살리되, PIC를 소량 섞어 노이즈를 잠재우는 것이다. 이 계수 하나가 물의 “느낌”을 좌우하기 때문에 아티스트의 최애 노브가 된다.

5. APIC와 그 후예들[편집]

FLIP의 노이즈를 근본적으로 다스리기 위해 2015년 제트(Jiang) 등이 제안한 것이 APIC(Affine Particle-in-Cell)이다. 입자가 속도 하나만 나르는 대신 국소 속도장의 아핀(1차) 성분까지 함께 나르게 해서, 전송 과정에서 각운동량을 보존하고 노이즈를 억제한다. PIC의 안정성과 FLIP의 생동감을 동시에 잡은 셈이라 요즘은 순수 FLIP보다 APIC/PolyPIC 계열이 선호되는 추세다.4

이 하이브리드 계보는 위상수학적으로 SPH물질점법(MPM)과도 사촌 관계다. 실제로 MPM은 눈·모래·젤리 같은 연속체 시뮬레이션에서 APIC 전송을 그대로 물려받아 쓴다.

6. 물 시뮬레이션에서의 위상[편집]

FLIP-PIC 기반 솔버는 컴퓨터 그래픽스 물 시뮬레이션의 왕좌를 오래 지켜왔다. Houdini의 FLIP Solver가 대표적이며, 수많은 블록버스터 영화의 파도·물보라·해일이 이 위에서 만들어졌다.

  • 장점: 자유표면(free surface) 추적이 자연스럽고, 물방울이 튀고 합쳐지는 위상 변화(topology change)를 입자가 알아서 처리해준다. 순수 격자법이 골머리를 앓는 부분이다.
  • 약점: 입자 수가 많아 메모리와 계산이 무겁고, 얇은 물막·표면 재구성(surface reconstruction)에서 아티팩트가 생기기 쉽다.
  • 표면 렌더링: 입자 구름을 매끈한 물 표면으로 바꾸는 데는 대개 메타볼(metaball)이나 부호화 거리장 기반 재구성이 동원된다.

게임에서는 여전히 계산량이 부담스러워 실시간 대규모 물에는 잘 안 쓰이지만, 국소적인 물웅덩이나 컷신 물 이펙트에는 GPU FLIP 구현이 조금씩 실전 투입되고 있다.

7. 관련 문서[편집]

8. Footnotes[편집]

  1. FLIP은 “Fluid-Implicit-Particle”의 약자다. 게임 개발자가 스프라이트 뒤집을 때 쓰는 그 flip과는 무관하니 혼동하지 말 것. 물론 물이 뒤집어지는(flip) 장면을 만드는 데 자주 쓰이는 건 우연치고는 절묘하다.

  2. Brackbill, J. U. & Ruppel, H. M. (1986). “FLIP: A method for adaptively zoned, particle-in-cell calculations of fluid flows in two dimensions”. Journal of Computational Physics. 원래는 플라즈마·천체 유동용으로 나왔는데, 20년 뒤 그래픽스 학계가 물 시뮬레이션에 갖다 쓰면서 제2의 전성기를 맞았다.

  3. 순수 FLIP의 노이즈는 “격자 자유도보다 입자 자유도가 많아서 격자가 표현 못 하는 성분이 입자에 유령처럼 남는다”는 근본적 불일치에서 온다. 정보이론적으로 보면 초과 자유도가 갈 곳을 잃고 떠도는 셈.

  4. Jiang, C. et al. (2015). “The Affine Particle-in-Cell Method”. ACM Transactions on Graphics (SIGGRAPH). APIC 이후 PolyPIC(다항식 차수를 더 높인 버전)까지 나오면서, 이 계보는 “입자에 얼마나 많은 정보를 실을 것인가”의 군비 경쟁이 되었다.