반사 프로브
반사 프로브 사용(Using Reflection Probes)

반사 프로브의 타입

반사 프로브에는 세 가지 기본 타입이 있으며 인스펙터의 Type 프로퍼티에서 선택합니다. 자세한 내용은 컴포넌트 레퍼런스 페이지를 참조하십시오.

  • 베이크된 프로브는 에디터 내부에서 생성된(“베이크된”) 반사 큐브맵을 저장합니다. 베이킹은 반사 프로브 인스펙터 하단의 Bake 버튼을 클릭하거나 조명 창에서 Build 버튼을 클릭하여 시작할 수 있습니다. 조명 창에서 Auto 옵션을 활성화하면 씬 뷰에 오브젝트를 배치함에 따라 베이크된 프로브가 자동으로 업데이트됩니다. 베이크된 프로브의 반사는 인스펙터에서 Reflection Probe Static 으로 표시된 오브젝트만 표시합니다. Unity는 이를 통해 해당 오브젝트가 런타임 시점에 움직이지 않는다는 것을 알 수 있습니다.
  • 실시간 프로브는 에디터가 아니라 플레이어에서 런타임 시점에 큐브맵을 생성합니다. 즉 반사가 정적 오브젝트로 제한되지 않으며 씬에 일어난 변화를 보여주기 위해 실시간으로 업데이트될 수 있습니다. 그러나 프로브의 뷰를 새로 고치는 데 프로세싱 시간이 상당히 오래 걸리기 때문에 업데이트를 주의 깊게 관리해야 합니다. Unity에서는 스크립트로 업데이트를 트리거할 수 있기 때문에 업데이트가 발생하는 시점을 정확하게 제어할 수 있습니다. 또한 프로브 업데이트에 타임슬라이싱 을 적용하는 옵션이 있으며, 이를 통해 여러 프레임에 걸쳐 업데이트가 서서히 일어나도록 할 수 있습니다.
  • 커스텀 프로브 타입도 사용할 수 있습니다. 이 프로브를 사용하면 베이크된 프로브처럼 에디터에서 뷰를 베이크할 수 있으며 반사를 위한 커스텀 큐브맵도 사용할 수 있습니다. 커스텀 프로브는 런타임 시점에 업데이트할 수 없습니다.

이 세 가지 타입은 아래 세부 사항에서 설명합니다.

베이크된 및 커스텀 반사 프로브

베이크된 반사 프로브의 반사 큐브맵은 Unity 에디터에 캡처 및 저장되어 추후 플레이어에서 사용됩니다. 자세한 내용은 반사 프로브 소개를 참조하십시오. 일단 캡처 프로세스가 완료되면 반사는 “동결”되며, 따라서 베이크된 프로브는 움직이는 오브젝트가 유발한 씬의 런타임 변경사항에 반응할 수 없습니다. 그러나 베이크된 프로브는 변경 사항에 반응하는 실시간 프로브에 비해 프로세싱 오버헤드가 훨씬 낮으며 여러 가지 목적으로 사용할 수 있습니다. 예를 들어 움직이는 반사 오브젝트가 하나만 있을 경우 이 오브젝트는 정적 주변 환경만 반사하면 됩니다.

베이크된 프로브 사용

프로브가 베이크된 프로브로써 동작하도록 하려면 이 프로브의 Type 프로퍼티를 Baked 또는 Custom 으로 설정해야 합니다. 커스텀 프로브가 제공하는 추가 기능은 아래를 참조하십시오.

베이크된 프로브가 캡처하는 반사에는 모든 오브젝트용 인스펙터 패널의 왼쪽 상단에 있는 Static 메뉴를 사용하여 Reflection Probe Static 으로 표시된 씬 오브젝트만 포함할 수 있습니다. 반사 큐브맵에 포함된 오브젝트를 더 다듬으려면 Culling MaskClipping Planes 프로퍼티를 사용하면 됩니다. 이 프로퍼티는 카메라와 동일한 방법으로 작동합니다. 프로브는 기본적으로 여섯 개의 큐브맵 전면을 바라보도록 회전하는 카메라와 같습니다.

조명 창에서 Auto 옵션이 켜져 있으면 씬의 포지션 오브젝트가 배치되면서 베이크된 반사가 자동으로 업데이트됩니다. 자동 베이킹을 활용하지 않을 경우 반사 프로브 인스펙터의 베이크 버튼을 클릭하여 프로브를 업데이트할 수 있습니다. 조명 창의 빌드 버튼 역시 프로브가 업데이트할 수 있도록 트리거합니다.

자동 또는 수동 베이킹을 사용하는 경우에도 에디터에서 계속 작업하는 동안 베이크 프로세스가 비동기적으로 수행됩니다. 하지만 정적 오브젝트를 이동하거나 머티리얼을 변경하거나 시각적 형상을 변경하면 베이킹 프로세스가 다시 시작됩니다.

커스텀 프로브

기본적으로 커스텀 프로브는 베이크된 프로브와 동일한 방식으로 작동합니다. 하지만 커스텀 프로브에는 이 동작을 변화하는 추가 옵션도 있습니다.

커스텀 프로브의 인스펙터에 있는 Dynamic Objects 프로퍼티를 통해 Reflection Probe Static 으로 표시되지 않은 오브젝트가 반사 큐브맵에 포함될 수 있습니다. 하지만 이러한 오브젝트의 포지션은 베이킹 시점의 반사에서는 여전히 “동결”되어 있습니다.

Cubemap 프로퍼티를 통해 직접 만든 큐브맵을 프로브에 할당할 수 있고 이에 따라 큐브맵을 뷰 포인트에서 “볼” 수 있는 것과는 완전히 독립적으로 만들 수 있습니다. 이를 사용하면 3D 모델링 프로그램에서 생성한 스카이박스 또는 큐브맵 등을 반사의 소스로 설정할 수 있습니다.

실시간 프로브

베이크된 프로브는 여러 가지 목적으로 유용하게 사용할 수 있으며 런타임 성능이 훌륭합니다. 하지만 플레이어에서 라이브 업데이트가 되지 않는다는 단점이 있습니다. 즉 오브젝트가 씬에서 움직일 수 있으나 그 반사가 오브젝트를 따라서 움직이지는 않는다는 의미입니다. 이러한 제한을 피하고 싶다면 런타임 시점에 반사 큐브맵을 업데이트하는 Realtime 프로브를 사용하면 됩니다. 이 효과는 프로세싱 오버헤드가 높지만 현실성을 크게 향상시켜 줍니다.

실시간 프로브 사용

프로브가 런타임 시점에 업데이트되도록 하려면 반사 프로브 인스펙터에서 프로브의 Type 프로퍼티를 Realtime 으로 설정해야 합니다. 베이크된 프로브와는 달리 오브젝트의 반사를 캡처하기 위해 오브젝트를 Reflection Probe Static 으로 표시하지 않아도 됩니다. 하지만 Culling MaskClipping Planes 프로퍼티를 사용하여 오브젝트를 반사 큐브맵에서 선택적으로 제외할 수 있습니다. 이 프로퍼티는 카메라의 경우와 동일한 방법으로 작동합니다. 프로브는 기본적으로 여섯 개의 큐브맵 전면을 바라보도록 회전하는 카메라와 같습니다.

에디터에서 실시간 프로브는 베이크된 프로브와 상당히 유사한 워크플로에 따라 작동하지만 렌더링 속도는 더욱 빠릅니다. 조명 창에서 자동 옵션이 켜져 있으면 씬의 포지션 오브젝트가 배치되면서 반사가 자동으로 업데이트됩니다. 자동 베이킹을 사용하지 않을 경우 반사 프로브 인스펙터의 베이크 버튼을 클릭해야 프로브가 업데이트됩니다. 조명 창의 빌드 버튼 역시 프로브가 업데이트할 수 있게 트리거합니다.

자동 또는 수동 베이킹을 사용하는 경우에도 에디터에서 계속 작업하는 동안 베이크 프로세스가 비동기적으로 수행됩니다. 하지만 정적 오브젝트를 이동하거나 머티리얼을 변경하거나 시각적 형상을 변경하면 베이킹 프로세스가 다시 시작됩니다.

참고: 현재 실시간 프로브는 Reflection Probe Static 오브젝트가 이동하거나 모양이 변하는 경우에만 씬 뷰에서 반사를 업데이트합니다. 즉, 움직이는 동적 오브젝트는 이 오브젝트가 반사에 표시되어도 업데이트를 유발하지 않는다는 의미입니다. 동적 오브젝트가 변경될 때 반사를 업데이트하려면 조명 창Build 버튼 팝업에서 Bake Reflection Probes 옵션을 선택해야 합니다.

반사 프로브
반사 프로브 사용(Using Reflection Probes)