volumetic light map
공간에 대한 빛의 정보를 저장하는 라이트 맵. 간접광, 즉 광원으로부터 물체로 직접적으로 쏘아지는 빛이 아닌 물체에 반사되서 다시 물체로 쏘아지는 빛의 정보를 담을 수 있는 라이트 맵. 일반적인 라이트맵과는 다르게 공간의 형태를 저장하기 때문에 단순 텍스쳐의 형식이 아니다. 3차원 구면조화함수를 이용하여 정보들을 저장하고 해당 공식에 따라 산출되는 수치들을 저장하는 방식으로 되어 있기에 일반적인 라이트맵에 비하여 저장 용량이 작다.
해당 데이터를 이용하여 Specular(반사광)을 연산하는데 이용할 수 있다.
아래는 언리얼 공식 문서의 설명내용
라이트매스는 스태틱 메시의 간접광에 대해 표면 라이트맵 을 생성합니다. 하지만 (캐릭터같은) 다이내믹 오브젝트는 간접광도 받을 방법이 필요합니다. 이는 빌드 시간에 Volumetric Lightmap (볼류메트릭 라이트맵)이라는 곳에 모든 점의 미리계산 라이팅을 저장한 뒤 런타임에 다이내믹 오브젝트의 간접광에 대한 라이팅 보간에 사용하는 방식으로 이루어집니다.
일반적인 수준에서, 볼류메트릭 라이트맵 시스템의 작동 방식은 다음과 같습니다:
- 라이트매스가 레벨 전반에 걸쳐 라이팅 샘플을 배치하면 라이팅 빌드 도중 그에 대한 간접광을 계산합니다.
- 다이내믹 오브젝트를 렌더링할 때가 오면, 볼류메트릭 라이트맵을 셰이딩 대상 각 픽셀에 보간, 미리계산 간접광을 만듭니다.
- 빌드된 라이팅이 없는 (즉 오브젝트가 새 것이거나 너무 멀리 이동한) 경우, 라이팅을 리빌드할 때까지 스태틱 오브젝트에 대한 볼류메트릭 라이트맵에서 각 픽셀까지 라이팅 보간합니다.
Lightmass Importance Volume (라이트매스 임포턴스 볼륨)을 배치하면, Volumetric Lightmap (볼류메트릭 라이트맵)은 4x4x4 셀로 이루어진 브릭(라이팅 샘플)을 만듭니다. 라이트매스를 실행하면, 이 셀을 전체 라이트매스 임포턴스 볼륨에 걸쳐 배치한 뒤 씬의 스태틱 지오메트리 주변에는 더욱 많은 셀을 사용하여 더 좋은 간접광 결과를 캡처합니다.
각 점들( 또는 구체들)은 볼류메트릭 라이트맵 라이팅 샘플로, Third Order Spherical Harmonic (3차 구면 조화 함수)를 사용하여 모든 방향에서 들어오는 빛을 저장합니다.
오브젝트 근처에, 아무 브릭 안에 있는 스태틱 지오메트리는 더 많은 셀을 사용하며, 여기서 간접광 변화가 가장 심합니다. 이 데이터 구조체를 통해 공간 내 임의 지점으로의 간접광 보간을 GPU 에서 할 수 있습니다.
(왼쪽에서 오른쪽 순) 볼륨 내 스태틱 메시가 하나 배치된 라이트매스 임포턴스 볼륨입니다. 스태틱 지오메트리 주변 셀은 밀도가 높습니다; 4x4x4 셀 배치를 보여주는 브릭 한쪽 면에 대한 예제 표현입니다; 같은 셀의 예제 표현인데 라이팅 빌드 도중 스태틱 지오메트리가 있을 때 밀도가 높아집니다.