В modo 601 уже реализован сетевой рендер, но работает он весьма специфично. Распределение идет не по кадрам на каждую машину, а по отдельным кусочкам картинки.
В результате простой рендер фермы (пока машина-мастер готовит данные) достигает 50% и это весьма расточительно. В итоге 10 машин дают прирост не в 10 раз, а лишь на 20-40%
Однако стоит отметить, что это решение имеет очень выгодную лицензию. Когда вы покупаете 1 лицензию modo, в нее уже входит 50 лицензий на машины которые могут работать в slave режиме. Без активации программа так и запускается - предлагает запустить slave.
Но в modo есть еще одна замечательная штука - modo_cl.exe - а попросту говоря - консольное приложение которое понимает большое количество команд и может работать с тремя скриптовыми языками:
Это обстоятельство позволяет сэкономить кучу времени на рендер...
Попробуем?
Пишем *.bat файл
_________________
"C:\Program Files\Luxology\modo\601_sp3\modo_cl.exe"<modo_command.txt>log.txt
pause
_________________
Если вам не нужен лог, то последние символы (>log.txt) сотрите, и вы сможете следить за процессом сразу в консоли.
Этот батник не запустится, если отсутствует файл с перечнем команд, которые мы перенаправляем в modo_cl. Чтобы этот файл появился, создаем его.
modo_command.txt
_________________
log.toConsole true
log.toConsoleRolling true
scene.open "z:\net_folder\scene.lxo" normal
pref.value render.threads auto
@ChangeRenderFrameRange.pl 1 5
@ChangeRenderOutputPaths.pl z:\net_folder\render_folder\file_name
render.animation {*}
app.quit
_________________
Думаю основные строчки ясны без комментариев, вот только строка @ChangeRenderFrameRange.pl 1 5 ссылается на Perl скрипт, который идет в стандартной поставке "modo601_Content", числа 1 и 5 задают диапазон кадров анимации, укажите свои.
Если речь идет о сетевом рендере, то мы заменим эти значения переменными и будем вызывать каждый раз разные. Например если в фильме 17000 кадров, то мы сможем разбить всю очередь на много мелких заданий и раздавать их разным машинам. Пока же я рассматриваю ручной запуск, до сетевых решений доберемся чуть позже.
То есть пока вы можете вручную запустить на каждой машине этот скрипт, указав разные диапазоны кадров, распределив задачи вручную.
Итог, который получился у меня:
Запуск из командной строки позволяет отказаться от UI и экономит кучу памяти. Тестовая сцена с UI отнимала до 13GB оперативки, консоль снизила нагрузку до 7GB - лихо ;-)
Кроме этого появилась возможность, пусть пока и в ручную, но распределить эффективно нагрузку и сократить максимально сроки визуализации.
Продолжение тут
В результате простой рендер фермы (пока машина-мастер готовит данные) достигает 50% и это весьма расточительно. В итоге 10 машин дают прирост не в 10 раз, а лишь на 20-40%
Однако стоит отметить, что это решение имеет очень выгодную лицензию. Когда вы покупаете 1 лицензию modo, в нее уже входит 50 лицензий на машины которые могут работать в slave режиме. Без активации программа так и запускается - предлагает запустить slave.
Но в modo есть еще одна замечательная штука - modo_cl.exe - а попросту говоря - консольное приложение которое понимает большое количество команд и может работать с тремя скриптовыми языками:
- Lua
- Perl
- Python
Это обстоятельство позволяет сэкономить кучу времени на рендер...
Попробуем?
Пишем *.bat файл
_________________
"C:\Program Files\Luxology\modo\601_sp3\modo_cl.exe"<modo_command.txt>log.txt
pause
_________________
Если вам не нужен лог, то последние символы (>log.txt) сотрите, и вы сможете следить за процессом сразу в консоли.
Этот батник не запустится, если отсутствует файл с перечнем команд, которые мы перенаправляем в modo_cl. Чтобы этот файл появился, создаем его.
modo_command.txt
_________________
log.toConsole true
log.toConsoleRolling true
scene.open "z:\net_folder\scene.lxo" normal
pref.value render.threads auto
@ChangeRenderFrameRange.pl 1 5
@ChangeRenderOutputPaths.pl z:\net_folder\render_folder\file_name
render.animation {*}
app.quit
_________________
Думаю основные строчки ясны без комментариев, вот только строка @ChangeRenderFrameRange.pl 1 5 ссылается на Perl скрипт, который идет в стандартной поставке "modo601_Content", числа 1 и 5 задают диапазон кадров анимации, укажите свои.
Если речь идет о сетевом рендере, то мы заменим эти значения переменными и будем вызывать каждый раз разные. Например если в фильме 17000 кадров, то мы сможем разбить всю очередь на много мелких заданий и раздавать их разным машинам. Пока же я рассматриваю ручной запуск, до сетевых решений доберемся чуть позже.
То есть пока вы можете вручную запустить на каждой машине этот скрипт, указав разные диапазоны кадров, распределив задачи вручную.
Итог, который получился у меня:
Запуск из командной строки позволяет отказаться от UI и экономит кучу памяти. Тестовая сцена с UI отнимала до 13GB оперативки, консоль снизила нагрузку до 7GB - лихо ;-)
Кроме этого появилась возможность, пусть пока и в ручную, но распределить эффективно нагрузку и сократить максимально сроки визуализации.
Продолжение тут
прожку надо написать, что б руками батники не править
ОтветитьУдалитьдумаю .net для винды самое то
Возможно.
ОтветитьУдалитьЯ искал быстрое и простое решение.