Рендеринг моушен векторов менталреем в Майе
Некоторое время назад сделал видеоурок по рендерингу моушен векторов менталреем в Майе по просьбе RE:Vision Effects (поэтому на английском языке). Сейчас переключаю их в общее пользование на vimeo.

Галерея – Черная Молния
Добавил в галерею результаты некоторых моих работ для фильма “Черная молния”.
Настройка frameBuffer’ов для вывода пассов в целом и mia_material_x в частности
В этой статье хочу описать метод “ручной” распассовки при рендере в mentalray. Начиная с версии 2009 в майе появилась удобная система пассов прямо из renderSettings. Сейчас в ходу уже Maya 2010… Так зачем тогда нужна возня с настройкой вручную?
Ответ очень прост – до сих пор эта казалось бы удобная система адекватно работает лишь в презентациях и туторах, но даже в тестах средней сложности становятся видны проблемы. Лично я очень часто пользуюсь отличным шейдером mia_material_x, которым можно сделать подавляющее большинство необходимых материалов. И вот как раз его даже в виде специального _x_passes варианта (который, кстати, немного медленнее) новая система полноценно не распассовывает. У самого шейдера есть все необходимые аутпуты, которые можно подключить к кастомным буфферам и вывести как отдельные пассы, но вот тут и кроется самая большая проблема этой системы – простое добавление кастомного буффера, даже пустого, замедляет рендер… иногда очень значительно (сцена, которая используется для примера в этой статье, замедляется с 7 минут до 57 минут).
Собственно, в статье пойдет речь о более старом методе вывода пассов, который решает как проблему совместимости с mia_material_x, так и проблему скорости.

Lightmap’ы и Конверсия изображения в другое uv пространство
Этот пост о методах конвертации изображения (текстуры, карты дисплейсмента и т.п.), нарисованного для определенной uv-развертки, в соответствующее изображение для другой uv-развертки того же объекта.
К примеру, сгенеренный дисплейсмент для AUV/GUV маппинга из zBrush надо трансформировать в более “вразумительный” маппинг (загрузка которого в zBrush для перегенерации карты не работает… не спрашивайте, у меня такое было в разгар продакшена
) дабы смешать с другой картой дисплейсмента (у mentalray проблемы с дисплейсментом на разных uvSet’ах). Или попросту маппинг объекта изменился, и хочется уже нарисованную под него текстуру проапдейтить. Ну или что-либо еще

Конверсия Instancer’а в геометрию
Type: Python Script (py)
Name: sag_instancerToGeometry
Version: 1.1
Released: 2010.06.11
Download
Практически каждый раз когда использую instancer для размножения геометрии по частицам, в итоге неминуемо хочется перевести полученный результат в обычные объекты с ключевой анимацией, дабы подправить отдельные из них или удалить вовсе.
Вот наконец-то собрался и написал утилиту для решения этой задачи.

Добавлена Галерея
В правом верхнем углу блога уже довольно давно располагается кнопочка на галерею моих последних работ, но вот только сейчас я довел последнюю до презентабельного состояния. Без лишних разглагольствований – приглашаю надавить на упомянутую кнопочку или проследовать по этой ссылке – Галерея
Initial значения партикловых атрибутов
Предположим, мы установили частицам initial state или попросту создали их с определенными значениями атрибутов кропотливо вымученным скриптом, а потом захотели изменить некоторые из этих значений… Допустим, спрайты дыма имеют разный начальный скейл и увеличиваются относительно него со временем, и мы хотим их сделать в два раза меньше… Или попросту изменить в несколько раз массу осколков разлетающегося объекта (которая, предположим, предварительно высчитана с учетом объема осколка), но не производя заново вычислений, сетапов и т.п.

Particles with initial mass for each shard
Новые старые статьи
Я закрываю свой старый сайт (теперь http://www.sigillarium.com/ ведет прямо в этот блог) и, в связи с этим, переношу сюда задним числом несколько старых статей, которые еще содержат ценную информацию (а так же для сохранения работоспособности линков на них с других ресурсов). За неоценимую помощь в технической стороне дела хочу поблагодарить Rastler, чей блог по фотографии можно посетить тут – Rastler Blog
Тайлинг процедурных текстур и Placement mapping
Небольшой трюк, вполне простой, но возможно не совсем очевидный. Для создания шероховатостей, детальной фактуры и прочей высокочастотности обычно используется какой-нить fractal или noise с большим числом repeat, что приводит к явному тайлингу:

Fractal with high repeat value reveals tiling
Можно попытаться разбавить другими нойзами, но есть решение куда лучше…
Проверка Нахождения частицы внутри объема и Влияния поля
Довольно часто возникает задача – определить находится ли частица внутри объекта и в зависимости от этого что-то с ней сделать (обычно убить
)
Можно проверять нормаль ближайшей точки на поверхности меша, но такая проверка для каждой частицы в каждом фрейме становится крайне медленной при большом их числе. Мой приятель написал плагин, который сразу возвращает внутри ли объема координата или нет, но все равно из-за скорости калькуляций часто приходилось отказываться от этого варианта.
Решение заключается в следующем – так как различные volume fields влияют на частицу, когда та попадает в их объем, если представить объект набором таких полей и проверять действует ли хоть одно из них на частицу, можно узнать внутри ли она объекта. Разумеется, для сложных форм результат будет неточным, но можно создать стопку полей, достаточно аккуратно их передающую. В любом случае, это будет сильно быстрее

