Обзор плагина EffectsChannelEx

Как известно, в 3ds Max любому материалу или текстурной карте можно назначить специальный идентификатор – Material ID Channel. Использование данного идентификатора позволяет применять к выбранным материалам различные эффекты пост-обработки, причем как в внутри 3ds Max, так и во внешних программах.

Исторически сложилось так, что интерфейс редактора материалов, все пост-эффекты входящие в состав 3ds Max, и даже соответствующие свойства объектов MAXScript позволяют использовать значения Material ID Channel только в диапазоне от 0 до 15. И хотя для большинства сцен этого может быть достаточно, такое ограничение является совершенно искусственным.

Дело в том, что с самого начала и буфер кадра, и ядро 3ds Max, и даже плагины, осуществляющие экспорт изображений (в частности в формат .rpf), позволяли работать с Material ID Channel в диапазоне от 0 до 255. С таким же диапазоном работают и большинство программ для пост обработки.

Представляемый мной плагин призван исправить сложившуюся ситуацию. Я не могу изменить интерфейс редактора материалов, но, благодаря возможностям MAX SDK, я могу предложить расширенные функции MAXScript, которые позволят использовать Material ID Channel в полном диапазоне.

Плагин EffectsChannelEx добавляет две новые функции MAXScript:

setEffectsChannel (<material> | <texture>) <integer>
getEffectsChannel (<material> | <texture>)

Первая позволяет назначать Material ID Channel, вторая возвращает установленное ранее значение.

Функция getEffectsChannel была добавлена исключительно для симметрии, поскольку для чтения значения вы можете по-прежнему использовать стандартный способ:

<material>.effectsChannel

Значения Material ID Channel, установленные при помощи функции setEffectsChannel корректно обрабатываются рендерами, экспортируются в различные форматы, а также используются в Render Elements (например в MultiMatteElement рендера V-Ray).

Для упрощения использования новых функций, вы можете воспользоваться примером скрипта для управления Material ID Channel.