URP 수중 효과 (Underwater Effects)
요약
본 문서는 Unity URP를 기반으로 한 포괄적인 수중 렌더링 프레임워크인 'URP Underwater Effects'를 소개합니다. 이 프레임워크는 볼류메트릭 선 샤프트, 코스틱, 안개 등 다양한 수중 효과와 투명 깊이 지원 기능을 제공하여 사실적인 수중 환경 구현을 가능하게 합니다.
핵심 포인트
- 볼류메트릭 선 샤프트, 코스틱, 굴절 등 다채로운 수중 효과를 제공합니다.
- 공유 렌더링 프레임워크와 RenderGraph를 통해 모듈식이고 확장 가능한 시스템을 구축했습니다.
- 투명 깊이 지원으로 유리, 포털 등 투명 개체도 수중 안개 및 감쇠에 참여할 수 있습니다.
- 성능 최적화를 위해 다운샘플링, 리소스 재사용 등의 기술을 적용했습니다.
URP 수중 효과 (Underwater Effects)
물 표면 아래에 렌더링되는 수중 효과 구현체입니다.
이것은 단순한 수중 안개 효과로 시작하여 점차 URP를 위한 완전한 수중 렌더링 프레임워크로 발전했습니다. 작은 실험으로 시작했던 것이 완전한 수중 렌더링 효과 모음집으로 성장했으며, 이 지점에서는 제가 확실히 너무 멀리 갔습니다 lol.
데모 (Demo)
<p align="center"> <img src="https://raw.githubusercontent.com/End3r6/URPUnderwaterEffects/master/GIF/Shot_02.gif"> <img src="https://raw.githubusercontent.com/End3r6/URPUnderwaterEffects/master/GIF/Showcase_WaterLine.gif"> </p>기능 (Features)
Current 효과:
- 볼류메트릭 선 샤프트 (Volumetric Sun Shafts)
- 코스틱 (Caustics)
- 안개 (Fog)
- 굴절 (Refraction)
- 수면 굴절 (Water Line Refraction)
- 주광 및 주변 색상 기반 색상 변화
프레임워크 기능:
- 공유 수중 렌더링 프레임워크
- 사용자 정의 수중 효과 지원
- 효과 순서 지정 시스템 (Effect ordering system)
- 공유 수중 리소스
- 투명 깊이 지원 (Transparent depth support)
- 개체별 투명 안개 참여
- 볼륨 기반 워크플로우 (Volume driven workflow)
- RenderGraph 구현
추가 포함 사항:
- 버블 파티클 프리팹 (Bubble particle prefab)
사용 방법 (How To Use)
시작하는 방법에 대한 정보는 설정 가이드 (Set Up Guide)를 참조하세요!
투명 깊이 지원 (Transparent Depth Support)
투명 개체도 수중 안개에 참여할 수 있습니다.
TransparentDepthSettings 컴포넌트를 투명 깊이 시스템에 기여해야 하는 모든 렌더러에 추가하세요.
개체별 설정에는 현재 다음이 포함됩니다:
- 두께 (Thickness)
- 불투명도 (Opacity)
투명 깊이 시스템은 _TransparentDepthTexture라는 전역 텍스처를 생성하며, 이는 사용자 정의 수중 효과에서 샘플링될 수 있습니다.
이를 통해 다음과 같은 개체들이 수중 안개 및 감쇠(attenuation)와 통합될 수 있습니다:
- 유리 (Glass)
- 관측 돔 (Observation domes)
- 힘의 장 (Force fields)
- 포털 (Portals)
- 실드 (Shields)
성능 (Performance)
Version 4.0에서는 전체 RenderGraph 재작성(rewrite)과 공유 수중 렌더링 프레임워크를 도입했습니다.
현재 기능에는 다음이 포함됩니다:
- RenderGraph
- 공유 렌더링 리소스
- 공유 수중 마스크
- 다운샘플링 (Downsampling)
- 블루 노이즈 샘플링 (Blue noise sampling)
- 양측 블러 (Bilateral blurs)
- 효과 순서 지정 (Effect ordering)
- 효과 간 리소스 재사용 (Resource reuse between effects)
목표는 시각적 품질을 유지하면서 수중 스택(underwater stack)이 모듈식(modular)이고, 확장 가능하며(extensible), 가능한 한 저렴하도록(inexpensive) 만드는 것입니다.
추가 효과 생성하기 (Creating Additional Effects)
패키지는 이제 공유 수중 프레임워크를 사용하므로 사용자 지정 효과를 쉽게 만들 수 있습니다.
커스텀 효과를 만드는 방법은 wiki에서 확인하세요.
기타 (Also)
이 패키지를 무엇에 사용하고 계신지 보고 싶습니다.
패키지로 멋진 것을 만드셨다면, 몇 장의 스크린샷이나 프로젝트 상세 정보와 함께 이슈를 제출해 주세요. 궁극적으로 URP Underwater Effects를 사용하는 프로젝트 전용 섹션을 만들고 싶습니다.
알려진 문제 (Known Issues)
- 투명 깊이 광학 모델(transparent depth optical model)은 여전히 개선 중이며 향후 릴리스에서 계속 발전할 수 있습니다.
문제가 발생하거나 제안 사항이 있다면, GitHub에 이슈를 열어주세요.
기여 (Contributions)
Pull request는 환영합니다.
개선점, 수정사항, 최적화 또는 새 효과를 기여하고 싶으시다면, 언제든지 PR을 제출해 주세요.
감사 인사 (Thanks)
원래 컨셉의 아이디어를 제공해주신 Tom Weiland님께 감사합니다.
제가 너무 멀리 갔네요, ㅋㅋ.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub GameDev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기