Поделиться через


Близкое освещение — MRTK2

ProximityLight — это парадигма системы проектирования Fluent Design, которая имитирует градиентное инвертированное точечное освещение при наведении рядом с поверхностью объекта. Часто используется для ближнего взаимодействия, приложение может управлять свойствами Близкого света с помощью ProximityLight компонента .

Чтобы материал зависел ProximityLight от Смешанная реальность Toolkit/Standard, необходимо использовать шейдер и включить свойство Proximity Light.

Примечание

По умолчанию поддерживаются до двух ProximityLights .

Примеры

Большинство сцен в MRTK используют ProximityLight. Наиболее распространенный вариант использования можно найти в MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab.

Расширенные возможности использования

По умолчанию только два ProximityLights могут освещать материал одновременно. Если вашему проекту требуется более двух ProximityLights для влияния на материал , в примере кода ниже показано, как это сделать.

Примечание

Наличие большого количества ProximityLights освещения материала увеличит инструкции шейдера пикселей и повлияет на производительность. Учтите эти изменения в своем проекте.

Как увеличить число доступных ProximityLights с двух до четырех.

// 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.

См. также раздел