근접 조명 개요 — MRTK3

ProximityLight는 개체의 표면 근처를 가리키는 "그라데이션 역포인트 조명"을 모방하는 Fluent Design 시스템 패러다임입니다. 근거리 조작에 자주 사용되는 애플리케이션은 ProximityLight 구성 요소를 통해 근접 조명의 속성을 제어할 수 있습니다.

근접 조명 UI 예제

ProximityLight의 영향을 받는 재질의 경우 Graphics Tools/Standard 또는 Graphics Tools/Standard Canvas 셰이더를 사용해야 하며 Proximity Light 속성을 사용하도록 설정해야 합니다. Graphics Tools/Non-Canvas/FrontplateGraphics Tools/Canvas/FrontplateProximityLight에 영향을 받지만 방식이 약간 다릅니다.

참고

기본적으로 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.

참고 항목