일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 로케트
- ar
- 게임개발
- raycast
- 게임제작
- 소규모프로젝트
- Quaternion
- C#
- 리듬게임
- 인터페이스
- 게임
- ExtensionMethod
- 유니티
- 레이캐스트
- github
- 짐벌락
- AR Foundation
- callbyvalue
- 확장메서드
- ARProgect
- 리듬게임에디터
- 델리게이트
- 깃허브
- AR세팅
- Euler
- callbyreference
- Unity
- 병맛게임
- 1인개발
- AR게임
- Today
- Total
Ssssong += Dev
[유니티] Scripting API : RenderPipeline 본문
https://docs.unity3d.com/ScriptReference/Rendering.RenderPipeline.html
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
Scriptable Render Pipeline (SRP) 는 렌더링 커맨드를 구성 및 조율할 수 있는 API layer로, C# script를 사용한다.
URP(경량) 및 HDRP(고성능) 드잉 SRP에 베이스를 두고 있다.
모든 SRP 기반 렌더파이프라인은 두 가지 커스텀 요소를 가지고 있다.
Render Pipeline Instance :
Render Pipeline Asset :