후디니 Pyro Dissipation 값별 연기 수명 계산
Pyro Dissipation 값을 0.1로 두면 연기가 1초마다 10% 사라지는 게 아닙니다. Pyro Solver SOP에서는 기본 FPS인 24를 기준으로 1/24초마다 현재 density의 10%가 줄어듭니다. 그래서 24fps에서 1초가 지나면 처음 밀도의 약 7.98%만 남고, 반감기는 약 0.274초입니다. FPS를 바꾸면 프레임당 감소율은 달라지지만 같은 시간 동안의 감쇠는 같도록 계산됩니다.
아래 계산기에 Dissipation 값과 FPS를 넣고 시간이나 프레임 수를 선택하세요. 이어지는 Houdini 19.5.435 실측에서는 계산 곡선과 프레임별 Density 합계를 함께 비교합니다.
Pyro Dissipation 연기 수명 계산기
Pyro Solver SOP의 Dissipation 값과 FPS를 넣으세요. 경과 시간을 초 또는 프레임으로 입력하면 남은 density 비율, 반감기, 1%까지 시간을 계산합니다.
계산 전제: Pyro Solver SOP에서 d는 1/24초마다 현재 density의 d만큼 줄어듭니다. Clamp Below와 Control Field를 끈 균일 감쇠 기준입니다.
Pyro Dissipation은 1/24초 기준 비율입니다
SideFX의 Pyro Solver SOP 도움말은 Dissipation이 연기를 시간에 따라 사라지게 하는 값이라고 설명합니다. 예를 들어 0.1은 1/24초마다 smoke의 10%가 사라지는 값이고, 1은 모두 즉시 사라지는 값입니다. 따라서 이 값은 “초당 몇 퍼센트”도, 모든 FPS에서 “한 프레임마다 몇 퍼센트”도 아닙니다. 24분의 1초를 기준으로 한 감쇠율입니다.
매 스텝마다 현재 density에 남는 비율은 1 - d입니다. 여기서 d는 Dissipation 값입니다. 감쇠는 남은 값을 다음 스텝의 기준으로 다시 곱하므로 시간이 지날수록 직선이 아니라 지수 곡선으로 줄어듭니다.
R(t) = 100 × (1 - d)^(24t)
R(N) = 100 × (1 - d)^(24N/FPS)
첫 식은 경과 시간이 t초일 때 남는 비율이고, 둘째 식은 N프레임이 지난 뒤의 남는 비율입니다. 밀도 원본값을 100%로 두었을 때의 상대값입니다. 24fps에서 Dissipation이 0.1이면 한 프레임 뒤 90%, 두 프레임 뒤 81%, 24프레임이 지난 뒤에는 0.9^24, 즉 약 7.98%가 남습니다.
48fps라면 한 프레임은 1/48초이므로 Dissipation 0.1의 한 프레임 뒤 잔량은 약 94.87%입니다. 두 프레임이 지나 1/24초가 되면 90%가 남습니다. 프레임마다 고정된 10%를 빼는 방식이 아닙니다.
반감기와 1% 도달 시간은 로그로 구합니다
반감기는 처음 density의 50%가 되는 시점입니다. 1% 도달 시간은 처음의 1%만 남을 때까지 걸리는 시간입니다. 두 값 모두 앞의 지수식에서 남은 비율을 각각 0.5와 0.01로 놓고 풀면 됩니다.
반감기(초) = ln(0.5) / [24 × ln(1 - d)]
1% 도달 시간(초) = ln(0.01) / [24 × ln(1 - d)]
프레임으로 바꾸려면 각 시간에 FPS를 곱하세요. Dissipation이 0이면 연기가 줄지 않아 반감기와 1% 도달 시간이 없습니다. 1이면 경과 시간이 생기는 즉시 density가 0이 됩니다. 계산기에서 두 끝값은 이 규칙으로 따로 처리합니다.
| Dissipation | 반감기 (24fps) | 1%까지 (24fps) | 1초 뒤 남는 비율 |
|---|---|---|---|
| 0.05 | 0.5631초 / 13.51프레임 | 3.7409초 / 89.78프레임 | 29.20% |
| 0.10 | 0.2741초 / 6.58프레임 | 1.8212초 / 43.71프레임 | 7.98% |
| 0.25 | 0.1004초 / 2.41프레임 | 0.6670초 / 16.01프레임 | 0.10% |
수치는 Pyro Solver SOP의 1/24초 기준에 맞춘 계산입니다. 프레임 수는 연속적인 계산 결과라 소수로 나올 수 있습니다. 실제 재생 프레임에서 특정 비율 아래로 처음 내려가는 시점은 그 다음 정수 프레임일 수 있습니다.
Houdini 19.5.435 실측은 계산식과 일치했습니다
설치된 Houdini 19.5.435의 hython으로 작은 Pyro Solver SOP를 만들었습니다. Volume SOP에서 균일한 density 소스를 만들고 첫 프레임에만 주입하도록 Source Range를 1~1로 제한했습니다. Density 외 소스는 끄고, wind와 buoyancy, disturbance, turbulence, temperature diffusion을 끈 상태에서 Dissipation만 0.05, 0.1, 0.25로 바꿨습니다. Clamp Below도 꺼서 작은 잔량이 중간에 잘리지 않게 했습니다.
각 프레임의 density volume 복셀 값을 모두 더한 뒤, frame 1의 합계를 100%로 정규화했습니다. 표의 e는 frame 1 이후 경과 프레임입니다. 24fps에서 e=24는 frame 25, 즉 소스가 들어온 뒤 정확히 1초가 지난 시점입니다.
| 경과 프레임 e | Dissipation 0.05 | Dissipation 0.10 | Dissipation 0.25 |
|---|---|---|---|
| 0 | 100.0000% | 100.0000% | 100.0000% |
| 1 | 95.0000% | 90.0000% | 75.0000% |
| 3 | 85.7375% | 72.9000% | 42.1875% |
| 6 | 73.5092% | 53.1441% | 17.7979% |
| 9 | 63.0249% | 38.7420% | 7.5085% |
| 12 | 54.0360% | 28.2429% | 3.1676% |
| 24 | 29.1989% | 7.9766% | 0.1003% |
값별 계산 곡선과 Houdini 실측
24fps, frame 1의 Density 합계를 100%로 둔 그래프입니다. 색 선은 계산식, 빈 원은 Houdini 19.5.435에서 측정한 프레임 합계입니다.
24프레임 뒤 Dissipation 0.1의 Density 합계는 시작값의 7.9766%였습니다. 계산값은 7.9766%로, 차이는 부동소수점 반올림 수준입니다. 같은 방식으로 두 값(0.05, 0.25)도 곡선과 맞았습니다. 이 실측은 밀도만 있고 속도가 없는 통제된 테스트라 이류로 연기가 영역 밖으로 빠져나가는 현상은 재현하지 않았습니다.
실제 시뮬레이션에서 총 density 합이 계산보다 더 빨리 줄어든다고 해서 Dissipation이 식과 다르다고 단정하지 마세요. 연기가 경계를 넘어가거나 active 영역이 갱신되는 과정, 추가 소스, Clamp Below가 합계에 영향을 줄 수 있습니다. 차이를 분리하려면 먼저 속도·추가 소스·Clamp Below·Control Field를 끈 작은 테스트와 같은 기준으로 비교하세요. 경계에 닿아 평평하게 잘리는 문제라면 컨테이너 경계와 padding을 확인하는 방법을 먼저 보세요.
Clamp Below는 계산 곡선의 희미한 끝을 자를 수 있습니다
로컬 Houdini 19.5.435에서 확인한 Pyro Solver SOP 기본값은 Dissipation 0.1, Clamp Below 켜짐·0.005, Cooling Rate 0.5였습니다. 이 값은 밀도 감소율이 아니라, 지정한 기준 아래로 내려간 작은 값을 정리하는 문턱입니다. 실제로는 계산기가 예측한 긴 꼬리가 계속 보이지 않고 어느 시점에 사라질 수 있습니다.
Sparse 시뮬레이션에서는 아주 작은 density가 남아 있으면 활성 계산 영역이 불필요하게 커질 수 있어 SideFX도 Clamp Below를 두고 설명합니다. 따라서 수학적 반감기를 확인할 때는 clamp를 끈 결과와, 실제 캐시용 설정을 분리해서 보세요. Control Field를 켠 경우에는 지정한 field와 범위·ramp에 따라 위치별 감쇠가 달라지므로, 이 계산기의 균일 감쇠 결과와도 달라집니다.
Voxel Size는 연기의 모양을 얼마나 세밀하게 나누는지와 계산량을 바꾸지만, Dissipation의 시간 단위를 정하지는 않습니다. 복셀 크기와 메모리 비용을 따로 계산하려면 Pyro Voxel Size를 반으로 줄일 때 메모리가 어떻게 달라지는지를 참고하세요.
Cooling Rate는 density가 아니라 temperature를 식힙니다
Dissipation과 Cooling Rate는 이름이 비슷해도 같은 필드에 작동하지 않습니다. Pyro Solver의 Dissipation은 smoke의 density를 낮춥니다. Cooling Rate는 temperature field를 주변 온도 쪽으로 낮춥니다. 따라서 Cooling Rate를 높였다고 같은 비율로 density가 직접 줄어드는 것은 아닙니다.
온도가 낮아지면 뜨거운 연기를 위로 올리는 buoyancy가 약해질 수 있습니다. 이 변화가 연기의 위치와 속도를 바꾸고, 그 결과 경계나 sparse 영역과 상호작용해 겉보기 수명에 간접적으로 영향을 줄 수는 있습니다. 하지만 density가 얼마나 남는지 계산할 때 Cooling Rate를 Dissipation 식에 더하거나 곱하지는 마세요. SideFX의 현재 Pyro Solver DOP 도움말은 Cooling Rate 0.9를 초당 temperature의 90%가 줄어드는 예로 설명합니다. 노드와 버전별 파라미터 도움말을 확인해야 하는 이유입니다.
DOP Gas Dissipate는 같은 숫자라도 기준 시간이 다릅니다
Houdini 19.5의 레거시 Gas Dissipate DOP에는 Evaporation Rate가 있습니다. SideFX 도움말에서 이 값 0.1은 1초 동안 현재 field의 10%가 줄어드는 뜻입니다. 24fps에서 매 프레임 10%씩 줄이는 방식이 아니라, 초당 누적 감소율이 되도록 timestep에 맞춰 적용합니다. 문서의 예처럼 0.75는 1초 동안 75%를 줄이며, 24fps에서는 프레임당 약 5.6%를 줄이는 결과입니다. 로컬 Houdini 19.5.435에서 이 레거시 노드의 Evaporation Rate 기본값은 0.0이었습니다. Evaporate by Subtraction은 density에서 고정량을 시간에 비례해 빼는 선형 방식이라 곱셈형 감쇠와 다릅니다.
Houdini 21 이후 Gas Dissipate DOP 문서는 새 Mode를 제공하고 Dissipation Rate, Subtraction Rate, Lifespan, Half-Life를 나눕니다. 여기서도 rate와 subtraction은 초당 기준입니다. 현재 SideFX 문서는 Mode별 초기 기본값을 적지 않으므로, 19.5의 Evaporation Rate=0.0을 최신 노드의 기본값이라고 옮겨 적지 않습니다. 반면 이 글의 계산기는 Pyro Solver SOP와 Pyro Solver 계열의 Dissipation, 즉 1/24초마다 비율이 적용되는 경우를 위한 것입니다. DOP 네트워크에 Gas Dissipate microsolver를 직접 넣었다면 같은 숫자를 복사하지 말고 해당 노드의 Mode와 설명을 먼저 확인하세요.
또한 Houdini 22 문서에서 기존 Pyro Solver DOP는 deprecated로 표시되고 Pyro Solver (Sparse)를 사용하도록 안내됩니다. SOP 인터페이스와 DOP microsolver를 같은 노드처럼 취급하지 않는 편이 안전합니다.
원하는 반감기에 맞춰 Dissipation을 정하세요
원하는 수명을 먼저 정했다면 Dissipation 값을 역으로 계산할 수도 있습니다.
d = 1 - 0.5^(1 / (24 × 원하는 반감기(초)))
예를 들어 24fps에서 반감기 0.5초를 원하면 Dissipation을 약 0.056으로 시작할 수 있습니다. 이후에는 실제 연기 모양과 움직임을 보고 조정하세요. 이 숫자는 density가 균일하게 감쇠한다는 출발점이며, Control Field와 Clamp Below, 소스가 계속 들어오는 시뮬레이션에서는 결과가 달라집니다.
한 줄 정리
Pyro Solver SOP의 Dissipation 0.1은 초당 10%가 아니라 1/24초마다 10%를 줄이는 값입니다. 24fps에서 1초 뒤 약 7.98%가 남으며, 계산기와 실측표로 반감기와 1%까지 시간을 확인한 뒤 실제 시뮬레이션의 clamp와 이동 손실을 따로 판단하세요.
공식 자료
vfx 잡학지식

댓글 0
첫 댓글을 남겨보세요.