Как известно, в 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.