1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Общие вопросы", создана пользователем almaz, 17 апр 2009.

Модераторы: Артер
  1. almaz

    almaz Активный участник

    С нами с:
    29.10.2006
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    5
    Странный вопрос, но возник по ходу дела. Настраиваю через Manage Scene States сцену для Batch Render с 10 камер и возникла сложность отсеивания невидимых в камеру объектов из рендера с различных ракурсов.

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

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

    GoodMan Мастер

    С нами с:
    20.04.2005
    Сообщения:
    2.792
    Симпатии:
    9
    Баллы:
    254
    Действительно странный вопрос. Зачем делать то, что любая рендерилка должна сама делать..

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

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

    almaz Активный участник

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

    GoodMan Мастер

    С нами с:
    20.04.2005
    Сообщения:
    2.792
    Симпатии:
    9
    Баллы:
    254
    С отражениями вряд ли получится - только если заменить рэйтрейсинговые на какие либо другие отражения..
    А вот сделать скрипт который будет определять только объекты в прямой видимости камеры можно..
     
  5. almaz

    almaz Активный участник

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

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

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

    evil666 Активный участник

    С нами с:
    10.07.2007
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    14
    насколько я понял то невидимые обьекты нужно исключить из рендера.
    думаю самый простой способ это те обьекты включить в определенный слой и в его настройках снять галочку рендера(кнопочка в виде чайника)
     
Модераторы: Артер

Поделиться этой страницей