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

[Houdini] MPM 솔버 기초 튜토리얼 정리 (INDIAN VFX SCHOOL)

by Minkyu Lee 2026. 1. 6.

개요

MPM 솔버 튜토리얼을 실습하여 정리한다.

 

참고 영상 (1,2,3 부)

기초 이론

https://youtu.be/VMstxK6Xl0s?list=PL4JRTlA1OATDrjpJXgIMi-Ig6iqYSSPhp

 

실습

https://youtu.be/RkI9CuTXvKw

 

렌더링, 머티리얼

https://youtu.be/CXFwcb8NDcM

 

 

내용

 

- 파트1-1 : MPM 이론

  • Pyro: 100% 볼륨 기반의 시뮬레이션
  • Particles/Vellum/RBD: 입자(Particle) 중심의 시뮬레이션
  • Flip vs MPM:
    - Flip
    약 70%가 볼륨, 30%가 입자 기반인 유체 역학 기반 솔버 (Fluid Mechanics) 
    압력 계산과 충돌 처리에 그리드를 주로 사용한다. (Pressure Projection, Collision)

    - MPM
    입자 비중이 더 높은 고체 역학 기반 솔버 (Solid Mechanics)
    MPM 역시 그리드를 사용하지만, 힘 계산과 운동 방정식을 풀기 위해 일시적으로만 사용
    실제 물성은 입자가 가짐

  • 강점과 약점
    - MPM
    1. Stress(응력)와 Strain(변형)을 계산하는 데 최적화 되어있음
    2. 눈(Snow), 모래(Sand), 젤리(Jello) 같은 탄성 및 소성 변형 물질 표현에 탁월함
    3. Constraints 없이도 물리학적 성질에 따라 자연스러운 움직임 (예: 눈 뭉치가 깨지고 구르는 현상)을 보여줌
    4. 계산 비용이 높고 GPU/RAM 의존도가 높아 하드웨어 사양이 중요함. 메모리 용량이 부족하면 크래시가 남
    5. 큰 규모의 시뮬레이션을 돌릴 때는 연산이 느림
    6. MPM은 파티클 수가 많다고 섭스텝을 늘릴 필요가 없음
    충돌 처리를 파티클에서 하지 않고, 다른 방식으로 구현하기 때문임

    - Flip
    순수한 유체 역학에 더 강함
    MPM과 달리 부피 계산 과정에서 볼륨감이 손실되는 Voluem Loss 문제가 있음

    - Vellum
    제약 조건(Constraints)을 사용자가 직접 설정해야함
    Vellum은 램 용량이 부족하면 OpenCL을 끄는 등 대처가 가능함
    Vellum은 파티클 수가 많으면 substep도 늘려줘야함. 충돌 처리를 파티클에서 하기 때문임.

- 파트 1-2 : MPM 실습

 

 

핵심 어트리뷰트

Density : 밀도를 의미하며, 무게감을 결정한다.

Stiffness : 강성 (단단한 정도)

 

프리셋별 비교


- Snow & Soil

거의 비슷한 결과를 보여준다.
하지만 가장 큰 차이점은 물과 혼합했을때다.
눈은 물보다 가벼워서 뜬다.
흙은 물보다 무거워서 가라앉는다.

- Mud

물과 흙이 섞인 것이다.
점성이 높고, 물처럼 더 흐른다.

- Concrete & Metal

콘크리트나 금속 같은 매우 단단한 물질을 시뮬레이션하는 것을 비추천.

강성(Stiffness) 값이 매우 높아 계산 속도가 극도로 느려지며,

이러한 파괴 시뮬레이션은 RBD(Rigid Body Dynamics)나 Bullet 솔버를 사용하는 것이 훨씬 효율적이다.

(금속의 경우 soft contraint 세팅 활용)

- Jello & Rubber

탄성체 시뮬레이션이다.

Jello는 젤리처럼 말랑거리며 탄성을 가지고,

Rubber는 Jello보다 훨씬 높은 Stiffness와 Volume Preservation(부피 보존) 값을 가진다.

Vellum으로도 가능하지만, 찢어지거나 쪼개지는 표현을 별도의 설정 없이 자연스럽게 구현한다는 장점이 있다.

별도의 설정이란 Constraint 설정을 말한다.


- Honey
꿀처럼 물에 점성이 있는 형태다.

- Sandy
Chunk없이 잘게 부서진 입자들이다. 

건조한 모래다.

cohesion을 높이면 젖은 모래처럼 보이게 된다.
friction angle도 마찬가지로 높이면 젖은 모래처럼 보인다.

 

- 파트 2 : 실습 심화

물과 모래를 표현한다.

표현에 snow 쓰는게 더 어울려서 snow를 그냥 썼다.

 

주요 세팅은 sop solver에서 attribute transfer를 이용해 wetmap을 생성하는 것이다.

distance 값과 blend 값을 미세하게 잘 조절해야한다.

 

- 파트3 : 렌더링

물 쉐이더는 튜토리얼과 달리 쉘프툴의 flip tank 생성한 다음,

basic liquid의 diffuse 수치만 좀 조절해서 사용했다.

 

파일

후디니 21.0.559

mpmIndian_v0004_fin.hip
2.46MB

댓글