Всем привет ! )
Works Manager - скрипт для оптимизаций памяти больших статичных сцен, и не только.
Небольшое вступление
Месяца 2 назад встала задача в оптимизации одной большой сцены, где использовался RedShift render.
Ни для кого не секрет, что время от времени сцена может выйти за рамки вашей оперативной памяти, а в
случае с GPU рендером ещё и за рамки видео памяти )
В общем оптимизация сцены шла ходом, делалось всё что можно в пределах доступных инструментов 3d max Но всего этого было мало (рабочая лошадка была с весьма скромными ресурсами), и по факту помочь могло только одно - спрятать некую часть геометрии для ракурсов где её не видно.
Но всё это дело мне нужно было выставить на 30-40 ракурсов, и конечно же я не мог сидеть у компа и ждать каждый кадр, чтоб потом вернуть спрятанную геометрию обратно и поменять её с другой )
С этого всё и началось, теперь о самом скрипте.
Возможности скрипта:
1. Оптимизация больших статичных сцен - возможность прятать любые типы объектов в нужных вам кадрах
Возьмём для примера эту картинку:
На данном примере в каждом рендере кадров, не нужные(не попадающие в ракурс) нам объекты будут скрыты.. они так же не будут загружаться в оперативную память.
Тесты показывают хорошую оптимизацию в целом, даже если ваш объём памяти имеет больший ресурс, чем требует для себя сцена, в любом случае калькуляция займёт большее время, лишний просчёт GI, и прочие замедляющие рендер вещи.
2. Быстрое и удобное сохранение ваших картинок, включая сохранение рендер элементов (если используете)
сохраняться будет буфер который используется рендером.
поддерживаются следующие рендер движки и их буферы:
Vray (VrayFrameBuffer) , Corona (CoronaFrameBuffer) , RedShift (VFB+).
p.s. Если используете RedShift - будет сохраняться оригинальный буфер 3d max.
поэтому настоятельно рекомендую использовать для RS бесплатный VFB+ с возможностью сохранения его буфера.
3. Выбор любого разрешения картинки к каждой задаче(кадру).
Интерфейс:
Запустив скрипт появится вот такое окно:
Все панели не доступны - пока вы не создадите первую задачу для работы.
Сделать это можно и нужно, нажав на кнопку "+" =)
После нажатия на "+" появится первая задача - по умолчанию задачи будут иметь имя: "Work_" где 1 - номер задачи.
Мы можем в любой момент переименовать задачу, но об этом чуть позже.
После создания задачи видим, что все свойства стали доступными, тут всё просто - пробежимся по настройкам
"Your Tasks" (Ваши задачи)
Эта панель отображает все ваши задачи которые вы создавали, они идут по порядку с верху вниз, эта последовательность задач будет аналогично соблюдаться при их поступлении в рендер.
Вы так же можете легко переставить местами задачи, либо вообще удалить их.
За эти действия отвечают кнопки:
Все остальные панели - динамические свойства и настройки конкретно выбранной задачи. По порядку:
Work Name:
Имя выбранной задачи,и здесь вы можете поменять его.. имена служат не только для поддержания порядка задач (какая где и зачем задача), но так же файлы при сохранении будут иметь название этой задачи
Frame:
Кадр для выбранной задачи, как только вы создаёте новую задачу кнопкой "+", она автоматически считывает какой кадр был текущим и назначает его для новой задачи. Там же вы можете его заменить на другой - просто вписав туда номер нужного вам кадра.
Ниже видим красную надпись - Camera not selected, говорит нам о том - что для выбранной задачи не выбрана камера - сделать это довольно просто:
выберите вид нужной вам камеры и нажмите на кнопку "Get From Viewport" (Взять с вьюпорта), если ничего не выбрать - вид останется неизменным от предыдущей задачи, если предыдущей задачи ещё не было - вид будет взят из последнего активного видового окна вьюпорта.
Работает со всеми возможными камерами, включая CoronaCamera.
"Get Presset"
Мы можем выставить настройки рендера для каждой задачи, нажав на кнопку "Get" и выбрав нужный прессет для задачи в открывшемся окне. Это стандартные максовские прессеты, функция редко мной используется - но всё же может потребуется вам.
Если не нужны прессеты для задач, просто оставьте поле пустым. Если вы уже выбрали прессет - то его можно удалить, кнопкой "Del".
"Renders Presset Path" - отображает путь к прессету.
"Get New Output Size"
Установить новый размер для сохраняемого изображения выбранной задачи.
Когда вы создаёте задачу - она так же по мимо текущего кадра, считывает текущее разрешение которое у вас в настройках и устанавливает его для этой задачи.
Вы можете его легко поменять, просто установите в Render Setup нужное вам разрешение, и нажмите кнопку "Get New Output Size", и разрешение будет выставлено для задачи.
"Set Save Path"
путь / папка куда будут сохраняться ваши готовые картинки. Этот путь не нужно указывать в каждой задаче, это делается один раз.
Никакого хаоса в папке не будет, хранение будет весьма понятным и удобным
Например задача: Work_1 и Work_2 - будут иметь следующие файлы в папке + рендер элементы:
Если вы используете Render элементы, то не нужно больше париться о надписях "Error Output File" при рендере... если парились ) в общем все картинки и - все render elements будут автоматически сохранены, с названием задачи + имя элемента без всяких ошибок.
Так же не нужно самому нажимать какие-либо галочки для сохранения элементов и прочего - включая галочку "Save File"
Скрипт сам распознает какой рендер движок - и исходя от этого , сам установит нужные галочки.
У вас будет 3 типа формата сохранения картинок на выбор:
JPEG (100% Quality), TIF(16 bit + Alpha), EXR(32 bit + Alpha)
Теперь перейдём к панели "Objects for Hide"
Здесь будут располагаться объекты, которые будут спрятаны в выбранной задаче. Объекты могут быть любых типов: геометрия, шэйпы, лайты, камеры, прокси файлы и другие типы - которые можно спрятать.
Объекты, если это не группы - можно добавлять сразу выделив несколько штук, группы добавлять можно только по одной.. Поэтому если вам нужно спрятать много объектов и групп в том числе - то лучший и самый быстрый способ - это сделать из них одну группу и добавить её туда.. это будет более удобным, если вы потом захотите удалить их из этой задачи.
Когда все нужные вам задачи будут созданы - нажмите кнопку "Start Render Tasks".
ВАЖНО !!!
Рендер задач запускать только кнопкой "Start Render Tasks"
Скрипт работает на внутренних функциях. Обычная кнопка Render - никакого отношения не будет иметь к функциям и логике скрипта.
Ещё к сведению: при переключении между задачами будет меняться вид камеры, номер текущего кадра, и разрешение картинки - в соответствии с вашими установками для этих задач.
Это так же даёт удобную навигацию по уже созданным задачам и их редактированию.
Предлагаю посмотреть не большой видео урок по использованию для укрепления понимания - но в целом работа со скриптом быстра проста и понятна. )
Скрипт отправился на модерацию - и уже в ближайшие дни будет доступен в разделескриптов .
Так же не забывайте про другие мои скрипты - которые облегчат вашу работу !
P.S. Всем спасибо, работаю чтоб не только вы могли отдыхать больше.. но и ваш компьютер