Unity에는 환경 조명이 기본적으로 씬에 영향을 미치도록 만드는 전용 관리자인 SkyManager가 포함되어 있습니다. SkyManager는 주변 프로브 및 기본 반사 프로브를 자동으로 생성하여 환경 조명을 캡처합니다.
라이트맵과 라이트 프로브를 수동으로 생성하지 않은 씬 또는 게임 오브젝트의 조명 결과에서 환경 기여를 비활성화하려면 기본 반사 프로브와 주변광 프로브를 비활성화하십시오. 이러한 프로브를 비활성화하는 방법은 SkyManager 비활성화를 참조하십시오.
Reflection Probe 컴포넌트를 씬의 아무 오브젝트에나 추가할 수 있지만, 각 프로브를 별도의 빈 게임 오브젝트에 추가하는 방법이 일반적입니다. 일반적인 워크플로는 다음과 같습니다.
반사를 보려면 씬에 반사 오브젝트가 하나 이상 있어야 합니다. 간단한 테스트 오브젝트를 다음과 같이 생성할 수 있습니다.
이제 구체에는 프로브로부터 얻은 반사 효과가 표시됩니다. 프로브가 1개 있는 간단한 구성으로 반사의 기본적인 효과를 충분히 나타낼 수 있습니다.
마지막으로, 반사가 보이기 전에 프로브를 베이크해야 합니다. 라이팅 창에서 Auto Generate 옵션이 활성화(기본 설정)된 경우 씬에서 오브젝트를 배치하거나 변경할 때 반사가 업데이트되지만, 즉각적으로 반응하지는 않습니다. 자동 베이크를 비활성화하면 반사 프로브 인스펙터에서 Bake 버튼을 클릭해야 합니다. 자동 베이크를 비활성화하는 주된 이유는 프로브가 여러 개 있는 복잡한 씬에서는 베이크 작업에 시간이 많이 걸릴 수 있기 때문입니다.
프로브 위치는 주로 게임 오브젝트 위치에 따라 결정되므로 간단히 오브젝트를 원하는 위치로 드래그하면 됩니다. 이 작업을 완료한 후에는 프로브의 효과 영역을 설정해야 합니다. 이 영역은 축에 정렬된 상자 모양으로, Box Size 프로퍼티에 따라 크기가 설정됩니다. 크기 값을 직접 설정하거나 인스펙터에서 크기 편집 모드를 활성화하고 씬 뷰에서 상자의 면을 드래그하여 설정할 수 있습니다. 자세한 내용은 Reflection Probe 컴포넌트 페이지를 참조하십시오. 전체 프로브 집합의 영역 전체는 반사 오브젝트가 지나갈 수 있는 씬의 모든 부위를 포함해야 합니다.
씬에서 눈에 띄게 반사되는 큰 오브젝트 가까이에 프로브를 배치해야 합니다. 벽 중앙 및 모서리의 주변 영역은 프로브를 배치하는 데 적합합니다. 더 작은 오브젝트의 시각 효과가 강한 경우 프로브를 오브젝트 가까이에 배치해야 할 수 있습니다. 예를 들어 모닥불의 불꽃은 오브젝트 자체가 작고 달리 중요하지 않아도 반사되도록 하는 것이 좋습니다.
모든 적절한 위치에 프로브가 있는 경우 각 프로브마다 효과 영역을 정의해야 합니다. 이 작업은 위에서 언급한 Box Size 프로퍼티를 사용하여 수행할 수 있습니다. 벽에는 (적어도 벽의 형상이 매우 균일할 경우) 벽의 대부분에 걸쳐 프로브 영역이 하나만 필요할 수 있지만, 벽과 직각을 이루는 방향에서는 이 영역이 비교적 좁을 수 있습니다. 즉, 꽤 가까이에 있는 오브젝트만 벽에 반사됨을 의미합니다. 위치에 따라 형상이 거의 다르지 않은 트인 공간은 종종 프로브 하나로 처리할 수 있습니다. 프로브 영역은 주 월드 축(X, Y, Z)에 정렬되고, 회전할 수 없습니다. 따라서 벽이 균일해도 축에 정렬되지 않은 경우에는 여러 프로브가 필요할 수 있습니다.
기본적으로 프로브 효과 영역의 중심은 영역의 뷰 포인트지만, 이 위치는 반사 큐브맵을 캡처하는 데 적합하지 않을 수 있습니다. 예를 들어 매우 높은 벽의 프로브 영역은 벽에서 먼 거리까지 확장될 수 있지만, 반사를 구역의 중심에서 캡처하지 않고 가까운 점에서 대신 캡처하고 싶을 수 있습니다. 필요하다면 Box Offset 프로퍼티를 사용하여 오프셋을 뷰 포인트에 추가할 수 있습니다. 이 경우 오프셋이 게임 오브젝트의 로컬 공간에서 프로브의 큐브맵 뷰가 생성되는 위치입니다. 이 프로퍼티를 사용하여 뷰 포인트를 쉽게 효과 영역 안에 놓거나 영역 밖에 놓을 수도 있습니다.
인접한 반사 프로브의 영역을 서로 겹치지 않게 배치하기는 매우 어려울 것이며, 다행히 그럴 필요가 없습니다. 하지만 겹치는 영역에서 어느 프로브를 사용할 것인지 선택해야 하는 문제가 남습니다. Unity 에디터는 기본적으로 반사 오브젝트의 경계 상자와 겹치는 각 프로브 영역이 교차하는 용적을 계산합니다. 경계 상자와 교차하는 용적이 가장 큰 영역이 선택됩니다.
프로프의 Importance 프로퍼티를 사용하여 계산을 수정할 수 있습니다. 겹치는 영역 안에 있을 때 중요도 값이 높은 프로브는 중요도가 낮은 프로브보다 우선합니다. 이 프로퍼티는 예를 들어 큰 영역 안에 완전히 포함되는 작은 프로브 영역이 있는 경우(즉 캐릭터의 경계 상자와 그 주위를 둘러싸는 영역의 교차 용적이 항상 더 커서 작은 영역이 사용되지 않을 때)에 유용합니다.
반사 프로브 블렌딩을 활성화하려면 Graphic Settings > Tier settings 로 이동합니다. Tier settings는 빌트인 렌더 파이프라인에서만 사용할 수 있습니다. 블렌딩이 활성화된 경우 Unity 에디터는 한 프로브의 큐브맵을 점진적으로 페이드 아웃하면서 반사 오브젝트가 한 구역에서 다른 구역으로 지나갈 때 다른 프로브를 페인드 인합니다. 이 점진적인 전환을 통해 오브젝트가 영역의 경계를 지날 때 다른 오브젝트가 반사에 “갑자기” 나타나는 현상이 방지됩니다.
블렌딩은 Mesh Renderer 컴포넌트의 Reflection Probes 프로퍼티를 사용하여 조절합니다. 다음 네 가지 블렌딩 옵션을 사용할 수 있습니다.
프로브의 Importance 값이 같은 경우 특정 프로브 영역의 블렌딩 가중치는 영역이 오브젝트의 경계 상자와 교차하는 용적을 모든 프로브가 박스와 교차하는 용적의 합으로 나눠서 계산합니다. 예를 들어 박스가 프로브 A의 영역과 1.0 입방 단위만큼 교차하고 프로브 B의 영역과 2.0 입방 단위만큼 교차하는 경우 블렌딩 값은 다음과 같습니다.
다시 말해, 블렌드는 A 프로브의 반사를 33% 포함하고 프로브 B의 반사를 67% 포함합니다.
프로브 하나가 다른 프로브 안에 완전히 포함되어 있는 경우 계산을 약간 다르게 처리해야 합니다. 내부 영역이 외부 영역과 완전히 겹치기 때문입니다. 오브젝트의 경계 상자 전체가 내부 영역 안에 있으면 해당 구역의 블렌딩 가중치는 1.0입니다. 즉, 외부 영역이 전혀 사용되지 않습니다. 오브젝트의 일부분이 내부 영역 밖에 있으면 경계 상자와 내부 영역이 교차하는 용적을 박스의 전체 용적으로 나눕니다. 예를 들어 교차 용적이 1.0 입방 단위이고 경계 상자의 용적이 4.0 입방 단위라면 내부 프로브의 블렌딩 가중치는 1.0 / 4.0 = 0.25입니다. 다음으로, 이 값을 1.0에서 차감하여 외부 프로브의 가중치를 구합니다. 이 사례에서 외부 프로브의 가중치는 0.75입니다.
블렌드와 연관된 프로브 하나의 Importance 값이 다른 프로브보다 더 높으면 더 중요한 프로브가 다른 프로브를 일반적인 방법으로 오버라이드합니다.
Unity 5.6에서 업데이트됨
2017–06–06 페이지 게시됨