Освещение с помощью HDRI
Освещение с помощью HDRI
Привет всем!
Помню, когда я только начинал пробовать MAX мне хотелось сделать картинку, похожую на эту.
Вроде и модель простейшая, и фон белый – ничего особенного, а вот смотрится. И главное - не получалось…
Например, сделал модель машины для анимации (делал по типу МакКвина из мультика «Тачки»).
Наложил текстуры, настроил материалы. Осветил, как советуют в книгах. И… в лучшем случае, получается вот так:
Может быть, кому-то и понравится. Мне тоже по началу такой вариант нравился.
Но с течением времени я понял, что это, конечно, «не есть хорошо».
Да! Можно ещё источники света сделать протяжёнными для размывания тени. Это ещё улучшит результат. Можно ещё кое-что поправить, добавить и в результате получить сложно управляемую, особенно для анимации, сцену. Я видел и пробовал скрипты, которые создают осветители буквально десятками (для ровного освещения). Но это уже, конечно, прошлый век. Ведь сейчас можно воспользоваться «объёмным» освещением.
Справка №1 (для тех, кто не знает, что такое «объёмное» освещение).
Обратите внимание на предметы вокруг вас. Даже если солнце не попадает в окно и электрическое освещение не включено – всё выглядит довольно ярко и красочно. Дело в том, что солнечный свет, падая на поверхность, отражается и падает на другую поверхность и т.д. Постепенно теряя свою силу, он всё-таки попадает в вашу комнату и освещает предметы. Посмотрите - теней почти не видно. Это потому, что переотражённые солнечные лучи освещают предметы почти равномерно со всех сторон. Получается так называемый «мягкий» свет. Это и есть «объёмное» освещение.
И теперь есть возможность создавать это «объёмное» освещение прямо в Mаксе. Для этого нужно использовать встроенный MentalRay рендер или Vray, или кому какой нравится. Можете почитать уроки, посвященные этому на сайте. Результат превосходный. Чего ж ещё надо? Но есть одно «но». Для того, чтобы лучи света переотражались в окружающей среде и освещали объект, необходимо эту среду создать. Т.е. приходиться создавать то, что мне в конкретном случае совершенно не нужно. Я буду тратить время на создание ненужных мне объектов, мало того, компьютер будет тратить время на рендер ненужных объектов. И это всё для того, чтобы создать «мягкое» освещение. Сразу приходит на ум вариант – уменьшить количество полигонов у объектов окружающей среды для ускорения рендера. Неплохой ход мысли. Только зачем же останавливаться на полпути. Давайте вообще уберём полигоны и оставим только картинку окружающей среды – улицы, например. Давайте просто сфотографируем улицу. Там и яркое солнце и тень от дома, небо, деревья и никаких полигонов. Макс нам спасибо скажет ;-))
Но тут возникает другая проблема…
Справка №2 (для тех, кто не знает, как получается цвет пикселя).
Любой цвет спектра можно получить с помощью смешивания трёх цветов – красного (Red), зелёного(Green) и синего (Blue). Это так называемая цветовая схема RGB. Яркость каждой составляющей может меняться от 0 до 255. Тогда если все три составляющие равны нулю RGB (0, 0, 0) – получим абсолютно чёрный цвет, а если RGB (255, 255, 255) – абсолютно белый.
И вся проблема в том, что такая цветовая схема отлично передаёт все цветовые оттенки, но «из рук вон плохо» передаёт силу света. Т.е. сфотографированный белый лист бумаги (255, 255, 255) будет иметь такую же силу света, как и солнце (255, 255, 255). Вы ведь не обращаете внимания на то, что солнце на фотографии не слепит вам глаза. Мы привыкли, что это естественно. Это имитация действительности. Для человека этой имитации достаточно. А для того, чтобы освещать этой картинкой объёкт – НЕТ! Потому, что белый лист будет освещать предметы с такой же силой, как и солнце.
И вот тогда по многочисленным просьбам трёхмерщиков был создан специальный формат файлов для хранения изображений с расширенным динамическим диапазоном – HDRI (High Dynamic Range Image ) Там те же три цветовые составляющие RGB, но только они могут меняться в намного более широком диапазоне. Не волнуйтесь – солнце у вас на экране не загорится. Монитор передаёт только стандартный RGB диапазон. А вот использовать этот формат для освещения – пожалуйста. Найти HDRI изображения можно в Интернете. Несколько есть прямо в MAX. В уроке используем одно из них.
Справка №3 (для тех, кто не знает принцип получения HDRI изображений).
Для этого устанавливают фотоаппарат на штатив и делают несколько снимков окружающей среды с различными выдержками. Как вы понимаете, при малых выдержках какой-нибудь белый предмет, находящийся в кадре, станет совершенно чёрным, а вот солнце или яркое окно всё равно будет светить. Потом специальная программа на основе этой серии снимков создаёт этот самый файл с высоким динамическим диапазоном.
Вот и вся теория. В рендере Vray есть все необходимые для этого инструменты. Им и воспользуемся. Я не буду рассказывать, как пользоваться настройками рендера Vray. Есть большое количество уроков, этому посвящённых. Будем заниматься исключительно освещением с помощью HDRI изображения.
- Открываем нашу модель и указываем Vray рендер в качестве текущего.
- Включаем «объёмное» освещение.
- В MaterialEditor загружаем HDR изображение. Для этого на карту Diffuse пустого материала перетаскиваем карту VRayHDRI.
И указываем файл C:\3ds Max9\maps\HDRs\KC_outside_hi.hdr
Вот и готовая улица!
- Указываем, что будем использовать это изображение в качестве освещения. Для этого кликаем на кнопке с названием карты в редакторе материалов (см. рис. выше) и перетаскиваем в слот освещения рендера Vray.
И выбираем
Теперь все изменения в редакторе материалов будут переданы в рендер.
- (Очень важно) Выключаем осветители по-умолчанию.
Дело в том, что так как в сцене нет ни одного «нормального» осветителя, Vray включает осветитель по-умолчанию. А он нам совсем не нужен.
- Для того, чтобы объёкт не висел в воздухе, создаём плоскость, на которую объёкт будет отбрасывать тень. А для того, чтобы была видна только тень (на белом фоне), присваиваем плоскости специальный материал VrayMtlWrapper и настраиваем.
А в качестве Base material указываем стандартный VrayMtl.
- Если объёкт не полностью матовый, он должен иметь отражения. Поэтому копируем VRayHDRI в другой слот и перетаскиваем полученную карту в слот отражений окружающей среды.
И тоже указываем
Я разделил эти карты для того, чтобы можно было отдельно редактировать силу освещения и отражения. Не знаю почему, но параметр Multiplier закладки «Vray: Environment» не работает
и приходиться изменять значение Multiplier самой карты.
- Делаю пробный рендер. У меня получилось слишком темно. Увеличиваю мощность карты освещения Multiplier – 2.0 (напоминаю, что это нужно делать в настройках VRayHDRI карты в редакторе материалов, а не в настройках рендера на закладке «Vray: Environment»)
- Нажимаем кнопку рендер. Ждём.
Напоминаю, сцена не имеет ни одного осветителя.
Машина освещена очень мягко, отражает окружающую среду. Но из-за того, что карта освещения имеет преобладающий синий цвет неба, то и объект приобретает синий оттенок. Проще всего это исправить впоследствии с помощью Photoshop или AfterEffects (для анимации), а можно и с помощью Max. Включаем эффект ColorBalance.
Настраиваем таким образом, чтобы исходный серый цвет стал серым на картинке. Ну, или как вам нравится. Включаем флажок IgnoreBackground для того, чтобы не менять серый background.
С помощью HDR освещения могут быть получены только очень мягкие тени. И если вам требуется более конкретная, чёткая тень – добавьте осветитель. Но это уже, как говорится, «от жиру», а начальный довольно качественный результат уже готов. В моей работе при создании рекламных роликов этого качества вполне достаточно. Что и требовалось – быстро и довольно качественно.
Вот и всё, о чём я хотел рассказать в этом уроке. Если вы хотите научиться правильно использовать рендер Vray, почитайте уроки на сайте, которые посвящены именно этому. На сайте также есть урок, в котором подробно рассказано, как можно сделать HDRI-файл своими руками. А цель нашего урока - научиться освещать предметы с помощью HDRI-изображений и в результате получать быстрый, качественный и легко управляемый результат.
Успехов!