SRP(스크립터블 렌더 파이프라인)는 Unity 빌트인 렌더 파이프라인의 대안입니다. SRP를 사용하면 C# 스크립트를 통해 렌더링을 제어 및 맞춤 설정할 수 있습니다. 즉, 빌드의 일부 또는 전체를 수정하거나 필요에 따라 렌더 파이프라인을 커스터마이즈할 수 있습니다.
SRP는 빌트인 Unity 렌더 파이프라인보다 더 많은 세부화 및 커스터마이징 옵션을 제공합니다. 또한 특정 요구 사항을 위해 미리 빌드된 SRP 중 하나를 사용할 수도 있습니다.
SRP 사용은 빌트인 Unity 렌더 파이프라인 사용과 다릅니다. 예를 들어, 미리 빌드된 SRP는 새로운 셰이더 라이브러리와 함께 제공됩니다. 빌트인 렌더 파이프라인의 릿 셰이더와 커스텀 릿 셰이더가 SRP와 함께 작동하지 않기 때문입니다. 빌트인 릿 셰이더를 LWRP와 HDRP 모두로 업그레이드할 수 있습니다.
참고: 이 기능은 프리뷰 기능이며 변경될 수 있습니다. 이 기능을 사용하는 스크립트는 향후 릴리스에서 업데이트해야 할 수 있습니다. 프리뷰 단계를 벗어날 때까지 정식 프로덕션에는 이 기능을 사용하지 마십시오.
Unity는 SRP 프레임워크를 사용하는 두 개의 스크립터블 렌더 파이프라인, 즉 고해상도 렌더 파이프라인(HDRP)과 경량 렌더 파이프라인(LWRP)을 빌드했습니다. 각 렌더 파이프라인은 특정한 사용 사례와 하드웨어 요구사항을 충족합니다. 미리 빌드된 렌더 파이프라인은 새 프로젝트의 템플릿으로 사용할 수 있습니다.
두 렌더 파이프라인은 모두 Unity의 Package Manager 창에서 패키지로 제공되며, 둘 다 셰이더 그래프 및 포스트 프로세싱 패키지를 포함합니다.
참고: LWRP와 HDRP는 서로 호환되지 않으며, 둘 다 빌트인 렌더 파이프라인과 호환되지 않습니다. 개발을 시작하기 전에 프로젝트에서 사용할 렌더 파이프라인을 정해야 합니다.
HDRP는 콘솔, PC 등 고사양 하드웨어를 대상으로 합니다. HDRP를 사용하면 까다로운 시나리오에서도 현실적은 그래픽스를 구현할 수 있습니다. HDRP는 컴퓨트 셰이더 기술을 사용하므로 호환되는 GPU 하드웨어가 필요합니다.
AAA 품질 게임, 자동차 데모, 건축물 구현 등 성능보다 고화질 그래픽스가 더 중요한 요소에 HDRP를 사용하십시오. HDRP는 물리 기반 조명 및 머티리얼을 사용하고, 포워드 및 디퍼드 렌더링을 지원합니다.
고해상도 렌더 파이프라인은 단일 템플릿으로 제공됩니다.
HDRP에 대한 자세한 내용은 SRP GitHub Wiki의 HDRP 개요를 참조하십시오.
LWRP는 다양한 하드웨어에서 사용할 수 있습니다. 이 기술은 모바일 플랫폼으로 확장 가능하며, 고사양 콘솔 및 PC에도 사용할 수 있습니다. LWRP를 사용하면 고화질로 빠르게 렌더링할 수 있습니다. LWRP는 단순한 물리 기반 조명 및 머티리얼을 사용합니다.
LWRP는 싱글 패스 포워드 렌더링을 사용합니다. 이 파이프라인을 사용하여 여러 플랫폼에서 성능을 실시간으로 최적화하십시오.
경량 렌더 파이프라인은 LWRP 및 LWRP-VR 템플릿을 통해 사용할 수 있습니다. LWRP-VR에는 VR을 위해 사전 활성화된 설정이 함께 제공됩니다.
참고: 빌트인 및 커스텀 릿 셰이더는 경량 렌더 파이프라인과 함께 사용할 수 없습니다. 대신, LWRP에는 새로운 스탠다드 셰이더가 포함되어 있습니다. 현재 프로젝트를 LWRP로 업그레이드하면 빌트인 셰이더를 새 버전으로 업그레이드할 수 있습니다.
LWRP에 대한 최신 문서를 확인하려면 Unity의 Package Manager와 경량 렌더 파이프라인 패키지로 차례로 이동한 다음 View Documentation 을 클릭합니다.
SRP, HDRP 및 LWRP는 다양한 방법으로 설치할 수 있습니다. 신규 또는 기존 프로젝트에 미리 빌드된 SRP 중 하나를 사용하려는 경우 이 섹션을 계속 읽어주십시오. 고급 사용자이고 SRP 스크립트를 직접 수정하려는 경우에는 커스텀 SRP 만들기를 참조하십시오.
새 프로젝트에서 HDRP 또는 LWRP를 사용하고 렌더 파이프라인을 커스터마이즈할 필요가 없다면 템플릿을 사용하여 새 프로젝트를 만들 수 있습니다.
템플릿을 사용하여 프로젝트를 만들려면 다음 단계를 따르십시오.
템플릿 사용에 대한 자세한 내용은 Project Templates를 참조하십시오.
패키지 관리자 시스템을 통해 최신 버전의 HDRP, LWRP 또는 SRP를 기존 프로젝트에 다운로드하여 설치할 수 있습니다.
기존 프로젝트에서 SRP로 전환하는 데는 많은 시간과 리소스가 소모됩니다. HDRP, LWRP 및 커스텀 SRP는 모두 커스텀 셰이더를 사용합니다. 또한 빌트인 Unity 셰이더와 호환되지 않으므로 많은 요소를 수동으로 변경하거나 전환해야 합니다. 대신에 SRP를 사용하여 새 프로젝트를 시작하는 것을 고려해보십시오.
SRP를 기존 프로젝트에 설치하려면 다음 단계를 따르십시오.
미리 빌드된 렌더 파이프라인을 사용하려면 먼저 렌더 파이프라인 에셋을 만든 후 프로젝트 설정에 이를 추가해야 합니다. 다음 섹션에서는 SRP 에셋을 만들어 HDRP 또는 LWRP에 추가하는 방법을 알려드리겠습니다.
선택한 SRP를 제대로 사용하려면 스크립터블 렌더 파이프라인 에셋을 만들어야 합니다.
스크립터블 렌더 파이프라인 에셋은 프로젝트의 전역 렌더링 품질 설정을 제어하고 렌더링 파이프라인 인스턴스를 만듭니다. 렌더링 파이프라인 인스턴스에는 중간 리소스와 렌더 파이프라인 구현이 들어 있습니다.
여러 개의 파이프라인 에셋을 만들어 다양한 플랫폼이나 다른 테스트 환경을 위한 설정을 저장할 수 있습니다.
렌더 파이프라인 에셋을 만들려면 다음 단계를 따르십시오.
참고: HDRP와 LWRP는 서로 다른 조명 모델을 사용하므로 호환되지 않습니다. 따라서 프로젝트에서는 HDRP와 LWRP 중 하나만 사용할 수 있습니다. 단, 여러 개의 에셋을 같은 렌더 파이프라인과 함께 사용할 수 있습니다. 즉, 개별 설정을 바꿀 필요 없이 여러 개의 에셋을 바꾸어가며 다양한 설정을 테스트할 수 있습니다.
HDRP를 사용하려면 다음과 같이 프로젝트의 Player 및 Graphics 설정을 편집해야 합니다.
팁: 고해상도 렌더 파이프라인 에셋은 항상 Scriptable Render Pipeline 폴더 외부에 저장하십시오. 그렇게 하면 SRP GitHub 저장소에서 새로운 변경 사항을 병합할 때 HDRP 설정이 손실되지 않습니다.
LWRP를 사용하려면 다음과 같이 프로젝트의 Graphics 설정을 편집해야 합니다.
팁: 새로운 경량 렌더 파이프라인 에셋은 항상 Scriptable Render Pipeline 폴더 외부에 저장하십시오. 그렇게 하면 SRP GitHub 저장소에서 새로운 변경 사항을 병합할 때 LWRP 설정이 손실되지 않습니다.
스크립터블 렌더 파이프라인은 GitHub의 열린 프로젝트에서 사용할 수 있습니다. 또한 SRP를 복제하고 로컬 버전으로 수정할 수 있습니다.
신규 또는 기존 Unity 프로젝트의 로컬 스크립트 파일을 설정하려면 다음 단계를 따르십시오.
SRP 저장소의 복제본을 만듭니다. 복제본을 Assets 폴더 옆에 있는 프로젝트 디렉토리의 루트에 넣습니다. 저장소 복제에 대한 자세한 내용은 저장소 복제를 참조하십시오.
사용 중인 Unity 버전과 호환되는 브랜치를 체크아웃합니다. git checkout
커맨드를 사용하고 브랜치 이름을 입력합니다.
git submodule update --init
커맨드를 사용하여 SRP와 관련된 모든 서브모듈을 찾아 초기화합니다.
프로젝트 매니페스트에서 dependencies
를 업데이트하여 SRP 패키지와 연결되도록 만듭니다. 프로젝트 매니페스트에 대한 자세한 내용은 패키지 관리자 문서를 참조하십시오. 다음은 스크립트 예시입니다.
{
"dependencies": {
"com.unity.postprocessing": "file:../ScriptableRenderPipeline/com.unity.postprocessing",
"com.unity.render-pipelines.core": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.core",
"com.unity.shadergraph": "file:../ScriptableRenderPipeline/com.unity.shadergraph",
"com.unity.render-pipelines.lightweight": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.lightweight"
}
}
Unity에서 프로젝트를 엽니다. 이제 패키지가 로컬로 설치되었습니다. 통합 개발 환경에서 프로젝트 솔루션을 열면 스크립트를 직접 디버그하고 수정할 수 있습니다.