Погружение в ментал (Освещение часть 1 - FG)
Доброго времени суток!
Хочу начать серию уроков по освещению в mental ray. Этот урок посвящен Final Gather, настройкам алгоритма просчета непрямого освещения , источникам света, светящимся материалам и HDRI картам. Целью урока не является создание конкретной сцены, а рассмотрение общих положений и настроек вторичного освещения, все используемые сцены несут тестовый характер и имеют задачу подчеркнуть определенный эффект, как правило в ущерб внешнему виду. Урок рассчитан на max 2008 и выше и имеет примеры сцен для скачивания.
Введение
В начале немного необходимой информации
В mental ray, освещение, по алгоритму, расчета можно разделить на 4 части:
1. прямая трассировка (scanline + ray trace).
2. Непрямое освещение на основе фотонов (GI + Caustics)
3. Упрощенное непрямое освещение (Final Gather )
4. Освещение в объемах (ray marching).
Примечание: я не претендую на правильность русско-язычной трактовки терминов, поскольку вариантов переводов хелпов и уроков много и брать их за основу я не намеревался. Часто GI и каустику разделяют, так как для них используются разные карты фотонов, а освещение в объемах включают в GI, из-за того, что оно тоже используют карты фотонов, не учитывая, что начинает работать совершенно другой движок и не все там делается фотонами (используются 2 уровня расчетов, при этом второй, упрощенный не использует фотоны)
Про прямое освещение:
Под прямым освещением подразумевается освещение от эмиттера источника освещения, до поверхности объекта, после встречи с поверхностью объекта, на основе шейдеров поверхности (Surface) и шейдеров затемнения (Shadow), рассчитывается карта освещенности и карта тени объекта. Дополнительно учитываются шейдеры из группы Extended Shaders (смещение поверхности, окружающая среда). При этом часть лучей поглощается, а часть (если объект \полу\прозрачен, отражающий), просчитывается до следующиего объекта сцены. Проникания лучей в объем объекта не происходит, эффект свечения (illumination, glow) учитывается только для диффузных свойств объекта и на другие объекты не распространяется. Генерация фотонов GI, Caustic и Volume Photon не производиться.
Теперь посмотрим настройки рендера, которые влияют на качество просчета в целом. Эти настройки актуальны вне зависимости от включенных GI и FG
Sampling Quality: параметры этой группы позволяют настроит суперсэмплинг, предназначенный для устранения эффекта ломанных линий, ступенчатых градиентов и всех артефактов возникающих из-за эффекта aliasing.
В араметры Samples per Pixel — minimum и maximum устанавливается количество лучей на пиксель для работы адаптивного суперсемплинга, не буду вдаваться в принцип работы данного алгоритма (при желании теоретическую инфу найти в сети легко).
Практически чем больше значение тем лучше, но время рендеринга увеличивается практически пропорционально увеличению значений, поэтому для предпросмотра сцены желательно ставить низкие значения (но значение maximum должно быть не меньше 2), а для финального расчета повышать.
Группа параметров Contrast, регулирует алгоритм принятия решения использования для просчета минимального или максимального значения Samples per Pixel, значения выставляются от 0.004 (1/256) до 1 и шагом 0.004 - чем меньше, тем лучше, но также влияет на скорость рендеринга.
Filter — простейший и самый быстрый фильтр — box, а лучший и «медленный» mitchel.
Ниже параметры Rendering Algorithms — из которых наиболее нужные это глубина трассировки Trace Depth
Reflection — максимальное количество отражений фотона, после чего он пропадает
Regraction — тоже самое для прозрачности и величина максимальной суммы эффектов – max. depth.
Проще говоря если вы поставите на сцене два зеркала, «лицом» друг к другу и камеру, заглядывающую между зеркалами, то получите глубину «бесконечности» переотражений согласно установленным параметрам.
Главный практический смысл этих установок — в период создания сцены, выставляйте заниженные параметры для быстрого рендера, а на финальной стадии повышайте до приемлемых размеров.
Источники света:
В mental ray источники света подразделяются на:
- стандартные интенсивность света от которых уменьшается прямо пропорционально расстоянию и не является физически точным
- улучшенные стандартные (приписка mr), от которых рассчитываются тени, по улучшенному алгоритму и он более мягкие.
- фотометрические интенсивность света задается в физических величинах и ослабление света считается тоже физически верно. Использование фотометриков актуально при соблюдении масштабов сцены метрическим значениям.
Часть первая Final Gather
Final Gather — упрощенный алгоритм расчета непрямого освещения, заключается в том, что из каждой точки столкновения фотона с поверхностью в случайном порядке испускаются лучи, которые пересекаются с соседними объектами сцены (но только один раз). В следствии этого FG, дает упрощенный вид непрямой иллюминации, из-за однократного отражения света, но проходит намного быстрее полноценного GI, и дает вполне реальную картину. С включенным GI (FG+GI) алгоритм вычисления меняется и расчет происходит наиболее полно, насколько возможно в mental ray, но естественно, время....
Итак рассмотрим что можно добиться с помощью FG:
Для начала включим алгоритм FG – Rendering > Render... (F10) > Indirect Illumination > ставим галку на Enable FG
Основные настройки для настройки качества FG это шаг, с которым расставляются опорные точки для расчета вторичного освещения – параметр Initial FG Point Density - чем шаг меньше, тем картинка будет качественнее, и параметр Rays per FG Point, это количество лучей испускаемых из одной точки, чем больше тем лучше.
Разработчики MR, сделали несколько готовых профилей, которые можно выбрать из выпадающего списка «Preset», выбрать можно от Draft (низкое качество, быстрый рендер), для просмотра сцен в процессе создания, и до вери хай – для финальных просчетов.
Начнем тестирование FG с интерьерной сцены.
Я сделал простейшую сцену, где изображена комната с окном и несколькими светильниками. Цвета стен, потолка и пола, специально серые – получилось мрачно, но так лучше будут видны эффекты освещения
Так выглядит комната без включенного FG, с временным источником света (после включения FG он будет удален)
Слева два светильника, которые не являются полноценными источниками света, но их материал представлен материалом mental ray, в качестве поверхности которого назначен шейдер Glow(lume):
цвет свечения (Glow) и диффузный (diffuse)– бледно желтый, материал поверхности представлен шейдером стекла (Glass(lume)) настройки которого оставлены по умолчанию. Яркость свечения (Brightness) тоже оставлена по умолчанию = 3.
Эти светильники будут выполнять роль неяркой, заполняющей подсветки помещения.
Справа два углубленных источника света типа mr Area Spot. – настройки по умолчанию, то есть не менялись, они будут освещать стеклянный и металлический шары.
Все материалы сцены (кроме описанных левых светильников) – материал типа Arch & Design, выбрав который, можно быстро получить настройки под конкретную поверхность из списка предопределенных:
стены из шершавого бетона (Rough Concrete), потолок из полированного бетона, пол – Glossy Plastic, окно – Glass(Thin Geom), с наложенной картой Checker на прозрачность.
В результате мы должны получить мрачную комнату, за окном ночь, слабая общая подсветка, и отдельно подсвеченные шары.
Нажимаем рендер:
результат явно неудовлетворительный – слишком слабое освещение. Можно увеличить значение Multiplier, источников света и Glow у левых светильников, но если увеличение интенсивности света источников еще допустимо, то увеличение величины Glow, приведет к «перекосам» освещения – области вокруг фонарей будут очень яркие, а пол останется черным.
Выход в настройке экспозиции
Идем в настройки окружения – Rendering – Environment (кнопка 8) – раздел Exposure Control и выбираем тип экспозиции, я оставил логарифмический тип. Но разработчики Mental ray рекомендуют использование фотографического контроллера экспозиции, особенно при работе с фотометрическими источниками света.
теперь еще раз рендер:
уже лучше, но стал явнее виден шум на освещенных областях от левых светильников – это как раз эффект от задания заниженных настроек FG (выставлен профиль «Low»). Встает вопрос – каким образом рассчитать золотою середину между скоростью рендера и качеством. Естественно поставив Вери Хай, мы получим хорошее изображение, но результат будем ждать ооочень долго. В этом может помочь нам сам рендер, попросим его отобразить нам опорные точки FG:
заходим в закладку Processing (Rendering – Render…)
раздел «Diagnostics», ставим галку на Enable и и указываем что мы хотим посмотреть на FG:
еще раз рендер:
расстояние, между зелеными точками в освещенных областях, должно быть минимальным, это достигается уменьшением шага опорных точек, в идеале заполнение должно быть сплошным, после чего дальнейшие уменьшение шага, приведет только к увеличению времени просчета, с минимальным повышением качества. Иногда может возникнуть шум на удаленных от источника света поверхностях, тут поможет увеличение испускаемых лучей, без уменьшения шага. И не забываем о настройках семплирования, о которых я писал в самом начале.
Продолжим строит сцену:
Очень часто возникает необходимость изобразить какие-то испускающие свет объекты, со сложной геометрией – витрины, аквариумы, экраны телевизоров, которые тоже освещают сцену, но не стоит задача детальной проработки объекта, а просто его имитация текстурами. При этом возникают проблемы с их освещающими характеристиками – при сильной яркости темные объекты тоже начинают светиться, а убавляя яркость- светлые области недостаточно освещают окружающие предметы. Такая несправедливость, возникает из-за того, что 24-битное изображение не в состоянии хранить информацию об истинной интенсивности свечения каждого пикселя. Ситуацию исправит применение в качестве текстур HDRI карт.
Как наглядно представить ценность HDRI карт? – представите, что Вы сделали фото морского бело-песчанного пляжа против солнца. Загрузите фото в фотошоп и пипеткой посмотрите цвета пикселей на солнечном диске и белом песке, цвета пикселей на солнечном диске будут как правило #FFFFFF а цвет пикселей на белом песке либо такой же, либо чуть темнее. Теперь понизим яркость всего изображения, например на 50% - песок станет темнее, что в принципе правильно, а вот то, что солнечный диск потускнеет- это не порядок, Солнце у нас очень яркое. А вот если снимок сделать специальной камерой, которая может сохранять снимки в HDRI изображения , такого не получиться, солнечный диск останется ярким, как если бы мы просто понизили чувствительность фотокамеры.
Попробуем использовать HDRI карту в нашей сцене. Я не нашел готовой карты, которая бы изображала какой то светящийся объект, поэтому для проверки эффекта, просто в фотошопе сделал hdr файл с градиентной заливкой – посередине ярко-голубая линия, которая теряет яркость к краям. (самостоятельно изготовить hdr можно, выбрав в фотошопе 32 битный режим изображения).
Открываем в Максе полученную карту как обычную Bitmap, появляется диалог конвертирования изображения:
основное внимание нужно уделить варианту конвертирования в разделе «Internal Storage», по умолчанию Макс предлагает отбросить информацию о яркости и просто пометить яркие и темные места определенными цветами – режим 16 bit/chan, нас это не устроит, поэтому установим режим Real Pixels и нажмем Окей.
Выбранную карту я использовал для материала, подобного материалу светильников, на параметр glow, и применил его к параллелепипеду у дальней стены
Для сравнения два рендера:
первый - карта в режиме 16 bit:
из-за замены ярких участков белым цветом, освещение из ярких областей происходит практически белым светом
второй – реальный:
разница явно есть.
Используя фотошоп, можно из обычных фото делать приблизительный аналог hdr изображений, для этого необходимо перевести работу в 32 бит цвет, сделать копию изображения, увеличить на копии яркость с помощью гистограммы (яркость как таковую, там изменить невозможно) и наложить оба изображения с параметром Умножение (multiplier).
Вот сцена, где картинка телевизора получена именно таким способом:
на этой сцене присутствуют три фотометрических источника света, имитирующие лампы накаливания в 60 ватт.
Остановимся на них подробнее.
Фотометрические источники света нужны для имитации реальных источников света по их физическим параметрам, но необходимы некоторые условия
- использовать метрическую систему единиц измерения, при создании сцены
- соблюдать реальные размеры объектов на сцене
- должен быть включен алгоритм непрямого освещения FG или GI, а лучше оба
основные характеристики фотометрических источников это температура эмиттера, которая дает цвет потока света, и мощность источника света.
Поскольку мы привыкли мощность измерять в ваттах, а о температуре источника имеем только поверхностное представление, приведу табличку самых распространенных бытовых лампочек
Мощность |
lm |
Температура в К |
12 вольтовые – подсветка витрин, реже настольные лампы |
||
50 w |
1150-1200 |
3000 |
100w |
2200 |
3000 |
Бытовые лампы накаливания 220 вольт |
||
15w |
105 |
2800 |
25w |
220 |
2800 |
40w |
460 |
3000 |
60w |
800 |
3000 |
100w |
1350-1500 |
3200 |
150w |
2100-2800 |
3200 |
Люминисцентые лампы |
||
4w |
100 |
Как таковую, температуру не имеют, и делятся по цвету лимюнифора: Холодный бел 4500к, Дневной бел 6500к, Теплый бел 3000к |
6w |
220 |
|
15w |
500-700 |
|
20w |
820-1100 |
|
30w |
1450-2100 |
|
40w |
2300-3000 |
|
65w |
3000-4500 |
|
Дуговые ртуть\натрий |
||
80 |
3200 |
Температура 6500 - 11000к, но как правило необходимо наложения фильтра, например ионы натрия окрашивают свет в красный цвет, а присутствующие инертные газы добавляют сине-зеленый спектр. |
125 |
5600 |
|
250 |
11000 |
|
400 |
19000 |
|
700 |
35000 |
|
1000 |
50000 |
Теперь поговорим о солнечном свете.
Разработчики ментала разделили солнечный свет на прямой от солнечного диска – яркий с сильно выраженными тенями – mr Sun и заполняющий от облачного покрова и атмосферы с сильно размытыми тенями – mr Sky.
При добавлении на сцену источника света mr Sky, будет автоматически предложено добавить в окружение шейдер mr Physical Sky, с чем желательно согласиться.
в настройках необходимо указать цвет неба ночью «Night Color», при малых значениях яркости – multiplier цвет неба будет стремиться к этому цвету.
Настроить высоту горизонта и цвет поверхности земли, добавить дымку (Haze) и параметры отношения красного и синего цвета на небосводе (вечер\день) в разделе Non – Physical Tuning:
настойки mr San имеют также параметры настройки горизонта, яркости и цвета, дымки а также добавлена опция настройки теней – Softness – мягкость тени и качество на границах мягкой тени : Softness Samples.
примеры сцен тестовой комнаты
с Солнцем за окном
и в пасмурную погоду
Я принудительно увеличил интенсивность света, чтобы было видно заполнение светом комнаты и тени на полу. В первом случае лучи прямые и практически параллельные – освещено пятно на полу и вторично от пола отражением, засвечено пятно в районе окна. А во втором случае, освещена практически вся комната. При просчете обоих сцен FG был настроен по профилю Low, что вызвало сильный шум на освещенных областях.
Часто при изображении помещений, где свет бьёт из окна, желательно, для усиления эффекта ярких лучей или пыльной атмосферы комнаты, добавляет эффект Volume Light на источники света. На источник света mr Sun, данный эффект применяется не корректно, вероятно из-за другого принципа расчета теней, происходит просто заполнение освещенного объема, без учета затененых участков. Поэтому для такого эффекта придется пользоваться стандартными источниками.:
Закончим с помещениями и перейдем к имитации внешнего освещения
Если у нас имеется hdr карта имитирующая небосвод, то мы ее легко можем применить в нашу сцену. Делается это путем применения карты в источнике света Skylight. Сам источник света можно расположить в любом месте сцены- это не принципиально, главно чтобы был включен FG, иначе он работать не будет.
На нажимаем на кнопку с надписью None (карты по умолчанию нет) и выбираем наше hdr изображение (как я описывал выше), либо указываем слот из редактора материалов, где такая карта уже открыта.
вот пример сцены где изображено небольшое строение, вокруг лунная ночь. Карта окружения применена не только на источник света но и в слот окружения Enviroment map.
мы видим мягкое освещение от небосвода всей сцены, а также выраженные тени от луны.
А вот теперь ложка дегтя:
Для выше показанного рисунка я специально использовал темную карту с ярким пятном луны которую дополнительно обработал в фотошоп, чтобы увеличить яркость луны и затемнить небо, иначе бы эффект от карты был бы не заметен. На самом деле в MR, по моему мнению, не совсем корректно работает алгоритм учета яркостных составляющих карты для источника Skylight.
Приведу примеры сравнения сцены для MR и V-Ray.
1. MR
2. V-Ray
в обоих случаях multiplier = 3 остальные параметры карты я не менял, материалы постарался использовать с аналогичными свойствами.
Как видим, во втором случае картинка «вкуснее». Единственно что хочу заметить по Ви_рею – в нем необходимо помнить, что одну и туже карту на освещение и рефлексию использовать нельзя. Посмотрите внимательно на рисунок- где находиться луна согласно отражению и куда направлена тень от нее – разница в 180о. Параметр в настройках для вращения карты есть, но необходимо об этом помнить!
Правда я взял самую сложную карту – луна не яркая и маленькая, на хороших картах различия почти не видны, но факт разного обсчета налицо. Выводы пусть сделает каждый сам.
Вроде это все, что я хотел показать в рамках этого урока. В конце остановлюсь на некоторых небольших особенностях, которые по моему мнению достойны внимания.
- Материал Glow. В предыдущих версиях некорректно освещал сам себя. Если светиться не вся поверхность материала, а только какието отдельные области (применена карта) либо материал входит в состав Blend материала, то светящееся область осветит соседние объекты с другим материалом, но объекты с этим же материалом и само себя не освещает. В 2008 максе такой проблемы нет. Вот пример сцены:
все строение состоит из одного материала на основе Blend. Как видим сам себя материал освещает прекрасно (на сцене нет источников света).
- кроме использования карт .hdr, можно также пользоваться картами .exr, которые менее распространены но также несут информацию о интенсивности света. Окно конвертирования файла exr формата, при назначении карты:
- При создании анимации, где на сцене находятся яркие источники света или текстуры на основе hdri изображений, эффект Motion Blur во всех версиях Max’а до 2008 включительно - работает не корректно, так как устройство нашего зрения (и матриц камер) такого, что чем ярче пятно, тем более яркую «дорожку смаза» оно оставит. У счастливых обладателей Max 2009 в комплекте есть шейдер HDR Image Motion Blur(mi), который ставиться в слот «Output» эффектов камеры , которые доступны в настройках рендера «Renderer»:
данный шейдер позволяет смазывать изображение не только объектов сцены, но и фона сцены, на который применена карта с изображением.
Для сравнения
Смаз на светящихся объектах сцены
и для фона на все ту же карту с луной
на этом закончу первую часть урока. В следующей части затрону проблемы GI и света в объемах.
С уважением КАА