유니티 렌더링 파이프라인(built-in, SRP, URP, HDRP)
Render Pipelines
렌더 파이프라인은 씬의 내용들을 취하여 컬링(culling), 렌더링(rendering), 포스트프로세싱(post-processing)등의 작업을 수행하고 그것을 스크린에 표시하는 역할을한다. 유니티는 몇가지 서로 다른 렌더 파이프라인을 제공한다(built-in, URP, HDRP)렌더 파이프라인은 모두 다른 기능과 특성을 가지고있다. 사용자는 개발의 초기 단계에서 프로젝트(게임, 어플리케이션, 플랫폼)에 적절한 렌더 파이프라인을 선택하는 것이 중요하다. (프로젝트 중간에 렌더 파이프라인을 다른것으로 변경하는것을 권장하지않는다.)
https://docs.unity3d.com/Manual/render-pipelines.html
built-in render pipeline (빌트인 렌더 파이프라인)
- 유니티의 기본적인 렌더링 파이프라인
- 고정 기능과 프로세스를 제공
- 대부분의 간단한 프로젝트나 모바일 게임에 적합
유니티에 기본으로 설정되어있는 디폴트(default) 렌더 파이프라인이다. 일반적인 목적의 렌더 파이프라인으로 커스텀 확장에 관해서 스크립터블 렌더 파이프라인(SRP)에 비해 제한적이다. 포워드 렌더링 패스(forward rendering path)와 디퍼드 렌더링 패스(defered rendering path)중 한가지를 선택할수있으며 커맨드 버퍼와 콜백으로 기능을 확장할수있다.
https://docs.unity3d.com/Manual/built-in-render-pipeline.html
SRP(scriptable render pipeline)
- 사용자가 커스터마이징할 수 있는 렌더링 파이프라인
- 사용자 지정 렌더링 기능을 추가하고 최적화할 수 있음
- URP와 HDRP가 SRP를 기반으로 구축
스크립터블 렌더링 파이프라인(SRP)을 사용하면 스크립트로 렌더링을 제어하고 커스터마이징할 수 있다. 개발자는 유니티가 프레임을 렌더링하는 방법을 c# 스크립트로 작성하여 프로젝트의 요구사항을 충족하기위해 기존의 파이프 라인을 수정하거나 재구성할수있다. 유니티는 2개의 빌트인 SRP를 제공한다.(URP, HDRP)
https://learn.unity.com/tutorial/understanding-scriptable-render-pipelines-2019-3?language=en#
https://docs.unity3d.com/Manual/ScriptableRenderPipeline.html
LWRP(lightweight render pipeline)
경량 렌더 파이프라인은 유니티에 내장되었던 SRP로 Unity 2019.3버전 이후로 URP(유니버셜 렌더 파이프라인)으로 변경되었다.
https://blog.unity.com/kr/engine-platform/how-the-lightweight-render-pipeline-is-evolving
URP(universal render pipeline)
- 경량 및 이식 가능한 렌더링 솔루션
- 주로 모바일 및 휴대용 장치, VR/AR 및 다중 플랫폼 프로젝트에 사용
- 기본적으로 PBR(Materials, Lighting) 및 Shader Graph와 같은 기능을 제공
유니티에 내장된 SRP로 LWRP의 업그레이드 버전이다. (Unity 2019.3 버전부터 LWRP가 URP로 변경) URP는 뛰어난 성능 및 향상된 그래픽 품질을 제공하는 SRP로 기본 빌트인 렌더 파이프라인보다 유연하고 확장성이 좋으며 다양한 플랫폼(모바일, 콘솔, PC, VR)에 최적화된 그래픽을 제공한다. 싱글 패스 포워드 렌더링, 셰이더 그래프, VFX 그래프를 지원한다.(디퍼드 렌더러 지원 예정)
https://unity.com/srp/universal-render-pipeline
셰이더 그래프
https://unity.com/kr/features/shader-graph
HDRP(high definition render pipeline)
- 고해상도 및 고품질 렌더링을 위한 고급 렌더링 파이프라인
- 실시간 렌더링 및 더 나은 그래픽 효과를 위한 기능을 제공
- 더욱 현실적이고 세련된 시각적 효과를 원하는 고사양 프로젝트에 적합
고해상도 렌더 파이프라인은 유니티에 내장된 SRP로 물리 기반의 렌더링과 우수한 GPU 성능으로 정확하고 매우 사실적인 그래픽을 제공한다. 고사양 그래픽이 요구되는 프로젝트를 위해 HDRP를 사용할수있다.컴퓨트쉐이더(compute shader) 기술과 GPU 하드웨어를 사용하며 포워드 렌더링, 디퍼드 렌더링을 모두 지원한다.
https://unity.com/srp/High-Definition-Render-Pipeline
https://blog.unity.com/kr/industry/how-to-set-up-hdrp-for-high-end-visualizations
lit shader
lit 셰이더는 조명에 반응하여 표면을 밝고 어두워지게 만드는 것을 포함하여 표면을 렌더링한다.
주변 조명, 지역 조명, 스포트라이트 등과 같은 다양한 종류의 조명에 반응한다.
주로 실제로 존재하는 물체를 시뮬레이션하기 위해 사용된다. 예를 들어, 게임에서 캐릭터나 환경에 사용될 수 있다.
unlit shader
unlit 셰이더는 조명을 고려하지 않고 표면을 렌더링한다.
조명이 적용되지 않은 텍스처나 특정한 스타일의 그래픽을 구현할 때 유용하다.
예를 들어, 픽셀 아트 스타일 게임이나 쉐이딩이 필요없는 인터페이스 요소에 사용될 수 있다.