URP(유니버설 렌더 파이프라인)이 현재 프레임에 대해 생성하는 텍스처(활성 컬러 버퍼 또는 G버퍼 텍스처 등)를 가져와 렌더 패스에서 사용할 수 있습니다.
이러한 텍스처를 프레임 데이터, 리소스 데이터 또는 프레임 리소스라고 합니다. 본 기술 자료에서는 이러한 텍스처를 프레임 데이터라고 지칭합니다.
커스텀 렌더 패스를 URP 프레임 렌더링 루프에 삽입하는 데 사용한 주입 지점에 따라 일부 텍스처가 프레임 데이터에 존재하지 않을 수 있습니다. 언제 어떤 텍스처가 존재하는지에 대한 상세 내용은 주입 지점 레퍼런스를 참조하십시오.
프레임 데이터는 RecordRenderGraph 메서드를 오버라이드할 때 URP가 제공하는 ContextContainer 오브젝트에 있습니다.
다음 과정을 따라 프레임 데이터의 텍스처에 대한 핸들을 가져옵니다.
ContextContainer 오브젝트의 Get 메서드를 사용하여 모든 프레임 데이터를 UniversalResourceData 오브젝트로서 가져옵니다.
예시:
public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameContext)
{
using (var builder = renderGraph.AddRasterRenderPass<PassData>("Get frame data", out var passData))
{
UniversalResourceData frameData = frameContext.Get<UniversalResourceData>();
}
}
프레임 데이터의 텍스처에 대한 핸들을 가져옵니다.
예를 들어 다음은 활성 컬러 텍스처에 대한 핸들을 가져옵니다.
TextureHandle activeColorTexture = frameData.activeColorTexture;
그러면 텍스처에서 대해 읽기와 쓰기를 수행할 수 있습니다. 렌더 패스에서 텍스처 사용을 참조하십시오.
텍스처 핸들은 현재 프레임의 현재 렌더 그래프에 대해서만 유효합니다.
ConfigureInput API를 사용하여 URP가 프레임 데이터에 필요한 텍스처를 생성하도록 할 수 있습니다.
전체 예시는 TextureReference w라는 예시를 참조하십시오. URP(유니버설 렌더 파이프라인) 패키지 샘플의 FrameData