Render.ru

нода Choice для переключения между текстурами. Анимация размера кадра.

gimmick

Активный участник
Рейтинг
5
#1
Задача состоит в том чтобы анимировать смену текстуры материала.
Казалось бы, логичнее всего для этого использовать ноду choice. Но проблема заключается в том, что атрибут outColor - это трёхмерный вектор, а вход и выход ноды Choice - переменная типа float (насколько я понял).
Можно использовать по одной ноде choice на каждый канал. Но такое решение не выглядит особенно изящным. К тому же оно работает только с нативными майскими материалами. Материал Vray становится просто чёрным если подать на его diffuse output'ы соответствующих choice-нод. Т.е. диапазоны значений по всей видимости используются разные.
Можно было бы использовать в качестве текстуры секвенцию из необходимых изображений. Но это только в том случае если для них работает один и тот же тайлинг. Мне же необходимо использовать разные place2dtexture ноды.

Вопросы такие,
как же можно реализовать переключение текстур в maya? (может быть, как-то использовать triple switch?)
какие необходимо сделать преобразования с R, G, B, чтобы они были "удобоваримы" для виреевского материала?

Так же хотелось бы знать, какая нода содержит информацию о формате просчитываемого кадра, и можно ли его анимировать (к примеру, чтобы 1-й кадр был размером 400x400px а следующий 500x500px)?

Обновление сообщения автором
02.12.2011 в 16:40
Оказалось, что виреевский материал прекрасно понимает выход choice-нод, просто в гипершейде его превью не обновляется, на рендере же всё прекрасно видно. В качестве превью можно использовать майевский материал (как на картинке выше).
Т.О. два первых вопроса снимаются.
Первый я бы перефразировал в, можно ли решить задачу переключения текстур материала более лаконично чем через использование трёх choice-нод?

Обновление сообщения автором
03.12.2011 в 00:34
По всей видимости изменять размер кадра во время batch render'а невозможно (я пытался анимировать соответствующие атрибуты ноды vraySettings, а также писать скрипт, который бы изменял формат кадра, и вставлять его в соответствующее поля раздела МEL callbacks в рендер сеттингз(позже проверю и для mental ray и maya software (но скорее всего в их случае ситуация не сильно отличается))
Поэтому, видимо, надо писать скрипт который будет, меняя настройки, запускать бэтч рендер для каждого текущего кадра.

Обновление сообщения автором
09.12.2011 в 19:23
Оказалось, что виреевский материал прекрасно понимает выход choice-нод, просто в гипершейде его превью не обновляется, на рендере же всё прекрасно видно.
С этим утверждением я всё же поторопился. Случилось так потому, что Maya Software действительно адекватно просчитывает такой виреевский материал, однако сам вирей этого не делает.
Т.е. данность такова, что вирей не призаёт практически ничего, что подаётся ему на вход DiffuseColor, кроме непосредственно ноды file.
Пришлось действовать исходя из этого.

Добавил ноде текстуры материала (file) строковых атрибутов по числу имеющихся заменяемых текстур материала. Заполнил их путями к нужным текстурам (в моём случае это что-то вроде textures1\classic.jpg).
Также создал атрибут список (Enum) с перечнем всех видов используемых для этого материала текстур.
Создал choice-ноду для выбора правильного пути. На селектор ей подал список с ноды-файл.
На инпуты - соответствующие строки. Переключение текстуры заработало.

Теперь нужно учесть разную повторяемость текстуры (тайлинг). Создал необходимое количество пар дополнительных атрибутов в place2dtexture ноде. И пару селекторов (для repeatU и repeatV). На селектор им подал тот же список из file-ноды.
Теперь можно задать тайлинг для каждой текстуры и свободно переключать их, в том числе и анимируя.

Возможно, для нативных майских материалов будет проще использовать первый способ. С другой стороны там тоже используются три choice-ноды. Т.е. количество действий не намного меньше, хотя и не надо создавать такого количества дополнительных атрибутов.

Если есть более рациональное решение этой задачи, прошу ответить.

Обновление сообщения автором
14.12.2011 в 16:26
Насчёт последовательного батч-рендеринга изображений с разным разрешением - спасибо Dark™ за прояснение ситуации - это возможно реализовать с помощью пакетного файла. (bat-файл с набором команд для рендеринга из командной строки)

Заполнил их путями к нужным текстурам (в моём случае это что-то вроде textures1\classic.jpg).
Для случая с v-ray нодами - нужно указывать полный путь к файлу, иначе они "не понимают".

Обновление сообщения автором
15.12.2011 в 11:15
Снова fail. Если запускать v-ray из командной строки, то им оказываются проигнорированны все манипуляции связанные с анимированной сменой текстур. Он рендерит все кадры с одной (которая была в первом кадре) текстурой, т.е. не перерассчитывает её в каждом кадре.
С Maya Software такого не происходит (текстура благополучно изменяется). С Mental Ray, видимо, тоже не должно происходить.
 

Вложения

Сверху