이 페이지에서는 Unity에서 조명이 작동하는 방식을 설명합니다.
Unity의 조명은 현실 세계에서 빛이 동작하는 방식을 근사화합니다. Unity는 광원의 동작에 대한 세밀한 모델을 사용하여 더욱 사실적인 결과를 구현하거나, 단순화된 모델을 사용하여 더욱 세련된 결과를 구현합니다.
다음 플로우차트는 콘텐츠 크리에이터의 시각에서 Unity의 전체 조명 파이프라인에 대한 높은 수준의 통찰을 제공합니다.
렌더 파이프라인 선택부터 시작합니다. 그런 다음 간접 조명이 생성되는 방식을 결정하고 그에 따라 전역 조명 시스템을 선택합니다. 모든 전역 조명 설정이 프로젝트에 적절하게 조정되었는지 확인한 후에 광원, 발광 표면, 반사 프로브, 라이트 프로브, LPPV(라이트 프로브 프록시 볼륨)를 추가할 수 있습니다.
광원 은 모든 씬에서 필수적인 부분입니다. 메시와 텍스처는 씬의 모양과 모습을 정의하는 반면, 광원은 3D 환경의 컬러와 분위기를 정의합니다. 각 씬에서 두 개 이상의 광원으로 작업할 수 있습니다. 함께 작동시키려면 약간의 연습이 필요하지만 놀라운 결과가 나올 수 있습니다.
광원은 GameObject->Light 메뉴에서 씬에 추가할 수 있습니다. 표시되는 하위 메뉴에서 원하는 광원 포맷을 선택합니다. 광원이 추가되면 다른 게임 오브젝트처럼 조작할 수 있습니다. 또한 Component->Rendering->Light 를 사용하여 선택한 게임 오브젝트에 Light 컴포넌트를 추가할 수 있습니다.
인스펙터 의 Light 컴포넌트에는 여러 다양한 옵션이 있습니다.
간단히 광원의 컬러 만 변경해도 씬의 분위기를 완전히 바꿀 수 있습니다.
직접광은 발산되고 표면에 한 번 닿은 후 센서(예: 눈의 망막 또는 카메라)에 직접 반사되는 광원입니다. 간접광은 여러 번 표면에 닿는 광원과 하늘 광원을 비롯하여 최종적으로 센서에 반사되는 다른 모든 광원입니다. 사실적인 조명 결과를 얻으려면 직접광과 간접광 모두 시뮬레이션해야 합니다.
Unity는 직접 조명, 간접 조명 또는 둘 모두를 계산할 수 있습니다. Unity가 사용하는 조명 기술은 프로젝트를 설정하는 방식에 따라 다릅니다.
실시간 조명은 Unity가 런타임 시 조명을 계산하는 경우입니다. 베이크된 조명은 Unity에서 미리 조명 계산을 수행하고 런타임 시 적용되는 조명 데이터로 결과를 저장하는 경우입니다. Unity에서 프로젝트는 실시간 조명, 베이크된 조명 또는 둘의 조합(혼합 조명)을 사용할 수 있습니다.
실시간 조명, 베이크된 조명, 혼합 조명을 제공하기 위한 Light 컴포넌트의 설정 방법은 광원 모드를 참조하십시오.
전역 조명은 직접 조명과 간접 조명을 모두 모델링하여 사실적인 조명 결과를 제공하는 기법입니다. Unity에는 직접 조명과 간접 조명을 결합하는 두 가지 전역 조명 시스템이 있습니다.
Unity에서 사용할 수 있는 전역 조명 시스템은 다음과 같습니다.
실시간 전역 조명: 이 시스템은 타사 미들웨어 솔루션인 Enlighten을 기반으로 제작되었습니다. 사전 계산을 수행하고 ContributeGI 설정을 활성화한 상태에서 씬의 게임 오브젝트를 수정하지 않으면 조명을 실시간으로 조정할 수 있습니다.
베이크된 전역 조명 이 시스템을 선택하면 Unity는 프로그레시브 라이트매퍼(CPU 또는 GPU)를 사용하여 조명 데이터를 라이트 프로브, 라이트맵이라는 텍스처, 반사 프로브로 베이크합니다.
프로그레시브 라이트매퍼는 패스트레이싱을 사용하여 간접 조명 값을 계산합니다. 이는 씬 뷰 카메라에 보이는 오브젝트에 영향을 미치는 사전 계산 조명에 우선순위를 지정할 수 있습니다. 라이트맵의 일부에 대한 조명만 업데이트하면 전체 베이크 시간이 늘어나지만, 조명 디자인을 더 빠르게 반복할 수도 있습니다.
렌더 파이프라인의 조명 기능 지원에 대한 자세한 내용은 렌더 파이프라인 기능 비교를 참조하십시오.
Unity는 다양한 렌더링 경로 를 지원합니다. 이러한 경로는 주로 광원과 그림자에 영향을 미치므로 게임 요구 사항에 따라 올바른 렌더링 경로를 선택하면 프로젝트의 성능이 향상될 수 있습니다. 렌더링 경로에 대한 자세한 내용은 렌더링 경로 섹션을 참조하십시오.