후디니 Pyro 불꽃이 하이라이트에서 노랗게, 하얗게 날아갈 때: 톤매핑의 색상 이동
후디니 Pyro 불꽃 색상이 밝은 부분에서 노랗거나 하얗게 보이면, 시뮬레이션을 다시 돌려야 할까요? 같은 선형 RGB라도 노출과 뷰 변환만 바꾸면 화면에 보이는 색은 달라질 수 있습니다. 불꽃의 색상·강도 필드와 최종 표시 변환을 나눠 확인해야 원인을 좁힐 수 있습니다.
흰색으로 보인다는 사실만으로 temperature 값이 잘못됐다고 단정할 수는 없습니다. 먼저 Pyro가 만든 선형 색이 달라졌는지, 같은 선형 색을 화면에 바꾸어 표시한 것인지 분리합니다.
1. 후디니 Pyro 불꽃 색상은 색상·강도 필드와 표시 변환에서 달라집니다
Houdini 19.5의 Pyro Shader는 연기와 불꽃의 볼륨을 렌더합니다. Pyro Shader는 기본적으로 temperature 볼륨을 불꽃의 emission 색과 강도에 사용할 수 있습니다. Pyro Shader – Classic은 Fire Temperature Field를 색으로 변환하고 Fire Intensity Field를 발광 강도로 사용합니다.
Classic 셰이더라면 Temp>Color Mapping, Temperature Scale, Intensity Scale을 확인합니다. 온도에 따른 색 매핑과 발광 강도는 서로 다른 설정입니다. 사용하는 셰이더 종류와 실제 필드 연결도 함께 봐야 합니다.
따라서 선형 렌더 값 자체가 바뀌었다면 시뮬레이션 필드나 셰이더 설정을 살펴야 합니다. 값이 같은데 화면의 색만 변했다면 표시 변환이 관여한 것입니다.
2. 노출을 올리면 선형값은 커지고, 뷰에 따라 표시색은 달라집니다
선형 색값은 모니터가 바로 표시하는 값이 아닙니다. scene-linear 이미지를 sRGB 같은 출력 색공간으로 바꾸는 과정에서 뷰 변환이 적용됩니다.
Blender 5.0 Manual에서 노출은 렌더값에 2^exposure를 곱하는 방식입니다. +1 EV는 값을 두 배로, +3 EV는 여덟 배로 키웁니다. 이후 Standard, ACES 1.3, AgX가 같은 선형 입력을 서로 다르게 표시할 수 있습니다.
Standard는 디스플레이 변환 외에 추가 톤매핑을 하지 않습니다. ACES 1.3과 AgX는 밝은 영역을 다른 방식으로 화면 범위에 맞춥니다. 그래서 노출만 올려도 채널 비율과 주황색의 채도가 달라질 수 있습니다.
3. 후디니 Pyro 불꽃 색상: 같은 선형 주황색을 세 뷰로 비교했습니다
Blender 5.0.0을 창 없이 실행해 기본 OCIO 설정으로 계산했습니다. 입력은 Linear Rec.709의 고정 RGB (1.00, 0.20, 0.02), 출력은 sRGB입니다. 노출만 +0, +1, +2, +3, +4, +6 EV로 바꾸고 Standard, ACES 1.3, AgX를 각각 적용했습니다.

아래 표는 최종 표시값을 8-bit RGB 범위인 0–255로 제한한 결과입니다. 각 숫자는 R, G, B 순서입니다.
| 뷰 | 노출 | 출력 RGB |
|---|---|---|
| Standard | +0 EV | 255, 124, 39 |
| Standard | +1 EV | 255, 170, 56 |
| Standard | +2 EV | 255, 231, 80 |
| Standard | +3 EV | 255, 255, 111 |
| Standard | +4 EV | 255, 255, 153 |
| Standard | +6 EV | 255, 255, 255 |
| ACES 1.3 | +0 EV | 210, 107, 28 |
| ACES 1.3 | +1 EV | 243, 162, 60 |
| ACES 1.3 | +2 EV | 254, 206, 111 |
| ACES 1.3 | +3 EV | 255, 230, 168 |
| ACES 1.3 | +4 EV | 255, 243, 209 |
| ACES 1.3 | +6 EV | 255, 255, 244 |
| AgX | +0 EV | 211, 123, 68 |
| AgX | +1 EV | 232, 158, 118 |
| AgX | +2 EV | 247, 187, 158 |
| AgX | +3 EV | 255, 210, 189 |
| AgX | +4 EV | 255, 227, 212 |
| AgX | +6 EV | 255, 251, 242 |
Standard에서는 입력 R 채널이 +0 EV부터 최대 표시값인 255에 닿습니다. +3 EV에는 G도 255가 되어 노란색에 가까워지고, +6 EV에는 세 채널이 모두 255가 되어 흰색으로 표시됩니다.
같은 +3 EV에서 ACES 1.3은 (255, 230, 168), AgX는 (255, 210, 189)입니다. 이 입력에서는 두 뷰가 Standard와 다른 색을 보여 주지만, 노출을 +6 EV까지 올리면 둘 다 거의 흰색에 가까워집니다. 어느 뷰도 주황색을 무한히 보존하는 것은 아닙니다.
이 비교는 실제 Pyro 시뮬레이션을 렌더한 결과가 아니라, 한 선형 색을 Blender의 OCIO 뷰 변환에 통과시킨 계산입니다. Houdini 장면의 정확한 출력값을 예측하는 표가 아니라, 표시 변환만으로 색이 이동할 수 있음을 보여 주는 통제 예시입니다.
4. Houdini에서 같은 선형 값을 기준으로 원인을 분리합니다
- 한 프레임과 한 픽셀을 고정합니다. 비교 중에는 시뮬레이션과 셰이더를 바꾸지 않습니다.
- fire의 입력 필드와 매핑을 확인합니다. 실제 셰이더가 읽는 temperature·intensity 필드, 색 매핑, 온도와 강도 배율을 살핍니다.
- 뷰 변환이 구워지지 않은 선형 출력값을 기준으로 둡니다. EXR이나 선형 AOV를 쓸 때는 작업 색공간과 파일의 색공간 해석이 맞는지 확인합니다.
- 같은 선형 값에서 뷰만 바꿉니다. 노출은 고정한 채 표시색을 비교한 뒤, 뷰를 고정하고 노출만 단계적으로 바꿉니다.
- 값이 달라진 단계를 판정합니다. 선형 픽셀 값이 같고 표시 후에만 주황색이 바뀌면 뷰·노출을 조정합니다. 선형 렌더 값부터 다르면 필드·셰이더 쪽을 다시 확인합니다.
뷰 변환을 비교할 때는 입력 색공간을 올바르게 해석해야 합니다. 이 테스트의 RGB는 Linear Rec.709이므로, ACEScg 등 다른 작업 색공간의 숫자에 그대로 대입하면 같은 색 비교가 되지 않습니다.
5. 결론은 선형값이 바뀐 시점에 있습니다
같은 선형 불꽃 RGB에서 뷰와 노출만 바꿨을 때 주황색이 노랗거나 하얗게 변한다면, 그 변화는 시뮬레이션이 아니라 표시 변환에서 생긴 것입니다.
반대로 선형 렌더 결과 자체의 색이나 강도가 달라졌다면 Pyro의 입력 필드와 셰이더 매핑을 먼저 살펴야 합니다. 화면에 보이는 색만으로 두 경우를 구분할 수는 없습니다.
후디니 Pyro 불꽃 색상이 밝은 곳에서 사라지면, 재시뮬레이션 전에 같은 선형값을 고정하고 뷰 변환부터 비교합니다.
Blender의 뷰 변환별 차이를 더 확인하려면 AgX·Filmic·Standard를 비교한 글을, ACES의 VFX 파이프라인 맥락은 ACES 설명 글을 참고할 수 있습니다.
참고 문서
vfx 잡학지식



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