Рендер-калькулятор для VRay distributed

Автор
Сообщение
На сайте c 28.11.2012
Сообщений: 41
По крайней необходимости сегодня порешал такую задачку: есть сцена с камерой. Нужно узнать (хотя бы примерно) сколько она будет рендериться на рендер-ферме.

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

1. N раз случайным образом выделяет на VRay Frame Buffer ровно заданное число бакетов (по числу потоков или кратно ему).
2. Делает рендер и засекает время.
3. Высчитывает среднее время рендера.
4. Масштабирует время на рендер ферму с известной производительностью.

Как работает можно посмотреть здесь:
http://youtu.be/yRDhO1t3UiY  

Там же есть ссылка на скачивание бесплатно. Скрипт сыроват, так что хотелки приветствуются.

P.S. Скрипт ТОЛЬКО для distributed render, только для статической картинки!
На сайте c 11.12.2011
Сообщений: 782
Всё это хорошо! А если у меня на стекле рефракшн дикий как он просчитает! или с воды каустика идёт ! Это же тоже влияет! А кубики пройду по дивану и стене и всё норм
На сайте c 28.11.2012
Сообщений: 41
Quote:
Всё это хорошо! А если у меня на стекле рефракшн дикий как он просчитает! или с воды каустика идёт ! Это же тоже влияет! А кубики пройду по дивану и стене и всё норм

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

Скрипт работает на предположении, что сцена более-менее равномерная. Бывают регионы противоложные дикому рефракшну - к примеру небо, которое просчитывается оч быстро. В среднем получается довольно адекватная оценка.
На сайте c 28.11.2012
Сообщений: 41
Quote:
Всё это хорошо! А если у меня на стекле рефракшн дикий как он просчитает! или с воды каустика идёт ! Это же тоже влияет! А кубики пройду по дивану и стене и всё норм

Вообще разобрался с таким сценарием: взял сцену, на столе стеклянная ваза. Десяток потоков зависают на вазе на полтора часа. За это время остальные потоки успевают отрендерить больше половины сцены. При таком сценарии скрипт врёт в пределах 30%. Т.е. показывает время на 30% меньше чем факт.

В моих реалиях это приемлемо, т.к. нужно оценить время с относительной погрешностью в 50-100%.
(т.е. сказать час и делать два часа - это ОК. Сказать час, а по факту делать сутки - это НЕ_ОК)
На сайте c 16.04.2008
Сообщений: 3549
Сочи
Rooster3D
Свели бы Вы процент погрешности к 5-10, тогда все были бы в восторге. Как работает алгоритм - понятно, но он далеко не совершенен... А вообще, такая вещь не заменима. Спасибо Вам за старания.
На сайте c 28.11.2012
Сообщений: 41
Quote:
Rooster3D
Свели бы Вы процент погрешности к 5-10, тогда все были бы в восторге. Как работает алгоритм - понятно, но он далеко не совершенен... А вообще, такая вещь не заменима. Спасибо Вам за старания.

Вообще подобную попытку делает сам VRay. Когда идет рендер, он дает свои эстимейты по времени. Уже сколько раз убеждался - верить им нужно осторожно.
И это при том, что VRay обладает фактически полной информацией о сцене и самой сценой.. И всё равно ошибается!! Так что думаю оценка с 5% ошибкой -- это уже на уровне Бога
На сайте c 28.11.2012
Сообщений: 41
Для удобства - аттачу скрипт калькулятора в этом посте. Видео и инфа на сайте, если нужно что-то доточить или глючит - пишите на мыло.

mriya_still_calc_annotated01.png

ВАЖНО: для того, чтобы считалось всё правильно нужно внести изменения в скрипт.

Поменять константы:
1. мощность вашей фермы в pts,
2. число серверов и потоков CPU.
Читают эту тему: