이 페이지에서는 볼륨 지원을 사용하여 커스텀 포스트 프로세싱 효과를 만드는 방법을 설명합니다.
URP는 커스텀 포스트 프로세싱 효과를 위한 템플릿을 제공합니다. 템플릿의 구현은 커스텀 효과를 위한 코드를 삽입할 수 있는 렌더러 기능, Volume 컴포넌트와 상호작용하기 위한 코드를 구현하는 스크립트로 구성됩니다.
템플릿을 사용하여 효과를 생성하려면 다음 메뉴 항목 선택합니다.
Unity는 Assets 폴더에 렌더러 기능 템플릿을 포함하는 스크립트와 Volume 컴포넌트 스크립트라는 두 개의 새로운 스크립트를 생성합니다.
템플릿에는 화면의 컬러를 반전하는 효과 구현이 예시가 포함되어 있습니다.
렌더러 기능의 Create 메서드에서는 커스텀 효과를 위한 커스텀 머티리얼 또는 효과 로직을 구현하는 렌더 패스를 정의합니다.
렌더러 기능 스크립트에는 ScriptableRenderPass 구현이 포함되어 있습니다.
렌더 패스 코드의 다음 영역에서 커스텀 효과에 대한 셰이더 프로퍼티를 설정합니다.
#region PASS_SHARED_RENDERING_CODE
렌더 패스에는 다음의 두 영역이 포함되어 있습니다. Unity는 프로젝트에 대해 호환성 모드가 비활성화된 경우 PASS_RENDER_GRAPH_PATH 영역을 선택하고 렌더 그래프 API를 사용하며, 그렇지 않은 경우에는 PASS_NON_RENDER_GRAPH_PATH 영역을 사용합니다.
#region PASS_NON_RENDER_GRAPH_PATH
#region PASS_RENDER_GRAPH_PATH
볼륨 컴포넌트의 효과 프로퍼티를 설정하려면 AddRenderPasses 메서드에서 다음 줄을 수정하십시오.
NewPostProcessEffectVolumeComponent myVolume = VolumeManager.instance.stack?.GetComponent<NewPostProcessEffectVolumeComponent>();
if (myVolume == null || !myVolume.IsActive())
s_SharedPropertyBlock.SetFloat("_Intensity", myVolume.intensity.value);