Version: 2021.3
프로그레시브 라이트매퍼
인라이튼 베이크된 전역 조명을 사용한 라이트매핑

프로그레시브 GPU 라이트매퍼(프리뷰)

참고: 이 기능은 프리뷰 기능이며 변경될 수 있습니다. 이 기능을 사용하는 씬은 향후 릴리스에서 업데이트해야 할 수 있습니다. 정식 프로덕션에서는 공식 출시 이후에 사용할 것을 권장합니다.

프로그레시브 GPU 라이트매퍼는 베이크된 라이트맵라이트 프로브 를 생성하기 위해 컴퓨터의 GPU와 전용 비디오 램(VRAM)을 사용하는 프로그레시브 라이트매퍼용 백엔드입니다.

하드웨어 및 소프트웨어 요구 사항

프로그레시브 GPU 라이트매퍼를 사용하려면 컴퓨터가 다음의 최소 사양을 충족해야 합니다.

  • OpenCL 1.2를 지원하는 GPU 1개 이상
  • 4GB 이상의 GPU 전용 VRAM
  • SSE4.1 명령어를 지원하는 CPU

베이크하는 씬이 지정된 GPU에서 사용할 수 있는 것보다 더 많은 VRAM을 필요로 하는 경우 베이크 시간이 크게 늘어날 수 있습니다. 씬의 베이크 시간을 줄이는 데 도움이 되는 정보는 성능 섹션을 참조하십시오.

프로그레시브 GPU 라이트매퍼는 CPU OpenCL 기기를 지원하지 않습니다.

성능

라이트매퍼 타일링이 활성화되어 있지 않으면 프로그레시브 GPU 라이트매퍼가 프로그레시브 CPU 라이트매퍼보다 빠르게 베이크합니다.

그러나 베이크에 사용하는 GPU의 사양과 해당 GPU 전용 VRAM의 양은 모두 라이트매퍼의 성능 경험에 영향을 미칩니다.

GPU 리소스를 놓고 경쟁하는 다른 애플리케이션도 베이킹 성능에 영향을 미칩니다. 하드웨어 공급업체에 따라 Unity에서 사용할 수 있는 VRAM 양이 감소하면 베이크 속도가 느려지거나 실패합니다. GPU가 최소 메모리 요구 사항을 충족할 수 없는 경우 프로그레시브 GPU 라이트매퍼가 CPU로 폴백할 수 있습니다. 이 기능으로 작업하는 동안 다른 애플리케이션을 닫으면 안정성과 성능이 향상될 수 있습니다.

프로그레시브 CPU 라이트매퍼와 동일한 품질의 결과를 얻으려면 프로그레시브 GPU 라이트매퍼에 최대 4배 더 많은 간접광 샘플이 필요합니다. 프로그레시브 CPU 라이트매퍼는 브랜치 패스트레이싱이라는 접근 방식을 사용하여 각 바운스에서 더 많은 광선을 발사합니다. 브랜치 패스트레이싱은 GPU에 적합하지 않습니다.

프로그레시브 GPU 라이트매퍼는 씬을 베이크하기 위해 필요한 메모리 양을 결정합니다. Unity는 이 결정에 도움이 되는 스프레드시트를 제공합니다. 자세한 내용은 프로그레시브 GPU 라이트매퍼 메모리 스프레드시트를 참조하십시오.

라이트매퍼 타일링으로 인한 베이킹 속도 저하 방지

프로그레시브 GPU 라이트매퍼에는 라이트매퍼 타일링이라는 기능이 포함되어 있습니다. 라이트매퍼 타일링은 Unity가 GPU 메모리 할당을 모두 사용했을 때 프로그레시브 GPU 라이트매퍼가 프로그레시브 CPU 라이트매퍼로 폴백하는 것을 방지합니다. 대신 Unity는 CPU에 일부 임시 메모리를 할당한 다음 사용 가능한 GPU 메모리 양과 일치하는 크기의 타일에 조명을 베이크합니다. 라이트매퍼 타일링은 Unity가 전체 라이트맵을 베이크하기에 충분한 GPU 메모리에 액세스할 수 없는 경우에만 활성화됩니다. 프로그레시브 CPU 라이트매퍼에는 타일링 기능이 포함되어 있지 않습니다.

라이트매퍼 타일링이 활성화되면 씬 뷰와 베이킹 프로세스에서 프로그레시브 업데이트가 중지됩니다. 그러나 Lighting 창의 Progressive updates 설정이 확실히 비활성화된 것은 아닙니다. 라이트매퍼 타일링이 활성화된 상태에서 씬을 베이킹하는 것은 타일링 없이 동일한 씬을 베이킹하는 것보다 느립니다.

타일링을 비활성화할 수 없습니다. 그러나 다음 전략을 사용하여 활성화 가능성을 줄일 수 있습니다.

  • Unity가 사용할 수 있는 GPU 메모리의 양을 늘립니다.

  • [앰비언트 오클루전]을 비활성화합니다. Lighting 창(메뉴: Window > Rendering > Lighting)을 엽니다. 라이트매핑 설정 인터페이스에서 Ambient Occlusion을 비활성화합니다.

  • 간접광만 베이크합니다. 모든 광원을 Realtime 또는 Mixed로 설정합니다. 광원이 Baked로 설정되어 있지 않은지 확인합니다. 혼합 방식을 사용하는 경우 Lighting > Mixed Lighting > Lighting modeBaked Indirect로 설정합니다.

  • 프로젝트의 안티앨리어싱 수준을 줄입니다. Project Settings > Quality로 이동하여 더 적은 샘플을 사용하는 옵션을 선택합니다. 예를 들어 8x Multi Sampling에서 2x Multi Sampling으로 전환할 수 있습니다.

  • 라이트맵 파라미터 에셋에서 라이트맵의 품질을 줄입니다. Lighting 창을 열고 Lightmapping settings를 확장하고 Lightmap parameters에 대해 저해상도 옵션을 선택합니다.

  • 라이트맵 해상도를 줄입니다.

  • CPU 기반 디노이저를 사용합니다. 디노이저를 선택하려면 Lighting 창을 열고 Lightmapping settings를 확장하고 FilteringAdvanced로 설정합니다. 그런 다음 각 타입의 라이트맵 타겟(DirectIndirect)에 대해 디노이저를 선택합니다. OpenImageDenoise만 CPU 기반입니다. RadeonProOptix는 GPU 기반이지만 RadeonPro는 GPU 메모리를 더 많이 사용합니다.

플랫폼별 제한 사항

macOS에서는 사용 가능한 메모리 양을 확인하기가 더 어렵습니다. 결과적으로 이 플랫폼에서는 CPU로의 폴백 가능성이 더 높으며 베이크 속도를 최적화하기 위한 지침을 따르는 것이 가장 좋습니다.

베이크 시간을 최적화하는 방법

베이크 시간을 단축하고 베이크용으로 지정된 GPU에서 사용할 수 있는 VRAM을 초과하는 상황을 피할 수 있는 몇 가지 방법이 있습니다.

  • 다른 GPU 가속 애플리케이션을 닫습니다. GPU 가속 2D 이미지 편집 및 3D 모델링 소프트웨어는 VRAM을 사용합니다. 그래픽스 가속 기능을 끄거나 애플리케이션을 종료합니다.

  • CPU 기반 디노이저로 전환합니다. GPU 기반 디노이저도 VRAM 용량을 사용합니다. 대신 시스템 RAM을 사용하는 Intel Open Image와 같은 CPU 기반 옵션으로 전환합니다.

  • 더 작은 게임 오브젝트에는 라이트 프로브를 사용하십시오. 파편이나 작은 프랍과 같은 게임 오브젝트는 라이트맵에서 공간을 사용하지만 씬의 모양에 크게 기여하지 않을 수 있습니다. 베이크 속도를 최적화하려면 이 게임 오브젝트의 메시 렌더러에 대해 Contribute Global Illumination을 비활성화하고 대신 라이트 프로브로 비춥니다.

  • 렌더링 및 베이킹을 위해 별도의 GPU를 지정합니다. 컴퓨터에 둘 이상의 GPU가 있는 경우 렌더링 및 베이킹용으로 하나씩 지정할 수 있습니다. 아래 GPU 선택 설정을 참조하십시오.

  • 더 적은 수의 안티앨리어싱 샘플을 사용합니다. 라이트맵 파라미터 에셋에서 이 설정의 기본값은 8입니다. 이 값을 늘리면 Unity는 더 많은 VRAM을 사용합니다. 라이트맵 크기가 4096 이상인 경우 많은 소비자 GPU의 메모리를 빠르게 초과할 수 있습니다.

GPU 선택 설정

GPU가 두 개 이상 있는 경우 씬 렌더링에 GPU 하나를 지정하고 조명 베이킹에 다른 GPU를 지정할 수 있습니다. 이는 기본 GPU가 씬을 렌더링하고 프로그레시브 GPU 라이트매퍼를 사용하여 베이킹하는데 모두 이용할 수 있는 VRAM이 부족한 경우에 바람직할 수 있습니다.
Unity가 베이킹에 사용하는 GPU를 변경하려면 다음 단계를 따르십시오.
1. Lighting 창(메뉴: Window > Rendering > Lighting)을 엽니다.
2. Workflow Settings 섹션으로 이동합니다.
3. GPU Baking Device 드롭다운 메뉴에서 GPU를 선택합니다.

프로그레시브 라이트매퍼
인라이튼 베이크된 전역 조명을 사용한 라이트매핑