본문 바로가기
이펙트 (FX)/이펙트 팁 : Houdini

[Houdini] Fluid 메시 잔떨림 줄이는 법 (Meshing, 메싱, Remeshing, Flip)

by Minkyu Lee 2026. 8. 14.

개요

후디니에서 Flip 결과를 Meshing할 경우 생기는 고질병인 잔떨림 해결법을 알아본다.

결론적으로 21버전부터는 AI 기반의 새 방식이 도입되면서 문제가 상당 부분 해소되었다.

 

내용

1. Particle Fluid Surface 공식 문서

SideFX — Particle Fluid Surface SOP

이건 단순 노드 레퍼런스가 아니라 SideFX가 아예 "flickering을 줄이려면 이렇게 해라"라고 별도 팁을 적어놨다.

권장 사항은 크게 세 가지다.

  • FLIP Solver의 Reseeding OFF
  • Average Position + Limit Refinement 또는 Spherical 중 방법 선택
  • Dilate → Smooth → Erode
  • Adaptivity = 0

특히 Adaptivity 0에 대해서 SideFX가 명시적으로 시간에 따른 mesh consistency를 높이고 polygonization 변화 때문에 normal이 흔들리는 것을 피한다고 설명한다. (SideFX)

그리고 Filtering도 꽤 체계적으로 설명되어 있다. 단순 Smooth가 아니라:

 

Particles
   ↓
Surface SDF
   ↓
Dilate        ← 작은 구멍/분리 제거
   ↓
Smooth        ← particle noise 제거
   ↓
Erode         ← Dilate로 부푼 체적 복원
   ↓
Final Smooth
   ↓
Polygonize

라는 식이다. 게다가 Velocity/Vorticity로 smoothing mask를 만들 수 있다. 즉 잔잔한 곳은 강하게 smooth하고 splash 부분은 디테일을 보존할 수 있다. (SideFX)

 

원문은 아래와 같다.

  • For very slow moving viscous fluids, the default surfacing settings can lead to some “flickering” in the resulting mesh. To minimize any flickering, try any of the following:
    • Turn off Reseed Particles on the FLIP Solver to avoid introducing new particles during the simulation.
    • If using the Average Position surfacing method, turn on Limit Refinement and leave the iterations at 0 or switch to the Spherical method. In either case you will probably need additional smoothing on the Filtering tab, using the DilateSmooth, and Erode parameters.
    • Disable adaptive polygon meshing by setting Adaptivity to 0. This setting will create a heavier mesh, but the mesh will be more consistent over time and avoid variations in the normals from changing polygonization.
  •  


    2. Houdini 21 이상 신기능 활용

    Neural Point Surface → Liquid

    SideFX — Neural Point Surfacing

    SideFX가 Liquid 모델을 설명하면서 정확히 이렇게 정의한다.

    smooth curved surfaces를 유지하면서 wave의 sharp transition을 보존하고, thin sheet와 droplets를 temporally stable하게 연결하도록 학습되어 있다. (SideFX)

     

    기존 방식:

    FLIP particles
          ↓
    Average Position / VDB From Particles
          ↓
    Dilate
          ↓
    Smooth
          ↓
    Erode
          ↓
    Mesh
    

    H21:

    FLIP particles
          ↓
    Particle Fluid Surface
          ↓
    Method
       Neural Point Surface
          ↓
    Neural Model
       Liquid
          ↓
    Mesh
    

    그리고 이게 MPM 전용이 아니다. 현재 Particle Fluid Surface SOP 자체에 Neural Point Surface가 들어가 있어서 FLIP에서도 쓸 수 있다. (SideFX)

    SideFX도 기존 VDB 방식보다 flat region의 원치 않는 noise를 없애면서 wave edge 같은 high-frequency detail은 살리는 것을 장점으로 보여준다. (SideFX)

    단, Neural Point Surface는 GPU 사용이 사실상 전제다. NVIDIA에서는 CUDA 12.8 + cuDNN 9.x를 권장하고 CPU fallback은 매우 느리다고 SideFX가 명시한다. (SideFX)


    3. 실제 현업 사용자들의 flicker 논의

    SideFX Forum — FLIP Splash: Particles jittering/flickering

    이건 2024년 글인

    사용자가 시도한 방법이:

    reseed particle age → pscale fade-in
    curvature based attribute blur
    VDB Dilate
    VDB Smooth × several
    

    등이고, Framestore의 Tomas Slancik 답변은 요지가:

    meshing 자체가 jitter filtering에 큰 역할을 하며, 작은 스케일 fluid에서는 개인적으로 reseeding을 끄고 particle separation을 사용하는 편이라는 것이다. 질문자는 이후 작은 pscale + 여러 번의 dilate/smooth로 usable mesh를 얻었다고 한다. (SideFX)

     

    결론

    A. 기본
    Particle Fluid Surface
    Average Position
    
    
    B. Traditional Stable
    Particle Fluid Surface
    Average Position
    Adaptivity = 0
    
    + Dilate
    + Smooth
    + Erode
    
    + Velocity/Vorticity Mask
      → 느린 영역만 강하게 smoothing
    
    
    C. H21
    Particle Fluid Surface
    Neural Point Surface
    Liquid
    Adaptivity = 0
    

     

     

    댓글