조명 소개

이 페이지에서는 Unity에서 조명이 작동하는 방식을 설명합니다.

Unity의 조명은 현실 세계에서 빛이 동작하는 방식을 근사화합니다. Unity는 광원의 동작에 대한 세밀한 모델을 사용하여 더욱 사실적인 결과를 구현하거나, 단순화된 모델을 사용하여 더욱 세련된 결과를 구현합니다.

직접 조명과 간접 조명

직접광은 방출되어 표면에 한 번 닿은 후 센서(예: 눈의 망막 또는 카메라)에 직접 반사되는 광원입니다. 간접광은 표면에 여러 번 닿는 광원, 스카이 라이트 등을 포함하여 궁극적으로 센서에 반사되는 다른 모든 광원입니다. 사실적인 조명 결과를 얻으려면 직접광과 간접광을 모두 시뮬레이션해야 합니다.

Unity는 직접 조명, 간접 조명 또는 둘 다를 계산할 수 있습니다. Unity가 사용하는 조명 기술은 프로젝트의 설정 방식에 따라 다릅니다.

실시간 조명과 베이크된 조명

실시간 조명은 Unity가 런타임 시점에 계산하는 조명입니다. 베이크된 조명은 Unity가 조명 계산을 미리 수행하고 결과를 조명 데이터로 저장한 후 런타임 시점에 적용되는 조명입니다. Unity에서 프로젝트는 실시간 조명, 베이크된 조명, 또는 이 두 가지의 조합(혼합 조명)을 사용할 수 있습니다.

실시간 조명, 베이크된 조명, 혼합 조명을 제공하기 위한 Light 컴포넌트의 설정 방법은 광원 모드를 참조하십시오.

전역 조명

전역 조명은 직접 조명과 간접 조명을 모두 모델링하여 사실적인 조명 결과를 제공하는 기술 그룹입니다. Unity에는 직접 조명과 간접 조명을 결합하는 두 가지 전역 조명 시스템이 있습니다.

베이크된 전역 조명 시스템은 라이트매핑, 라이트 프로브, 반사 프로브로 이루어져 있습니다. 모든 렌더 파이프라인은 베이크된 전역 조명 시스템을 지원합니다. 베이크된 전역 조명 시스템의 각 기능에 대한 렌더 파이프라인 지원은 해당 기능에 대한 문서에 나와 있습니다.

실시간 전역 조명 시스템은 인라이튼을 사용하는 실시간 전역 조명으로 이루어져 있으며 라이트 프로브에 기능을 추가합니다. 빌트인 렌더 파이프라인은 실시간 전역 조명을 지원합니다. 고해상도 렌더 파이프라인(HDRP)과 유니버설 렌더 파이프라인(URP)은 실시간 전역 조명 시스템을 지원하지 않습니다. 인라이튼은 지원이 중단되었으며, 실시간 전역 조명 시스템은 Unity에서 곧 제거될 예정입니다. 자세한 내용은 Unity 블로그를 참조하십시오.

 

씬을 새로만들면 Directional Light가 기본으로 생성되지만,  필요에 따라 Point, Spot, Area Light를 추가할수 있다.

GameObject>Light로 조명을 생성할수 있다.

Light가 추가하면 그만큼 렌더링 계산이 늘어나기때문에 부하가 늘어날 수밖에 없다. 따라서 시각적인효과와 게임수행속도 사이의 균형을 맞추는데 신경써야한다.

유니티는 게임 속도를 저하하지 않고 실시간 조명의 효과를 낼 수 있는 라이트매핑및 라이트 프로브 기능을 제공한다.

 

실시간 라이트매핑 기능

유니티는 백그라운드로 라이트맵을 베이킹할 수 있는 기능이 있다. 개발중에 조명의 효과를 볼 수 있어 반복적인 작업에 매우 편리하다. 메뉴에서 Window>Rendering>Lighting 을 선택하면 라이팅뷰가 열린다.

 

Lighting Setting 에셋

라이팅뷰 New Lighting Settings버튼을 클릭해 에셋을 생성한다. 이름은 Play로 한다. Secenes폴더로 이동시킨다.

 

Auto Generate옵션

라이팅뷰 아래에 있는 오토제너레이션 옵션을 체크하면 실시간 라이트맵을 베이크한다. 아직은 라이트매핑을 위해 설정한 것이 없기때문에 문제가 되자 않지만 복잡해지면 에디터의 속도를 떨어트리는 원인이 된다. 

 

+ Recent posts