Всем привет ! )

fe05c04395877cfac92c830eab429f12.jpeg

Works Manager - скрипт для оптимизаций памяти больших статичных сцен, и не только.

Небольшое вступление

Месяца 2 назад встала задача в оптимизации одной большой сцены, где использовался RedShift render.

Ни для кого не секрет, что время от времени сцена может выйти за рамки вашей оперативной памяти, а в

случае с GPU рендером ещё и за рамки видео памяти )

В общем оптимизация сцены шла ходом, делалось всё что можно в пределах доступных инструментов 3d max Но всего этого было мало (рабочая лошадка была с весьма скромными ресурсами), и по факту помочь могло только одно - спрятать некую часть геометрии для ракурсов где её не видно.

Но всё это дело мне нужно было выставить на 30-40 ракурсов, и конечно же я не мог сидеть у компа и ждать каждый кадр, чтоб потом вернуть спрятанную геометрию обратно и поменять её с другой )

С этого всё и началось, теперь о самом скрипте.

Возможности скрипта:

1. Оптимизация больших статичных сцен - возможность прятать любые типы объектов в нужных вам кадрах

Возьмём для примера эту картинку:

01dd96e566135d2be317791e4eaeeb1e.jpeg

На данном примере в каждом рендере кадров, не нужные(не попадающие в ракурс) нам объекты будут скрыты.. они так же не будут загружаться в оперативную память.

Тесты показывают хорошую оптимизацию в целом, даже если ваш объём памяти имеет больший ресурс, чем требует для себя сцена, в любом случае калькуляция займёт большее время, лишний просчёт GI, и прочие замедляющие рендер вещи.

2. Быстрое и удобное сохранение ваших картинок, включая сохранение рендер элементов (если используете)

сохраняться будет буфер который используется рендером.

поддерживаются следующие рендер движки и их буферы:

338792313419805962a8def7d8becd37.jpeg

Vray (VrayFrameBuffer) , Corona (CoronaFrameBuffer) , RedShift (VFB+).

p.s. Если используете RedShift - будет сохраняться оригинальный буфер 3d max.

поэтому настоятельно рекомендую использовать для RS бесплатный VFB+ с возможностью сохранения его буфера.

3. Выбор любого разрешения картинки к каждой задаче(кадру).

Интерфейс:

Запустив скрипт появится вот такое окно:

a4abc786e94e822a3ce3c5c9e0516094.jpeg

Все панели не доступны - пока вы не создадите первую задачу для работы.

Сделать это можно и нужно, нажав на кнопку "+" =)

После нажатия на "+" появится первая задача - по умолчанию задачи будут иметь имя: "Work_" где 1 - номер задачи.

Мы можем в любой момент переименовать задачу, но об этом чуть позже.

После создания задачи видим, что все свойства стали доступными, тут всё просто - пробежимся по настройкам

6d22aef5a0347a2fd99dab7f6885bc4d.jpeg

"Your Tasks" (Ваши задачи)

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

Вы так же можете легко переставить местами задачи, либо вообще удалить их.

За эти действия отвечают кнопки:

2cd2a0e46eb87d79e67a1ddc0e1b9405.jpeg

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

Work Name:

5e02eabd1be859a687d2d4d7a3588cd3.jpeg

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

Frame:

5c8b27e62ecb14cf9ddb4c69b4b4a641.jpeg

Кадр для выбранной задачи, как только вы создаёте новую задачу кнопкой "+", она автоматически считывает какой кадр был текущим и назначает его для новой задачи. Там же вы можете его заменить на другой - просто вписав туда номер нужного вам кадра.

97120c2423f5c89dfd98d23ed4c061bf.jpeg

Ниже видим красную надпись - Camera not selected, говорит нам о том - что для выбранной задачи не выбрана камера - сделать это довольно просто:

выберите вид нужной вам камеры и нажмите на кнопку "Get From Viewport" (Взять с вьюпорта), если ничего не выбрать - вид останется неизменным от предыдущей задачи, если предыдущей задачи ещё не было - вид будет взят из последнего активного видового окна вьюпорта.

Работает со всеми возможными камерами, включая CoronaCamera.

"Get Presset"

b35b95608a360fa806cde7955c7aa6f7.jpeg

Мы можем выставить настройки рендера для каждой задачи, нажав на кнопку "Get" и выбрав нужный прессет для задачи в открывшемся окне. Это стандартные максовские прессеты, функция редко мной используется - но всё же может потребуется вам.

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

"Renders Presset Path" - отображает путь к прессету.

"Get New Output Size"

c60afc9b1653153cf47b38c474212a32.jpeg

Установить новый размер для сохраняемого изображения выбранной задачи.

Когда вы создаёте задачу - она так же по мимо текущего кадра, считывает текущее разрешение которое у вас в настройках и устанавливает его для этой задачи.

Вы можете его легко поменять, просто установите в Render Setup нужное вам разрешение, и нажмите кнопку "Get New Output Size", и разрешение будет выставлено для задачи.

fb683ec810ceb8f63f47468d464b05d8.jpeg

"Set Save Path"

6a65fe1355b98e933405fe7d167f9202.jpeg

путь / папка куда будут сохраняться ваши готовые картинки. Этот путь не нужно указывать в каждой задаче, это делается один раз.

Никакого хаоса в папке не будет, хранение будет весьма понятным и удобным

Например задача: Work_1 и Work_2 - будут иметь следующие файлы в папке + рендер элементы:

e2d798981609dcde44a11bb828e6c622.jpeg

Если вы используете Render элементы, то не нужно больше париться о надписях "Error Output File" при рендере... если парились ) в общем все картинки и - все render elements будут автоматически сохранены, с названием задачи + имя элемента без всяких ошибок.

Так же не нужно самому нажимать какие-либо галочки для сохранения элементов и прочего - включая галочку "Save File"

b7607a07300639a003167590f1affb0f.jpeg

Скрипт сам распознает какой рендер движок - и исходя от этого , сам установит нужные галочки.

У вас будет 3 типа формата сохранения картинок на выбор:

JPEG (100% Quality), TIF(16 bit + Alpha), EXR(32 bit + Alpha)

Теперь перейдём к панели "Objects for Hide"

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

Объекты, если это не группы - можно добавлять сразу выделив несколько штук, группы добавлять можно только по одной.. Поэтому если вам нужно спрятать много объектов и групп в том числе - то лучший и самый быстрый способ - это сделать из них одну группу и добавить её туда.. это будет более удобным, если вы потом захотите удалить их из этой задачи.

Когда все нужные вам задачи будут созданы - нажмите кнопку "Start Render Tasks".

ВАЖНО !!!

Рендер задач запускать только кнопкой "Start Render Tasks"

Скрипт работает на внутренних функциях. Обычная кнопка Render - никакого отношения не будет иметь к функциям и логике скрипта.

Ещё к сведению: при переключении между задачами будет меняться вид камеры, номер текущего кадра, и разрешение картинки - в соответствии с вашими установками для этих задач.

Это так же даёт удобную навигацию по уже созданным задачам и их редактированию.

Предлагаю посмотреть не большой видео урок по использованию для укрепления понимания - но в целом работа со скриптом быстра проста и понятна. )

Скрипт отправился на модерацию - и уже в ближайшие дни будет доступен в разделе скриптов .

Так же не забывайте про другие мои скрипты - которые облегчат вашу работу !

P.S. Всем спасибо, работаю чтоб не только вы могли отдыхать больше.. но и ваш компьютер smiley-wink.gif