60841

Объемный свет в mental ray

Конспект урока

Педагогика и дидактика

В стандартных атмосферных эффектах 3d Max есть возможность визуализации объемного света, когда лучи источника света будут видны на сцене, но при пользовании mental ray возникают проблемы при назначении данного эффекта...

Русский

2014-05-21

3.39 MB

1 чел.

Объемный свет в mental ray

В стандартных атмосферных эффектах 3d Max есть возможность визуализации объемного света, когда лучи источника света будут видны на сцене, но при пользовании mental ray  возникают проблемы при назначении данного эффекта фотометрическим источникам света, а при использовании фотометрической экспозиции эффект не действует. Тем не менее в mental ray данный эффект можно достичь использованием эффекта причастных сред, когда выделенный объем сцены воспринимается, не как набор фигур в вакууме, а с учетом рассеивающих характеристик заполняющей среды.

 Плюсы данного подхода:

  1.  работа с фотометриками, включая свет mr Sun, IES Sun.
  2.  визуализация в фотометрической экспозиции
  3.  Визуализация эффектов непрямого освещения (GI и каустики)
  4.  более быстрый расчет

Небольшой минус эффекта, это несложная подготовка сцены.

Урок может быть выполнен начиная с восьмой версии 3d Max, а возможно и на более ранних, но особенности интерфейса и файлы сцен предназначены для 3d Max 2009. Все операции производятся при активном рендере mental ray.

Подготовка к использованию эффекта причастных сред.

Для использования эффекта причастных сред, на сцене должен присутствовать источник света (а иначе зачем мы все это делаем) и нужно отделить объем сцены, где данный эффект будет наблюдаться. При отделении объема необходимым условием является наличие ширмы между камерой и визуализируемым объектом, ширме должен быть назначен шейдер объема – Parti Volume (physics). Задняя часть сцены тоже отделяется ширмой- задником, роль задника могут выполнять и объекты сцены, которые находятся за отделенным объемом. Необходимость в заднике можно понять, взглянув на сцену из окна просмотра камеры – если в камеру попадает фон сцены, то задник необходим, если фон заслоняет объект сцены, то задник, как правило, не нужен (если только в целях экономии времени рендера, так как чем больше объем, тем дольше расчет).

Наглядно необходимые элементы сцены:

На данной сцене визуализируется фотометрический источник света с эффектом причастных сред. Между ИС и камерой установлена ширма в виде обычной плоскости. Обратите внимание, что нормали ширмы должны быть обращены к сцене, а не камере.

Просмотреть направление нормалей и при желании их перевернуть можно путем конвертирования ширмы в мэшь:

Правый клик по выделенному объекту, конвертировать в редактируемую сетку:

Далее войти в редактирование, выделить все полигоны ширмы и активировать пункт отображения нормалей:

Если нормали обращены не в сцену, значит, их нужно перевернуть – спускаемся в свитке, ниже и жмем клавишу Flip:

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

Материал ширмы:

Для ширмы должен быть назначен полностью прозрачный материал (чтобы не портить вид сцены). Для этого выбираем материал «mental ray» и в слоты Surface и Shadow (тени ширма тоже не должна отбрасывать) назначаем шейдер – Transmat (physics). Данный шейдер не имеет настроек.

В слот Volume назначается шейдер Parti Volume (physics).

Материал для ширмы готов.

Материал задника достаточно сделать только прозрачным, то есть в слот Surface и Shadow назначить Transmat (physics), необходимости в шейдере объема нет.

Поскольку ширма теперь будет всегда перекрывать в окне просмотра вид из камеры, то это внесет небольшие проблемы к позиционированию объектов сцены и настройки ракурса, если такая проблема возникла, то отображение ширмы необходимо сделать в виде габаритного контейнера. Для этого нажмите правой кнопкой мыши по ширме и выберете пункт настроек объекта – «object properties», активируете закладку «General», нажмите метку «by Object» и поставьте галку на пункте «Display as Box»

Все настройки по приданию источникам света объема, мы будем проводить в шейдере Parti Volume (physics).

Настройка Scatter color, можно сказать будет самой востребованной, она определяет рассеивание света и настраивается под каждую сцену и положение камеры, цвет в слоте выполняет как бы эффект фильтра - чем темнее цвет, тем темнее на сцене. Как правило, используются варианты значения серого цвета от 0,5 до 0,01. данный параметр подбирается практически.

Параметр Extinction – затухание  показывает поглощение света атмосферой. Для имитации источников света в воздухе, данный параметр менять не нужно. Минимальное значение 0,001 вполне корректно. Значение 0,002-0,003 оправдывает себя, когда дополнительно визуализируются фотоны GI, более высокие значения подойдут для имитации света в воде или сильном тумане.

Итак, сделаем несколько рендеров и настроем параметр Scatter color.

Результат работы сцены на вышеприведенной схеме:

Слева визуализация фотометрического источника света холодного белого цвета (6000к), справа теплого (4000к)

И визуализация ИС с назначенной картой IES:

Далее в настройке шейдера идут параметры характера рассеивания – r, g1, g2.

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

Рассеивание по Релею : R = 0,5  G1 = - 0,46  G2 = 0,46 дает наиболее равномерное рассеивание характерное для чистых  газовых атмосфер.

 

Рассеивание Ми, туманное:  R = 0,12  G1 = - 0,50  G2 = 0,70 – рассеивание характерное для атмосфер содержащих взвесь из мелких капель воды - туман

Рассеивание Ми, темное:  R = 0,19  G1= -0,65  G2=0,91 – рассеивание для плотного тумана или задымленных сред

Для тех, кто хочет самостоятельно попрактиковать опишу назначение этих параметров поподробнее:

Если рассматривать атмосферу (объем, в котором распространяется свет) в виде массива частиц (молекулы газа, капли воды, частицы дыма) то луч света, проходя сквозь этот массив, взаимодействует с этими частицами и соответственно меняется характер рассеивания света. Рассеивание в этом случае описывается фазовой функцией Хеньи-Гринштейна и Шлика. Где параметр g это величина рассеивания в полусферу вокруг точки паления света. В нашем случае рассматривается рассеивание в обеих полусферах, поэтому используются два параметра g1 и g2. Отрицательные значения параметра обозначают рассеивание назад (внутренние), положительные – вперед (внешнее)

Параметр r показывает степень смешивания g1 и g2 – при r = 0 используется только g2 при  r = 1 используется только g1

фазовая функция Хеньи-Гринштейна (XГ):

P(j) = 1 - g2 / ( 4p x ( 1 + g2 - 2g  x  cos j )1.5)

Отношения для двух полусфер:

ХГ(g1) + (1 – r  )  x  ХГ(g2)

Значения параметров r, g1, g2 находиться от 0 до 1, неправильно установленные параметры (завышение, несбалансированность) приводят к появлению артефактов или нерабочему эффекту.

Следующий параметр Non Uniform – значение выше нуля активирует в области распространения света неоднородности: значение от 0 до 1 активирует степень неоднородности, значение более 1 усиливают эффект свечения ( значение от 1 и выше недокументированно)

Параметр Height ограничивает действие эффекта на определенную высоту сцены, при этом для работы данного параметра необходимо переключить Mode в единицу, при mode = 0 высота не учитывается.

Далее настройки качества Min и Max Step Length – максимальный и минимальный шаг выборки, для расчета эффекта. Мой совет – сразу отредактируйте данные параметры, иначе при обсчете сцены метров 20-30 в глубину с установками по умолчанию, Вы окончания рендера не дождетесь. При такой глубине нормальный результат можно достичь при Min=0,03 и Max = 0,3 для предварительных рендеров можно использовать и большие значения. Значение Light Distance определяет на каком расстоянии от источника света работает минимальная или максимальная выборка.

Переключатель Lights позволяет включить учет только указанных в нижнем окне источников света, и игнорирования остальных. При неактивном параметре учитываются все источники сцены.

Примеры работы эффекта причастных сред для визуализации прямого света на сценах:

Скачать сцену:

В обоих случаях используется фотометрический свет.

Визуализация непрямого освещения

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

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

Все что требуется для придания видимости фотонам каустики и GI это наличие эмиттера, который будет генерировать в сцену «помеченные» фотоны, ну и естественно организация сцены, как было описано в самом начале статьи.

В моем случае эмиттером каустик фотонов служит линза, установленная на пути луча источника направленного света:

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

Разберем универсальный вариант организации сцены для визуализации прямого и непрямого освещения одновременно:

Для простоты создадим небольшое помещение у которого будет металлический пол, на стене прикрепим имитацию фонарика, который светит в пол.

Одну стену помещения заменим плоскостью ширмой ( как описано в начале урока) и зададим ей материал, какой назначали выше для сцен с прямым светом.

Отверстие из которого у нашего фонарика будет выходить свет закроем плоскостью ( нормали плоскости направлены к источнику света) :

И займемся настройкой материала плоскость:

Назначаем материал mental ray, слоты поверхности и тени (Surface и Shadow) шейдер Transmat (physics) – то есть плоскость должна быть прозрачной и не отбрасывать тень.

Слот Photon – назначаем шейдер Transmat Photon (physics) – то есть плоскость должна быть прозрачна для фотонов источника света.

Слот Photon Volume – шейдер Patri Volume Photon (physics), это генерирование фотонов объема, мы как бы помечаем все фотоны источника света для их отображения при визуализации:

Настройка шейдера Patri Volume Photon (physics), аналогична Patri Volume (physics), только эффект будет касаться не к  распространению света в атмосфере сцены, а только к распространению объемных фотонов.  В данном шейдере добавлена опция Min Level, которая устанавливает количество преломлений и отражений после которых фотоны перестанут визуализироваться, при параметре равным нулю, эффект будет существовать согласно общим настройкам жизни фотонов.

Материал готов.

Теперь свойства самой плоскости:

Посредством правого клика при выделенной плоскости - эмиттера, зайдите в ее свойства и нажмите закладку mental ray. Проверьте чтобы плоскость участвовала в генерации каустики ( отключено по умолчанию) и Глобального освещения:

Далее переходим на закладку General  и отключаем генерирование тени от плоскости. Если не отключить эту позицию, то прямой свет будет отсекаться плоскостью, назначение прозрачного материала недостаточно:

С плоскостью-эмиттером закончили.

Осталась небольшая доводка сцены - не забыть пол  который будет отражать свет, добавить в расчет каустики (в настройках объекта, как и для плоскости, поставить галку на Generate Caustics). Ну и конечно включаем расчет каустики при рендере: нажать «F10» и включить сам расчет

Рендерим:

Скачать сцену

Аналогично будет визуализироваться эффект Глобально освещения, достаточно активировать опцию GI в настройках рендера:

И в атмосфере сцены появиться куча светлых шариков.

Для придания более приемлемого результата в таком случае нужно настроить размер объема фотонов:

Нажимаем «F10» и находим раздел Объема:

Maximum Sampling Radius – это размер площадки сбора фотонов  и выше количество для учета фотонов на этой площадке( чем больше – тем качественнее расчет). Размер площадки должен задаваться исходя из размеров сцены, в идеале чем меньше тем лучше, но с уменьшением размера площадки, мы должны увеличивать количество самих фотонов. Количество фотонов и глубина трассировки задается   в этом же свитке – спускаемся ниже:

Желтым цветом выделены поля для количества фотонов каустики и глобального освещения,

Зеленым цветом – глубина трассировки, то есть количество отражений (Reflection) и преломлений (Refractions) после которого фотоны пропадут и величина Max Depth устанавливает общее максимальное количество преломлений и отражений после которого фотоны в любом случае пропадут.

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

Ложка дегтя тут в том, что при визуализации эффекта GI в масштабах сцены на несколько квадратных метров, размер площадок сбора фотонов должен быть миллиметровым, а количество GI-фотонов измеряться несколькими миллионами, что проблематично на машинах с 32-битной системой по причине нехватки ОЗУ.

Отобразить эффект каустики несколько проще, фотоны в данном случае собраны в пучки и для их наблюдения ненужно сильно увеличивать количество.

Примечание:

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

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

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

Перед рендерингом сцены с большим количеством фотонов, не забудьте сохранить сцену :-)… всякое бывает – при нехватки памяти рендер слетит вместе с Максом и не факт что будет откат.

Для визуализации непрямого освещения параметр  Extinction шейдера Patri Volume Photon (physics), стоит повысить на несколько порядков.

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

Контроль качества визуализации в mental ray

Урок по настройке  качества визуализации в mental ray. В большинстве своем будут рассмотрены только глобальные настройки сцены. Теоретические вопросы, того или иного процесса рассматриваться будут только кратко или сокращенно.

Естественно урок не даст  четкого алгоритма «Как сделать красиво и быстро» - это невозможно, каждая сцена уникальна, а вот показать в каком направлении искать, думаю, урок поможет.

В уроке будут приводиться некоторые цифровые параметры настроек – относиться к ним нужно философски – это наиболее усредненные цифры, понятие качественно и красиво везде разные.

Рассчитан урок на тех,  кто пошел уже в работе над сценой стадию моделинга, шейдинга и освещения и подошел к стадии визуализации


Рассмотрены будут следующие моменты:

  1.  Сглаживание (выборка и фильтрация изображения)
  2.  Настройка алгоритма трассировки  BSP (BSP-2)
  3.  Алгоритм расчета тени и отступление от глобальных настроек – настройка семплирования полутени и фильтрация текстур
  4.  Глобальное освещение
  5.  Final Gather 

Рассматриваются настройки с позиции, что мы делаем статичный рендер  (используем исключительно трассировку)

Описание приведено для 3d Max 2009.

Сглаживание

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

Пример ступенчатого артефакта на кромках фигуры (получено путем неадаптивной выборки 1 семпл на пиксель и треугольный фильтр размером 1х1)

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

Контроль качества процесса сглаживания производиться в настройках Рендеринга («F10», закладка Renderer):

 

рис №1 

Процесс начинается с Выборки

В mental ray реализована адаптивная и фиксированная выборка, мы пользуемся адаптивной, когда процесс получения цвета точки усложняется с появлением проблемных зон изображения, что позволяет экономить время и повышать качество выборки.

Суть адаптивной выборки в общем упрощенном варианте поясню на рисунке:

 

рис №2

9 квадратов, на которые разделен рисунок символизируют пиксели будущего изображения, чайник на заднем плане – элемент сцены, которую визуализируем.

Для первой точки изображения (квадрат А) происходит трассировка в направлении сцены 4 лучами, получаются четыре значения цвета, которые сравниваются между собой. Если значение составляющих цветов не превышает допустимого контраста, то выборка для данного пикселя заканчивается  и берется следующий пиксель.

В квадрате «Б» один из четырех лучей должен получить цвет фигуры, который отличается от цвета фона и будет явное превышение допустимого контраста. В этом случае выборка для данной точки усложниться до 4 семплов на пиксель, после чего состоится трассировка каждого с последующей проверкой и если нужно то следующему усложнению до 16 семплов на пиксель. И так до тех пор, пока контраст, полученный в результате трассировки не будет превышать допустимый, либо достижения максимального значения выборки. 

Пороговые значения контраста задаются в поле Spatial Contrast  (рис №1) для каждой составляющей цвета

Минимальное значение выборки задается в поле Samples per Pixel – Minimum.  Значение = 1 обозначает один семпл на пиксель.   Дробные значения  это недостаточная выборка (несколько пикселей на один семпл). При значения больше 1-го,  пиксель сразу делиться на указанное количество семплов.  Выборка начинается именно с указанного минимального значения.

Максимальное значение выборки указывается соответственно в поле Samples per Pixel – Maximum это та граничная глубина по достижению которой выборка закончиться даже если есть превышение порога контраста.

После того как выборка закончиться полученные значения отфильтровываются для каждого пикселя

Фильтрация

Фильтрация зависит от типа фильтра и его размера – размер указывается в точках от центра.

Пример работы четырех из пяти фильтров (размеры фильтра по умолчанию)

Фильтр типа Бокс – самый примитивный использует средне взвешенное значение цвета взятые согласно размеру фильтра,  фильтры Митчелла и Ланчоса самые качественные (последний наиболее контрастный и наиболее медленный)

Тип фильтра и его размер устанавливается в разделе Filter (рис №1)

Дополнительные опции

Опция Jitter (пер.  дрожание изображения в телевизоре)  дает небольшое смещение внутри выборки, дабы трассировка происходила немного хаотичнее, что позволяет избежать «выбитых» элементов, муара. Как пример на рисунке №2  квадрат «Г» геометрически точно направленные 4 луча в углы семпла пропустят носик чайника между собой,  при включении «дрожания» повыситься шанс пересечься с фигурой. На фоне массива точек это дает результат.

Опция Lock Samples – запомнить выборки, актуальна при обсчете анимации – запоминает информацию о выборках и учитывает ее в следующем кадре.

Опция Bucket Weight – размер мозаичного элемента обсчета (далее бакета) с одной стороны размер не должен влиять на качество обсчета, но есть некоторые расчеты, которые не передаются в соседние бакеты при закачивании обсчета своего. Как, например алгоритм отслеживания краев,  может получиться так, что тонкий элемент сцены определится в одном бакете и не наметится в соседнем – получиться обрыв. Бороться с этим можно только увеличением размера бакета.

Опция Bucket Order – порядок следования бакетов при обсчете сцены теоретически,  если  путь назначает сам рендер, то это позволяет экономить память и время. Вот только необходимости к переназначению на другую схему нет (кроме эстетической). Если нужно посмотреть фрагмент сцены, но не ожидая полного рендеринга, то можно воспользоваться рендером региона.

Опция Frame Buffer Type тип буфераЕсли вы сохраняете сцену в форматы с динамическим диапазоном (exr ,  hdr) то оставляем 32-битный буфер. Если такие форматы не нужны то 16-битный буфер. Это позволяет экономить оперативную память. Правда есть некоторые пост-эффекты которые хотят наличие 32-битного буфера, так что это тоже надо учитывать.

Итак с назначением параметров сглаживания понятно, теперь можно поговорить о поиске приемлемых значений.

Порог контраста  как правило, используется от 0,03 до 0,05  (меньшее лучше)

Минимально значение выборки думаю следует назначать равным 1 – меньше уже не эффективно изначально, а вот большее это  трата времени на трассировку ровных поверхностей.

Максимальное значение – с этим сложнее и поможет нам диагностическая выборка:

Активировать диагностическую выборку можно из настроек рендера («F10») , закладка «Processing», свиток «Diagnostics»

Устанавливаем галку Enable и выбираем Sampling Rate. Жмем ренедер:

Градации серого символизируют глубину выборки - чем ярче тем глубже. Но нас интересует белый цвет – это там где выборка достигла предела и закончилась не по контрастности, а по максимальному ограничению. На краях объектов это допустимо ,  а вот на гладких однотонных поверхностях от белого цвета лучше избавиться, подняв количество семплов в выборке на следующую ступень.  Как правило, значение 16 достаточно для многих сцен.

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

Фильтр лучше выбирать Митчелла, а при попытке подчеркнуть контрастность – Ланчоса.

Использовать опцию дрожания Jitter – рекомендуется всегда. 

Алгоритмы трассировки

Использование алгоритма трассировки  позволяет ускорить процесс рендеринга путем упорядочивания объектов сцены и на качество обсчета не влияет.

В mental ray теоретически присутствуют  два алгоритма - Иерархическая сетка и BSP (двоичное разделение пространства) , BSP в свою очередь имеет вариацию BSP-2 (Large BSP). Но в связи с устареванием Иерархической сетки и отсутствием ее выбора в 3D Max 2009 , мы о ней говорить не будем (жалеть тоже)

Настройка алгоритма трассировки производиться  в поле Raytrace Acceleration, закладки Renderer:

 

рис № 3 

Алгоритм BSP работает по принципу разделения сцены на объемные контейнеры (вокселы) как и алгоритм иерархической сетки, но BSP допускает внутренне деление вокселов на вокселы нижнего порядка  и так на указанную глубину  Depth или пока в каждом вокселе будет меньше полигонов (листьев дерева BSP) чем указано в параметре Size.

Настраивать алгоритм BSP есть смысл, наверное, только при рендере анимации, в других случаях тратить время на диагностические рендеры и накручивание параметров невыгодно, легче подождать выигрываемые минуты рендеринга один финальный раз.

Тем не менее алгоритм имеет визуальную диагностику по глубине и размеру. Удобнее настраивать по глубине:

Рендерим сцену:

Синий и зеленый цвет это минимальная глубина, желтый близкая к пределу и красная предельная.  Большое количество красного цвета на сцене будет говорить о том что BSP не хватает глубины для классификации полигонов и почти везде вокселы достигнув максимальной глубины содержат большое количество листьев, которые не мешает классифицировать еще на несколько порядков. Увеличивая глубину нужно добиться минимальных проявлений красного цвета.

Алгоритм BSP-2 полностью идентичен простому BSP, но у него есть одно очень полезное свойство, которое станет палочкой-выручалочкой любителям громадного числа полигонов. BSP-2 выгружает неиспользуемые вокселы из ОЗУ на диск и по мере надобности подгружает их, тем самым резко снижается скорость рендера, но высвобождается ОЗУ, которой часто не хватает.

Глубина трассировки

Параметры глубины трассировки находятся ниже назначения алгоритма трассировки  (рис №3)  поле Reflection / Refraction 

Max. Reflection – это количество отражений луча трассировки, после которого трассировка заканчивается

Max. Refraction – это количество преломлений  через прозрачные (полупрозрачные) поверхности, после которого трассировка заканчивается

Max. Trace Depth – сумма отражений и преломлений после которых все равно трассировка закончиться .

Данные параметры часто упускают из вида, хотя ими можно ускорять процесс предварительных рендеров и после небольшого анализа максимально повысить производительность и качество на финальном. Главное помнить что преломление в объемных предметах происходит дважды – на входе трассирующего луча и на выходе из объекта.

Тени

Спускаемся  в закладке Renderer окна настроек рендера (F10) ниже до свитка «Shadows&Displacement»

Нас интересует алгоритм расчета теней:

Регулярный (simple)  алгоритм является самым быстрым смысл его состоит  в определении расстояния от источника света до точки трассировки и прозрачности (непрозрачности) пересекающих поверхностей, без учета их последовательности.

Сортирующий (sort) выстраивает объекты  в порядке следования от источника света, делая расчеты более правильными. Как правило для правильного расчета это достаточно (активирован  по умолчанию)

Сегментирующий (Segments) – дополнительно учитывает в расчетах невидимые объекты. Такие как мех, эффекты атмосферных контейнеров, объемные эффекты, более того многие архитектурно-дизайнерские материалы имеют сложные эффекты рассеивания, которые могут учитываться только этим алгоритмом. В противовес всему этому – увеличение времени визуализации.

Отвлекаясь от глобальных настроек посмотрим на качестве тени от поверхностных источников света, которая  настраивается в настройках ИС:

Иногда в области полутени заметен шум, особенно когда тень скользящая и чем дальше от объекта тени, тем шум заметнее:

Избавиться от этого можно увеличив количество семплов для сглаживания тени в настройках ИС

Параметр Shadow Samples:

Фильтрация текстур

Параметр фильтрации текстур настраивается не глобально а относительно каждой текстуры в свитке настроек растровой карты:

По умолчанию установлена пирамидальная фильтрация, которая позволяет избежать шума на поверхностях текстур при обсчете анимации. Смысл ее состоит в том, что на поверхность объекта с текстурой накладывается сетка согласно виду из камеры (чем меньше угол наклона камеры - тем ячейки больше) значение цвета в ячейках сетки интерполируется и получается готовый вид текстуры для нашего вида из перспективы.

К сожалению в 3d Max не поддерживается настройка эллиптической фильтрации, которая бы нам позволила получить максимально четкое изображение. Поэтому в статичных, высоко-четких изображениях  можно наблюдать потерю детальности на текстурах в зависимости от положения камеры, особенно сильно это чувствуется на использовании растровых карт для бампа (неровностей).

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

Глобальное освещение (GI)

Настройка в разделе «Global Illumination» , закладки «Indirect Illumination»

рис № 4 

Допустим у нас в качестве примера есть довольно непривлекательный вариант визуализации:

Использование глобального освещения больше испортило нам картину чем улучшило. Для того чтобы избавиться от данного недоразумения нужно решить по какому из двух путей пойти в зависимости от требований к GI:

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

В первом случае нужно увеличивать радиус семпла сбора фотонов (в простонародье радиус фотонов)  Maximum Sampling Radius (рис 4)  пока семплы не станут равномерно друг на друга накладываться. Такой способ себя оправдывает при нахождении на сцене источников прямого света, которые формируя тени подчеркнут всю геометрию и использования в материалах правильно настроенного шейдера (опции)  Ambient-Occlusion, который подчеркнет затенение от рядом находящийся геометрии.

Во втором случае контрастный эффект получается путем уменьшения радиуса семпла и увеличения количества фотонов Average GI Photons per Light (Рис 4) , как бы рисуя свет и тень с помощью фотонов.

И в том и другом случае возникает вопрос – какой делать радиус семпла и сколько нужно фотонов?  Более того придется еще настраивать параметр Maxsimum Nun Photons per Samples (рис 4) который показывает сколько фотонов нужно учитывать для расчета в семпле сбора из всех прилетевших.

Опять нас спасет диагностический рендер:

Который позволяет оценить и наполнение  сцены семплами (density)   и яркость эффекта (irradiance)

Произведем в режиме density

И начинаем с настройки размера площадок Maximum Sampling Radius под требуемую задачу (в первом случае до полного или даже избыточного перекрытии, а во втором подгоняем под размер самых мелких деталей сцены которые надо подчеркнуть) после чего по необходимости добавляем  фотонов Average GI Photons per Light. Добиваемся плавности  нанесения семплов на поверхность объектов (плавные переходы цвета)

Далее переключаемся в режим диагностики irradiance:

Сейчас нам нужно настроить  оптимальное использование фотонов.  На рисунке мы видим ярко выраженные красные пятнышки  в хорошо освещенных областях, а по идее нам нужно опять добиться плавности эффекта. Как правило такая пятнистость возникает из-за не учета всех фотонов которые попадают на поверхности, поэтому нужно поднимать параметр Maximum Nun Photons per Samples  до подобающих размеров 

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

Еще стоит заметить о параметре Maximum Nun Photons per Samples - поднимая количество фотонов для учета в семплах, мы подходим к учету всех выпущенных в сцену фотонов, что обеспечивает физически корректную модель освещения. Но бывает, что чисто из эстетических соображений нужно погасить излишне яркие места (красный цвет). В этом случае нужно найти оптимальный размер Maximum Nun Photons per Samples (уменьшая его) когда в местах падения большого количества фотонов они не будут учитываться все,  и в тоже время будет хватать для учета в семплах, которые находятся  в темных местах.

Окончательная сборка Final Gather  (FG)

Настройка в разделе «Final Gather» , закладки «Indirect Illumination»

 

рис №5 

Разработчики тут позаботились о нас и сразу прописали профиля работы  Final Gather, сделав ползунок «FG Precision Presets»

Тем не менее можно попытаться адаптировать просчет максимально эффективно.

Основные параметры настройки это

Initial FG Point Density – плотность испускаемых из камеры лучей для получения FG точек  

Rays per FG Point – количество основных  лучей из FG точки

Interpolate Over Num. FG Points – это количество точек для интерполяции,  для физически корректного эффекта должен захватить все точки, повышенное значение параметра результат не ухудшит ( и лишнее время не займет), а понижено приведет ( как и в случае с GI), к понижению интенсивности освещения наиболее ярких мест

В настройке плотности лучей и количества первичных лучей, как всегда поможет диагностический рендер (который надо включить в режим Final Gather).

делаем рендер

 

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

В нашем случае точки имеющие одинаковый шаг и четко просматривающиеся на ровных поверхностях, это шаг FG точек (Initial FG Point Density).

Шаг желательно подобрать с таким расчетом чтобы заполнить освещаемые места сцены, естественно, чем плотнее тем лучше, но тратиться больше времени. Поэтому для начала не стоит превышать размера 0,4 – 0,6

Делаем рендер:

Явственно видны артефакты освещения на местах отдаленных от точек попадания непрямого света в сцену. В этом случае есть смысл увеличить количество лучей  Rays per FG Point либо включить вторичное рассеивание.

Параметр Diffuse Bounces обозначает максимальное количество вторичных лучей, правда на сцене станет несколько ярче, поэтому параметр Weight  (вес вторичных лучей) желательно уменьшить.

Для предыдущего рендера  включен  Diffuse Bounces на 5 и Weight равен 0,6:

Параметр Interpolate Over Num. FG Points можно установить в 30 или выше, как обычно предлагает программа по умолчанию

Стоит обратить внимание на фильтрацию. В настройках по-умолчанию  включен стандартный режим фильтрации, но не всегда его имеет смысл использовать. Фильтрация служит для сглаживания HDR изображений которые используется на фоне сцены в качестве освещения

Если в качестве освещения используются стандартные методы (у меня mr sky) либо хорошо подготовленные изображения, то фильтр можно отключить, это уберет излишнюю контрастность и уменьшит время расчетов:

Маленькое примечание: удобно настроить качество ФГ  на копии сцены с назначенным матовым серым материалом всем объектам, это не позволит учесть отражения и преломления основного луча от точки FG до контакта с поверхностью, но  тем не менее,  будет очень хорошо видно распространение основной массы света. После чего вернуться в оригинал сцены и выставить настройки:

Пакетная визуализация в 3ds Max

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

Урок постарался сделать максимально подробно, показывая даже очевидные вещи, тем не менее не стал описывать весть список ключей визуализации. Только основные, остальные при знании синтаксиса команд работают аналогично, повторяя те же функции, что и аналогичные позиции в редакоре. Урок проводиться на примере 3ds Max 2010, но выполняться и в более поздних версиях  до 3ds max 6. Урок поведется в несколько шагов.

Шаг 1 – собираем информацию

За визуализацию из командной строки отвечает приложение 3dsmaxcmd.exe, которое находиться в корневом каталоге программы. Прежде всего нужно запомнить полный путь к этому файлу, в дальнейшем он будет нужен.

Если по какой-то причине вы затрудняетесь быстро найти этот файл, то нажмите правой кнопкой мыши на ярлыке 3ds max (либо на рабочем столе, либо в меню «ПУСК»), выберете пункт «свойства» и в открывшимся окне нажмите кнопку «Найти объект»:

В открывшимся каталоге найдите файл 3dsmaxcmd.exe

Запомните полный путь к данному файлу, далее я буду его называть каталог программы.

Если сейчас запустить этот файл, то мы увидим только мигнувшую консоль командной строки (далее просто консоль). Сам по себе файл ничего не визуализирует, параметры его работы задаются ключами или командами. При запуске 3dsmaxcmd без ключей выдается список всех ключей с пояснениями, давайте его просмотрим.

 Чтобы после запуска рендера консоль не закрывалась, произведем запуск с предварительно открытой консоли.

Нажимаем кнопку «Пуск», пункт «Выполнить», в поле ввода набираем cmd и нажимаем «ОК».

Запустилась консоль командной строки.

С помощью команды ms dos  - «CD» (выбрать директорию) переходим  в каталог программы и набираем команду 3dsmaxcmd

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

Нажимаем «Enter» и смотрим на список ключей. Сохранить его можно нажав правую кнопку мыши и выбрать пункт «выделить все», далее вставить текст в любой редактор.

Шаг 2 – пишем загрузочный файл

Ключи управления процессом визуализации записываются после команды 3dsmaxcmd через пробел обычным  перечислением.   Но согласитесь каждый раз набирать список команд в командной строке неудобно (хотя было время, когда работа из командной строки была модной) поэтому сразу создадим загрузочный bat- файл:

В любом удобном каталоге или на рабочем столе создайте текстовый файл и назовите его любым именем с разрешением .bat.

Например вот так:

Щелкаем по нему правой кнопкой мыши и выбираем пункт «Изменить»

Откроется пустой текстовый файл, копируем в него каталог программы и через слеш дописываем  3dsmaxcmd, всю строку забираем в кавычки.

В моем случае вся строка будет выглядеть следующем образом:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd"

После кавычек поставьте пробел, после которого будет идти перечисление ключей.

Каждый раз редактировать bat файл тоже не удобно (список ключей может быть внушительным), поэтому разработчики ввели возможность подключения текстового файла с перечисляемыми настройками. Путь к данному файлу указывается через ключ «@» после которого указывается полный путь к файлу. Дописываю ключ с указанием к файлу настроек который у меня находиться на диске C:  и с именем ren.txt (далее файл настроек).

Вся строчка команды теперь будет выглядеть следующем образом:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

Внимание очень важно !!!

3dsmaxcmd полностью не приемлет кириллицу  в ключах. Поэтому все без исключения указываемые пути должны быть набраны латиницей. Следите за этим.

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

Шаг 3 – визуализация

Создаем и открываем текстовый файл настроек (у меня c:\ren.txt)

И самой первой строкой указываем путь к файлу который будет визуализироваться, например у меня так:

i:\lesson\less.max

сохраняем файл настроек и кликаем по загрузочному файлу (render.bat )

появляется консоль, если вы все сделали правильно то там будет запись о начале рендеринга, через некоторое время загрузится визуализатор и начнется обсчет, при этом полностью 3d max не загружается:

К сожалению после визуализации окна закроются, в консоли появиться запись об успешном завершении работы и консоль тоже пропадет. Результат визуализации нигде не сохраниться, поскольку мы не указали куда и как его сохранять, а настройки об сохранении в файл сцены игнорируются.

Поэтому первый рассматриваемый ключ  это ключ указания выходного файла:  -outputname

Синтаксис команд очень вольный – после названия ключа идет равнО, либо двоеточие  (как удобно) после этого параметр. Лишни пробелы игнорируются (если они не дробят саму команду), пути к файлам можно забирать в кавычки, а можно не забирать.

Теперь текст файла настроек выглядит следующем образом:

i:\lesson\less.max

-outputname = i:\lesson\01.jpg

Сохраняем информацию в файле настроек (сохранение не забываем, а то часто меняется текст файла, а про сохранение забывается) и запускаем загрузочный файл. Теперь результат обсчета сохраниться в jpg файл.

Если после запуска визуализация отменяется, то это говорит о наличии ошибок, вывод в консоль максимально подробной информации обеспечивает ключ –v с параметром 5

Текст файла настроек будет следующем:

i:\lesson\less.max

-v: 5

-outputname = i:\lesson\01.jpg

Теперь все шаги будут описываться, и при возникновении ошибки, мы увидим что к ней привело – например «невозможно найти файл текстуры»

Ключь –continueOnError без параметров отменит остановку визуализации при возникновении ошибок.

i:\lesson\less.max

-v: 5

–continueOnError

-outputname = i:\lesson\01.jpg

При визуализации из командной строки, по умолчанию  обсчитывается окно вьюпорта, которое было активно в момент последнего сохранения. Если случайно сохранено с неактивным окном, которое мы собираемся просчитать, то с помощью ключа –Cam с параметром названия камеры, визуализация начнется для указанной камеры, даже если она не выбрана во вьюпортах.

Пример:

i:\lesson\less.max

-v: 5

-Cam: Camera05

–continueOnError

-outputname = i:\lesson\01.jpg

Помните о невозможности использования кириллицы в ключах (камеру с названием «Великое око» рендер не поймет, только латинский шрифт)

Ключами можно принудительно изменить размер визуализируемого кадра:

-width = 1000

-height = 1000

Или сделать рендер нескольких кадров из анимации :

-Frames = 1,8,10-20  визуализирует 1,8 и с 10 по 20 кадры

-Frames = all  визуализирует все кадры.

Еесли будет указан не видео формат выходного файла, то получим набор кадров.

Если при сохранении сцены был активен рендеринг элементов, то по умолчанию произведется рендеринг всех  указанных при сохранении элементов, отключает визуализацию элементов команда

 –RenderElements = 0

Ключь -workPath  устанавливает использующийся путь для хранения системной информации. При визуализации там формируется xml файл с развернутыми данными сцены.

Остальные ключи используются не так часто и их назначение описано в хелпе, обратите внимание на раздел -BITMAP PARAMETERS-, там ключи установки параметров выходных растровых файлов их я описывать не буду, все предельно просто и дублирует окошки которые появляется когда мы указываем формат сохранения файлов в самом 3d max.

 Ключи со значениями :

-BMP_TYPE: 8

-JPEG_QUALITY: 100

-TIF_TYPE: 4

-TIF_COMPRESSION: 1

Думаю будут нужны часто, дабы качество полученного файла было тем которое мы хотим, а не то что стоит по умолчанию.

Переходим к пакетной визуализации.

Шаг 4 – визуализация очереди сцен

Вернемся к нашему загрузочному файлу –

Щелкаем по нему правой мышью и выбираем пункт изменить.

После первой строки создаем аналогичную вторую, но ссылаемся уже на другой файл настроек:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren1.txt

Настраиваем второй файл настроек по вкусу на любую другую сцену, либо эту же, но с другими параметрами визуализации

И запускаем рендер.

Визуализация двух сцен прошла без нашего участия!

Наглядно продемонстрирую  пакетную визуализацию на следующем примере:

Первым визуализируется файл less.max с размером кадра 200х200 (зеленая строчка)

Вторым тот же файл но уже строго с камеры C5, кадр 2000х2000 в tif формате (желтая строчка)

Третьим  обсчитывается 100 кадров из сцены less-video.max и сохраняются каждый отдельным файлом bmp (красная строчка)

Четвертым визуализируется  вид из Camera05 файла less8 (синяя строчка)

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

Таким образом создавая список в bat файле можно составить расписание визуализации на любое количество сцен и видов каждой сцены.

Шаг 5 – тюнинг

Что еще можно добавить в загрузочный файл дабы облегчить себе жизнь?

Можно после списка визуализации дать путь к любому любимому исполняемому (mp3, wav, avi … ) файлу:

Например:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

 "H:\muz\Alisa 2007\11.mp3"

Тогда соседи услышат о закончившимся благополучно визуализации в два часа ночи посредством  запущенной программа проигрывания звуковых файлов

 

Можно дать команду выключения компьютера:

"c:\program files\Autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

shutdown -s -t 100

где ключь –s  обязателен и показыват что мы хотим именно выключить машину, а ключь –t с цифровым параметром обозначает время в секундах для тайм-аута выключения.

После визуализации покажется предупреждение:

И через указанный тайм-аут компьютер отключиться. Не советую ставить маленькие значения таймера. При сохранении файла на USB носитель, копирование может не завершиться, сгенерируется сообщение об ошибке отложенной записи и машина выключится без сохранения файла.

Для USB винчестеров это актуально, так как за время рендеринга они «уснут» и к времени копирования прибавиться еще время на разгон блинов.

Еще можно просто закончить список командой pause:

"c:\program files\autodesk\3ds max 2010\3dsmaxcmd" @c:\ren.txt

Pause

Тогда после визуализации консоль не закроется и можно будет просмотреть все сгенерированные сообщения:

Итак подведем итог, что полезного можно получить визуализацией из командной строки:

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

Во вторых, можно заниматься редактированием сцены и одновременно визуализировать ее последнее сохранение, без запуска второго 3d max. При этом «падение» рендера никаким образом не скажется на редакторе (отдельный процесс)

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

Из минусов можно отметить дополнительные телодвижения по подготовке расписания и настроек.


 

А также другие работы, которые могут Вас заинтересовать

46443. Методы обеспечения безопасной эксплуатации МТ 18.25 KB
  Методы обеспечения безопасной эксплуатации МТ В целях обеспечения безопасности определения фактического технического состояния объектов МТ возможности их дальнейшей эксплуатации на проектных технологических режимах для расчета допустимого давления необходимости снижения разрешенного рабочего давления и перехода на пониженные технологические режимы или необходимости ремонта с точной локализацией мест его выполнения и продления срока службы объектов МТ в процессе эксплуатации должно проводиться периодическое техническое диагностирование...
46444. Модернизм XX век 15.87 KB
  Модернизм это масштабное культурное явление которое возникло на рубеже 19 и 20 веков и затронуло практически все сферы человеческой жизни. Модернизм отрицает культурное наследие и реальное воспроизведение действительности использует деформацию образов и субъективное восприятие художника т. Модернизм объединяет множество относительно самостоятельных идейнохудожественных течений: экспрессионизм кубизм конструктивизм сюрреализм абстракционизм попарт.
46445. Организация производственной деятельности 15.95 KB
  Любая производственная деятельность начинается с моделирования идеального проекта включающего в себя: цели и задачи деятельности; способы и средства реализации целей и задач деятельности; исполнителей решающих задачи и обеспечивающих достижение целей деятельности. Моделирование деятельности наряду с организационноэкономическим проектированием является и психологическим процессом реализации личностной активности. Своеобразная готовность реализовать в процессе деятельности весь личностный комплекс мотивационнопотребностных...
46446. Абсцессы и гангрена легких. Понятие. Классификация: клинико-морфологические формы, по этиологии, по механизму проникновения повреждающего агента, по предрасполагающим факторам, по распространению, по тяжести течения 15.98 KB
  Абсцессы А и гангрена Г легких. гангрена. По распространению:I односторонние поражения 1 абсцессы а одиночные б множественные 2 гангрена а лобарная б субтотальная в тотальная II двусторонние поражения1 абсцессы множественные 2 гангрена 3 абсц одного легк и гангрена др.
46447. Органы государственной власти 15.99 KB
  Его структура официальное наименование и численность депутатов устанавливаются конституцией уставом субъекта РФ с учетом местных национальных и иных исторических особенностей. Количество депутатов законодательного представительного органа субъекта РФ устанавливается конституцией основным законом субъекта РФ. При выборах законодательного представительного органа государственной власти субъекта РФ не менее 50 процентов депутатов данного органа должны избираться по единому избирательному округу пропорционально числу голосов...
46448. Субъекты PR и общественных коммуникаций. Общественность как объект PR-деятельности и как субъект публичных коммуникаций 16.05 KB
  Общественность как объект PRдеятельности и как субъект публичных коммуникаций. В качестве субъекта PR может выступать заказчик инициатор а также исполнитель PR – деятельности. Субъектзаказчик может быть обозначен как базисный субъект PR а исполнитель как технологический субъект PR. Базисный субъект PR – субъект публичной сферы на оптимизацию коммуникационной среды которого направлена деятельность определенной PR – структуры технологического субъекта PR.
46450. Внешнеполитическая деятельность в условиях новой геополитической ситуации 16.07 KB
  Распад СССР изменил положение России на международной арене. Прежде всего предстояло добиться признания России в качестве правоприемницы бывшего Советского Союза в ООН. В том числе о признании суверенности России о переходе к ней прав и обязанностей бывшего СССР в 19931994 гг. Правительство России присоединилось к предложенной НАТО программе Партнерство во имя мира попросив в последствии НАТО заключить с ним отдельное соглашение.
46451. Уголовное право и процесс в 1930-е годы. Советское законодательство о государственных и имущественных преступлениях как юридическая основа массовых репрессий 16.12 KB
  Основная цель уголовного права в 1930е гг. Принципы уголовного процесса: 1 неприкосновенность личности; 2 гласность; 3 участие защитника и представителей общественности в судебном разбирательстве только на стадии судебного разбирательства; 4 всестороннее и объективное исследование обстоятельств по делу; 5 свободная оценка судом доказательств. Стадии уголовного процесса: 1 возбуждение уголовного дела; 2 дознание и предварительное следствие; 3 предание суду; 4 судебное разбирательство; 5 вынесение приговора; 6 кассационное...