피드로 돌아가기
Hacker NewsFrontend
원문 읽기
Engine Shader 수정을 통한 저비용 Colored Penumbra 효과 구현
Colored Shadow Penumbra
AI 요약
Context
빛의 그림자 경계면(Penumbra)에 색상을 추가하여 시각적 깊이를 더하는 Colored Shadow Terminator 효과 구현 필요. PostProcess 방식은 Lumen 및 Day/Night Cycle 환경에서 Light/Shadow 값 추정이 어려워 구현 난도가 높다는 한계 존재.
Technical Solution
- Engine Shader 직접 수정을 통한 Light Type 무관한 범용적 효과 적용 구조 설계
- Luminance Factors(0.3, 0.59, 0.11)를 활용한 Diffuse Luminance 기반의 Desaturation 로직 구현
- PenumbraSaturation 상수를 통한 색상 채도 제어 및 Lerp 함수 기반의 색상 보정 처리
- BSDFShadowTerms 및 SurfaceShadow 값을 마스크로 활용하여 그림자 경계 영역에만 색상을 블렌딩하는 방식 채택
- Substrate 및 Deferred Light Pixel Shaders의 특정 라인에 코드를 삽입하여 기존 렌더링 파이프라인 유지하며 기능 확장
실천 포인트
- PostProcess 단계보다 Shader 레벨 수정이 정밀한 라이팅 데이터 접근에 유리한지 검토 - 고정 상수를 통한 전역 설정 방식과 개별 라이트 설정 방식의 Trade-off 분석 - Dynamic Light 전용 구현체이므로 Baked Lighting 환경에서의 대체 방안 고려 - 표면 색상이 무채색이거나 이미 포화 상태인 경우 효과가 미미함을 인지하고 테스트 에셋 선정