Уроки: 3ds Max

Пакетная визуализация в 3ds Max

Здравствуйте, предлагаю совсем небольшой урок по визуализации из командной строки, что не дает никакого выигрыша в качестве обсчета сцен, но за то позволяет автоматизировать процесс самой визуализации. В конце урока вы будете владеть информацией:
- как оставить компьютер на ночь без хозяина и при этом он обсчитает виды из всех камер сцены, а потом отключиться.
- как визуализировать кучу разных сцен, также без участия человека|
- как просто экономить ресурсы машины, визуализируя без загрузки редактора

Урок постарался сделать максимально подробно, показывая даже очевидные вещи, тем не менее не стал описывать весть список ключей визуализации. Только основные, остальные при знании синтаксиса команд работают аналогично, повторяя те же функции, что и аналогичные позиции в редакоре. Урок проводиться на примере 3ds Max 2010, но выполняться и в более поздних версиях  до 3ds max 6. Урок поведется в несколько шагов.

Шаг 1 – собираем информацию

За визуализацию из командной строки отвечает приложение 3dsmaxcmd.exe, которое находиться в корневом каталоге программы. Прежде всего нужно запомнить полный путь к этому файлу, в дальнейшем он будет нужен.

Если по какой-то причине вы затрудняетесь быстро найти этот файл, то нажмите правой кнопкой мыши на ярлыке 3ds max (либо на рабочем столе, либо в меню «ПУСК»), выберете пункт «свойства» и в открывшимся окне нажмите кнопку «Найти объект»:

В открывшимся каталоге найдите файл 3dsmaxcmd.exe

Запомните полный путь к данному файлу, далее я буду его называть каталог программы.

Если сейчас запустить этот файл, то мы увидим только мигнувшую консоль командной строки (далее просто консоль). Сам по себе файл ничего не визуализирует, параметры его работы задаются ключами или командами. При запуске 3dsmaxcmd без ключей выдается список всех ключей с пояснениями, давайте его просмотрим.

 Чтобы после запуска рендера консоль не закрывалась, произведем запуск с предварительно открытой консоли.

Нажимаем кнопку «Пуск», пункт «Выполнить», в поле ввода набираем cmd и нажимаем «ОК».

Запустилась консоль командной строки.

С помощью команды ms dos  - «CD» (выбрать директорию) переходим  в каталог программы и набираем команду 3dsmaxcmd

При использовании директории программы предлагаемой по умолчанию, запуск будет выглядеть так:

Нажимаем «Enter» и смотрим на список ключей. Сохранить его можно нажав правую кнопку мыши и выбрать пункт «выделить все», далее вставить текст в любой редактор.

Шаг 2 – пишем загрузочный файл

Ключи управления процессом визуализации записываются после команды 3dsmaxcmd через пробел обычным  перечислением.   Но согласитесь каждый раз набирать список команд в командной строке неудобно (хотя было время, когда работа из командной строки была модной) поэтому сразу создадим загрузочный bat- файл:

В любом удобном каталоге или на рабочем столе создайте текстовый файл и назовите его любым именем с разрешением .bat.

Например вот так:

Щелкаем по нему правой кнопкой мыши и выбираем пункт «Изменить»

Откроется пустой текстовый файл, копируем в него каталог программы и через слеш дописываем  3dsmaxcmd, всю строку забираем в кавычки.

В моем случае вся строка будет выглядеть следующем образом:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd"

После кавычек поставьте пробел, после которого будет идти перечисление ключей.

Каждый раз редактировать bat файл тоже не удобно (список ключей может быть внушительным), поэтому разработчики ввели возможность подключения текстового файла с перечисляемыми настройками. Путь к данному файлу указывается через ключ «@» после которого указывается полный путь к файлу. Дописываю ключ с указанием к файлу настроек который у меня находиться на диске C:  и с именем ren.txt (далее файл настроек).

Вся строчка команды теперь будет выглядеть следующем образом:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

Внимание очень важно !!!

3dsmaxcmd полностью не приемлет кириллицу  в ключах. Поэтому все без исключения указываемые пути должны быть набраны латиницей. Следите за этим.

Сохраняем созданный файл и приступаем непосредственно к визуализации (далее bat файл будет называться загрузочным файлом).

Шаг 3 – визуализация

Создаем и открываем текстовый файл настроек (у меня c:\ren.txt)

И самой первой строкой указываем путь к файлу который будет визуализироваться, например у меня так:

i:\lesson\less.max

сохраняем файл настроек и кликаем по загрузочному файлу (render.bat )

появляется консоль, если вы все сделали правильно то там будет запись о начале рендеринга, через некоторое время загрузится визуализатор и начнется обсчет, при этом полностью 3d max не загружается:

К сожалению после визуализации окна закроются, в консоли появиться запись об успешном завершении работы и консоль тоже пропадет. Результат визуализации нигде не сохраниться, поскольку мы не указали куда и как его сохранять, а настройки об сохранении в файл сцены игнорируются.

Поэтому первый рассматриваемый ключ  это ключ указания выходного файла:  -outputname

Синтаксис команд очень вольный – после названия ключа идет равнО, либо двоеточие  (как удобно) после этого параметр. Лишни пробелы игнорируются (если они не дробят саму команду), пути к файлам можно забирать в кавычки, а можно не забирать.

Теперь текст файла настроек выглядит следующем образом:

i:\lesson\less.max

-outputname = i:\lesson\01.jpg

Сохраняем информацию в файле настроек (сохранение не забываем, а то часто меняется текст файла, а про сохранение забывается) и запускаем загрузочный файл. Теперь результат обсчета сохраниться в jpg файл.

Если после запуска визуализация отменяется, то это говорит о наличии ошибок, вывод в консоль максимально подробной информации обеспечивает ключ –v с параметром 5

Текст файла настроек будет следующем:

i:\lesson\less.max

-v: 5

-outputname = i:\lesson\01.jpg

Теперь все шаги будут описываться, и при возникновении ошибки, мы увидим что к ней привело – например «невозможно найти файл текстуры»

Ключь –continueOnError без параметров отменит остановку визуализации при возникновении ошибок.

i:\lesson\less.max

-v: 5

–continueOnError

-outputname = i:\lesson\01.jpg

При визуализации из командной строки, по умолчанию  обсчитывается окно вьюпорта, которое было активно в момент последнего сохранения. Если случайно сохранено с неактивным окном, которое мы собираемся просчитать, то с помощью ключа –Cam с параметром названия камеры, визуализация начнется для указанной камеры, даже если она не выбрана во вьюпортах.

Пример:

i:\lesson\less.max

-v: 5

-Cam: Camera05

–continueOnError

-outputname = i:\lesson\01.jpg

Помните о невозможности использования кириллицы в ключах (камеру с названием «Великое око» рендер не поймет, только латинский шрифт)

Ключами можно принудительно изменить размер визуализируемого кадра:

-width = 1000

-height = 1000

Или сделать рендер нескольких кадров из анимации :

-Frames = 1,8,10-20  визуализирует 1,8 и с 10 по 20 кадры

-Frames = all  визуализирует все кадры.

Еесли будет указан не видео формат выходного файла, то получим набор кадров.

Если при сохранении сцены был активен рендеринг элементов, то по умолчанию произведется рендеринг всех  указанных при сохранении элементов, отключает визуализацию элементов команда

 –RenderElements = 0

Ключь -workPath  устанавливает использующийся путь для хранения системной информации. При визуализации там формируется xml файл с развернутыми данными сцены.

Остальные ключи используются не так часто и их назначение описано в хелпе, обратите внимание на раздел -BITMAP PARAMETERS-, там ключи установки параметров выходных растровых файлов их я описывать не буду, все предельно просто и дублирует окошки которые появляется когда мы указываем формат сохранения файлов в самом 3d max.

 Ключи со значениями :

-BMP_TYPE: 8

-JPEG_QUALITY: 100

-TIF_TYPE: 4

-TIF_COMPRESSION: 1

Думаю будут нужны часто, дабы качество полученного файла было тем которое мы хотим, а не то что стоит по умолчанию.

Переходим к пакетной визуализации.

Шаг 4 – визуализация очереди сцен

Вернемся к нашему загрузочному файлу –

Щелкаем по нему правой мышью и выбираем пункт изменить.

После первой строки создаем аналогичную вторую, но ссылаемся уже на другой файл настроек:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren1.txt

Настраиваем второй файл настроек по вкусу на любую другую сцену, либо эту же, но с другими параметрами визуализации

И запускаем рендер.

Визуализация двух сцен прошла без нашего участия!

Наглядно продемонстрирую  пакетную визуализацию на следующем примере:

Первым визуализируется файл less.max с размером кадра 200х200 (зеленая строчка)

Вторым тот же файл но уже строго с камеры C5, кадр 2000х2000 в tif формате (желтая строчка)

Третьим  обсчитывается 100 кадров из сцены less-video.max и сохраняются каждый отдельным файлом bmp (красная строчка)

Четвертым визуализируется  вид из Camera05 файла less8 (синяя строчка)

И пятым файл 800х800 из тойже сцены что и первые два (голубая строчка)

Таким образом создавая список в bat файле можно составить расписание визуализации на любое количество сцен и видов каждой сцены.

Шаг 5 – тюнинг

Что еще можно добавить в загрузочный файл дабы облегчить себе жизнь?

Можно после списка визуализации дать путь к любому любимому исполняемому (mp3, wav, avi … ) файлу:

Например:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

 "H:\muz\Alisa 2007\11.mp3"

Тогда соседи услышат о закончившимся благополучно визуализации в два часа ночи посредством  запущенной программа проигрывания звуковых файлов

 

Можно дать команду выключения компьютера:

"c:\program files\Autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

shutdown -s -t 100

где ключь –s  обязателен и показыват что мы хотим именно выключить машину, а ключь –t с цифровым параметром обозначает время в секундах для тайм-аута выключения.

После визуализации покажется предупреждение:

И через указанный тайм-аут компьютер отключиться. Не советую ставить маленькие значения таймера. При сохранении файла на USB носитель, копирование может не завершиться, сгенерируется сообщение об ошибке отложенной записи и машина выключится без сохранения файла.

Для USB винчестеров это актуально, так как за время рендеринга они «уснут» и к времени копирования прибавиться еще время на разгон блинов.

Еще можно просто закончить список командой pause:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

Pause

Тогда после визуализации консоль не закроется и можно будет просмотреть все сгенерированные сообщения:

Итак подведем итог, что полезного можно получить визуализацией из командной строки:

Во первых, экономия ресурсов компьютера, за счет выгрузки редактора. На времени визуализации это также сказывается в лучшую сторону

Во вторых, можно заниматься редактированием сцены и одновременно визуализировать ее последнее сохранение, без запуска второго 3d max. При этом «падение» рендера никаким образом не скажется на редакторе (отдельный процесс)

В третьих это автоматизация рендеринга нескольких сцен, выключение машины после визуализации пакета сцен и видов.

Из минусов можно отметить дополнительные телодвижения по подготовке расписания и настроек.

На этом все.

Надеюсь эта информация кому-нибудь понадобиться.

С уважением КАА!!!

kaa936@rambler.ru

88765 Автор:
Актуальность: 831
Качество: 738
Суммарный балл: 1569
Выбор Публики
Голосов: 148 оценки

Отзывы посетителей:

2 3 4 | След.
аватар
 
Роман Цапик 2496 0
Главный редактор

Цитирую Владимир Н:
Пакетная визуализация в 3ds Max
 

Материалу 7 лет, это по меркам интернета каменный век.

аватар
 
Владимир Н 1 0

Непонятная бесполезная тарабарщина, а не урок.

аватар
 
максон 1 0
столкнулся с такой проблемой. при запуске файла bat пишет неизвестную ошибку.





Error rendering frame 0: unknown error loading application


Send end of job command to Max


Job complited with Error - see above


Total elapsed time 00:-214748364821:-214748364821


Error occured while rendering job





Может кто сталкивался или знает как справиться с такой проблемой?
аватар
 
tim3d 88 0
А сорри все описано. Все работает.
аватар
 
tim3d 88 0
а как рендерить пассы теней и прочее отражения альфу итп.
Об этом не слова
аватар
 
Антон Дип 2 0
Почта, кстати, не работает.
аватар
 
Антон Дип 2 0
У меня вопрос.
Я создал файл настроек, так как вы сказали. С файла настроек (bat файла) я сделал обращение (@) к txt файлу с командой запуска .max файла.
У вас написано, что нужно запустить bat файл и — "появляется консоль, если вы все сделали правильно то там будет запись о начале рендеринга, через некоторое время загрузится визуализатор и начнется обсчет".
Когда я запускаю bat, то окно так же мигает и больше ничего не происходит. Все пути и имена файлов проверял. Я так понял, что после запуска 3dsmaxcmd.exe обращение на txt файл не проходит, но пути-то правильные.
В чем еще может быть проблема? У меня Windows 7 и 2009й макс.
Спасибо.
аватар
 
XAN 1 0
аватар
 
XAN 1 0
Привет! У меня проблема! При запуске файла render.bat - выводится сообщение о нехватке файла, с названием "nrapiTools.dll" с предложением переустановить приложение! - После клика по кнопке "Оk" - идет процесс просчета! И опять вылазит, когда берется за обработку следующего файла!
Как енто его переустановить??? Где взять этот файл и почему его не хватает???? Предполагаю, конечно, что Мах 10-й далеко не лицензия!
по этой ссылке(http://3dcenter.ru/forum/index.php?showtopic=78263) уже ходил - не понимаю (этот урок сделал и уже хорошо!) !!!

http://s49.radikal.ru/i126/1107/bd/a339f55bb25e.jpg
аватар
 
blackhearted 7 0
у меня почему-то не применяется шэйдер камеры dof/bokeh...
аватар
 
Ostap_Blender 79 0
Спасибо, действительно полезный материал. :-)
И все-таки не "ключ" пишется без мягкого знака. ;-)
аватар
 
serdgius 2 0
Цитирую Karelia:


Сижу разбираюсь с bat. Вообщем понял что все работает отлично под голым Максом маленькое разрешение получается потому что файл рендерится через Максовский рендер буфер а не через Виреевский видимо можно както прописать bat чтоб рендерил через Вирей фрейм буфер (кто бы подсказал) но в принципе ставим галку гет резолюшон фром макс, сохраняем пресет и усе нормуль.
аватар
 
Juliett_F 2 0
Отличный урок! Спасибо :)
еще одно "но" - в названия файлов и папок нужно избегать пробелов, они бьют путь и вылетает ошибка
аватар
 
mexicoz 32 0
у меня макс установлен на другом диске. после команды cd не могу прописать именно этот каталог, будто этот диска нет. или я что-то не так делаю
аватар
 
vasilii 1 0
вообще ничего не происходит после запуска(
аватар
 
akane 2 0

здравствуйте, я вроде как все сделал правильно, набирал все латиницей вручную - а макс все равно отказывается запускаться. Пишет unexpected exception error и отрубает рендер даже и не начав. в чем может быть причина? у меня макс 2009 и врай 1.5 сп2, пробовал так же менталом и сканлайном но все равно то же самое(
аватар
 
Alex Kras 373 0
Модератор форума
Пишите вопросы на почту, указанную в конце статьи.
аватар
 
KATEHOKA 2 0
Здраствуйте!
У меня проблемы по этому уроку начались с самого начала:)
Дело в том, что я крайне далека от программирования и от работы в командной строке и т.п. вещей.
У меня 3Dmax стоит не на С диске а на Е....так вот проблема в том что я не знаю как мне указать путь к 3dmaxcmd.
аватар
 
igni 27 0
Цитирую Devik_:
Спасибо за урок. Все получилось только вот ключ –continueOnError не принимает, консоль пишет ошибку: Syntax Error: Ц
Не сталкивались Вы с такой проблемой. Спасибо!


иногда полезно прочесть все коментарии. тем более что их не так уж и много:

Цитирую igni:
Цитирую Ne_Guest:
мне выдает Error reading file: c:\ren.txt , непонимаю чего


это оно ругается на ключ "–continueOnError"... наверно у автора он неверно написан (например какаято из букв - не латиница)...по крайней мере когда я копипастил именно из текста урока - ошибка имела место. Как только набрал вручную всё заработало.
Вывод - не ленимся печатать ручками))))
аватар
 
Freiheit 49 0
Спасибо! Отличный урок!
2 3 4 | След.
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 88765 уникальных посетителей