근접 조명 - MRTK2
ProximityLight
는 개체의 표면 근처를 가리키는 "그라데이션 역포인트 조명"을 모방하는 Fluent Design 시스템 패러다임입니다. 가까운 상호 작용에 자주 사용되는 애플리케이션은 구성 요소를 통해 근접 조명의 속성을 제어할 ProximityLight
수 있습니다.
Mixed Reality 도구 키트/표준 셰이더의 영향을 받는 ProximityLight
재질을 사용해야 하며 근접 조명 속성을 사용하도록 설정해야 합니다.
참고
기본적으로 최대 2 ProximityLights
개가 지원됩니다.
예제
MRTK 내의 대부분의 장면은 를 활용합니다 ProximityLight
. 가장 일반적인 사용 사례는 MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab에서 찾을 수 있습니다.
고급 사용 방법
기본적으로 한 번에 두 개 ProximityLights
만 재질 을 비출 수 있습니다. 프로젝트에 재질에 영향을 주는 데 두 ProximityLights
개 이상이 필요한 경우 아래 샘플 코드는 이를 달성하는 방법을 보여 줍니다.
참고
재질에 조명이 많이 ProximityLights
있으면 픽셀 셰이더 명령이 증가하고 성능에 영향을 줍니다. 이러한 변경 내용을 프로젝트 내에서 프로파일링하세요.
사용 가능한 ProximityLights
수를 2개에서 4개로 늘리는 방법입니다.
// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within MRTK/Core/Utilities/StandardShader/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.