Симуляция HDRI-освещения с помощью Internal Renderer в Blender
Введение
В рамках этой статьи мы собираемся имитировать
использование изображения HDRI (High Dynamic Range Image) для
рендеринга стандартным движком Blender. Я хочу сразу же уточнить, что
этот метод является адаптацией обучающей статьи, сделанной KelSolaar (kelsolaar.3dvf.net) для другой 3D программы.
Изображения
HDRI (файл с расширением .hdr) — изображения, где информация о яркости
пикселей не ограничивается диапазоном яркости обычных форматов вроде
.bmp или .jpg (от 0 до 255), а представлена расширенной шкалой (от 0 до
65535). Визуально такие изображения имеют лучшую контрастность и
большую деталировку в теневых и освещённых областях. Если вы больше
хотите узнать о формате HDRI, обратитесь к сайту его создателя - г-на
Поля Дебевек. (www.debevec.org)
HDRI-изображения
ввиду высокого диапазона яркости могут использоваться некоторыми
3D-приложениями в качестве источника фонового освещения. Blender в
настоящее время не поддерживает в чистом виде HDRI-карт (Только через
YafaRay). Но существует техника, чтобы имитировать такую технологию
освещения и об этом пойдёт речь ниже.
Для этого упражнения нам потребуются:
1. Простая сцена для Blender с несколькими объектами с присвоенными матовыми и отражающими материалами. Например эта: testHDRI.blend 2. Программа HDRShop (бесплатная), которую вы можете скачать тут 3. Программа работы с растровыми изображениями, например GIMP (он тоже бесплатен) который вы можете скачать тут
Ещё потребуются HDRI-изображения, в основном представляющие из себя тип Light probe.
Это
специальные сферические изображения , созданные по технологии
«зеркального шара» (Mirror ball) и представляющие 360-градусный
панорамный снимок в горизонтальном и вертикальном направлении. Также вы
можете найти полусферические HDRI-изображения. Сферические изображения
вы можете скачать здесь и здесь Полусферические здесь и парочку тут
Этап 1. Превращаем HDR-изображение в обычное LDR (Low Dynamic Range)- изображение с помощью HDRShop
Запускаем HDRShop
и открываем в нём выбранный HDR-снимок. Теперь в меню File выбираем
Save As (Сохранить как) и в открывшемся окне выбираем формат,
поддерживаемый Blender, например .jpg :
Совет:
получающиеся LDR-изображения могут быть довольно «тяжёлыми», так как
довольно подробны (часто 1024x1024 или 1500x1500), что приводит к
увеличению времени рендеринга, поэтому если вам не требуется большая
подробность в отражениях, то можете уменьшить разрешение изображения до
256х256, но не меньше.
Этап 2. Установка параметров окружения (World)
Устанавливаем
полученное jpg-изображение в качестве текстуры в параметрах фона
(World) в первый текстурный слот. В панели текстур (F6) выберите Add New (добавить новую). В поле Texture Type (Тип текстуры) выберите Image (Изображение) и загрузите (Load) изображение (В нашем случае - LDRImap ).
В панели World (F8) в закладке Texture and Input выберите для добавленной текстуры тип AngM (Angular map), если используете сферическую карту (Light probe), или тип Sphere для полусферических карт:
В закладке МарТо активируйте кнопку Hori и установите Mix как тип смешивания, а в панели Preview активируйте кнопку Real для получения реалистичного горизонта:
Этап 3. Установка параметров АО (Ambient Occlusion)
Если
вы заметили, что в сцене, которую я вам предоставил в качестве примера,
нет ни одного стандартного источника света. Фактически мы собираемся
использовать особенности настроек закладки Amb Occ (Ambient Occlusion) панели World (F8), чтобы осветить сцену.
В закладке Amb Occ нажимаем кнопку Ambient Occlusion и в появившихся настройках активируем кнопку Sky Texture (вот интересная фича!), и Add (Adjouter на рисунке, так как автор - француз). Параметр Samples установите равным 16, чтобы получить хорошее разрешение и избежать шума. Параметр Energy (Энергия) установим для начала равным 1.5:
Попробуем отрендерить (F12) (не забудьте прежде нажать кнопку просчёта трассировки Ray в панели настроек рендеринга (F10) ;-) ). Получится что-то вроде этого:
Этап 4. Улучшение рендеринга
Как
видите освещённость в полученной картинке недостаточна, так как в
канале текстур окружения у нас LDR-карта с низким диапазоном
освещённости. Чтобы исправить это нужно поместить во второй текстурный
слот окружения более яркую карту освещённости. Чтобы сделать это
используем редактор растровых изображений GIMP.
Открываем нашу LDR-карту в GIMP (Меню Файл > Открыть > выбрать изображение)и
уменьшаем её до 256Х256 или даже 100Х100, поскольку карта освещённости
не нуждается в высокомразрешении. (Чтобы уменьшить выберите в меню Изображение > Размер изображения > введите значения > Изменить).
Полностью избавляемся от цвета (Меню Цвет > Тон-Насыщенность > Ползунок Насыщенность двигаем влево до упора). Теперь у нас есть изображение в оттенках серого цвета.
Нам теперь нужно усилить светящиеся части изображения. Меню Цвет > Уровни. Здесь в секции Уровни на входе значение Гамма в текстовом окне по центру установите равным 0,3. Прежде чем нажать ОК убедитесь, что чёрные участки у вас действительно чёрные, а белый цвет — ярко белый. Если это не так то в той же секции Уровни на входе левой пипеткой Выбор чёрной точки щёлкните по самому чёрному участку изображения, а правой пипеткой Выбор белой точки — по самому белому участку. (Гамма каждого крайнего значения)
Далее применяем к картинке фильтр размывания, чтобы получить «нечёткую» карту: Меню Фильтры > Размывание > Гауссово размывание и сохраняем в jpg-формат Вот примерно что вы должны получить:
Теперь
загружаем нашу карту освещённости во второй слот текстур фона.
Устанавливаем полученное jpg-изображение в качестве текстуры в
параметрах фона (World) во второй текстурный слот. В панели текстур (F6) выберите Add New (добавить новую). В поле Texture Type (Тип текстуры) выберите Image (Изображение) и загрузите (Load) изображение (В этом случае - LDRIlight ).
И опять в панели World (F8) в закладке Texture and Input выберите для добавленной текстуры тип AngM (Angular map), если используете сферическую карту (Light probe), или тип Sphere для полусферических карт:
В закладке МарТо активируйте кнопку Hori и установите Add как тип смешивания:
Рендерим (F12) и опа! Уже намного лучше!
До:
После:
Регулировка: Если ваше изображение всё же тёмное — увеличивайте значение параметра Energy в закладке Amb Occ. Также вы можете менять цвет освещённости, либо добавив цвет в параметрах фона (F8) и активировав кнопку Blend в панели Preview, либо изменив цвет карты освещённости в GIMP.
Некоторые
случаи могут потребовать более ограниченной освещённости. Тут вы можете
попробовать не менять параметр Гаммы у второй карты перед размыванием
(мы устанавливали в нашем примере 0,3), а добавить её с такими же
параметрами, как первую.
И ещё: если вы не хотите, чтобы рендерилось фоновое изображение, нажмите кнопку Key в панели настроек рендеринга (F10). Спасибо юзеру SpeedTiti, за то, что указал мне на эту возможность.
Заключение
В заключении та же сцена с различными HDR-картами (я использовал Light probes- сферические):
Снежный зимний день...
… маленькая ванная комната...
… или под садовыми деревьями.
Надеюсь этот урок поможет вам в ваших будущих достижениях. Удачного блендинга!
Перевод
по причине полного отсутствия знаний французского языка был выполнен с
помощью автоматического переводчика (http://www.translate.ru) и
адаптирован. Проверен на прилагаемом примере — всё работает :)