포스트 이펙트
포스트 이펙트는 3D 씬 렌더링이 완료된 후, 최종 2D 이미지에 시각적 효과를 더하는 기술입니다. RedGPU의 후처리 시스템은 설정의 편의성과 실행의 효율성을 위해 이원화된 인터페이스를 제공합니다.
1. 시스템 구조: 제어와 실행
사용자는 목적에 따라 두 개의 매니저를 통해 후처리를 제어하지만, 실제 연산은 PostEffectManager 가 총괄하는 하나의 파이프라인 내에서 순차적으로 실행됩니다.
- ToneMappingManager (
view.toneMappingManager): 씬의 가장 기본적인 색조, 노출, 대비 등 색상 변환 설정을 담당하는 전용 창구입니다. - PostEffectManager (
view.postEffectManager): 일반 이펙트의 추가/삭제 및 파이프라인의 전체 실행을 담당합니다.
2. 렌더링 파이프라인 흐름
모든 효과는 아래 순서에 따라 처리됩니다. 이 순서는 그래픽스 최적화와 시각적 결과의 일관성을 위해 고정되어 있습니다.
- HDR Phase (장면 구성 요소):
SkyAtmosphere,SSAO(SSAO),SSR(실시간 반사) 등 물리적인 씬 정보를 조립하는 단계입니다. - Exposure & Transition (노출 및 톤매핑 전환):
AutoExposure(자동 노출) 연산이 수행됩니다.- 사용자가
addEffect()로 등록한 일반 이펙트 루프를 실행합니다. - 루프 도중 첫 번째 LDR(Low Dynamic Range) 이펙트를 만나는 시점에 즉시 Tone Mapping을 수행하며, 만약 루프가 끝날 때까지 수행되지 않았다면 루프 종료 시점에 수행합니다.
- LDR Phase (안티앨리어싱): 최종 이미지를 보정하는 마지막 단계로, 활성화 상태에 따라
FXAA또는TAA(및TAASharpen) 연산이 수행됩니다.
[라이브 데모]
RedGPU 공식 예제 페이지에서 모든 효과의 실시간 작동 모습을 확인할 수 있습니다.