Version: 2020.1
언어: 한국어
스크립터블 렌더 파이프라인 기초
스크립터블 렌더 파이프라인에서 렌더링 커맨드 예약 및 실행

스크립터블 렌더 파이프라인 소개

이 페이지는 Unity의 스크립터블 렌더 파이프라인(SRP)이 동작하는 방식을 설명하고 몇 가지 주요 개념 및 용어를 설명합니다. 이 페이지의 정보는 유니버설 렌더 파이프라인(URP), 고해상도 렌더 파이프라인(HDRP), 그리고 SRP에 기반한 커스텀 렌더 파이프라인에 적용됩니다.

스크립터블 렌더 파이프라인은 C# 스크립트를 사용하여 렌더링 커맨드를 예약하고 설정할 수 있는 씬 API 레이어입니다. Unity는 이러한 커맨드를 저수준 그래픽스 아키텍처로 전달한 후 그래픽스 API에 명령을 전송합니다.

URP와 HDRP는 SRP를 기반으로 빌드됩니다. 또한 SRP를 기반으로 커스텀 렌더 파이프라인을 만들 수도 있습니다.

렌더 파이프라인 에셋과 렌더 파이프라인 인스턴스

SRP에 기반한 모든 렌더 파이프라인에는 다음의 두 가지 주요 커스터마이징 요소가 있습니다.

  • 렌더 파이프라인 에셋 - 렌더 파이프라인에 대한 설정 데이터를 저장하는 Unity 프로젝트의 에셋입니다.
  • 렌더 파이프라인 인스턴스 - RenderPipeline에서 상속되는 클래스입니다. 이 클래스의 Render 메서드는 SRP의 주 엔트리 포인트입니다.

커스텀 렌더 파이프라인에서 이러한 요소를 생성하는 방법은 렌더 파이프라인 에셋과 렌더 파이프라인 인스턴스 생성을 참조하십시오.

ScriptableRenderContext

ScriptableRenderContext는 렌더 파이프라인의 커스텀 C# 코드와 Unity의 저수준 그래픽스 코드 간의 인터페이스 역할을 하는 클래스입니다.

ScriptableRenderContext API를 사용하여 렌더링 커맨드를 예약하고 실행할 수 있습니다. 자세한 내용은 스크립터블 렌더 파이프라인에서 렌더링 커맨드 예약 및 실행을 참조하십시오.

엔트리 포인트 및 콜백

SRP로 작업하는 경우 이를 통해 Unity가 특정 시점에 C# 코드를 호출하도록 만들 수 있습니다.

  • RenderPipeline에서 상속되는 클래스의 Render 메서드는 SRP의 주 엔트리 포인트입니다. 커스텀 렌더 파이프라인을 작성하는 경우 여기에서 코드 작성을 시작해야 합니다.

    Unity는 이 메서드를 자동으로 호출합니다. 스탠드얼론 애플리케이션에서 Unity는 메인 뷰 렌더링을 위해 프레임당 한 번씩, 그리고 ScriptRef:Camera.Render에 대한 수동 호출 시 프레임당 한 번씩 이 메서드를 호출합니다. Unity 에디터에서 Unity는 표시되는 각 씬 뷰 또는 게임 뷰에 대해 프레임당 한 번씩, 씬 카메라 미리보기가 표시되는 경우 프레임당 한 번씩, 그리고 ScriptRef:Camera.Render에 대한 수동 호출 시 프레임당 한 번씩 이 메서드를 호출합니다.
  • RenderPipelineManager 클래스에는 구독할 수 있는 다음 이벤트가 포함되어 있습니다.
스크립터블 렌더 파이프라인 기초
스크립터블 렌더 파이프라인에서 렌더링 커맨드 예약 및 실행