Version: 2017.1
전역 조명
베이크된 앰비언트 오클루전

미리 계산된 조명 사용(Using precomputed lighting)

Unity 에디터에서 미리 계산된 조명은 배경에서 자동 프로세스로 계산되거나 수동으로 초기화될 때 계산됩니다. 어떤 경우든 프로세스가 백그라운드에서 실행되는 동안 에디터에서 작업을 계속할 수 있습니다.

미리 계산된 프로세스가 실행 중일 때 에디터의 오른쪽 하단에 파란색 진행 표시줄이 표시됩니다. 베이크된 GI 또는 사전에 계산된 실시간 GI 중 무엇이 활성화되었는지에 따라 완료해야 하는 단계가 다릅니다. 현재 프로세스에 대한 정보가 진행 표시줄의 위에 표시됩니다.

미리 계산하는 상태를 보여주는 진행 표시줄

위의 그림에서 11개 작업 중 5번째 작업(‘클러스터링’)이 실행되고 있으며, 현재 작업을 마치고 다음 작업으로 넘어갈 때까지는 6개의 작업이 남아 있다는 것을 알 수 있습니다. 다음과 같이 다양한 작업 단계가 있습니다.

미리 계산된 실시간 GI

  1. 지오메트리 생성
  2. 레이아웃 시스템
  3. 시스템 생성
  4. 아틀라스 생성
  5. 클러스터링
  6. 가시성
  7. 광원 전송
  8. 프로브 사면체화
  9. 프로브세트 생성

프로브

  1. 앰비언트 프로브
  2. 베이크된/실시간 레퍼런스 프로브

베이크된 GI

  1. 지오메트리 생성
  2. 아틀라싱
  3. 베이크된 시스템 생성
  4. 베이크된 리소스
  5. AO 베이크
  6. 베이크된 텍스처 익스포트
  7. 가시성 베이크
  8. 직접 베이크
  9. 앰비언트 및 이미시브
  10. 베이크 시스템 생성
  11. 베이크 런타임
  12. 가시성 업샘플링
  13. 간접 베이크
  14. 파이널 개더
  15. 프로브세트 베이크
  16. 합성

미리 계산 시작

Unity 에디터의 미리 계산된 조명 솔루션에서는 정적 지오메트리만 고려합니다. 조명 미리 계산 프로세스를 시작하려면 씬에서 ‘static’으로 표시된 게임 오브젝트가 하나 이상 필요합니다. 개별적으로 또는 계층 구조 패널에서 Shift를 누르고 여러 게임 오브젝트를 선택하여 표시할 수 있습니다.

인스펙터 패널에서 Static 체크박스(Inspector > Static)를 선택할 수 있습니다. 이렇게 하면 내비게이션과 배칭을 포함하여 게임 오브젝트의 모든 ‘정적 옵션’ 또는 ‘플래그’가 정적으로 설정되어 바람직하지 않을 수 있습니다. 미리 계산된 실시간 GI의 경우 ’라이트맵 정적’만 선택해야 합니다.

더 미세하게 조정하기 위해 인스펙터 패널의 정적 체크박스의 오른쪽에 있는 드롭다운 목록에서 개별 정적 옵션을 설정할 수 있습니다. 또한 라이팅 창의 오브젝트 영역에서 오브젝트를 정적으로 설정할 수도 있습니다.

씬을 Auto Generate(메뉴: Window > Lighting > Settings > Scene > Auto Generate)로 설정하면 Unity 에디터의 조명을 미리 계산하는 작업이 자동으로 시작되고 씬의 정적 지오메트리가 변경되면 자동으로 업데이트됩니다. Auto Generate 를 활성화하지 않으면 조명 미리 계산 작업을 수동으로 시작해야 합니다.

자동/수동 미리 계산

Unity 에디터의 조명 패널 하단에서 Auto Generate(메뉴: Window > Lighting > Settings > Scene > Auto Generate)를 선택한 경우 씬 안에 있는 정적 지오메트리가 변할 때마다 미리 계산 작업이 자동으로 백그라운드 프로세스로 시작됩니다.

하지만 Auto Generate 를 활성화하지 않은 경우 옆의 ‘Build’ 버튼을 클릭하여 조명 미리 계산 작업을 시작할 수 있습니다. 이렇게 하면 미리 계산 작업이 거의 같은 방법으로 시작되고 이 작업이 시작되는 시기를 제어할 수 있습니다.

Auto Generate 는 씬에서 정적 게임 오브젝트를 이동하거나 편집하는 동안 정확한 조명 결과를 빨리 생성하므로 더 작거나 덜 복잡한 씬에서 작업하는 경우에 유용할 수 있습니다. 하지만 크거나 복잡한 씬에서 작업하고 있다면, CPU 점유율이 높아지지 않게 하고 씬을 수정할 때마다 조명 미리 계산 작업을 매번 반복적으로 다시 시작하지 않도록 수동 옵션으로 전환하는 것이 나을 수 있습니다.

미리 계산 작업을 수동으로 실행하면 씬 조명의 모든 측면이 평가되어 계산됩니다. 반사 프로브 자체만 다시 계산하여 베이크하려면 Generate Lighting 버튼(메뉴: Window > Lighting > Settings > Scene > Generate Lighting)에 연결된 드롭다운 메뉴를 클릭하고 Bake Reflection Probes 를 선택합니다.

참고: Auto Generate 모드를 사용할 때 Unity 에디터는 조명 데이터를 크기가 한정된 임시 캐시에 저장합니다. 따라서 캐시 크기를 초과하면 Unity 에디터가 이전 조명 데이터를 삭제합니다. 삭제된 자동 생성 조명 데이터에 의존하는 씬이 있다면 프로젝트를 빌드할 때 문제가 발생할 수 있습니다. 이 경우 빌드된 프로젝트의 씬에 올바른 조명이 없을 수 있습니다. 그러므로 게임을 빌드하기 전에 Auto Generate 를 선택 해제하고 모든 씬에 대해 조명 데이터를 수동으로 생성해야 합니다. 그러면 Unity 에디터가 조명 데이터를 프로젝트 폴더에 에셋 파일로 저장합니다. 즉, 데이터가 프로젝트의 일부로 저장되고 빌드에 포함됩니다.

베이크된 GI 또는 실시간 GI 활성화

Unity 에디터는 Baked GIRealtime GI 를 기본적으로 활성화합니다. Baked GI 는 모두 미리 계산됩니다. Realtime GI 의 경우 간접 조명 사용 시에 미리 계산 작업을 일부 수행합니다. 두 가지 GI가 모두 활성화된 경우 씬의 개별 조명을 각각 사용하여 어느 GI 시스템을 사용해야 할지 제어합니다. 이렇게 하려면 Light 컴포넌트에서 Mode 설정을 사용해야 합니다. 자세한 내용은 라이팅 창 문서와 전역 조명 문서를 참조하십시오.

조명 시스템을 가장 유연하게 사용하려면 Baked GIRealtime GI 를 함께 사용해야 합니다. 하지만 이렇게 하려면 가장 높은 성능이 필요하기도 합니다. 게임에 사용되는 리소스를 줄이기 위해 Realtime GI 또는 Baked GI 를 비활성화할 수도 있습니다. 다만, 이렇게 하면 조명 시스템의 유연성과 기능이 저하됩니다.

전역 조명을 수동으로 활성화하거나 비활성화하려면 라이팅 창(Window > Lighting > Settings > Scene)을 엽니다. Realtime Global Illumination 을 선택하면 Realtime GI 가 활성화되고, Baked Global Illumination 을 선택하면 Baked GI 가 활성화됩니다. 체크박스를 선택 해제하면 해당 GI 시스템이 비활성화됩니다. 비활성화한 모드로 설정된 광원이 있다면 해당 광원은 오버라이드되어 현재 GI 시스템에 적용됩니다.

광원별 설정

각 개별 광원의 프로퍼티를 설정하려면 씬 또는 계층 구조 창에서 광원을 선택한 다음 인스펙터 창의 Light 컴포넌트에서 설정을 편집합니다.

각 광원의 기본 ModeDynamic 입니다. 이 모드에서는 광원이 씬에 직접 조명을 비추고, Unity 에디터의 Realtime GI 가 간접 조명을 처리합니다.

광원 ModeStatic 으로 설정하면 해당 광원이 Unity 에디터의 Baked GI 시스템에만 조명을 보탭니다. 해당 광원의 직접 및 간접 조명 모두 라이트 맵에 베이크되고, 게임 플레이 중에 변경할 수 없습니다.

광원 ModeStationary 로 설정해도 Static 으로 표시된 게임 오브젝트의 Baked GI 라이트 맵에 이 광원이 포함됩니다. 하지만 Stationary 광원은 Static 으로 표시된 광원과 달리 라이팅 창의 정적 베이크 모드(메뉴: Window > Lighting > Settings)에 따라 실시간 조명에 계속 기여합니다. 정적 환경에서 라이트 맵을 사용하는 경우에 유용하지만, 이 경우에도 동적 지오메트리와 라이트맵 정적 지오메트리를 잘 통합하는 것이 좋습니다.

Mode 가 Dynamic 으로 설정된 방향 광원
ModeDynamic 으로 설정된 방향 광원

자세한 내용은 조명 모드 문서를 참조하십시오.

GI 캐시

베이크된 GI 또는 미리 계산된 실시간 GI에서 Unity 에디터는 씬 조명에 대한 데이터를 ‘GI 캐시’에 캐시(저장)하고 미리 계산 작업 중에 시간을 절약하기 위해 이 데이터를 가능할 때마다 재사용하려고 합니다. 씬에 적용한 변경 사항의 수와 성질에 따라 이 데이터의 재사용 가능 여부와 재사용 가능한 양이 결정됩니다.

이 캐시는 Unity 프로젝트 밖에 저장되고 Preference > GI Cache > Clear Cache 를 사용하여 지울 수 있습니다. 캐시를 지우면 미리 계산 작업의 모든 단계를 처음부터 다시 계산해야 하므로 많은 시간이 걸릴 수 있습니다. 하지만 디스크 사용량을 줄여야 할 때에는 유용할 수 있습니다.

베이크된 GI의 LOD

Unity 에디터에서는 베이크된 라이트맵을 생성할 때 디테일 수준(LOD)을 고려합니다. 직접 조명은 모든 LOD의 실제 표면을 사용하여 계산됩니다. LOD 수준이 낮으면 라이트 프로브를 사용하여 간접 조명을 가져와야 합니다. 그 결과로 생성되는 조명이 라이트맵에 베이크됩니다.

즉 간접 조명을 캡처하려면 라이트 프로브를 LOD 주위에 배치해야 합니다. 완전히 베이크된 GI를 사용하면 오브젝트가 런타임 시점에 라이트 프로브를 사용하지 않습니다.


  • 2017–06–08 일부 편집 리뷰를 거쳐 페이지 게시됨

  • Unity 5.6에 추가된 광원 모드

전역 조명
베이크된 앰비언트 오클루전