유체

유체를 사용하여 물, 오일, 꿀, 용암과 같은 액체의 물리적 특성을 시뮬레이션할 수 있으며 중력 효과, 오브젝트와의 충돌, 모션 필드에 의한 중단 등을 복제하여 원하는 결과를 얻을 수 있습니다.

기본 개념

유체 시뮬레이션은 다음 구성요소로 이루어져 있습니다.

성능 최적화

유체 시뮬레이션에서 작업할 때의 목표는 보기 좋은 결과를 최대한 빨리 만드는 것입니다. 이렇게 하려면 메모리 및 계산 시간과 세부 표현 및 정확도 세부 정보 간의 균형을 유지하는 데 사용할 수 있는 옵션을 파악해야 합니다.

시뮬레이션 세부 정보를 제어하는 데 사용되는 주 설정은 솔버 매개변수 패널의 솔버 특성 그룹에 있는 기본 복셀 크기 옵션입니다. 이 설정은 정확도에도 큰 영향을 줍니다. 일반적으로는 큰 값을 사용하여 작업 내용의 대략적인 미리 보기를 빠르게 만든 후, 효과가 적절하면 작은 값을 사용하여 더 자세한 시뮬레이션을 생성합니다.

어떤 기본 복셀 크기에서든 솔버 매개변수 패널의 시뮬레이션 매개변수 그룹에 있는 운송 및 시간 단계 속성을 사용하여 시뮬레이션의 정확도를 높일 수 있습니다. 그러나 이렇게 하려면 계산을 추가로 수행해야 하므로 시간이 더 오래 걸립니다. 자세한 내용은 아래 가변성 설정 섹션을 참조하십시오.

기본 복셀 크기와 가변성 설정을 적절하게 조합하려면 모델링하는 장면의 배율을 기준으로 파티클 속도를 조정해야 합니다. 예를 들어 파티클 속도가 너무 높아서 한 시간 단계에 충돌체 한쪽에서 반대쪽으로 이동하는 경우 충돌이 발생하지 않은 것처럼 표시됩니다. 또한 파티클이 충돌체에 너무 깊이 관통하면 '유출'되는 것처럼 잘못된 쪽으로 이동하게 될 수도 있습니다. 이러한 문제를 진단하기 위하여 설정 표시 패널에서 속도 채널을 색상 그라데이션으로 표시하도록 설정함으로써 파티클의 속도를 검토할 수 있습니다.

물 한 방울을 시뮬레이션할 때와 같이 매우 작은 배율로 작업하는 경우에는 짧은 거리와 시간 배율에 비해 속도가 매우 높으므로 장면의 프레임 속도를 높여야 할 수 있습니다.

가변성 설정

시뮬레이션 뷰 창의 시뮬레이션 매개변수 패널에서 가변성 관련 설정을 사용하여 메모리 및 계산 시간을 낭비하지 않고 적재적소에 필요한 세부 사항을 제공하도록 자동으로 해상도를 조정할 수 있습니다. 이를 제어하기 위해 사용할 수 있는 옵션 세트가 네 가지 있습니다.

공간 가변성

공간 가변성 옵션은 세부 사항이 거의 필요하지 않은 액체의 중심부에 저해상도 복셀을 작성하기 위해 사용됩니다. 기본 복셀 크기에 의해 설정된 최대 해상도는 움직임이 빠른 영역에서 충돌 오브젝트의 경계 및 자유 표면(공기와의 경계)을 따라 계속 유지됩니다.

이 옵션은 일반적으로 대부분의 시뮬레이션에 사용할 수 있습니다.

초과하는 파티클 삭제

초과하는 파티클 삭제 옵션은 저해상도 영역에서 복셀당 파티클의 개수가 임계값을 초과하는 경우 일부 파티클을 제거합니다. 공간 가변 및 비가변 시뮬레이션 간에 볼륨 손실이 있거나 크게 차이가 나는 부분이 나타나는 경우 이 옵션을 사용하지 않도록 설정하십시오.

운송 및 시간 단계

시뮬레이션 매개변수 패널의 운송 단계 및 시간 단계 옵션은 각 프레임에서 계산이 수행되는 횟수를 제어합니다. 많이 반복할수록 정확도가 높아지지만 계산에 더 많은 시간이 필요합니다. 볼륨 손실, 파티클 뭉침, 자동 폭발 및 충돌체를 통과하는 누출 등의 문제가 발생할 경우 이 설정을 조정해 보십시오.

  • 운송 단계는 압력 계산이 수행된 후 복셀 속도 필드를 따라 파티클을 이류시키는 데 사용되는 반복 횟수를 제어합니다. 파티클이 정적 충돌체를 통과하는 등의 문제가 발생할 경우 이 설정을 조정해 보면 추가 계산 시간을 많이 소요하지 않고 문제를 해결할 수 있습니다. 하지만 반복 시 매번 압력이 다시 계산되지 않고 충돌체 및 기타 솔리드가 다시 복셀화되지 않기 때문에 빠르게 움직이는 충돌체 및 기타 더욱 복잡한 상황에 대해서는 운송 단계가 큰 도움이 되지 못할 것입니다.
  • 시간 단계는 복셀화, 압력 및 운송 단계를 포함하여 프레임당 전체 시뮬레이션의 반복 횟수를 제어합니다. 이 설정으로 특히 빠른 속도에서 정확도를 크게 높일 수 있으나 계산 시간이 훨씬 오래 걸립니다.

운송 단계로 각 시간 단계에서의 운송 단계 반복 횟수를 제어하는 식으로 두 제어 방식이 함께 작동합니다. 다시 말해서, 시간 단계 설정에 따라 각 프레임에 여러 시간 단계가 포함될 수 있으며, 운송 단계 설정에 따라 각 시간 단계에 여러 운송 단계가 포함될 수 있습니다.

가변성은 추가 하위 단계의 시작 여부를 제어합니다. 파티클이 각 프레임에서 이동하는 거리와 속도에 따라 프레임마다 반복 횟수가 달라질 수 있습니다. 이 값은 비선형 배율상에 있습니다.
  • 0.0으로 설정한 경우 파티클은 추가 하위 단계를 시작하지 않고 실질적으로 거리를 무제한 이동할 수 있습니다.
  • 0.1로 설정한 경우 파티클은 추가 하위 단계가 시작되기 전까지 최대 10 복셀 길이를 이동할 수 있습니다.
  • 0.32로 설정한 경우 파티클은 추가 하위 단계가 시작되기 전까지 약 5 복셀 길이를 이동할 수 있습니다.
  • 0.5로 설정한 경우 파티클은 추가 하위 단계가 시작되기 전까지 최대 1.0 복셀 길이를 이동할 수 있습니다.
  • 0.75로 설정한 경우 파티클은 추가 하위 단계가 시작되기 전까지 약 0.5 복셀 길이를 이동할 수 있습니다.
  • 1.0으로 설정한 경우 파티클은 추가 하위 단계가 시작되기 전까지 최대 0.001 복셀 길이를 이동할 수 있습니다.
최소 운송/시간 단계 반복은 항상 프레임당으로 수행됩니다. 즉, 파티클이 매우 빠르게 움직이지 않는 경우에도 특정 횟수의 하위 단계를 적용할 수 있습니다. 그러나 불필요한 계산을 피하려면 대개 가변성을 조정하는 것이 좋습니다.
주: 시뮬레이션의 첫 번째 프레임에서는 한 번만 반복이 수행됩니다.

최대 단계는 프레임당 총 반복 횟수를 설정하여 계산이 수행되는 양을 제한합니다. 그러나 파티클은 항상 속도 및 프레임 길이에서 요구되는 전체 거리를 이동합니다. 즉, 파티클이 가변성에 설정된 제한을 따르지 않을 수도 있습니다. 예를 들어, 가변성이 0.5로 설정되었지만 최대 단계가 매우 낮은 경우 빠르게 움직이는 파티클은 1 복셀 길이 단계에서 전체 거리를 이동하지 못할 수 있습니다. 이 경우, 전체 거리를 이동하려면 각 단계가 1 복셀 길이보다 길어야 합니다.

시간 배율은 운송 단계에만 사용할 수 있는 설정으로, 파티클 흐름의 속도를 변경합니다. 값이 1.0보다 클 경우 속도나 가속이 새로 생성되지 않고 흐름의 속도가 빨라지며, 값이 0.0에서 1.0 사이인 경우 흐름 속도가 느려집니다. 결과는 물리적으로 정확하지 않을 수 있지만 신속하게 시뮬레이션 시간을 조정하는 데 유용합니다. 그러나 이 설정을 사용할 때 특히 극단적인 값에서 원치 않는 부작용이 생길 수 있으므로 주의하십시오.

배율 관련 고려 사항

배율은 유체 시뮬레이션 작업 시 최종 결과의 신뢰성에 직접적인 영향을 주므로 매우 중요합니다. 예를 들어, 오래된 영화에 등장하는 호수나 수영장의 물리적 축소 모델은 실제처럼 보이지 않습니다. 현실에서는 물의 몸체에서 1미터 웨이브와 1센티미터 웨이브가 매우 다르게 보이기 때문입니다. 그러므로 사용되는 메모리와 계산 시간을 적절하게 유지하면서 최상의 결과를 얻으려면 단위를 적절하게 고려해야 합니다.

시뮬레이션을 구성할 때 고려해야 할 중요한 매개변수가 세 가지 있습니다.

복셀 크기를 사용하면 시뮬레이션의 정확도를 결정할 수 있습니다. 이 값(센티미터 단위)이 작을수록 해석의 정확도는 높아지지만 메모리와 리소스가 더 많이 사용됩니다. 값이 클수록 정확도는 낮아집니다. 즉, 생성되는 파티클이 표시되지 않거나, 파티클이 충돌 표면 위에 떠 있거나, 구멍을 통과하여 흐르지 않을 수 있습니다. 복셀 크기는 시뮬레이션으로 모든 메시를 전송할 때 사용되므로 메시 정확도에 영향을 주며, 최소 파티클 크기이기도 합니다.
경고: 복셀 크기가 너무 작으면 메모리를 많이 소비하고 시스템이 불안정해질 수 있습니다.

최대 단위 설정은 유체의 동작 방식과 유체가 사용하는 메모리의 양을 결정하는 중요한 매개변수입니다. 유체로 작업할 때는 항상 장면의 실제 치수를 알고 있어야 하므로 일반 단위를 사용해서는 안 됩니다. 표시 단위 배율 조정을 미터로 설정하는 것이 가장 좋습니다. 그러면 장면의 "실제" 크기를 파악할 수 있기 때문입니다. 최대 유체에서는 사용자 정의 단위도 고려하지만 기본 단위를 변경할 때는 주의해야 합니다. 오브젝트를 측정하고 실제 오브젝트의 크기를 파악할 수 있도록 테이프 측정을 유지하는 것이 가장 좋습니다. 단위도 장면이 표시되는 방식에 영향을 줍니다. 15cm 크기의 웨이브와 15m 크기의 웨이브는 다르게 표시되기 때문입니다. 액체 솔버 사용자 정의 단위 재정의는 게임 엔진 등에서 단위로 인해 인공적인 제약이 적용되는 경우나, 인형의 집 배율 크기로 사실적인 물을 렌더링하는 등의 특수 효과를 사용해야 하는 경우에만 사용해야 합니다.

화면 크기는 단위 설정을 통해 정의되는 실제 치수에서의 장면 크기입니다. 장면 크기는 복셀 크기 설정 방식에 직접 영향을 줍니다. 예를 들어 액체 장면 경계가 10km x 10km인데 복셀 크기를 0.05cm로 설정하면 메모리 요구 사항이 너무 높아서 장면이 해석되지 않을 가능성이 높습니다. 처음에는 복셀 크기를 매우 크게 설정하고, 작업을 진행하면서 적절한 메모리 사용량 내에서 원하는 결과를 얻을 때까지 값을 줄이는 것이 가장 좋습니다. 또한 복셀 그리드의 밀도가 높을수록 시뮬레이션을 계산하는 데 시간이 더 오래 걸립니다.

운송 단계 및 시간 옵션은 모두 시뮬레이션 품질을 결정하는 데 사용되지만 전반적인 품질보다는 파티클이 이동하는 속도에 더 큰 영향을 줍니다.

주: 액체 오브젝트 또는 모션 필드에서는 배율 도구를 사용하지 마십시오. 이렇게 하면 계산이 중단됩니다.

작은 배율 작업

작은 배율로 시뮬레이션할 때는 짧은 거리와 작은 복셀 크기에 상대적으로 속도가 높기 때문에 몇 가지 사항을 추가로 고려해야 합니다. 특히, 시간 단계 및 운송 단계 설정을 늘려야 좋은 결과를 얻을 수 있습니다. 경우에 따라, 고속 카메라를 에뮬레이션하기 위해 장면의 프레임 속도를 늘려야 할 수도 있습니다.

물 한 방울을 시뮬레이션하는 경우와 같이 매우 작은 배율에서는 일부 추가적인 조정이 필요할 수 있습니다. 예를 들어, 표면 장력의 경우 시간 단계가 많아도 항상 정확한 결과를 얻을 수는 없으므로 비물리적인 정확한 값을 사용하여 현실에 가까운 결과를 얻는 것이 보다 효율적일 수 있습니다. 중력 크기를 줄이면 도움이 되는 경우도 있습니다.

소용돌이 및 작은 물방울 같은 설정을 비활성화하여 해당 배율에서 유효하지 않은 계산을 수행하지 않도록 할 수 있습니다.

메시

메시는 결과의 또 다른 표현이라 할 수 있습니다. 메시는 렌더링할 수 있을 뿐 아니라 다른 장면이나 소프트웨어에서 사용하기 위해 Alembic 또는 기타 캐시로 내보낼 수도 있습니다. 모양에서 메시를 활성화하는 경우가 아니면 메시에는 다각형이 포함되지 않습니다.