Ssssong += Dev

[유니티] Scripting API : RenderPipeline 본문

카테고리 없음

[유니티] Scripting API : RenderPipeline

ssong_dev 2022. 11. 16. 15:09

https://docs.unity3d.com/ScriptReference/Rendering.RenderPipeline.html

 

Unity - Scripting API: RenderPipeline

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

UnityEngine.Rendering 네임스페이스에 들어 있는

RenderPipeline 관련 클래스들이다.

 

RenderPipeline

유니티가 프레임을 렌더하는 방식에 대한 세팅을 가지고 있다.

 

RenderPipelineAsset

스크립터블 오브젝트로 생성된 렌더파이프라인 에셋이다.

 

RenderPipelineGlobalSettings

GraphicsSettings.RegisterRenderPipelineSettings를 통해 그래픽 세팅으로 등록될 수 있다. 

 

RenderPipelineManager

델리게이트를 통해 커스텀 코드를 렌더파이프라인 동작 과정에 추가할 수 있다.

beginCameraRendering, beginContextRendering, endFrameRendering 등등의 델리게이트 이벤트를 제공한다.

RenderPipelineManager.currentPipeline 을 실행할 시 현재 사용중인 파이프라인을 가져온다.

(회사 프로젝트에서 찍어보면 현재 사용중인 URP 에셋을 가져오는 걸 알 수 있다.)

 

ScriptableRenderContext

커스텀 렌더파이프라인에서 사용하는 상태 및 드로잉 커맨드를 정의한다.

커스텀 렌더파이프라인 정의 시 GPU에 올릴 상태를 업데이트하기 위해 사용된다.

Context란 상태 집합을 의미한다.

 

RenderPipeline.Render 메소드는 모든 카메라에서 렌더파이프라인이 렌더할 필요 없는 오브젝트들을 추려낸다.

그리고 ScriptableRenderContext.DrawRenderers 와 ScriptableRenderContext.ExecuteCommandBuffer 호출을 혼합한다.

이 호출은 클로벌 셰이더 프로퍼티, 렌더 타깃을 변경하며 셰이더 계산과 다른 렌더링 태스크를 보낸다.

렌더 루프를 실행하기 위해서는 ScriptableRenderContext.Submit을 호출한다.

 

BeginRenderPass, DrawGizmos, DrawShadows, EndRednerPass 등의 메소드를 가지고 있다.

 

 

 

 

 

이걸 이해하기 위해서는 Scriptable Render Pipeline introduction에 대해서 알 필요가 있다.

https://docs.unity3d.com/Manual/scriptable-render-pipeline-introduction.html

 

Unity - Manual: Scriptable Render Pipeline introduction

Scriptable Render Pipeline fundamentals Scheduling and executing rendering commands in the Scriptable Render Pipeline Scriptable Render Pipeline introduction This page explains how Unity’s Scriptable Render Pipeline (SRP) works, and introduces some key c

docs.unity3d.com

Scriptable Render Pipeline (SRP) 는 렌더링 커맨드를 구성 및 조율할 수 있는 API layer로, C# script를 사용한다.

URP(경량) 및 HDRP(고성능) 드잉 SRP에 베이스를 두고 있다.

 

모든 SRP 기반 렌더파이프라인은 두 가지 커스텀 요소를 가지고 있다.

Render Pipeline Instance : 

 

Render Pipeline Asset :