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


Общие сведения об освещении при близком взаимодействии — MRTK3

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

Пример пользовательского интерфейса источника близкого света

Чтобы использовать ProximityLight на материале, необходимо использовать шейдеры Графические инструменты/Стандартные или Графические инструменты/Стандартный холст, а также необходимо включить свойство Источник близкого света. ProximityLight также влияет на шейдеры Графические инструменты/Не холст/Лицевая панель и Графические инструменты/Холст/Лицевая панель, но несколько иначе.

Примечание

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

Расширенное использование

По умолчанию одновременно освещать материал могут только два источника ближнего света ProximityLight. Если вашему проекту требуется более двух источников ProximityLight для влияния на материал, в приведенном ниже примере кода показано, как это сделать в шейдерах Графические инструменты/Стандартные или Графические инструменты/Стандартный холст.

Примечание

Если материал освещается большим количеством ProximityLight, это увеличит количество инструкций построителя текстуры и повлияет на производительность. Учтите эти изменения в своем проекте.

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

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

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