Пакетная визуализация в 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