이번 Blender 4.5의 Fluid 시뮬레이터를 이용한 Fire와 Smoke 시리즈의 일곱 번째 튜토리얼에서는, 지난번에 설명한 Voxel Attributes를 사용해 렌더링용 Fire와 Smoke Material을 수정하는 방법을 살펴보겠습니다.
이 튜토리얼은 Blender 4.5의 불과 연기 기초에 관한 10편짜리 미니 시리즈의 일부입니다. 전체 에피소드 목록을 보려면 여기를 클릭하세요.
영상 자막 텍스트
안녕하세요! 이번 Blender 4.5의 Fluid 시뮬레이터를 이용한 Fire와 Smoke 시리즈의 일곱 번째 튜토리얼에서는, 지난번에 설명한 Voxel Attributes를 사용해 렌더링용 Fire와 Smoke Material을 수정하는 방법을 살펴보겠습니다.
이번 에피소드의 첫 번째 예시 씬에서는, Inflow Fire로 설정된 Fluid 컴포넌트를 가진 오브젝트의 Vertex Group에서 Fire가 방출됩니다. 시뮬레이션의 Domain은 버너 상단 부분만 감싸는데, 불꽃이 그곳에서 발생하기 때문입니다.
Vertex Group에서의 방출과 관련해, 불꽃이 보이지 않는다면 문제는 Domain의 Resolution일 수 있습니다. Resolution이 너무 낮아 Voxel 크기가 너무 크면, 방출 버텍스를 포함한 Voxel이 빈 것으로 간주되어 불꽃을 방출하지 않을 수 있습니다. 따라서 Domain Resolution을 높여 보시기 바랍니다.

기본 설정에서는 초기 불꽃이 매우 낮게 나타나거나, 옆에서 보면 보이지 않을 수도 있습니다. 하지만 이제 우리는 그 외형을 조정할 수 있는 여러 방법을 알고 있습니다. 예를 들어, Inflow 오브젝트의 Initial Velocity를 조정해 불꽃에 상승력을 주거나, Domain의 반응 속도를 조정해 불꽃을 더 크게 만들 수 있습니다. 이 버너에서 생성되는 불꽃 유형과 관련해, 난류와 색상이 달라질 수 있습니다. 거의 난류가 없는 네 번째 유형의 불꽃을 얻기 위해 Domain의 Fire 섹션에서 Vorticity 값을 0으로 낮추겠습니다.
Material을 정의하기 전에 마지막으로, 방출 Vertex Group에 버텍스를 더 추가하고 Timeline 애니메이션을 시뮬레이션의 마지막 100 프레임으로 제한하겠습니다. 즉, 불꽃이 이미 충분히 발달하고 안정된 구간입니다.
이제 Material 정의로 넘어가겠습니다! 3D 사이드 뷰를 바로 Rendered 모드로 설정하고, World Background Strength를 0으로 두었기 때문에 처음에는 미리보기가 검은색으로 보입니다. 왼쪽의 Image Editor에는 참조 이미지를 배치했고, 가운데에는 Domain의 Principled Volume 노드가 있는 Material Editor를 열어두었습니다.
이전 튜토리얼에서 본 것처럼, Emission Strength를 높이고 Emission Color에 단색을 지정하면 결과가 매우 실망스럽습니다. Blackbody를 사용하는 방법은 이미 살펴봤지만, 이제는 Emission 모드를 배우는 시간이 왔습니다.

지난 에피소드에서 본 것처럼, Fluid 시뮬레이터는 각 Voxel에 대한 정보를 저장합니다. 이러한 데이터는 Attribute 노드를 사용해 해당 필드에 Attribute 이름을 입력하면 불러올 수 있습니다. 하지만 볼륨 Material에는 Volume Info라는 전용 노드가 있으며, 이 노드는 이러한 Attribute를 출력 소켓으로 제공합니다.
Flame 출력이나 Temperature 출력을 Emission Strength 입력에 연결하면 불꽃의 외형이 극적으로 변합니다! Flame 출력은 Temperature 출력보다 보간된 값이 더 잘 제공되며, Temperature 출력은 Domain Resolution을 더 뚜렷하게 드러냅니다. 이런 이유로 저는 Flame을 사용하겠습니다. Flame과 Temperature 출력은 Emission Color에도 사용할 수 있으며, 특히 Color Ramp 노드를 중간에 넣으면 더욱 유용합니다. 이렇게 하면 Domain Voxel에 포함된 정보에 따라 불꽃의 색상을 위치별로 다르게 바꿀 수 있습니다.

저는 Flame 출력을 Color Ramp에 연결하여 Material의 Emission Color 파라미터로 사용하고 있습니다. 이제 Color Ramp의 스톱 색상과 투명도를 정의하는 작업이 필요합니다.
이때 Blender의 Color Picker를 사용해 참조 이미지에서 직접 색상을 샘플링할 수 있습니다.
각 Color Stop에는 투명도도 포함할 수 있는데, 이는 불꽃 외곽에 자주 나타나는 반투명 영역을 표현하는 데 매우 유용합니다. 또한 Color Stop 간의 보간 방식을 신중히 선택해야 합니다.
옵션 중 가장 극단적인 것은 Constant인데, 이는 Color Stop 사이를 갑자기 전환합니다.
현실적이지는 않지만, 더 예술적인 표현에는 사용할 수 있습니다.
이번 Material 튜토리얼이 짧게 느껴진다면, 이는 우리가 이미 이전 튜토리얼에서 학습한 정보와 파라미터를 기반으로 하고 있기 때문입니다.
이 시점에서 우리는 Domain과 Flow 오브젝트의 Fluid 파라미터로 다양한 불꽃 형태를 정의하고, Blackbody나 Emission과 Blender의 여러 노드를 사용해 시각적 외형을 조정할 수 있는 충분한 지식을 갖추고 있습니다.

제가 방금 보여드린 세팅에만 국한되지 마세요. 다른 Material 노드도 실험해 보시기 바랍니다. 예를 들어, Math 노드를 Multiply 또는 Power로 설정해 Emission Strength를 수정함으로써 Flame에서 오는 정보를 바꿀 수 있습니다. 게다가 이러한 노드들의 파라미터에는 키프레임을 넣을 수 있으므로, 시뮬레이션의 Fluid 컴포넌트 필드를 조정하지 않고도 Material을 변경하여 불꽃의 강도를 애니메이션할 수 있습니다.
튜토리얼을 마무리하기 전에, 동일한 Domain 안에 서로 다른 색상을 가진 세 개의 Inflow 오브젝트를 만든 방법을 보여드리겠습니다. 결과가 완벽하지는 않지만, 노드의 또 다른 활용 사례, 특히 Color Ramp를 보여드리기 위한 좋은 기회가 됩니다.
아시다시피, Material은 Domain의 Voxels에서 생성되므로 Domain 레벨에서 정의되어야 합니다. 따라서 그 안의 Inflow 오브젝트에 서로 다른 Blackbody 노드를 할당할 수는 없습니다.
그러나 Inflow 오브젝트에는 Inflow 패널에서 정의되는 Smoke Color라는 필드가 있습니다. 이 색상은 Volume Info 노드를 통해 Domain Shader에서 가져올 수 있으며, 특히 Color 출력으로 불러올 수 있습니다.

이 필드를 Mix Shader 노드의 Factor로 사용하면, 각 Voxel에 대해 정의된 Smoke Color에 따라 서로 다른 Principled Volume 노드를 할당할 수 있습니다.
하지만 Mix Shader만 사용하면 단순히 두 Shader를 반반 섞기 때문에, Volume Info에서 오는 색상들을 날카롭게 구분하기 위해 Color Ramp를 Constant로 설정해야 합니다.
그런 다음 세 개의 Inflow 오브젝트에 각각 흰색, 회색, 검은색 Smoke Color를 왼쪽에서 오른쪽으로 할당했습니다.
첫 번째 Color Ramp는 검은색과 다른 색상을 구분합니다. 검은색은 0에 해당하므로 첫 번째 Mix Shader 노드의 첫 번째 Shader 입력으로 전달되며, 이 입력은 빨간 Blackbody Tint가 적용된 Principled Volume 노드에 연결되어 있습니다. 또한 Rendered 뷰에서 요소의 색상을 더 잘 확인하기 위해 3D 프리뷰에서 Denoise를 활성화했습니다.

Mix Shader의 두 번째 Shader 입력은 파란 Blackbody Tint가 적용된 Principled Volume 노드에 연결되어 있습니다. 따라서 Smoke Color가 검은색이면 빨간 Blackbody가 나오고, 검은색이 아니면 파란 Blackbody가 나옵니다.
그 다음은 또 다른 Mix Shader 노드인데, 이 노드는 Constant로 설정된 또 하나의 Color Ramp를 입력으로 사용하며, Color Stop이 Ramp의 정확히 중간 지점에 배치되어 있습니다.

이 경우 Smoke Color가 검은색과 회색 사이에 있으면 두 번째 Mix Shader의 첫 번째 Shader 입력이 사용됩니다. 이 Shader는 앞서 검은색과 회색을 구분한 결과이므로, 최종 색상은 빨강 또는 파랑이 됩니다.
반대로 Smoke Color가 회색과 흰색 사이에 있으면 두 번째 Mix Shader의 두 번째 Shader 입력이 사용됩니다. 이 입력은 초록 Blackbody Tint가 적용된 Principled Volume 노드에 연결되어 있습니다. 따라서 Smoke Color가 흰색인 오브젝트는 초록색으로 렌더링됩니다.
물론 두세 가지 색상이 섞인 불꽃 구체를 만드는 방법은 이것만 있는 것이 아니지만, 사례로 보여드리고 싶었습니다. 앞서 말씀드린 것처럼 구분이 완벽하지 않으므로, 더 나은 설정이나 다른 방법을 찾으시면 댓글로 공유해 주시길 권장합니다!
