Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

뭐라도 쓰겠지

25.04.18 / Volumetric Light, Volumetric Shadow 본문

프로그래밍/게임 개발

25.04.18 / Volumetric Light, Volumetric Shadow

김데피 2025. 4. 18. 18:48

Volumetric Light와 Volumetric Shadow는 빛이 안개나 먼지 입자 같은 매질(Volume)을 통과하면서 생기는 시각적 효과를 일컫는다. 일반적인 표면 조명만 계산하는 것이 아니라, 공간 내의 부유 물질 때문에 빛이 산란하고 약해지며, 이로 인해 빛의 빔(Beam), 광선(Rays) 또는 그림자가 공기 중에 부피감을 가지고 보이는 것이 특징이다.


Volumetric Light란?

  • 개념:
    • Volumetric Light는 빛이 공간(3D 볼륨)을 통과할 때 산란(Scattering)과 흡수(Absorption)를 시뮬레이션해, 공기 중에서도 빛의 흔적(광선)이 보이도록 하는 기법이다.
    • 일상생활에서 안개 낀 풍경이나 어두운 무대 위에서 스포트라이트가 내려올 때, 그 빛의 빔이 공기 중의 미세 입자에 의해 시각적으로 드러나는 모습을 상상하면 된다.
  • 특징:
    1. 실감 나는 분위기 연출
      • 단순한 면(표면)에 떨어지는 빛 뿐만 아니라, 빛이 지나는 경로 자체르 표현하므로, 드라마틱한 분위기를 낼 때 쓰인다.
    2. 안개(Fog)나 먼지(Dust) 시뮬레이션
      • Volumetric Light는 안개, 먼지, 연기 등 매질이 있는 환경에서 특히 눈에 잘 띄며, 장면에 깊이감을 더해준다.
    3. 퍼포먼스 부담
      • 라이팅 계산이 화면 픽셀 뿐 아니라 3차원 공간(Volume)에 대한 샘플링으로 확장되기 때문에, 높은 연산 비용이 들어갈 수 있다.

 

Volumetric Shadow란?

  • 개념:
    • Volumetric Shadow는 Volumetric Light와 함께, 빛의 차폐(가림)에 의해 빛의 빔 내부에 생기는 그림자를 표현하는 효과이다.
    • 즉, 빛이 물체에 가려지면 광선 빔 내부에도 그림자가 드리워지고, 이를 3D 볼륨에서 계산하여 광선 속 그림자가 보이도록 처리한다.
  • 특징:
    1. 빛과 그림자의 공간적 체적감
      • 일반 표면 그림자는 단순히 바닥이나 벽에 투영되지만, Volumetric Shadow는 안개나 공기 중에 그림자가 드리워지므로 장면에 극적인 깊이감을 부여한다.
    2. 정확한 계산 난이도
      • Volumetric Light 자체도 비용이 높은데, 거기에 그림자까지 세밀히 표현하려면 3D 샘플링과 레이트레이싱을 결합해 더욱 복잡해질 수 있다.
    3. 실감 나는 연출
      • 예를 들어, 해가 지는 숲 속에서 먼지 낀 공기 사이로 나무가 빛을 가리는 모습, 파이프가 스포트라이트 빛의 일부를 차단해 생기는 공기 중 그림자 등이 있다.

실제 구현 기법

 

1. Ray Marching / Volume Ray Casting

  • Volumetric 이펙트를 공간을 여러 격자(Voxel)나 슬라이스로 나눠 샘플링하면서 빛의 감쇠∙산란을 계산한다.
  • 간단히 말해, 카메라에서부터 씬 방향으로 짧은 거리마다 빛의 양을 확인하며, "이만큼 빛이 줄어들었다" 혹은 "이만큼 산란됐다"를 누적해 렌더링한다.

2. Shadow Map + Volumetric Integration

  • 이미 계산된 Shadow Map을 활용해, 볼륨 셰이더가 그 그림자 영역을 참고해 광선이 차단되는 구간을 표현한다.
  • 유니티나 언리얼 등에서는 Volumetric Fog를 지원하며, 라이트와 연동된 Volumetric 효과를 옵션으로 제공한다.

3. 최적화 기법

  • 낮은 해상도의 볼륨 텍스처 사용 (각 픽셀 대신 큰 볼륨 셀 단위)
  • Temporal Reprojection, Noise + Dithering 기법을 써서 가짜 볼륨을 부드럽게 보이게 한다.
  • 거리에 따라 샘플링 횟수를 줄이거나, 특정 구역에만 집중적으로 계산한다.

활용 예시

 

1. 게임 / 실시간 렌더링

  • 호러 게임에서 창문 틈새로들어오는 햇빛 빔, 지하실 먼지 사이로 투과하는 라이트 등을 표현
  • 숲 속, 신비로운 분위기의 판타지 게임에서 흔히 "God Rays"라고 부르는 빛 기둥 효과

2. 영화 / 시네마틱

  • 어두운 무대나 실내에서 스포트라이트가 공기를 밝히면서, 인물 주변에 보이는 "광선"과 "그림자" 연출
  • SF 등에서 레이저나 빔 무기가 Volumetric 효과와 함께 시각화

3. VR / 시뮬레이션

  • 안개 낀 환경 시뮬레이션이나, 기상/연기 효과 등을 리얼하게 재현하는데 이용

이러한 Volumetric 효과는 장면에 매우 깊이 있고 실감 나는 연출을 가능하게 하지만, 계산 비용이 높으므로 게임 엔진이나 렌더러에서는 다양한 최적화 기법을 활용해 실용되고 있다.