볼류메트릭 렌더링이란? 구름부터 폭발까지, 볼륨 셰이더 완전 해설 image

볼류메트릭 렌더링이란? 구름부터 폭발까지, 볼륨 셰이더 완전 해설

글: Arndt von Koenigsmarck · 기술 감수: Sergen Eren · 최종 검토: 2026년 8월


컴퓨터 그래픽에 등장하는 대부분의 오브젝트는 속이 빈 껍데기입니다. 렌더링된 자동차도, 캐릭터도, 심지어 산맥도 대개는 아무것도 없는 공간을 감싼 얇은 표면일 뿐입니다. 단단한 물체라면 카메라에 보이는 것은 결국 표면이 전부이기 때문입니다. 하지만 자연에는 전혀 단단하지 않은 것들이 가득합니다. 구름, 안개, 연기, 불, 빛줄기 속을 떠다니는 먼지처럼 안을 들여다볼 수도 있고 통과해서 볼 수도 있으며 내부의 지점마다 빛이 다르게 반응하는 대상 말입니다. 이런 현상을 렌더링하는 일이 바로 볼류메트릭 렌더링이고, 그 모습을 기술하는 도구가 볼륨 셰이더입니다. 이 글에서는 두 가지를 모두 다룹니다. 먼저 개념과 물리를 살펴보고, 이어서 Maxon의 GPU 가속 렌더 엔진 Redshift 안에서의 구체적인 실무를 설명합니다.


볼류메트릭 렌더링(볼륨 렌더링이라고도 합니다)은 표면이 아니라 3차원 데이터 격자로부터 이미지를 계산하는 기법입니다. 일반적인 3D 모델이 바깥 껍데기를 기술하는 폴리곤으로 정의되는 것과 달리, 볼륨은 복셀(voxel), 즉 공간의 한 영역을 채우는 작은 셀들로 정의되며 각 셀은 밀도나 온도 같은 값을 담고 있습니다. 렌더러는 빛이 이 모든 셀을 지나며 겪는 변화를 계산합니다. 그래서 하나의 볼륨이 가장자리는 성기고, 중심부는 조밀하며, 그 안쪽은 빛나는 상태를 동시에 가질 수 있는 것입니다.

표면 렌더링과 비교해 보면 가장 쉽게 이해할 수 있습니다. 광선이 폴리곤 표면에 닿으면 렌더러는 정확히 한 지점에서 머티리얼을 평가하고 그것으로 끝납니다. 반면 광선이 볼륨 안으로 들어가면 평가할 단일 지점이 존재하지 않습니다. 광선은 계속 나아가고, 그 여정의 모든 구간이 빛을 흡수하거나 산란시키거나 새로 더할 수 있습니다. 픽셀이 2D 이미지 속 색을 가진 정사각형이라면, 복셀은 그 3D 형제, 즉 공간 격자 안의 값입니다. 이 차원 하나가 볼류메트릭 렌더링의 모든 것이며, 그 결과가 왜 그토록 아름다운지 그리고 왜 그토록 비싼지를 함께 설명해 줍니다. 

난류가 소용돌이치는 연기 시뮬레이션을 만들었습니다. 왼쪽 위는 그 결과로 만들어진 구름의 표면을 일반 폴리곤으로 시각화한 것이고, 오른쪽 위는 볼륨 셰이더로 렌더링한 것입니다. 볼륨 셰이더를 쓰면 연기의 사실적인 역광 표현은 물론 볼륨 내부의 섬세한 투명도 단계와 빛의 산란까지 구현할 수 있습니다.

여기서는 위에서 전체를 보여 준 시뮬레이션에 카메라를 더 가까이 가져가 계산 방식의 차이를 도식적으로 나타냈습니다. 초록색 격자는 최종 렌더링의 픽셀을 행과 열로 배열한 것입니다. 초록색으로 꽉 찬 픽셀은 현재 계산 중인 픽셀로, 카메라 시점에서 출발한 계산 광선(화살표)이 이 픽셀을 지나 씬의 3D 공간을 뚫고 들어갑니다. 단순한 폴리곤 모델(이미지 왼쪽)의 경우 광선이 표면에 닿으면 그 지점에서 필요한 정보를 모두 얻을 수 있습니다(빨간 표시 참고). 하지만 볼륨의 경우 이런 점 단위 정보만으로는 충분하지 않습니다. 연기를 사실적으로 렌더링하려면 계산 광선이 볼륨 내부의 여러 위치에서 밀도와 빛 산란 데이터를 포함한 정보를 수집해야 하기 때문입니다.

볼륨 셰이더는 공간을 차지하는 대상을 위한 머티리얼입니다. 표면을 기술하는 대신, 볼륨 내부의 모든 지점에 있는 매질이 빛과 어떻게 상호작용하는지를 렌더 엔진에 알려 줍니다. 오늘날 거의 모든 엔진이 이 설명을 동일한 세 가지 재료로 구성하는데, Redshift 문서는 각각을 표면 머티리얼에 빗댄 기억하기 좋은 비유로 제시합니다.

  • 산란(Scattering)은 볼륨에서 디퓨즈 컬러에 해당합니다. 매질 내부의 미세 입자에 빛이 얼마나, 그리고 어떤 색으로 튕겨 나오는지를 정의하며, 구름이 희고 연기가 회색인 이유가 바로 이것입니다.

  • 흡수(Absorption)는 투명도에 해당합니다. 매질이 빛을 얼마나 삼키는지를 정의하며, 짙은 연기가 어둡고 조밀한 볼륨이 불투명해지는 이유입니다.

  • 발광(Emission)은 자체 발광(incandescence, self illumination)에 해당합니다. 매질이 스스로 빛을 내도록 해 주며, 불과 폭발이 안쪽에서부터 타오르듯 빛나는 이유입니다.

영화에서 본 모든 구름, 안개층, 화염구는 대개 시뮬레이션 데이터가 구동하는 이 세 가지 동작의 조합입니다. Redshift에서는 Standard Volume 셰이더가 이 역할을 맡습니다. 구름, 연기, 불, 폭발을 위한 물리 기반 볼륨 머티리얼이죠. 검색을 통해 이 글에 도착한 분들을 위해 한 가지만 구분해 두겠습니다. 같은 용어를 빌려 쓴 'Volume Shader BM'이라는 유명한 GPU 스트레스 테스트도 있습니다. 그것은 벤치마크이지 머티리얼이 아닙니다. 이 글은 진짜 볼륨 셰이더에 관한 이야기입니다. 

물리학자들은 안개, 연기, 구름을 참여 매질(participating media)이라고 부릅니다. 빛이 표면에 닿을 때까지 가만히 두는 것이 아니라 공간 자체가 조명에 참여하기 때문입니다. 광선이 이런 매질을 지날 때는 네 가지 일이 일어날 수 있습니다. 빛이 흡수되어 열로 바뀔 수 있고, 빛이 광선의 경로 밖으로 산란되어 광선이 어두워질 수 있으며, 다른 곳에서 온 빛이 광선의 경로 안으로 산란되어 밝아질 수도 있고, 매질이 스스로 새로운 빛을 낼 수도 있습니다. 흡수와 외부 산란이 합쳐진 감쇠 효과를 소멸(extinction)이라 하고, 여정의 한 구간을 지나고도 살아남은 빛의 비율을 투과율(transmittance)이라고 합니다. 볼륨 셰이더의 파라미터란 결국 바로 이 값들을 아티스트가 다루기 쉽게 만든 손잡이입니다.

여기에 놀랄 만큼 큰 역할을 하는 개념이 하나 더 있습니다. 바로 위상 함수(Phase Function)로, 표면 머티리얼이 반사광을 어떻게 분포시키는지에 해당하는 볼륨 버전입니다. 빛이 산란된 뒤 어느 방향으로 계속 나아가는지에 답하죠. 연기 입자는 빛을 모든 방향으로 거의 균등하게 산란시키는데, 이를 등방성 산란(Isotropic Scattering)이라고 합니다. 반면 구름 속 물방울은 빛을 원래 진행 방향 그대로 압도적으로 앞쪽으로 밀어냅니다. 이 전방 산란(Forward Scattering) 덕분에 태양과 나 사이에 놓인 구름이 눈부신 은빛 테두리를 두르고, 역광을 받은 안개가 환하게 빛나는 것입니다. 렌더 엔진은 이를 Henyey-Greenstein 위상 함수로 모델링합니다. 1941년 천체물리학 논문까지 거슬러 올라가는 고전으로, -1(후방 산란, Back Scattering)에서 0(등방성 산란)을 거쳐 +1(전방 산란)에 이르는 이방성(anisotropy) 값 하나만 사용합니다. 특히 구름의 경우 Redshift는 더 새로운 Jendersie-d’Eon 모델도 제공하는데, 물방울의 실제 미(Mie) 산란을 근사해 Henyey-Greenstein보다 더 사실적인 전방 피크를 잡아냅니다.

각 렌더링은 모두 같은 구름을 뒤쪽에서 태양광으로 비춘 것입니다. 달라진 것은 볼륨 머티리얼의 이방성(anisotropy) 설정뿐으로, 왼쪽부터 각각 -0.9, 0, 0.85를 사용했습니다. 오른쪽 렌더링의 양(+)의 이방성 값에서는 광선이 구름 볼륨의 뒤쪽으로 더 많이 꺾이면서, 밀도가 낮은 구름 가장자리에서 햇빛이 훨씬 잘 드러나는 것을 확인할 수 있습니다.

내부 구조가 궁금한 분들을 위해, Redshift 개발자들이 직접 설명하는 Standard Volume 셰이더의 작동 방식을 소개합니다. 내부적으로 이 셰이더는 Redshift의 OpenPBR 및 Standard Surface 머티리얼에 들어 있는 Random Walk 방식 서브서피스 스캐터링(Subsurface Scattering)과 아주 가까운 친척입니다. 서브서피스 스캐터링은 피부나 왁스처럼 유한하고 균질한 매질 안을 빛이 떠도는 현상을 시뮬레이션하는데, Standard Volume 셰이더는 그와 똑같은 사고방식을 복셀마다 밀도가 달라지는 비균질 매질에 적용합니다. 파라미터도 거의 일대일로 대응합니다. Subsurface Color는 볼륨의 Scatter Color에, Subsurface Radius는 Transparency Color에, Subsurface Scale은 볼륨의 Depth 값에 대응합니다(다음 그림 참고).

이 그래픽은 서브서피스 스캐터링(왼쪽)과 볼륨 렌더링(오른쪽)을 비교한 것입니다. 서브서피스 스캐터링이 폴리곤 표면으로 둘러싸인 볼륨(왁스, 피부, 우유, 대리석 등) 내부의 빛 산란을 시뮬레이션하는 반면, 볼륨 셰이더는 폴리곤으로 정의되지 않은 공간(불꽃, 안개, 연기, 구름 등) 안에서 밀도나 온도에 따른 발광 같은 속성을 시뮬레이션합니다.

렌더링할 때 Redshift는 볼륨을 레이 마칭(ray marching)하며, 광선이 매질을 지나는 동안 복셀 단위로 샘플링합니다. 이때 샘플링하는 밀도 그리드는 색과는 무관하게, 각 복셀에 입자가 얼마나 있고 어디가 빈 공간인지를 나타내는 스칼라 값일 뿐입니다. Scatter Color는 그 부유 입자들의 알베도, 즉 그들이 반사해 내는 빛의 색입니다. 이방성(anisotropy) 설정은 산란된 빛을 앞으로, 뒤로, 혹은 모든 방향으로 균등하게 보내며, 기본값으로는 Henyey-Greenstein을, 구름 같은 수분 매질에는 Jendersie-d’Eon을 사용합니다.

가장 흥미로운 부분은 Transparency Color입니다. 이것은 평균 자유 행로(mean free path), 즉 각 파장의 빛이 매질 속에서 소멸되기까지 평균적으로 이동하는 거리를 아티스트가 다루기 쉽게 인코딩한 값입니다. 빨강, 초록, 파랑 값은 각각 해당 파장의 이동 거리를 나타내며, Depth 파라미터가 이 0에서 1까지의 값을 실제 거리로 곱해 줍니다. 이 거리는 센티미터 단위로 측정되고 씬 스케일을 인식합니다. 파장마다 흡수되는 속도가 다르기 때문에, 매질 속을 충분히 멀리 이동한 빛은 다른 파장이 모두 소진된 뒤 Transparency Color의 반대 색으로 물들게 됩니다. 깊은 물이 파랗게 보이는 것도 정확히 이 물리 때문이며, 미묘한 투명도 색조 하나가 평평한 Scatter Color만으로는 낼 수 없는 자연스럽고 유기적인 깊이를 볼륨에 부여하는 이유이기도 합니다. 

복셀을 따라 행진하는 방식은 렌더러가 볼륨을 어떻게 읽는지를 설명해 주지만, 진짜 비용은 그 안에서 빛이 얼마나 자주 방향을 바꾸는지에 있습니다. 엔진이 단 한 번의 바운스만 시뮬레이션하는 단일 산란(single scattering)이라면 옅은 아지랑이처럼 희박한 매질은 그럴듯해 보이지만, 조밀한 구름은 어둡고 생기 없게 렌더링됩니다. 실제 구름이 밝은 이유는 광자가 빠져나오기 전에 내부에서 수십, 수백 번 튕기기 때문입니다. 두꺼운 적운은 자신에게 닿는 빛의 최대 90퍼센트를 반사합니다. 이 다중 산란(multiple scattering)을 시뮬레이션한다는 것은 각 광선을 수많은 추가 바운스까지 따라간다는 뜻이고, 바운스가 하나 늘 때마다 작업량은 곱절로 늘어납니다. 볼륨 렌더링이 느리다는 평판을 얻은 솔직한 이유가 여기에 있으며, 동시에 GPU 렌더링과 영리한 근사(2부에서 다룹니다)가 진가를 발휘하는 지점이기도 합니다. 최신 엔진은 디노이징으로 비용을 한층 더 낮추지만, 볼륨은 표면보다 디노이즈하기가 훨씬 까다롭기로 악명이 높습니다. 디노이저를 안내해 주는 보조 데이터, 이를테면 표면 노멀이 구름 내부에는 아예 존재하지 않기 때문입니다. 

이 이미지들은 원통형 광원이 들어 있는 구름을 렌더링할 때 Volume Trace Depth 설정이 미치는 영향을 비교한 것입니다. 왼쪽부터 각각 1, 5, 31 값을 사용했습니다. 볼륨 내부에서 산란된 빛의 강도가 눈에 보이려면 볼륨 셰이더의 산란 강도가 충분히 높아야 한다는 점에 유의하세요.

볼륨은 그것을 시뮬레이션하는 소프트웨어와 렌더링하는 엔진 사이를 오갈 방법이 필요한데, 업계는 이 문제를 오래전에 OpenVDB로 정리했습니다. 원래 드림웍스 애니메이션에서 개발되어 2012년에 오픈 소스로 공개되었고, 기술 부문 아카데미상을 받았으며, 현재는 Academy Software Foundation 산하에서 관리되는 OpenVDB는 볼류메트릭 데이터 저장의 사실상 표준입니다. Redshift 문서는 이를 한 줄로 완벽하게 요약합니다. “OpenVDB 파일과 볼륨 렌더링의 관계는 EXR 파일과 HDR 이미지의 관계와 같다.” EXR이 픽셀을 저장한다면 VDB는 복셀을 저장하며, 그것도 희소(sparse) 방식으로 저장하기 때문에 성긴 연기 기둥 주위의 광대한 빈 공간은 디스크에서도 메모리에서도 거의 비용이 들지 않습니다.

VDB 파일 안에서 복셀 데이터는 이름이 붙은 그리드(grid)로 정리되며, Redshift는 셰이딩 맥락에서 이를 채널(channel)이라고 부릅니다. 이름은 규칙이라기보다 관례에 가깝지만 자주 쓰이는 것들은 정해져 있습니다. density는 각 복셀을 채운 입자의 양, 즉 볼륨의 실체가 어디에 있는지를 나타내는 무단위 값이고, temperature는 불의 발광을 구동하는 열, velocity는 모션 블러용이며, 가끔은 미리 색을 칠해 둔 볼륨을 위한 컬러 그리드도 있습니다. Redshift에서 채널 이름은 대소문자를 구분하므로, 많은 아티스트가 여기서 영문 모를 몇 분을 허비하곤 했습니다. VDB 파일은 어디서 구할 수 있을까요? Houdini, 실시간 유체 시뮬레이터 EmberGen, Cinema 4D에 내장된 Pyro 시스템 같은 시뮬레이션 도구가 모두 VDB를 내보내며, 연습용으로 쓸 수 있는 훌륭한 무료 소스도 있습니다. 유명한 월트 디즈니 애니메이션 스튜디오 구름 데이터셋과 JangaFX의 무료 VDB 팩이 대표적입니다. 


Redshift는 볼륨 렌더링을 몇 가지 도구로 나누어 두었고, 어떤 상황에 어느 것을 집어야 하는지 아는 것만으로 작업의 절반은 끝난 셈입니다. 구름, 연기, 불, 폭발처럼 밀도가 변하는 비균질(heterogeneous) 볼륨은 Redshift Volume 오브젝트로 불러옵니다. 이 오브젝트는 VDB 파일이나 애니메이션 VDB 시퀀스를 읽어 뷰포트에 바운딩 박스나 포인트 클라우드 프리뷰를 보여 줍니다. 그 볼륨의 룩은 이어서 Standard Volume 머티리얼이 정의합니다. 대기 중의 아지랑이나 안개처럼 균일한 매질, 즉 균질(homogeneous) 볼륨에는 복셀 데이터가 아예 필요 없습니다. Redshift Environment 오브젝트가 씬 전체 또는 높이가 제한된 층을 산란 매질로 채워 줍니다. 먼지 낀 공기 속 광선을 눈에 보이게 만들어 주는, 모두가 사랑하는 갓 레이(god ray), 즉 볼류메트릭 라이팅을 위한 도구이기도 합니다. 마지막으로 전용 Clouds 오브젝트는 절차적 하늘 전체를 생성합니다. 구름층을 영리한 배경으로 빠르게 렌더링하는 모드와, 고층 빌딩이나 항공기가 구름층을 뚫고 들어가 그 빛을 받을 수 있는 완전 볼류메트릭 모드를 함께 제공합니다. 

바깥에서 빛이 들어오는 유리창 예시입니다. 주변 대기를 시뮬레이션하지 않으면 창과 바닥 사이의 광선은 보이지 않습니다. Redshift Environment 오브젝트를 사용하면 안개나 눈에 보이는 대기, 예를 들어 높은 습도나 공기 중 먼지 입자로 생기는 대기를 시뮬레이션할 수 있고, 그 결과 오브젝트 사이의 광선까지 눈에 보이게 됩니다.

실무적인 제약 하나는 분명히 짚고 넘어가야 합니다. 볼륨은 반드시 GPU 메모리 안에 전부 들어가야 합니다. 볼륨은 Redshift의 아웃 오브 코어(out of core) 시스템에서 제외된 유일한 애셋 유형이므로, 가용 VRAM을 넘어서는 거대한 VDB는 렌더링을 느리게 만드는 정도가 아니라 아예 중단시킵니다. 시뮬레이션 해상도를 샷이 요구하는 만큼만 유지하는 것은 단순한 속도 판단이 아니라 메모리 예산의 문제입니다.

Standard Volume 머티리얼에는 두 가지 성격이 있습니다. 채널 필드에 그리드 이름을 직접 입력해 단독으로 쓰면 특별히 최적화된 고속 경로로 동작하며, 구름, 연기, 화염용으로 잘 다듬어진 프리셋을 갖춘 고전적이고 간편한 볼륨 셰이더처럼 작동합니다. 반면 입력 노드를 연결하면 완전히 프로그래밍 가능한 셰이더가 되어, 절차적 노이즈로 밀도와 색과 온도를 구동하고 그리드를 리맵하며 심지어 복셀을 디스플레이스해 디테일을 더할 수도 있습니다. 처음 시작할 때는 내장 필드만으로 충분하며, 다음 네 그룹의 설정이 대부분의 일을 해냅니다.

  • Volume channel과 Density. 채널 필드는 볼륨의 형태를 정의하는 VDB 그리드를 지정하며, 거의 언제나 density입니다. Density 파라미터는 여기에 곱해져 매질이 전체적으로 얼마나 짙거나 옅은지를 결정합니다. 그리드 이름은 정확히 입력하세요. 채널 이름은 대소문자를 구분합니다.

  • Scatter. Color와 Scale은 볼륨이 무엇을 얼마나 밝게 반사할지를 정합니다. Anisotropy Mode에서는 위상 함수를 고릅니다. -1에서 +1까지의 슬라이더를 가진 Henyey-Greenstein은 만능형으로 등방성 연기에 알맞고, Jendersie-d’Eon은 물방울을 통과하는 빛을 모델링하는 구름 전문가입니다.

  • Transparency. Transparency Color와 Depth는 1부에서 설명한 파장별 이동 거리를 구현합니다. 어두울수록 두껍고 밝을수록 얇으며, 어떤 색이든 깊이에 이르면 그림자까지 포함해 볼륨을 반대 색으로 물들입니다. 여기서는 아주 살짝의 채도만으로도 충분합니다. Depth는 센티미터 단위로 측정되므로 볼륨의 실제 크기에 맞춰 설정하세요.

  • Emission. 불과 폭발에는 emission 채널을 temperature 그리드로 지정하고 Blackbody 모드를 선택하세요. 온도를 켈빈 단위의 물리적으로 올바른 색과 강도로 변환해 줍니다. 3,000K 부근의 진한 빨강부터 9,000K를 넘어서는 흰색과 푸른 흰색까지 이어집니다. 대안인 Color 모드는 대신 그러데이션을 제공합니다. 검정에서 빨강, 노랑으로 이어지는 고전적인 화염 램프로, 의도적으로 물리를 무시하는 아트 디렉션용 불을 만들 때 쓰입니다.

불타는 횃불을 렌더링한 것으로, 불꽃과 연기를 서로 다른 온도로 표현했습니다(왼쪽부터 0, 3,000, 6,000, 9,000, 12,000켈빈). 이 조정은 씬을 다시 시뮬레이션할 필요 없이 나중에 Redshift Volume Standard 머티리얼에서 할 수 있습니다. 
시뮬레이션된 온도를 바탕으로 한 물리적으로 정확한 색과 밝기 분포에 의존하는 대신, 볼륨 머티리얼 안에서 사용자 지정 컬러 그러데이션과 일반적인 색 보정을 사용해 연기와 불꽃의 렌더링을 원하는 대로 커스터마이즈할 수도 있습니다.

1부에서 조밀한 볼륨은 다중 산란이 있어야 비로소 살아난다는 점을 확인했습니다. Redshift는 이를 Volume Trace Depth라는 렌더 설정으로 제공하는데, 함께 외워 둘 조건이 하나 있습니다. 볼류메트릭 다중 산란은 Brute Force 전역 조명(GI)에서 동작한다는 점입니다. 트레이스 뎁스를 기본값에서 올리면 구름은 잿빛 덩어리에서 빛을 머금은 설득력 있는 오브젝트로 바뀌지만, 렌더 비용은 기하급수적으로 늘어납니다. 전방 산란하는 구름은 뎁스를 올릴수록 이득이 크고, 등방성 연기는 훨씬 이른 시점부터 효과가 줄어듭니다. 발광하는 불은 그 빛이 주변 연기를 비추면서 아름다운 내부 광 번짐을 얻습니다.

Redshift는 트레이스 뎁스를 무작정 올리기 전에 숙련된 아티스트들이 먼저 손을 뻗는 세 가지 지름길도 제공합니다. 첫 번째는 Extinction Falloff로, 실제 바운스가 일어날 때마다 소멸을 조금씩 낮춰 수백 번의 추가 바운스 효과를 근사합니다. 기본값 0.2는 의도적으로 잡아 둔 최적점이며, 문서에 실린 구름 테스트에서는 이 값을 쓰지 않은 동일한 씬보다 더 밝고 사실적인 결과를 더 빠르게 렌더링해 냈습니다. 두 번째는 그 자연스러운 짝인 Anisotropy Falloff로, 바운스마다 이방성을 조금씩 낮춰 깊이 들어간 광선일수록 점점 더 등방적으로 산란하게 만듭니다. 이는 판 더 휠스트(van de Hulst)의 상사성 원리로 알려진 복사 전달 이론의 고전적 통찰을 흉내 낸 것입니다. 다중 산란이 강한 매질에서는 벌크 수송 특성만 같다면 산란 알베도와 이방성의 서로 다른 조합이 거의 구별되지 않는 외형을 만들어 낸다는 것이죠. 이방성 산란을 계산하는 비용이 비싸기 때문에, 바운스를 거치며 이를 완화하면 고차 산란을 시뮬레이션하는 동시에 볼륨을 더 싸게 렌더링할 수 있습니다. 세 번째는 Shadow Density Scale로, 실루엣을 바꾸지 않으면서 빛이 볼륨 더 깊숙이 침투하도록 해 주는 고전적인 편법입니다. 다중 산란이 만들어 내는 밝아짐 효과를 아주 적은 비용으로 흉내 냅니다. 균형 잡힌 볼륨은 대개 뎁스만 밀어붙이기보다 적당한 트레이스 뎁스와 이 보조 기능들을 함께 씁니다. 

Cinema 4D로 작업한다면 볼륨 데이터를 만들기 위해 외부 소프트웨어를 쓸 필요가 없습니다. 내장된 Pyro 시스템이 연기와 불과 폭발을 자체적으로 시뮬레이션하기 때문입니다. 워크플로는 기분 좋게 짧습니다. Pyro Emitter 태그가 붙은 오브젝트는 곧바로 시뮬레이션을 만들어 내기 시작하고, Pyro Output 오브젝트가 보통 density, temperature, velocity로 이루어진 채널을 모아 줍니다(Pyro 시뮬레이션 입문은 Cinema 4D 문서 여기에서 확인할 수 있습니다). 여기서 곧바로 렌더링해도 되고, 시뮬레이션을 VDB 시퀀스로 캐시한 뒤 Redshift Volume 오브젝트로 다시 불러와도 됩니다. 문서에서는 후자를 프로덕션에서 메모리를 아끼는 경로로 권장합니다. 셰이딩 쪽은 거의 자동입니다. Redshift Standard Volume 셰이더에 기본 제공되는 Pyro Volume 프리셋은 density 그리드가 산란에, temperature 그리드가 블랙바디 발광에 이미 연결된 상태로 제공되는데, 바로 이 두 연결이 날것의 시뮬레이션 데이터를 렌더링된 연기와 불로 바꿔 줍니다. 아티스트들이 자주 잊는 단계가 하나 있다면 모션 블러입니다. VDB 시퀀스는 정지된 스냅숏의 나열이기 때문에 Redshift는 velocity 그리드에서 움직임을 읽습니다. Volume 오브젝트의 Velocity 필드에 velocity를 입력하고, 블러가 시뮬레이션의 에너지에 어울릴 때까지 Velocity Scale을 올리세요. 주저할 필요 없습니다. 1,000을 훌쩍 넘는 값도 흔합니다. 

이미지 왼쪽은 볼륨 시뮬레이션을 만들거나 불러오는 첫 단계를 보여 줍니다. 여기서는 Cinema 4D의 Pyro 시뮬레이션으로 폭발 구름을 생성하고 그 애니메이션을 VDB 시퀀스로 저장했습니다. 이렇게 하면 언제든 다른 프로젝트에서 시뮬레이션을 재사용할 수 있고 렌더링도 메모리 측면에서 더 효율적입니다. 오른쪽 이미지들은 이어지는 단계를 요약합니다. 색과 발광을 제어하도록 볼륨 셰이더를 설정하고, 시뮬레이션에 조명을 넣고, 색을 보정하고, 글로우나 모션 블러 같은 시각 효과를 더하는 과정입니다. 이 모든 작업은 원하는 파이프라인과, 예를 들어 다른 렌더링이나 실사 촬영 소스와의 합성이 필요한지 여부에 따라 Cinema 4D와 Redshift에서 직접 하거나 후반 작업에서 처리할 수 있습니다.

  • 볼륨이 검게 나오거나 아예 보이지 않을 때: 채널 필드에 그리드 이름이 철자와 대소문자까지 정확하게 입력되어 있는지, 그리고 볼륨 기여도(volume contribution)가 0보다 큰 라이트가 최소 하나 있는지 확인하세요.

  • 볼륨이 노이지하거나 거칠어 보일 때: 라이트가 볼륨 노이즈를 좌우하므로 라이트 샘플을 먼저 올리세요. 산란이 강한 매질은 흡수가 강한 매질보다 더 많은 샘플이 필요합니다.

  • 볼륨이 각져 보일 때: 시뮬레이션 해상도가 너무 낮은 것입니다. 셰이더 리맵으로 완화할 수는 있지만, 근본적인 해결은 더 높은 해상도의 캐시뿐입니다.

  • VRAM 부족 오류로 렌더링이 중단될 때: VDB가 GPU 메모리에 들어가지 않는 것입니다. 시뮬레이션 해상도를 낮추거나, 캐시에서 쓰지 않는 그리드를 정리하거나, 이펙트를 나누세요.

  • 구름이 평평하고 잿빛으로 보일 때: Brute Force GI와 함께 Volume Trace Depth를 올리고, Extinction Falloff는 기본값 0.2로 유지하며, 뎁스를 더 밀어붙이기 전에 Shadow Density Scale을 살짝 낮춰 보세요.

  • 안개가 화면 전체를 뿌옇게 덮을 때: Environment 오브젝트의 Scattering 값을 대폭 낮추세요. 작은 값도 아주 강력합니다.

볼륨 셰이더를 쉽게 설명하면 무엇인가요?

볼륨 셰이더는 연기, 안개, 구름, 불처럼 공간을 채우는 매질을 위한 머티리얼입니다. 표면에 색을 입히는 대신, 볼륨 내부의 모든 지점이 빛을 어떻게 흡수하고 산란시키고 방출하는지를 렌더러에 알려 주며, 보통 복셀 그리드에 저장된 시뮬레이션 데이터가 이를 구동합니다. 

볼륨 렌더링과 표면 렌더링은 어떻게 다른가요?

표면 렌더링은 광선이 폴리곤 껍데기에 닿는 단 하나의 지점에서 머티리얼을 평가합니다. 볼륨 렌더링은 광선을 복셀로 이루어진 3D 격자 안까지 따라가 경로 전체에 걸친 빛의 상호작용을 누적합니다. 덕분에 어떤 표면도 흉내 낼 수 없는, 반투명하고 내부에서 빛나는 매질을 표현할 수 있습니다. 

VDB 파일이란 무엇인가요?

VDB는 볼류메트릭 데이터를 위한 업계 표준 파일 포맷으로, 드림웍스 애니메이션에서 시작된 오픈 소스 라이브러리 OpenVDB를 기반으로 합니다. density, temperature, velocity 같은 이름의 희소 복셀 그리드를 저장하며, Houdini, EmberGen, Cinema 4D의 Pyro 시스템 같은 도구에서 내보낼 수 있습니다. 

복셀이란 무엇이고 픽셀과 어떻게 다른가요?

픽셀은 2D 이미지 속에 있는 색을 가진 정사각형 하나입니다. 복셀은 3D 격자 속의 셀 하나로, 공간의 한 위치에서 밀도나 온도 같은 값을 담습니다. 볼륨 렌더링은 수백만 개의 3D 복셀을 통과하는 빛을 시뮬레이션해 2D 픽셀을 계산합니다. 

볼륨 렌더링 결과가 노이지한 이유는 무엇인가요?

볼륨 노이즈는 대개 조명에서 옵니다. 산란 매질 내부에서 라이트의 기여도를 제대로 해석하려면 충분한 샘플이 필요하므로, 전체 품질 설정을 올리는 것보다 라이트 샘플을 올리는 편이 대체로 더 효과적입니다. 구름처럼 산란이 지배적인 볼륨은 옅게 흡수하는 연기보다 눈에 띄게 더 많은 샘플을 필요로 합니다. 

사실적인 불은 어떻게 렌더링하나요?

시뮬레이션의 temperature 그리드로 Blackbody 모드의 발광을 구동하세요. 블랙바디 발광은 물리적 온도를 올바른 불의 색과 강도로 자동 변환해, 3,000켈빈 부근에서는 붉게 빛나다가 온도가 오를수록 흰색으로 옮겨 갑니다. Cinema 4D에서는 Standard Volume 셰이더가 여러 볼륨 시뮬레이션 시스템에 알맞은 프리셋을 이미 제공하며, 해당 복셀 그리드 이름도 자동으로 입력해 줍니다. 

갓 레이는 어떻게 만드나요?

갓 레이는 볼류메트릭 라이팅입니다. 빛이 옅은 산란 매질을 통과할 때 생기는, 눈에 보이는 광선이죠. Redshift에서는 Redshift Environment 오브젝트를 추가하고 산란을 소량 켠 뒤, 창문을 통과하는 햇빛처럼 강하면서 일부가 가려진 광원을 씬에 두면 됩니다. 광선과 볼류메트릭 그림자가 자연스럽게 나타납니다. 

볼륨 렌더링은 왜 그렇게 오래 걸리고, 어떻게 하면 빨라지나요?

볼륨이 비싼 이유는 광선이 경로를 따라 여러 지점에서 샘플링되고, 조밀한 매질 안에서는 여러 번 산란할 수 있기 때문입니다. Redshift에서 속도를 높이려면 시뮬레이션 해상도를 필요한 만큼만 유지하고, Volume Trace Depth는 적당한 값으로 쓰고, Extinction Falloff는 기본값으로 두고, 바운스를 늘리는 대신 Shadow Density Scale을 낮추고, 나머지는 GPU와 디노이저에 맡기세요.

가입

MAXON에 대한 모든 정보를 최신 상태로 유지하십시오. 계정을 만들고 최신 뉴스, 세일즈 및 이벤트 정보를 받아 보십시오.