32 Бита. Практическое использование при рендринге.

Разъяснять физическую суть HDRImage (изображение с широким цветовым диапазоном) я не буду. Для этого есть Вики, есть замечательная статья на F-center.ru, есть даже англоязычный сайт самого автора формата,Paul Quebek. Разобраться с этим стоит, так как тогда ниже написанное будет чуть более понятно. Хотя, можно прочитать и использовать эти методы и без особой подготовки.

Зачем использовать HDRI при сохранении рендеров?

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

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

Итак, начнем с вашего 3D-приложения (я буду описывать для 3DsMax и VRay, но это не так важно), перво-наперво, нужно сохранить результат рендера в формат, поддерживающий широкий диапазон, – это форматы OpenEXR, HDRI, Tiff и PNG. (Есть еще, тот же PSD, но их мне лениво их всех расписывать). Например, сохраним результаты в формат EXR с такими настройками.

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

Теперь откроем изображение в программе поддерживающей обработку 32 изображений, это или последние версии Photoshop, или компоузеры, например, Fusion.


Способ первый, для поклонников физ-корректности

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

щелкните по картнке, что бы посмотреть анимацию

Теперь переведем, изображение из 32 бит, в 8.Это можно сделать через пункт меню

Image -> Mode -> 8bit

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

Способ второй, для просто любителей красивой картинки

Если засветы не уходят даже так, переходим к методу «local adaptation». Его суть в имитации зрения человека. То есть понижать «выдержку» на слишком ярких местах, и наоборот завышать в сгустках темноты.

В принципе, не стоит обращать внимания на бегунки, а открыть главное оружие этого инструмента – график Tonning curve. На практике - это кривая выраженности оттенков. В левой части - темных, в правой - светлых. Изгибая её и можно получить нужный результат.

Способ третий, для тех, кто любит полный контроль над изображением

И наконец, последний третий способ, для людей не заклиненных на физической корректности. Делаем несколько копий 32bit’ной картинки. Каждую переводим в 8bit по-разному. Где-то делаем упор на занавески, где-то на темные углы. А потом просто миксуем полученные изображения (можно через маски, можно просто вытирая ненужные части слоя).

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

Эту же картинку, но обработанную в компоузере Fusion можно найти и в моей Пикасса галерейке.

И еще совет, если вы начнете применять выше описанное, по началу советую сохранять как 8 битное так и 32 битное изображение, и пытаться изменяя HDRI, повторить, а потом и улучшить результат именно LDR картинки.

Также эти способы отлично работают в гамме 2.2.

Вроде все, удачных рендеров.

Примечания

-Все выше описанное, не является панацеей от знания настроек рендера. Это просто способ более тонко настраивать изображения, не тратя часы на перерендривание сцен.

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

-Также если, у вас нет бегунка выдержки, просто кликните по черной стрелке в основании, и в меню show выберете пункт 32bit exposure

Приложение

Пару слов про сами форматы:

*.HDR

Далеко не самый лучший вариант, хотя и является пионером HDRI, формат умеет сохранять изображения вплоть до 32 бит, но не умеет хранить данные об альфа-канале. Хорош тем, что читается почти всеми программами для работы с HDRI. И если вы не используете в пост обработке прозрачность, например, для изменения фона, то он вполне удобен.

OpenEXR (*.exr)

Умеет не только сохранить данные в 32 битах и альфа-канал, но и еще позволяет содержать в одном файле до 64 других каналов (направление нормалей, пассы, скорость пикселя). Так что не удивительно, что формат так популярен в видео-индустрии.

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

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

Tiff

Поддерживает диапазон в 32 бита и слои. Из минусов – не умеет хранить альфа-канал, если сохраняются данные выше 16 bit (так называемый half-float). То же не плохой вариант для работы.

PNG

Умеет хранить изображения не шире 16 бит, зато умеет сохранять прозрачность. Тоже очень удобный вариант. Особенно, если вы умеете настраивать рендер и не особо сильно корректируете картинки.

4 комментария:

  1. Вообще очень интересная статья. Автору респект. Я использую почти такую же курву) И вообще не тестах ее юзаю чтобы примерно видеть что будет в посте.. хотя там и фьюжен все уруливает.
    Кста не заделишся тюлью? не матом а моделью))
    hatt-fl@mail.ru

    ОтветитьУдалить
  2. Интересно только, что мой Photoshop CS3 открывает EXR сплошным черным прямоугольником...

    ОтветитьУдалить
  3. 2 Дмитрий
    у меня так было когда, я рендрил Vray и недожидаясь конца редера нажимал cancel.

    Попробуй другой HDR формат.

    ОтветитьУдалить
  4. Привет!
    Большое спасибо за урок - очень полезно.
    Всё понятно, только один вопрос:
    почему в Photoshop CS3 - открываемое 32 битное изображение пересвеченное, хотя в Максе в просмотрщике картинок изображение нормальное.
    Спасибо.
    С уважением Григорий.

    ОтветитьУдалить