Общие сведения об освещении при близком взаимодействии — 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.