Render.ru

Maya Ocean -> Heigh map. Это возможно?

Konstantin Antipov

Пользователь сайта
Рейтинг
2
#1
Добрый день!
Вопрос больше теоритический:
необходимо получить карты высот (порядка 100), затайленные с четрех сторон.
Карты высот должны описывать океан, т.е. снять карты высот с поведения майской воды.

Как это можно сделать?

Если можно сделать в другом пакете, подскажите пожалуйста.

Спасибо!
 

alex_alv

Активный участник
Рейтинг
11
#2
Или отснять Z-канал.
Или MEL-команда типа `colorAtPoint -u $x -v $z oceanShader1`, с ее помощью пробежать по разным $x, $y и сохранить результат в BMP.
На счет затайлить - самое простое, что приходит в голову - задать ширину по краю, в котором происходит уреднение по весу (вес рассчитывается как удаление от края по отношению к ширине усреднения) с аналогичной шириной по противоположному краю растра. Не уверен, что будет совсем не видно, но можно поподбирать разную ширину усреднения.
 

Konstantin Antipov

Пользователь сайта
Рейтинг
2
#3
Про Z канал не подумал, верно.

На счет затайлить не понял =) Мне надо не затайлить получившиеся height map в шопе, а именно получить затайленные в maya, ведь они иммитирует поведение волны
 

alex_alv

Активный участник
Рейтинг
11
#4
Самое простое - затайлить через какой-нибудь AE. (отснять на несколько пикселей больше, чем надо, потом в AE обрезать и наложить сдвинутое на разрешение по одной координате и по другой. Наложение - через мягкую маску).

Через MEL (как я написал) - тоже возможно, но геморой (в MEL нельзя сохранять в файл по-байтно, придется сохранять в свой формат, а потом конвертить отдельной утилитой, написанной на другом языке).

Можно еще приконнектить выход displacement шейдера к цвету (через утилиту setrange), а потом замешать со сдвинутым шейдером. Это наверное самый интересный способ, но тоже геморойный, так как океановский шейдер просто так не сдвинуть (можно через матрицы worldtoeye и eyetoworld, подключив их к трансформ-ноде, которая находится в пространстве камеры и приконстрейнена к ноде в мировом пространстве - нужно не хило морщить мозг).

Кстати, коннектить displacement к цвету SurfaceShader - это можно использовать вместо отснятия Z-канала, но потом - тайлить в афтере или фьюжене или где-нибудь еще (но не в фотошопе, если нужна сиквенция).
 

alex_alv

Активный участник
Рейтинг
11
#5
Есть, кстати, еще интересный способ - написать экспрешн в качестве шейдера. Тогда легко будет сдвигать текстуру через place2dTexture или через сам экспрешн.
Правда, я не уверен, что в таком экспешне будет работать MEL-команда colorAtPoint (я писал простые экспрешны-шейдеры, без использования MEL-команд - они точно работают).

Это тоже не самый простой способ, но тоже интересный :)
 
Сверху