근접 조명 개요 — MRTK3
ProximityLight
는 개체의 표면 근처를 가리키는 "그라데이션 역포인트 조명"을 모방하는 Fluent Design 시스템 패러다임입니다. 근거리 조작에 자주 사용되는 애플리케이션은 ProximityLight
구성 요소를 통해 근접 조명의 속성을 제어할 수 있습니다.
ProximityLight
의 영향을 받는 재질의 경우 Graphics Tools/Standard 또는 Graphics Tools/Standard Canvas 셰이더를 사용해야 하며 Proximity Light 속성을 사용하도록 설정해야 합니다. Graphics Tools/Non-Canvas/Frontplate 및 Graphics Tools/Canvas/Frontplate도 ProximityLight
에 영향을 받지만 방식이 약간 다릅니다.
참고
기본적으로 ProximityLight
는 최대 2개까지 지원됩니다.
고급 사용
기본적으로 한 번에 두 개의 ProximityLight
만 재질을 비출 수 있습니다. 재질에 영향을 주기 위해 프로젝트에 두 개가 넘는 ProximityLight
가 필요한 경우 Graphics Tools/Standard 또는 Graphics Tools/Standard Canvas 셰이더에서 이를 달성하는 방법을 보여주는 아래 샘플 코드를 참조하세요.
참고
많은 ProximityLight
가 재질을 비추면 재질의 픽셀 셰이더 명령이 증가하고 성능에 영향을 줍니다. 이러한 변경 내용을 프로젝트 내에서 프로파일링하세요.
사용 가능한 ProximityLight
수를 2개에서 4개로 늘리는 방법.
// 1) Within GraphicsToolsStandardInput.hlsl change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within ProximityLight.cs change:
private const int proximityLightCount = 2;
// to:
private const int proximityLightCount = 4;
참고
Unity에서 아래와 유사한 경고를 로그하는 경우 변경 내용이 적용되기 전에 Unity를 다시 시작해야 합니다.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.