Файлы заданий

Иногда вам нужно больше, чем просто отрендерить один статичный кадр. Может понадобиться анимация или пакетный рендеринг сцены с несколькими вариантами изображения и т.д. Здесь могут помочь файлы заданий Boxshot.

Что такое файл заданий?

Файл заданий – это файл, который связывает проект Boxshot, некоторые настройки рендеринга и выходное изображение. По сути, он говорит Boxshot, как рендерить проект и сколько раз это нужно сделать.

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

Или файл заданий может описывать задачу пакетного рендеринга, указывая Boxshot отрендерить проект с этим изображением, затем с тем изображением и т.д.

Менеджер отложенного рендеринга Boxshot использует файлы заданий для работы. Все инструменты для анимаций и пакетного рендеринга также используют файлы заданий.

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

Хорошая новость заключается в том, что вы тоже можете создавать файлы заданий, а Boxshot будет рендерить их точно так же, как рендерит свои собственные!

Формат файла заданий

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

<boxshot-job version="1" name="some job" scene="/path/to/scene.boxshot5">
	<task name="task 1" width="..." height="..."
		  passes="..." renderer="..." output="/path/to/folder/file.png">
		<camera rotation-h="..." rotation-v="..."
				center-x="..." center-y="..." center-z="..."
				distance="..." aspect="..." fov="..."/>
		<script>
		<![CDATA[
				scene.root.children[0].visible = false;
		]]>
		</script>
	</task>
	<task .....>
		...
	</task>
</boxshot-job>

Корневой тег boxshot-job задает версию файла заданий, его имя и путь к проекту. Вы можете оставить атрибут scene пустым, если генерируете всю сцену с помощью скриптов.

Дочерние теги task задают задачи рендеринга. У каждой задачи есть имя, ширина, высота, число проходов или время рендеринга, а также поле output — все довольно очевидно. Вы можете указать только ширину или только высоту, или вообще не указывать ни то ни другое, если хотите использовать значения по умолчанию из сцены. Еще один атрибут – renderer, он определяет движок рендеринга, который нужно использовать для задачи. Подробнее про эти параметры можно узнать в учебнике по рендерингу из командной строки.

Каждый элемент task может иметь дочерний элемент camera, который управляет параметрами камеры. Имена атрибутов говорят сами за себя — просто подставьте нужные значения.

Наконец, вы можете добавить элемент script с блоком CDATA, где разместите команды Javascript для настройки сцены. Обратите внимание: Boxshot перезагружает сцену после каждой задачи, у которой есть скриптовый блок, поэтому изменения не сохраняются между задачами.

Файлы заданий имеют расширение boxshotJob.

Учимся на примере

Так как Boxshot сам использует файлы заданий, полезно заглянуть внутрь. Создайте простую задачу анимации вращения, сделайте по ней двойной клик в Менеджере отложенного рендеринга и откройте файл заданий в редакторе кода, чтобы посмотреть, как реализовано позиционирование камеры. То же самое проделайте для задачи пакетного рендеринга, чтобы увидеть, как изображения применяются к объектам, и т.д.

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

Менеджер отложенного рендеринга

Когда файл заданий готов и имеет правильное расширение boxshotJob, вы можете просто сделать по нему двойной клик — Boxshot откроет интерфейс для рендеринга задачи.

Нажмите кнопку Рендеринг, как вы делаете это для обычных задач отложенного рендеринга, немного подождите и получите результат.

Рендеринг из командной строки

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

Синтаксис командной строки для Windows:

"C:\Program Files\Appsforlife\Boxshot 5\Boxshot.exe" --render test.boxshotJob

То же самое для Mac:

/Applications/Boxshot\ 5.app/Contents/MacOS/Boxshot --render test.boxshotJob

То есть вам нужно указать параметр –render и передать имя файла заданий. Boxshot сделает все остальное, не показывая никакого интерфейса.

Заметьте: точно так же, как и при рендеринге проекта из командной строки, Boxshot не рендерит задачи или подзадачи, если выходные файлы уже существуют. Удалите выходные файлы, если вам нужно перерендерить изображения.

Еще о пакетной обработке