Render.ru

Исключение всех невидимых объектов для рендера...

almaz

Активный участник
Рейтинг
5
#1
Странный вопрос, но возник по ходу дела. Настраиваю через Manage Scene States сцену для Batch Render с 10 камер и возникла сложность отсеивания невидимых в камеру объектов из рендера с различных ракурсов.

В общем задача такая: если я смотрю через камеру, то как убрать те объекты:
1. которые я не вижу в камеру
2. которые перекрываются другими объектами
3. которые не участвуют в отражении стекл

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

GoodMan

Мастер
Рейтинг
260
#2
Действительно странный вопрос. Зачем делать то, что любая рендерилка должна сама делать..

Все "ненужные", т.е. не учавствующие в рендеринге объекты - но присутствующие в сцене по любому будут "отсеиватся". Алгоритм любого стандартного рендерера сам будет решать:
1) учитывать ли те объекты которые не попадают в камеру? Если от них например не падает тень в видимую для рендеринга область, или нет другого воздействия на её - то и загружать их не имеет смысла..
2) если один объект перекрывает другим - то это работа для Z-буффера, который известен ещё со времен появления алгоритма раскрашивания по Фонгу - тоесть лет 30.. Он работает на уровне фэйсов и те из них которые не попадают в прямую видимость - просто не рендерятся..
3) объекты которые не учавствуют в отражении стекол - будут игнорироваться аглоритмом обратного рэйтрэйсинга - по которому в большинстве строятся такие вычисления, когда лучь испускается из камеры на объект..

С GI посложнее конечно - но принцип для рендереров тот-же..
 

almaz

Активный участник
Рейтинг
5
#3
Да все понятно про рендер. Речь идет о том, что в сцене полноценное окружение создано, с лесом, горами, ландшафтом. Все это рендерится, но долго. А хотелось бы с определенного ракурса отключить лишние пару-тройку сотен деревьев, кустов, которые в кадр не попадут. Реально в таком случае скорость рендера возрастает. Если все это не отключать, комп приседает и ему даже 8 гиг мало, приходится все в vray mesh proxy переводить, но и тут комп все со скрипом проглатывает.
Вручную я неплохих результатов добиваюсь, ставлю 6-10 камер, для каждой настраиваю Scene State и Batch Render, хлопнул на мышку и ушел спать, за всю ночь все отрендеривается, причем, Scene State отлично все включает/отключает для каждой камеры. Получается, пару часов подготовки, зато потом безболезненный и достаточно быстрый рендер в очередь.
Осталось оптимизировать отсев невидимых объектов для каждой камеры, а вот в этом и вопрос, т.к. то, что вижу в камеру тупо оставляю, а вот с перекрыванием и отражением - проблема.
Если вы мне хотите сказать, что не нужен этот геморрой, то я с вами не соглашусь, т.к. реально за счет этого на три дня срок выдачи работы сократился.
 

GoodMan

Мастер
Рейтинг
260
#4
С отражениями вряд ли получится - только если заменить рэйтрейсинговые на какие либо другие отражения..
А вот сделать скрипт который будет определять только объекты в прямой видимости камеры можно..
 

almaz

Активный участник
Рейтинг
5
#5
Я уже на ухищрения пошел ради этого метода.
Сделал объект с цветными секторами, расходящимися лучами от центрального объекта (здание в моем случае) и сделал черновой Batch render сразу для всех камер в сцене. Получил в итоге картинки, по которым видно, какие цветные сектора отразились в окнах.
Потом настроил каждую камеру в отдельности, убирая лишние объекты с тех секторов, которые в окна не попали. Трачу на это от получаса до часа, чтобы 8-10 камер настроить и сохраняю в Scene State. Далее запускаю Batch Render с финальным качеством рендера.

По итогам вот что получается: если рендерить тупо каждую камеру, то получается 3часа на кадр*10камер = 30 часов. Если селективно и через Scane State + Batch Render, то получается 1час подготовки+1час на кадр*10камер = 12 часов.

Если бы скриптик кто-то написал для автоматизации отбора объектов, цены бы методу не было.
 

evil666

Активный участник
Рейтинг
13
#6
насколько я понял то невидимые обьекты нужно исключить из рендера.
думаю самый простой способ это те обьекты включить в определенный слой и в его настройках снять галочку рендера(кнопочка в виде чайника)
 
Сверху