icon
6장 : 나이아가라 렌더링 기본 기법

글로벌 일루미네이션과 파티클


언리얼 엔진 5부터는 글로벌 일루미네이션(Global Illumination, GI) 시스템이 크게 발전하여, 실시간으로 복잡하고 사실적인 빛의 반사를 시뮬레이션할 수 있게 되었습니다. 글로벌 일루미네이션은 단순히 직접적인 광원뿐만 아니라, 빛이 오브젝트에 반사되어 다른 오브젝트를 간접적으로 밝히는 효과까지 포함합니다. 이는 씬의 전반적인 분위기와 현실감을 극대화하는 핵심 기술입니다.

나이아가라 파티클 시스템도 이러한 글로벌 일루미네이션의 혜택을 받을 수 있으며, 파티클이 간접광에 영향을 받거나, 스스로 간접광을 방출하여 주변 환경에 영향을 미치는 방식으로 상호작용할 수 있습니다. 이 절에서는 나이아가라 파티클이 언리얼 엔진의 글로벌 일루미네이션 시스템과 어떻게 연동되는지, 그리고 이를 활용하여 시각 효과를 한층 더 풍부하게 만드는 방법에 대해 알아보겠습니다.


글로벌 일루미네이션 시스템의 종류

언리얼 엔진 5에서는 주로 다음과 같은 글로벌 일루미네이션 솔루션이 사용됩니다.

  • Lumen (루멘): 언리얼 엔진 5의 기본 실시간 글로벌 일루미네이션 및 반사 시스템입니다. 동적인 환경에서도 매우 사실적인 간접광과 반사 효과를 제공하며, 대부분의 나이아가라 파티클은 Lumen의 영향을 받습니다.
  • Screen Space Global Illumination (SSGI): 화면 공간 기반의 GI 솔루션으로, Lumen보다 가볍지만 화면에 보이는 영역에만 국한되는 제약이 있습니다.
  • Baked GI (라이트맵): 빌드 시간에 계산되어 저장되는 정적인 GI 솔루션입니다. 동적인 파티클에는 직접적인 영향을 주기 어렵지만, 파티클이 배치된 환경의 베이크된 간접광에는 영향을 받습니다.

나이아가라 파티클은 주로 Lumen과 같은 실시간 GI 시스템과의 연동을 통해 가장 큰 시각적 이점을 얻을 수 있습니다.


파티클이 간접광을 받는 방식

기본적으로 나이아가라 파티클의 머티리얼이 Default Lit 셰이딩 모델을 사용하고 있다면, 주변 환경의 간접광에 영향을 받아 렌더링됩니다. 즉, 파티클이 어두운 공간에 있다면 어둡게, 밝은 공간에 있다면 밝게 보이며, 주변 오브젝트에서 반사되는 색상에 의해 파티클의 색상도 미묘하게 영향을 받을 수 있습니다.

  • 설정

    파티클에 적용된 머티리얼을 열고 Shading ModelDefault Lit 으로 설정합니다.

    Base Color, Roughness 등의 릿(Lit) 머티리얼 속성을 파티클의 속성(Particle Color, Niagara Particle Attribute)과 연동하여 정의합니다.

  • 고려 사항
    • Default Lit 머티리얼은 Unlit 머티리얼보다 렌더링 비용이 높습니다. 대규모 파티클에 적용 시 성능 저하가 발생할 수 있습니다.
    • 대부분의 파티클 효과는 자체 발광하는 Unlit 머티리얼을 사용하므로, 간접광을 직접 받는 경우는 드뭅니다. 그러나 파편, 먼지, 눈과 같이 월드의 빛을 받아야 현실적인 효과에 유용합니다.

파티클이 간접광을 방출하는 방식

나이아가라 파티클이 스스로 빛을 내어 주변 환경을 간접적으로 밝히는, 즉 글로벌 일루미네이션 소스 역할을 하도록 설정할 수 있습니다. 이는 폭발, 마법 주문, 불꽃 등 밝게 빛나는 파티클 효과가 주변 벽이나 오브젝트에 색상 반사를 일으켜 더욱 현실적인 씬을 만드는 데 매우 효과적입니다.

  • Light RendererAffect Global Illumination:
    • 이전 절에서 다룬 Light Renderer 모듈에는 Affect Global Illumination이라는 중요한 속성이 있습니다.
    • 설정: Light Renderer를 선택하고 디테일(Details) 패널에서 이 옵션을 활성화합니다.
    • 효과: 이 옵션을 활성화하면 Light Renderer가 생성하는 동적 포인트 라이트가 Lumen과 같은 글로벌 일루미네이션 시스템의 간접광 계산에 기여하게 됩니다. 결과적으로 파티클의 빛이 주변 지오메트리에 반사되어 간접 조명을 생성합니다.
  • 고려 사항
    • Affect Global Illumination을 활성화하면 Light Renderer의 성능 비용이 더욱 증가합니다. 매우 신중하게 사용해야 하며, 최대한 적은 수의 파티클에만 적용하는 것이 좋습니다.
    • Lumen 시스템의 설정(프로젝트 세팅, 포스트 프로세스 볼륨 등)에 따라 간접광의 강도나 품질이 달라질 수 있습니다.
    • 실시간 GI 시스템은 CPU/GPU 리소스를 많이 소모하므로, 개발 중인 플랫폼의 성능 한계를 고려해야 합니다.

이미시브 머티리얼과 GI

Unlit 셰이딩 모델을 사용하는 파티클 머티리얼의 Emissive Color 출력도 Lumen의 간접광 계산에 기여할 수 있습니다. 즉, 파티클 자체가 직접적인 라이트를 생성하지 않더라도, 그 표면이 매우 밝게 빛나면 Lumen이 이를 간접광의 소스로 인식하고 주변을 밝히는 효과를 낼 수 있습니다.

  • 설정

    파티클에 적용된 머티리얼을 열고 Shading ModelUnlit 으로 설정합니다.

    Emissive Color 핀에 높은 강도(밝은 색상에 큰 숫자 곱하기)의 색상 정보를 연결합니다. (예: Particle Color * Constant_Float (100.0)).

    포스트 프로세스 볼륨(Post Process Volume)에서 Lumen 섹션의 Emissive Light 관련 설정을 조정하여, 이미시브 머티리얼이 간접광에 얼마나 기여할지 조절할 수 있습니다.

  • 장점
    • Light Renderer를 직접 사용하는 것보다 성능 비용이 저렴할 수 있습니다.
    • 매우 밝은 Unlit 파티클이 자연스럽게 주변을 밝히는 시각적인 효과를 얻을 수 있습니다.
  • 고려 사항
    • 이 방법은 Light Renderer처럼 정확한 광원 위치에서 빛을 내는 것이 아니라, 렌더링된 파티클의 픽셀 색상을 기반으로 간접광을 생성하는 방식입니다. 따라서 작은 파티클이 매우 강하게 빛나도 주변을 효과적으로 밝히지 못할 수 있습니다.
    • Emissive Color 강도를 너무 높게 설정하면 파티클 자체가 과도하게 밝게 보일 수 있으므로, 적절한 균형을 찾는 것이 중요합니다.

직접 해보기: 파티클이 주변을 밝히도록 설정

이전에 Light Renderer를 추가했던 NS_BasicSpawn 시스템을 다시 열고, 이번에는 Light Renderer의 GI 기여를 활성화하여 파티클 빛이 주변 벽을 밝히는지 확인해 보겠습니다. (Lumen 활성화된 프로젝트에서 테스트해야 효과가 보입니다.)

NS_BasicSpawn 시스템을 엽니다.

Render 섹션의 Light Renderer를 선택합니다.

디테일(Details) 패널에서 Affect Global Illumination 옵션을 체크합니다.

나이아가라 시스템을 게임 레벨의 어두운 공간 (예: 벽으로 둘러싸인 방)에 배치하고, 주변에 다른 광원이 없는 상태에서 시스템을 재생해봅니다.

파티클에서 나오는 빛이 주변 벽에 반사되어 벽이 간접적으로 밝아지는 것을 확인할 수 있을 겁니다. 만약 잘 보이지 않는다면, Light RendererIntensity를 더 높여보고, Lumen 시스템이 프로젝트에 활성화되어 있는지 다시 확인합니다.


글로벌 일루미네이션과의 연동은 파티클 효과에 엄청난 시각적 깊이와 현실감을 더해줍니다. 특히 Lumen과 같은 실시간 GI 솔루션과 나이아가라의 Light RendererEmissive Color 활용은 시각 효과를 씬에 더욱 자연스럽게 통합시키는 핵심 요소입니다. 하지만 그만큼 성능 비용이 높으므로, 항상 최적화와 시각적 품질 사이의 균형을 염두에 두고 작업해야 합니다.