[Unite Seoul 2025] 아티스트를 위한 APV로 실시간 조명 전환 무작정 따라하기
- Unity 6의 최신 조명 솔루션인 APV(Adaptive Probe Volume)는 기존 라이트 프로브 대비 사용성과 품질이 우수하며, 미리 구워진 조명 데이터를 블렌딩하여 다양한 라이팅 시나리오(시간대, 조명 On/Off)를 구현할 수 있습니다. 💡
- APV는 베이크된 조명 데이터 간 전환만 지원하며, 스카이라이트와 같은 동적인 요소는 스크립트나 타임라인을 통해 수동으로 제어해야 하는 한계가 있습니다. 💻
- URP 환경에서 APV를 활용한 전역 조명 블렌딩과 시간 흐름에 따른 조명 변화(Time of Day, TOD)를 최적화 및 효율성을 고려하여 구현하는 것이 세션의 목표입니다. ⏱️
- 초기 계획(큐브맵 블렌딩)과 달리 절차적 하늘 쉐이더, 동적 큐브맵 추출, 제한적인 실시간 리플렉션 프로브, 타임라인 및 추가 스크립트 사용으로 구현 계획이 변경되었습니다. 🔄
- 조명 시나리오 요소(해/달, 스카이박스, 환경 조명, 포그, 후처리)를 통합 관리하는 TOD 매니저 스크립트와 타임라인을 연동하여 24시간 조명 사이클을 직관적으로 제어합니다. 🗓️
- 그라디언트 텍스처를 이용한 절차적 하늘 쉐이더를 제작하여 낮, 밤, 일출에 해당하는 색상 분포를 정의하고, 이를 블렌딩하여 동적인 하늘을 표현합니다. 🎨
- 절차적 스카이박스를 캡처하여 큐브맵 텍스처로 변환하고, 이를 환경 반사(Environment Reflection)에 동적으로 적용하여 실시간으로 변화하는 환경을 반영합니다. 🏞️
- URP 렌더 파이프라인에서 APV를 활성화하고, 'Night'와 'Day' 두 가지 라이팅 시나리오를 베이크한 후, TOD 매니저 스크립트를 통해 API로 시나리오 간 블렌딩을 제어합니다. 🌃
- 스카이 컬러의 여명/황혼 시점과 GI 블렌딩이 일치하도록 TOD 타임 그래프의 기울기를 조정하여 자연스러운 전역 조명 전환을 구현합니다. 📈
- 낮/밤 시간대에 맞춰 두 개의 포스트 프로세싱 볼륨을 블렌딩하고, 실내 공간에는 별도의 볼륨을 추가하여 카메라 위치에 따른 노출 보정(눈 순응 효과 모방)을 적용합니다. 🖼️
- Probe Adjustment Volume을 활용하여 샘플링 노이즈 제거, 빛 누수 감소 등의 APV 아티팩트를 완화하고, 실시간 업데이트 요소들의 연산 주기를 제한하여 런타임 성능 저하를 방지합니다. 🛠️
- GPU 레지던트 드로우 및 GPU 오클루전 컬링과 같은 Unity 6의 최적화 기능이 모든 상황에서 성능 향상을 보장하지 않으며, 특정 신에서는 오히려 느려질 수 있음을 확인했습니다. 🚀
- 향후 개선 과제로는 실시간 리플렉션 프로브를 베이크된 블렌딩 방식으로 대체, 파편화된 기능 통합, 오토 익스포저 적용, 다양한 플랫폼 테스트 및 추가 최적화가 필요합니다. 🚧
- APV 기능은 다이내믹 APV 등 지속적으로 개선되고 있으며, 정적/동적 활용 모두에서 높은 품질과 확장 가능성을 제공합니다. ✨
데브허브 | DEVHUB | [Unite Seoul 2025] 아티스트를 위한 APV로 실시간 조명 전환 무작정 따라하기