동적 조명
전문가 가이드

베스트 프랙티스: 조명 파이프라인 설정

정의

먼저 이 가이드에서 자주 등장하는 주요 그래픽스 렌더링 용어들의 정의를 살펴보겠습니다.

  • 렌더 파이프라인은 세 가지 주요 단계로 씬의 오브젝트가 표시되는 방식을 결정합니다.
    • 첫 번째 단계는 컬링입니다. 이 단계에서는 렌더링이 필요한 오브젝트를 나열합니다. 여기에는 카메라에 보이는 오브젝트(절두체 컬링)와 다른 오브젝트에 가려지지 않은 오브젝트(오클루전 컬링)가 포함됩니다.
    • 두 번째 단계는 렌더링입니다. 이 단계에서는 올바른 조명과 일부 해당 프로퍼티를 사용하여 이러한 오브젝트를 픽셀 기반 버퍼에 그립니다.
    • 마지막으로 이러한 버퍼에 대해 포스트 프로세싱 작업(예: 컬러 그레이딩, 블룸 및 뎁스오브필드(피사계심도) 적용)을 수행하여 디스플레이 기기에 보낼 최종 출력 프레임을 생성할 수 있습니다. 이러한 작업은 프레임 속도에 따라 초당 여러 번 반복됩니다.
  • 셰이더는 그래픽처리장치(GPU)에서 실행되는 프로그램이나 프로그램 컬렉션을 가리키는 일반적인 이름입니다. 예를 들어, 컬링 단계를 마치면 버텍스 셰이더를 사용하여 ’오브젝트 공간’의 가시 오브젝트에 대한 버텍스 좌표를 ’클립 공간’이라고 부르는 다른 공간으로 변환합니다. 그러면 GPU는 이러한 새 좌표를 사용하여 씬을 래스터화, 즉 씬의 벡터 표현을 실제 픽셀로 전환합니다. 후반 단계에서 이러한 픽셀은 픽셀(또는 프래그먼트) 셰이더에 의해 컬러가 지정됩니다. 픽셀 컬러는 대개 해당 표면과 주변 조명의 머티리얼 프로퍼티에 따라 다릅니다. 현대 하드웨어에서 이용 가능한 또 다른 일반적인 셰이더 타입은 컴퓨트 셰이더입니다. 이 타입의 셰이더를 통해 프로그래머들은 모든 종류의 수학 연산(예: 광원 컬링, 파티클 물리 또는 체적 시뮬레이션)에 GPU의 강력한 병렬 처리 기능을 활용할 수 있습니다.

  • 직접 조명은 자체 발광 광원(예: 전구)에서 나오는 조명을 가리키며, 표면에서 반사되는 광원은 여기에 해당되지 않습니다. 광원 크기와 리시버까지의 거리에 따라 이러한 타입의 조명은 대개 또렷하고 분명한 그림자를 생성합니다.
    • 직접 조명은 무한히 멀리 떨어진 광원(예: 컴퓨터로 시뮬레이션한 태양)에서 방출되는 광원인 방향 광원과 다릅니다. 방향 광원의 주요 특징으로는 평행 광선으로 전체 씬을 감쌀 수 있다는 점과 거리 감쇠(광원 감쇠)가 일어나지 않는다는 점을 들 수 있습니다. 즉, 광원과의 거리가 증가해도 받는 조명의 양이 줄어들지 않습니다.
    • 현실에서 햇빛은 다른 여느 광원과 마찬가지로 역제곱법칙에 따라 거리가 증가하면 광량이 감소합니다. 간단히 말하면, 리시버와 광원 사이의 거리가 증가하면 받는 광량이 매우 빠르게 줄어듭니다. 예를 들어, 수성의 조도는 지구보다 약 7배 더 높고, 화성은 지구가 받는 광량의 절반 가량을 받습니다. 반면에 명왕성은 그 비율이 고작 0.06%에 불과합니다. 그럼에도 불구하고 고도 범위가 제한된 대부분의 실시간 사용 사례에서 햇빛 감쇠는 그다지 중요하지 않습니다. 따라서 방향 광원은 거대한 행성 중심의 오픈 월드를 포함하여 대부분의 Unity 씬에서 햇빛을 시뮬레이션하는 데 가장 적합합니다. 점 광원, 스폿 광원 등 다른 타입의 광원의 경우 고해상도 렌더 파이프라인을 선택하면 물리 기반 감쇠가 제공됩니다.
  • 간접 조명은 표면에 반사되는 광원에 의해 발생하며, 대기 또는 반투명 머티리얼 등과 같은 매체를 통해 전달되고 분산됩니다. 이러한 조건에서 오클루더는 일반적으로 부드럽고 감지하기 어려운 그림자를 드리웁니다.

  • 전역 조명(GI)은 주로 직접 조명의 기능으로 씬에 간접 조명을 생성하는 데 사용됩니다. GI 방법에는 베이크된/동적 라이트맵, 복사 조도 볼륨, 광원 전파 볼륨, 베이크된/동적 라이트 프로브, 복셀(voxel) 기반 GI, 거리 필드 기반 GI 등 여러 가지가 있습니다. 특히 Unity는 베이크된/동적 라이트맵과 라이트 프로브를 지원합니다.
    • 라이트매퍼는 광선을 투사하고 광원 바운스를 계산하고 해당 조명 결과를 텍스처에 적용하여 라이트맵 및 라이트 프로브용 데이터를 생성하는 기본 시스템입니다. 다양한 라이트매퍼는 제각기 다른 모습의 조명을 만들어내는데, 이는 각 라이트매퍼가 서로 다른 기술을 사용하여 조명 데이터를 생성하기 때문입니다. 현재 Unity는 두 가지 라이트매퍼, 즉 인라이튼과 프로그레시브 라이트매퍼를 제공합니다. GI 시스템과 해당 라이트매퍼에 대한 자세한 정보는 이 가이드의 향후 섹션에서 제공될 예정입니다.

개요

다음 플로우차트는 콘텐츠 크리에이터의 시각에서 Unity의 전체 조명 파이프라인에 대한 높은 수준의 통찰을 제공합니다.

먼저 렌더 파이프라인을 선택해야 합니다. 그런 다음 그에 따라 간접 조명이 생성되는 방식을 결정하고 전역 조명 시스템을 선택할 수 있습니다. 모든 전역 조명 설정을 프로젝트에 맞게 적절하게 조정하고 나면 광원, 발광 표면, 반사 프로브, 라이트 프로브, 라이트 프로브 프록시 볼륨(LPPV)을 계속 추가할 수 있습니다. 이러한 모든 조명 오브젝트의 사용법과 기능은 이 문서에서 다루지 않습니다. 프로젝트에서 이러한 조명 오브젝트를 올바르게 활용하는 방법은 매뉴얼의 조명 섹션을 참조하시기 바랍니다.

렌더 파이프라인

2018년 초까지 Unity에서는 하나의 렌더 파이프라인만 이용할 수 있었으며, 현재는 ’빌트인 렌더 파이프라인’으로 이름이 바뀌었습니다. 이 렌더러는 포워드 렌더링과 디퍼드 렌더링을 제공합니다.

  • (멀티 패스) 포워드 모드에서는 각 오브젝트에 영향을 미치는 광원의 수에 따라 여러 패스에서 씬의 모든 오브젝트가 하나씩 연속으로 렌더링됩니다. 따라서 오브젝트가 여러 개의 광원을 받으면 렌더링의 성능 소모가 크게 증가합니다. 이 타입의 렌더러는 대개 광범위한 종류의 셰이더를 제공하고 투명도를 쉽게 처리할 수 있습니다.
  • 디퍼드 모드에서는 모든 (불투명) 지오메트리가 머티리얼에 대한 정보(컬러, 스페큘러, 평활도 등)를 보관하는 버퍼에 먼저 렌더링됩니다. 후반 패스에서, 즉, ‘디퍼드’ 방식으로 각 픽셀에 셰이드가 순차적으로 적용됩니다. 렌더링 시간은 주로 각 픽셀에 영향을 주는 광원 수에 따라 다릅니다. 투명 오브젝트, 그리고 복잡한 셰이더가 포함된 특정 오브젝트는 추가 포워드 렌더링 패스를 필요로 합니다. 디퍼드 렌더링은 많은 동적 광원이 포함된 씬(예: 인공 조명을 비춘 인테리어) 또는 야외 및 실내 조명 조합이 포함된 프로젝트를 처리할 때 사용하면 좋습니다.

2018년 1월 Unity는 사용자들이 C# 스크립팅을 통해 렌더링 루프를 커스터마이즈할 수 있도록 해주는 스크립터블 렌더 파이프라인(SRP)을 공개했습니다. 이는 게임 엔진 분야에서 작은 혁명을 일으켰습니다. 덕분에 사용자들은 C++ 같은 저수준 프로그래밍 언어를 사용하지 않고도 오브젝트 컬링, 드로잉, 프레임 포스트 프로세싱을 맞춤화할 수 있습니다.

Unity는 현재 성능 강화와 최신 하드웨어를 염두에 두고 제작한 두 가지의 미리보기 SRP를 제공합니다.

  • 고해상도 렌더 파이프라인(HDRP)은 하이브리드 디퍼드/포워드 타일/클러스터 렌더러입니다. HDRP는 고급 렌더링 및 셰이딩 기능을 제공하며, 높은 시각적 정확도를 요구하는 PC 및 콘솔 프로젝트에 적합합니다.

타일은 프레임의 작은 2차원 사각형 픽셀 섹션이고, 클러스터는 카메라 절두체 내의 3차원 볼륨입니다. 이 두 가지 타일 및 클러스터 렌더링 기술은 모두 모든 단일 타일 및 클러스터에 영향을 주는 광원 리스트를 사용하며, 각 조명은 해당하는 알려진 광원 리스트를 사용하여 단일 패스로 계산됩니다. 불투명 오브젝트는 타일 시스템을 사용하여 셰이드를 적용할 가능성이 높고, 투명 오브젝트는 클러스터 시스템을 사용합니다. 이러한 렌더러의 주요 이점은 아주 느린 멀티 패스 광원 누적을 사용하는 빌트인 렌더 파이프라인(디퍼드)보다 조명을 더 빠르게 처리하고 대역폭 소모를 크게 감소시킨다는 점입니다.

  • 경량 렌더 파이프라인(LWRP)은 빠른 단일 패스 포워드 렌더러로, 실시간 조명 요구사항이 적은 기기(예: 스마트폰, 태블릿, XR 기기)를 위해 개발되었습니다. LWRP를 사용하면 광원이 오브젝트마다 컬링되고 단일 패스로 조명을 계산할 수 있으므로 빌트인 렌더 파이프라인보다 드로우 콜 수를 더 줄일 수 있습니다.

이제 다음의 의사결정 차트를 사용하여 몇 가지 핵심 기준에 따라 가장 적합한 렌더 파이프라인을 빠르게 찾을 수 있습니다.

템플릿

최신 버전의 HDRP 및 LWRP는 Unity 패키지 관리자(Window > Package Manager)를 통해 다운로드할 수 있습니다. 이러한 SRP를 가장 손쉽게 사용하려면 Unity 허브에서 새 프로젝트를 만든 후 해당 템플릿 중 하나를 사용하십시오.

수동 설정

수동으로 HDRP 또는 LWRP용 프로젝트를 설정하려면 필요한 패키지를 설치해야 합니다. 그런 다음 프로젝트 창의 Create > Rendering > High Definition Render Pipeline Asset에서 새 에셋을 만든 후 그래픽스 설정으로 드래그하십시오. HDRP를 선택한 경우에는 플레이어 설정에서 리니어 색 공간을 선택한 후 Rendering > Scene Settings에서 오브젝트를 씬에 추가해야 합니다.

Graphics Settings 창에 할당된 파이프라인 에셋이 없으면 Unity는 기본 빌트인 렌더 파이프라인을 사용합니다.

확장성

렌더링에 대해 잘 알고 C#에 익숙하다면 SRP 콘셉트로 실험하며 고유한 커스텀 스크립터블 렌더 파이프라인을 만들 것을 권장합니다. 그러면 프로젝트에 맞게 렌더러를 맞춤 설정할 수 있습니다. LWRP는 셰이더 라이브러리가 작고 렌더링 패스를 쉽게 삽입, 제거 및 교체할 수 있어서 확장이 매우 간편합니다.

호환성

Unity에서는 빌트인 렌더 파이프라인에서 HDRP 또는 LWRP로 프로젝트의 머티리얼을 쉽게 포팅할 수 있습니다. Edit > Render Pipeline > Upgrade…에서 머티리얼 컨버터를 한 번만 클릭하면 모든 작업이 끝납니다. 단, 이 작업은 되돌릴 수 없습니다. 반드시 프로젝트를 미리 백업해 두십시오!

반면에 커스텀 셰이더는 수동으로 포팅해야 합니다. 따라서 프로덕션 동안 빌트인 렌더 파이프라인에서 HDRP 또는 LWRP로 전환하는 작업은 재작성할 커스텀 셰이더 수에 따라 시간이 매우 많이 소요될 수 있습니다.

그리고 고해상도 렌더 파이프라인은 빌트인 렌더 파이프라인보다 광원 감쇠 및 분산 등의 부문에서 물리적으로 더 정확하기 때문에 HDRP로 전환한 후에 프로젝트의 모습이 다소 달라질 수 있습니다.

또한 HDRP와 LWRP는 동일한 렌더링 기능을 공유하지 않기 때문에 상호 호환되지 않습니다. HDRP에서 LWRP로 또는 그 반대 방향으로 프로젝트를 포팅할 수 있지만, 한 번의 클릭으로 작업이 끝나는 게 아니라 조명, 머티리얼 및 셰이더를 수동으로 다시 작업해야 합니다!

마지막으로 HDRP 및 LWRP는 여전히 미리보기 단계이며, Unity는 빠른 시일 내에 정식 출시를 위해 노력하고 있습니다. 두 파이프라인 모두 아직 모든 기능이 구현되지 않았다는 점에 유의하십시오. 예를 들어, 아래에서 상세히 설명하는 특정 조명 모드는 LWRP에서 일부만 제공되며, XR은 HDRP에서 아직 올바르게 지원되지 않습니다.

전역 조명 시스템

Unity는 두 가지의 전역 조명 시스템을 제공하며, Window > Rendering > Lighting Settings에서 활성화할 수 있습니다.

  1. (사전에 계산됨) 실시간 전역 조명: 이 시스템은 타사 조명 미들웨어인 인라이튼에 전적으로 기반합니다. Unity의 사전 계산 시 인라이튼은 두 가지의 긴 단계, 즉 클러스터링과 광원 전송 단계를 거칩니다. 첫 번째 단계에서는 클러스터라고 불리는 표면 패치 컬렉션으로 씬을 단순화하고, 두 번째 단계에서는 이러한 클러스터 간의 가시성을 계산합니다. 이러한 미리 계산된 데이터는 런타임 시 상호작용을 통해 간접 조명을 생성하는 데 사용됩니다. 인라이튼의 장점은 미리 계산된 데이터가 클러스터 간의 관계에 기반하므로 조명을 실시간으로 편집할 수 있다는 점입니다. 하지만 다른 기존 라이트매핑 기술과 마찬가지로 씬의 정적 지오메트리를 수정하면 새로운 사전 계산이 트리거됩니다.

  2. 베이크된 전역 조명: 조명이 라이트맵이라고 불리는 텍스처와 라이트 프로브로 베이크됩니다. 베이크된 GI 시스템은 다음 라이트매퍼 중 하나를 사용할 수 있습니다.

    1. 프로그레시브 라이트매퍼
    2. 인라이튼

프로그레시브 라이트매퍼는 카메라에 보이는 오브젝트에 대한 조명 사전 계산을 우선적으로 처리할 수 있으며 조명에 대한 반복 작업의 속도를 크게 높일 수 있습니다. 단, 전체 씬의 전반적인 베이킹 시간이 증가합니다. 프로그레시브 라이트매퍼는 CPU를 사용하며 경로 추적을 통해 간접 조명을 계산합니다. 새로운 GPU 프로그레시브 라이트매퍼가 현재 개발되는 중이며, 씬의 베이킹 시간을 크게 줄여줄 것으로 기대합니다.

인라이튼과 프로그레시브 라이트매퍼는 모두 다른 방식으로 베이크된 조명을 생성하기 때문에 조명 결과가 서로 완전히 일치하지 않을 수 있습니다.

아래 다이어그램에서 각 전역 조명 시스템의 장단점을 살펴본 후 프로젝트에 가장 적합한 전역 조명 시스템을 선택하십시오.

정적 vs 동적

어느 전역 조명 시스템을 사용하든 Unity는 조명의 베이킹/사전 계산 중에 ’Lightmap Static’이라고 표시된 오브젝트만 처리합니다. 동적(즉, 비정적) 오브젝트는 간접 조명을 받기 위해 씬 곳곳에 배치한 라이트 프로브를 사용해야 합니다.

조명의 베이킹/사전 계산은 비교적 느린 프로세스이므로 뚜렷한 조명 배리에이션을 가진 크고 복잡한 에셋(예: 오목면, 자체 그림자)에만 ‘Lightmap Static’ 태그를 지정해야 합니다. 균일한 조명을 받는 작은 컨벡스 메시는 ’정적’으로 표시하면 안 되며, 조명의 단순 근사치를 저장하는 라이트 프로브에서 간접 조명을 받아야 합니다. 더 큰 동적 오브젝트는 LPPV를 사용하면 더욱 뛰어난 국지적 간접 조명을 받을 수 있습니다. 씬에서 ’Lightmap Static’으로 태그가 지정된 오브젝트의 수를 제한하면 베이킹 시간을 대폭 줄이고 적절한 조명 품질을 유지할 수 있습니다. 이러한 최적화 프로세스와 프로브 조명의 중요성은 이 튜토리얼에서 자세히 알아볼 수 있습니다.

경고

Unity는 베이크된 GI 시스템과 실시간 GI 시스템을 동시에 활성화하여 모든 조명 기능에 액세스하도록 허용합니다. 하지만 두 시스템을 동시에 활성화하면 런타임 시 베이킹 시간과 메모리 사용량이 크게 증가한다는 경고를 받게 됩니다. 이러한 시스템이 동일한 데이터 집합을 사용하지 않기 때문입니다. 게다가 런타임 시 간접 조명의 인터랙티브 업데이트를 수행하면 CPU에 추가 부하를 주게 되어 베이크된 GI 시스템과 실시간 GI 시스템이 제공한 간접 조명을 육안으로 확인하면 서로 일치하지 않을 수 있습니다. 이는 각 GI 시스템이 서로 다른 기술을 사용하여 간접 조명을 시뮬레이션하고, 때로는 아주 다른 해상도에서 동작하기 때문입니다.

이 두 GI 시스템은 고사양 플랫폼, 또는 성능 소모가 예측 가능한 엄격히 통제된 씬이 포함된 프로젝트에만 동시에 사용해야 합니다. 또한 이 두 GI 시스템을 모두 관리하려면 복잡도가 늘어나기 때문에 모든 조명 설정을 완전히 이해하고 있는 전문가만 사용하는 것이 좋습니다. 따라서 두 GI 시스템 중 하나를 선택하는 것이 대부분의 프로젝트에 바람직합니다. 두 시스템을 모두 사용하는 것은 별로 권장하지 않습니다!

광원 모드

광원 모드는 다소 혼란스러울 수 있는 프로퍼티입니다. 무엇보다도, 광원 모드는 베이크된 전역 조명 시스템을 활성화한 경우에만 유효합니다.

다음의 세 가지 모드가 광원 인스펙터에서 제공됩니다.

  1. Baked: 이 광원의 직접 및 간접 조명은 라이트맵으로 베이크되며, 다소 시간이 걸리는 프로세스입니다. 이러한 광원을 처리할 때는 런타임 성능 소모가 없지만, 라이트맵 결과를 씬에 적용할 때는 약간의 성능 소모가 발생합니다.
  2. Realtime: 이 광원의 직접 조명 및 그림자는 실시간으로 동작하므로 라이트맵에 베이크되지 않습니다. 씬의 복잡도, 그림자를 드리우는 광원 수, 중복되는 광원 수 등에 따라 런타임 성능 소모가 매우 클 수 있습니다. 더욱이 실시간 전역 조명을 활성화한 경우에는 런타임 시 간접 조명을 업데이트하기 위해 추가 성능 손실이 발생합니다.
  3. Mixed: 베이크된 간접 조명, 실시간 직접 조명을 비롯하여 베이크된 기능과 실시간 기능을 혼합하여 제공하는 하이브리드 모드입니다. 씬에 있는 모든 혼합 조명의 동작과 각 혼합 조명이 성능에 미치는 영향은 선택한 전역 혼합 조명 모드(다음 섹션에서 설명됨)에 따라 다릅니다.

GI 시스템을 사용하지 않고 실시간 GI 시스템만 사용하는 경우에는 모든 베이크된 광원과 혼합 광원이 실시간 광원으로 오버라이드됩니다!

다음 다이어그램은 의사결정 차트와 비교 표를 결합한 것으로, 씬에 새로운 광원이 추가될 때마다 적절한 광원 모드를 선택하는 데 도움이 됩니다.

혼합 조명 모드

이전 다이어그램에서 볼 수 있듯이, 혼합 광원에는 Lighting > Settings 창에서 선택한 전역 혼합 조명 모드에 따라 특정한 베이크된 기능과 실시간 기능이 포함되어 있습니다.

다음 네 가지 모드 중에서 선택할 수 있습니다.

  1. 서브트랙티브
  2. 베이크된 간접
  3. 섀도우 마스크 모드: 섀도우 마스크
  4. 섀도우 마스크 모드: 디스턴스 섀도우 마스크

섀도우 마스크 모드와 섀도우 디스턴스는 Edit > Project Settings > Quality에서 조정할 수 있습니다. HDRP를 사용할 때는 그래픽스 설정에 할당된 HDRenderPipelineAsset에서 섀도우 마스크 모드가 활성화되는 반면, 그림자 최대 거리는 Scene Settings 오브젝트에서 설정됩니다.

HDRP는 새로운 하이브리드 섀도우 마스크 모드를 지원합니다. Additional Settings의 Non Lightmapped Only 체크박스를 통해 특정 광원이 실시간 그림자를 드리우게 만들지 제어할 수 있습니다. 이 파라미터를 사용하면 카메라가 광원의 페이드 거리 내에 있을 때 실시간 동적 그림자를 드리우고, 그렇지 않은 경우에는 베이크된 섀도우 마스크로 폴백합니다. 이러한 새로운 HDRP 모드의 주요 이점은 주요 방향 광원이 사용하는 그림자 거리 내 특정 광원에 실시간 그림자가 아니라 베이크된 광원을 사용할 수 있다는 점입니다.

파이프라인 비교 표

LWRP와 HDRP는 여전히 미리보기 단계입니다. 즉, 흥미롭고 새로운 기능을 사용할 수 있지만, 빌트인 파이프라인에서 제공하는 일부 기능을 지원하지 않거나 다른 기능에 대한 지원이 없을 수 있습니다. 다음 표에서 Unity 2018.3용 조명 파이프라인의 현재 상태에 대한 개요를 확인할 수 있습니다.

조명 시나리오

지금까지 렌더 파이프라인과 주요 조명 기능에 대해 소개해드렸습니다. 이제는 몇 가지 프로젝트 사례와 각 프로젝트에 사용할 수 있는 조명 설정을 살펴보겠습니다. 모든 프로젝트는 제각기 고유하므로 해당 요구사항에 따라 약간 다른 옵션을 사용할 수 있습니다.

1. 프로토타입 또는 빠른 사전 시각화

프로토타입을 빌드하기 위해 에셋 스토어를 많이 사용하는 경우 에셋 스토어에 있는 대부분의 에셋이 HDRP 및 LWRP와 완전히 호환되지 않을 수 있기 때문에 빌트인 렌더 파이프라인을 선택하는 것이 좋습니다. 하지만 에셋 호환성은 시간이 지나면서 개선될 예정입니다. 모든 에셋을 처음부터 빌드하고 프로젝트 요구사항을 분명하게 파악하고 있다면 두 가지 SRP(LWRP 또는 HDRP) 중에서 한 가지를 선택하거나 커스텀 렌더 파이프라인을 만들 수 있습니다.

(사전) 프로덕션의 초기 단계에 있고 조명에 대한 빠른 턴어라운드와 최대 유연성이 필요한 경우 사전 계산이 필요 없는 완전 실시간 방식을 선택하여 베이크된 GI 시스템과 실시간 GI 시스템을 모두 비활성화할 수 있습니다. 적절한 간접 조명의 부재 문제를 완화하기 위해 포스트 프로세싱 스택 V2에서 스크린 공간 앰비언트 오클루전을 활성화할 수 있습니다. 그러면 성능 부하가 작은 실시간 컨택트 섀도우를 제공하여 씬에 오브젝트를 쉽게 배치할 수 있습니다.

2. 3D 모바일 전략 게임

모바일 디바이스를 대상으로 하는 경우 LWRP를 사용하면 전략 게임에 적합한 성능을 효과적으로 확보할 수 있습니다. 게임에 맞게 렌더링 파이프라인을 커스터마이즈해야 하는 경우 그래픽스 프로그래머가 간단하게 LWRP를 확장할 수 있습니다.

LWRP를 선택하고 베이크된 전역 조명을 사용하는 경우 현재 서브트랙티브 조명 모드만 혼합 광원에 사용할 수 있다는 점에 유의하십시오. 베이크된 간접 모드와 섀도우 마스크 모드에 대한 지원은 향후 릴리스에서 추가될 예정입니다.

또는 예를 들어 에셋 스토어의 에셋을 많이 사용하기 때문에 예전의 빌트인 렌더 파이프라인을 그대로 사용하기로 결정한 경우에는 모든 전역 혼합 조명 모드가 지원됩니다. 이 경우 섀도우 마스크 조명 모드의 방식을 통해 베이크된 그림자를 제공하는 동시에 동적 오브젝트가 실시간 그림자를 드리우도록 만들 수 있습니다. 섀도우 마스크의 성능 소모가 너무 커서 프로젝트에 사용할 수 없으면 성능 소모가 가장 적은 서브트랙티브 모드로 폴백할 수 있습니다. 마지막으로 현재 레벨에 광원 수가 매우 적고 구형 하드웨어를 대상으로 하는 경우에는 포워드 렌더링 경로가 최고의 옵션일 수 있습니다.

3. AAA 일자형 슈팅 게임(고정된 시간)

일자형 FPS 게임을 위해 PC와 콘솔에서 AAA 품질의 비주얼을 구현하고자 하는 경우 HDRP를 렌더 파이프라인으로 선택하는 것이 좋습니다. 다시 말하지만, 그래픽스 프로그래머의 도움을 받아 커스텀 SRP를 개발할 수도 있습니다.

현재 레벨에 실시간 그림자를 드리우는 광원(예: 파괴 가능한 광원 소품과 움직이는 광원)이 많은 경우에는 베이크된 GI 시스템을 베이크된 간접 모드와 함께 사용하면 혼합 방향 광원에서 뛰어난 간접 조명을 얻고 정적 광원 소품에서 베이크된 광원을 얻을 수 있습니다. 현재 레벨에서 그림자를 드리우는 고정 광원의 비율이 큰 경우 섀도우 마스크 모드의 방식을 추천합니다. 이는 HDRP가 제공하는 우수한 하이브리드 섀도우 마스크 모드를 사용하여 실시간 그림자와 베이크된 그림자 간의 블렌드를 더욱 세세하게 제어할 수 있기 때문입니다.

이러한 타입의 일자형 게임은 대개 성능 및 메모리 소모의 예측이 매우 쉽기 때문에 베이크된 GI 시스템과 실시간 GI 시스템을 동시에 활성화할 수도 있습니다. 하지만 전역 조명 섹션에서 설명한 것처럼 두 시스템을 동시에 사용하면 성능 소모와 베이킹 시간이 크게 증가할 수 있으므로, 모든 기술적 사항을 이해하고 있는 전문가만 사용하는 것이 좋습니다.

4. 배틀 로얄(낮-밤 사이클)

PC 및 콘솔용 배틀 로얄 게임을 출시하려는 경우에는 대규모 환경과 완전한 동적 조명이 필요하기 때문에 HDRP를 선택하거나, 확장을 통해 렌더링 파이프라인을 프로젝트에 맞춤 설정해야 합니다. AAA 비주얼 정확도를 목표로 하지 않고 모바일 기기나 저사양 시스템을 대상으로 한다면 LWRP를 고려할 수도 있습니다.

낮-밤 사이클을 구현하기 위해 HDRP를 선택한 경우 실시간 GI 시스템을 활성화하여 하루 종일 간접 조명을 시뮬레이션해야 합니다. 밀도가 높은 조명을 비춘 실내에서 성능을 극대화하려면 실시간 GI 시스템이 이를 무시하고 렌더링 성능 소모를 최소화하도록 특정 광원의 간접 멀티플라이어를 0으로 설정할 수 있습니다.

LWRP는 실시간 전역 조명 시스템을 지원하지 않습니다. 따라서 하루 종일 태양과 앰비언트 컬러를 조절하는 커스텀 스크립트를 통해 낮-밤 사이클을 처리해야 합니다.

이러한 특정한 시나리오에서 실시간 GI 시스템과 베이크된 GI 시스템을 동시에 활성화하는 것은 적절하지 않습니다. 그러면 거대한 레벨의 성능 및 씬 관리에 막대한 성능이 소모될 수 있습니다. 이 두 GI 시스템을 동시에 사용하지 말아야 하는 또 다른 이유는 대규모 멀티플레이어 게임의 경우 예측 불가능한 요소가 많기 때문입니다. 따라서 고도로 스크립트화된 싱글플레이어 어드벤처 게임보다 인스턴스에 대한 성능 예측이 더 어렵습니다.

끝맺는 말

스크립터블 렌더 파이프라인을 도입한 덕분에 지난 몇 달에 걸쳐 Unity의 렌더링 환경이 크게 바뀌었습니다. 따라서 이러한 조명 파이프라인의 모든 변경 사항과 그로 인한 영향을 모두 파악하기가 어려울 수 있습니다.

이 가이드와 여기에 수록된 많은 예시가 각 렌더 파이프라인을 이해하는 데 도움이 되길 바랍니다. 또한 모든 사용자가 Unity 프로젝트에 올바른 조명 설정을 원활하게 사용할 수 있게 되기를 바랍니다!

Unity의 조명과 렌더링 파이프라인에 관한 정보는 다음 문서에서 자세히 알아볼 수 있습니다.


동적 조명
전문가 가이드