Unity URP 볼류메트릭 라이트 (Unity-URP-Volumetric-Light)
요약
Unity URP Volumetric Light 패키지는 Unity 6 이상 버전을 지원하며, 메인/스팟/포인트 라이트의 볼류메트릭 그림자 및 라이트 쿠키 기능을 제공합니다. 포워드, 디퍼드 등 다양한 렌더링 경로에서 작동하며, 특히 실시간 및 혼합 라이트를 지원하여 URP 볼륨 시스템에 통합됩니다.
핵심 포인트
- Unity 6 이상 버전부터 사용 가능하며, Render graph를 지원합니다.
- 메인/스팟/포인트 라이트의 그림자 및 라이트 쿠키 기능을 제공합니다.
- Forward+, Deferred+ 경로 사용 시 성능 최적화가 권장됩니다.
- DirectX11, Vulkan 등 다양한 플랫폼에서 검증되었습니다.
요구 사항
2022.3 LTS 이후 버전부터 Unity 6000.6까지의 모든 Unity 버전을 사용합니다.
기능
- Unity 6 이상을 위한 렌더 그래프(Render graph) 및 호환성 모드 지원.
- 메인 라이트, 스팟 라이트, 포인트 라이트를 위한 지원.
- 위에서 설명한 라이트에 대한 그림자 및 라이트 쿠키(light cookies) 지원.
- 실시간 및 혼합 라이트(mixed lights) 지원.
- Unity 2023.1 이상을 위한 APV 지원.
- 원근 투영(Perspective) 및 직교 투영(Orthographic) 지원.
- 단일 패스 VR 렌더링(Single pass VR rendering) 지원. (VR 관련 작업은 하지 않았으므로 사용자들에 의해 검증됨)
- URP 볼륨 시스템에 매끄럽게 통합됩니다.
- 포워드(forward), 디퍼드(deferred), 포워드+(forward+) 및 디퍼드+(deferred+) 렌더링 경로에서 작동합니다. 제한 사항 섹션을 참조하세요.
- DirectX11, DirectX12, OpenGLES3, OpenGLCore, Vulkan에서 검증되었습니다.
설치 방법
패키지를 설치하는 권장 방법은 Unity의 패키지 매니저(Package Manager)를 이용하는 것입니다.
설치하기 전에 URP가 프로젝트에 설치되어 있고 올바르게 설정되었는지 확인하세요.
그런 다음 이 패키지를 설치할 수 있습니다:
-
Unity 내부에서
-
URP Renderer에 볼류메트릭 포그 렌더러 기능을 추가합니다.
-
카메라와 URP Renderer 모두에서 후처리(post-processing)를 활성화합니다.
-
장면에 볼륨을 추가하고, 오버라이드(override)로 "Custom->Volumetric Fog"를 추가합니다.
-
포그가 기본적으로 비활성화되어 있으므로, "Enabled" 체크박스를 선택합니다.
-
필요에 따라 "Enable Main Light Contribution"과 "Enable Additional Lights Contribution"도 활성화되었는지 확인해야 합니다. 이들 역시 기본적으로 비활성화되어 있습니다.
-
스팟 라이트(spot light)와 포인트 라이트(point light)의 경우, 볼류메트릭 포그에 기여하기를 원하는 라이트에 "VolumetricAdditionalLight" 컴포넌트를 추가합니다.
-
여전히 포그가 보이지 않는다면, 다양한 볼륨 매개변수를 조정하거나 라이트 강도를 높여보세요.
알려진 제한 사항 (Known limitations)
- 다중 패스 VR 렌더링은 지원되지 않습니다.
- WebGL은 지원되지 않습니다. https://github.com/CristianQiu/Unity-URP-Volumetric-Light/issues/7 참고.
- Switch 1/2 및 PS4 콘솔에서는 테스트하지 않았습니다. v0.5.6 기준 Steam Deck, Xbox One/XSX, PS5에서 사용자들에 의해 검증되었습니다.
- 투명 객체는 포그와 올바르게 블렌딩되지 않습니다.
- 완전히 베이크된 라이트(Fully baked lights)는 APV를 통해서만 지원됩니다.
- 포그는 카메라로부터 특정 거리까지만 렌더링됩니다.
- 특정 시야각에서 일부 광 영역에 더 많은 노이즈가 감지될 수 있습니다.
- 포워드(forward) 또는 디퍼드(deferred) 렌더링 경로를 사용할 때, 여러 추가 라이트를 추가하면 성능에 큰 영향을 줄 수 있습니다. 추가 라이트 지원이 필요한 경우 최상의 성능을 위해 Forward+ 또는 Deferred+ 사용을 강력히 권장합니다.
알려진 버그 (Known Bugs)
- URP Renderer에서 "Transparent Receive Shadows"가 꺼져 있을 때 라이트의 볼류메트릭 그림자(volumetric shadows)에 문제가 있습니다. 만약 라이트의 볼류메트릭 그림자에 문제가 있다면, 해당 설정을 켜야 할 수 있습니다. https://github.com/CristianQiu/Unity-URP-Volumetric-Light/issues/10 참고.
TODO
시간이 날 때마다 이 프로젝트에 돌아오고 싶어서 몇 가지 추가하고 싶은 것들이 있습니다.
그 중 일부는 (특정 순서 없이):
- WebGL 지원.
- 성능 및 품질 향상: 쿼터 해상도 렌더링, 리프로젝션(reprojection), 개선된 투명도 지원 등...
- 새로운 기능: 밀도 볼륨(density volumes), 노이즈(noise), 자체 그림자(self shadowing) 등...
- 그리고 물론... 버그 수정! 예상치 못하거나 버그가 있는 부분이 있다면 주저하지 말고 이슈를 열어주세요.
미리보기 (Preview)
제가 인디 개발자로 작업 중인 타워 디펜스에 사용하고 있습니다.<br><br>

또한 Siesta Games 스튜디오와 협력하여 올해 출시될 로그라이크 덱빌더 체스류 게임인 Empire in Decay에 이를 구현하고 있습니다.
나중에 게임에서 사용했던 일부 기능들을 포함하여 새로운 버전을 출시할 계획입니다.
지금 데모 및 위시리스트를 플레이하거나 출시 트레일러에서 볼륨 포그가 작동하는 모습을 확인하실 수 있습니다! <br><br>


AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub GameDev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기