Omówienie światła zbliżeniowego — MRTK3
A ProximityLight
to model Fluent Design System, który naśladuje "odwrotne światło punktowe gradientu" unoszące się w pobliżu powierzchni obiektu. Jest on często używany do interakcji w pobliżu, aplikacja może kontrolować właściwości światła zbliżeniowego ProximityLight
za pośrednictwem składnika.
Aby materiał był pod wpływem ProximityLight
elementu , należy użyć narzędzi graficznych/ standardowych lub narzędzi graficznych/cieniowania kanwy standardowej , a właściwość Light zbliżeniowa musi być włączona. Pod wpływem narzędzi graficznych/innych niż canvas/frontplate i narzędzi graficznych/kanwy/platformy frontplate mają również wpływ ProximityLight
s, ale w nieco inny sposób.
Uwaga
Domyślnie obsługiwane są maksymalnie dwa ProximityLight
s.
Użycie zaawansowane
Domyślnie tylko dwa ProximityLight
s mogą oświetlić materiał w danym momencie. Jeśli projekt wymaga więcej niż dwóch ProximityLight
elementów, aby wpłynąć na materiał, poniższy przykładowy kod pokazuje, jak to osiągnąć w narzędziach graficznych/narzędziach standardowych lub narzędziach graficznych/modułach cieniujących kanwy w warstwie Standardowa .
Uwaga
O wielu ProximityLight
światłach materiał zwiększy instrukcje cieniowania pikseli i wpłynie na wydajność. Zaprofiluj te zmiany w projekcie.
Jak zwiększyć liczbę dostępnych ProximityLight
s z dwóch do czterech.
// 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;
Uwaga
Jeśli aparat Unity rejestruje ostrzeżenie podobne do poniższego, przed wprowadzeniem zmian należy ponownie uruchomić aparat Unity.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.