четверг, 12 октября 2017 г.

Секретный ингредиент фотореализма.

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


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


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

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

Камера может видеть области за пределами выбранной точки («middle grey»), но только до определенного момента.


Количество света, которое она может видеть по обе стороны называется динамический диапазон (Dynamic Range) камеры. Чем больше диапазон, тем лучше изображение.
Различные камеры имеют различные объемы динамического диапазона, но лучше всего с этой задачей справляется ваше зрение. Ориентировочно мы видим от 15 до 20 (f-Stops).



Хуже всего с этой задачей справляется Blender. Он видит лишь 8… но, к счастью, мы можем это исправить!
Как динамический диапазон влияет на ваши рендеры
Представьте, что вам захотелось воссоздать сцену ниже в Blender:

Вы замоделили сцену, настроили материалы. А затем, когда дело дошло до освещения, вы выполнили все в точности, как и на референсе: один источник света – Солнце. Вы регулируете силу солнечного света, до тех пор, пока сцена не будет выглядеть достаточно ярко, а затем выполняете рендер, чтобы увидеть это:


Если сравнить рендер с эталонным фото вы можете увидеть, что визуализация значительно темнее, чем фотография.
На данном этапе большинство из нас начнет выполнять некоторые «уловки». Например, добавить дополнительные лампы внутрь помещения, чтобы компенсировать недостаточное освещение, или можно увеличение силу света неба, чтобы заполнить комнату светом.
Но это не имеет никакого смысла.
В эталонном фото, комната освещается только солнечным светом. Не требуется никаких читов. Так почему это не работает в Blender?
Это не работает из-за плохого динамического диапазона:
  1. В комнате темно, потому что солнечный свет не отскакивает от поверхности достаточное количество раз.
  2. Солнечный свет не отскакивает от поверхности достаточное количество раз, потому что он не достаточно яркий.
  3. Солнечный свет не достаточно яркий, потому что на стене уже и так сплошное белое пятно(куда еще ярче).
  4. Белое пятно на стене, потому что мы работаем в диапазоне 8 stops.
Поэтому, если вы можете увеличить динамический диапазон, то вы можете увеличить и силу солнечного света, что позволит увеличить количество отраженного освещения, которое даст нам идеальное освещение без каких-либо обходных путей!
Причина столь плохого динамического диапазона
К счастью, скудность динамического диапазона в Blender не связана непосредственно с ним самим. И если на то пошло, многие другие рендеры страдают от той же проблемы.
Причиной этого является конфигурация управления цветом (Color Management), которую использует Blender.
Также, как и фотоаппарат (цифровой, конечно же), когда Blender что-то создает, эту информацию нужно сохранить в виде 0 и 1. Для того, чтобы затем увидеть данную информацию на дисплее, она должна быть преобразована. И для этого он использует алгоритм преобразования цвета.
Но проблема заключается в том, что Blender использует трансформацию цвета sRGB. sRGB был изначально разработан с целью получения лучшего результата при использовании ЭЛТ-мониторов. Он никогда не был предназначен для рендеринга и никогда не должен использоваться для создания чего-то фотореалистичного.


Решение: Filmic Blender
Решение состоит в том, чтобы заменить стандартную конфигурацию sRGB на другую, под названием «Filmic Blender».
Filmic Blender был создан Troy Sobotka, профессионал и энтузиаст, который увидел эту проблему в Blender и захотел исправить ее. Поэтому, он написал Filmic Blender – аналогичную конфигурацию управления цветом для ACES, который является отраслевым стандартом для VFX.
Filmic Blender позволяет перейти с 8 до 25 f-Stops!



Это даже лучше чем звучит, на самом деле, так как каждое увеличение F-Stop является удвоением количества света. Это своего рода переход от набора из 256 мелков до 33 554 432 мелка :)
Это дает вам огромное количество дополнительной информации об освещении, чтобы играть с ней.
Так что теперь вы можете увеличить силу света до значений которые вам действительно нужны (в этом случае я поднялся до 130, вместо предыдущих 20)!



К этому всему Filmic Blender является абсолютно бесплатным. Я бы с удовольствием заплатили $200 за это, но Трой хочет помочь сообществу, поэтому он любезно сделал это бесплатно.
Даже лучше: Ненасыщенная экспозиция
Помимо 25 f/stops динамического диапазона Filmic Blender делает кое что еще: он дает вам ненасыщенную экспозицию.
Это позволяет имитировать эффект, присущий фильмам: по мере увеличения экспозиции, цвета будут становиться все более и более ненасыщенными.



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


Советы по использованию Filmic Blender.
Совет №1: Используйте режим False Color, чтобы визуализировать экспозицию в вашей сцене.
Больше не нужно гадать, вышли вы за рамки диапазона цветов или нет. Цветовая карта даст вам четкое представление о происходящем в сцене:
  • Черный: нижний предел
  • Фиолетовый: -10 EV
  • Синий: -7 EV
  • Бирюзовый: -4 EV
  • Зеленый: -2 EV
  • Серый: 0 EV
  • Зеленый: +2 EV
  • Желтый: +4 EV
  • Красный: +5.5 EV
  • Белый: верхний предел
Совет №2: Забудьте о креативных видах которые вы раньше использовали в меню Look. Их не стоит использовать, так как они искажают данные о цвете в вашей сцене.

Вместо старых видов используйте нод Color Balance в режиме Offset/Power/Slope. Режим по умолчанию (Lift/Gamma/Gain) также искажает данные о цвете в вашей сцене.


Совет №3: Чтобы сохранить информацию о цвете, не используйте режимы смешивания: Multiply, Screen, Overlay, Darken, Lighten, Overlay, Dodge, Burn, HardLight, SoftLight или Difference.



Что?! Почему?
Да все по той же причине. Они исказят информацию об истинном цвете пикселя

Вот такой вот Filmic Blender! Я собираюсь использовать его во всех своих уроках в обозримом будущем.



Комментариев нет:

Отправить комментарий