Версия 1.0
2
Благодарность
Помимо этого, Евгения провела десятки часов за чтением книги, с целью выявления
грамматических ошибок и улучшения описания различных моментов, которые могли
бы вызвать затруднения у читателя.
За то, что она смогла выдержать меня на протяжении всего этого времени и за
оказанную помощь, еще раз выражаю огромную благодарность.
3
Об авторе
Так 13 мая 2013 года появился сайт Blender3D, который по сегодняшний день
выполняет поставленную перед собой цель.
4
Терминология
Screen Space Reflaction (SSR) — это метод повторного использования данных
пространства экрана для расчета отражений. Данная техника достаточно
ресурсозатратна, но при грамотном ее использовании можно добиться отличных
результатов, и при этом сохранить высокую производительность.
5
очень удобно использовать вместо «объект, который отбрасывает тень/непрозрачный
объект».
Зонд/Световой зонд (Light Probe) — это специальный объект (такой как лампа или
пустышка), который используется для запекания непрямого освещения в EEVEE.
Основная информация
EEVEE (Extra Easy Virtual Environment Engine) — это движок рендеринга в
реальном времени, встроенный в Blender и использующий OpenGL (версии 3.3). Он
ориентирован на скорость и интерактивность при работе с материалами. Несмотря на
то, что основной областью его применения является настройка материалов, он
отлично подходит и для финальной визуализации.
Впервые появился EEVEE с выходом версии Blender 2.8 (июль 2019). Одними из
причин его появления были устаревший встроенный рендер Blender Internal (BI) и
техническая ограниченность вьюпорта (окна 3D-вида), из-за использования
устаревшей версии OpenGL (2.x). Плохая производительность вьюпорта была
главным недостатком Blender в течении многих последних лет.
Так как игровой движок был, своего рода копией старого BI с дополнительным
функционалом, с появлением EEVEE впоследствии было принято решение об
удалении игрового движка и старого встроенного рендера. Возможно, в будущем в
Blender появится новый игровой движок или же будет добавлен логический
функционал.
6
Рендеры Cycles и EEVEE
Данные рендеры принципиально по-разному создают изображение. Cycles является
трассировщиком, а EEVEE — растеризатором. О том, как работает трассировщик
Cycles подробно рассказано в книге «Руководство по Cycles». Принцип же работы
растеризатора мы рассмотрим ниже.
Если у вас на данном этапе сложилось впечатление, что EEVEE экстремально плох,
смею вас заверить, что это ошибочное впечатление. Во-первых, огромное количество
недостатков EEVEE связано с тем, что это очень молодой и неокрепший рендер.
Чтобы в полной мере осознать это, скачайте Blender версии 2.61 и сравните тот
Cycles с текущей версией.
7
объекта обращена к камере.
Это все трудозатратно, с точки зрения вычислений. Для всех объектов в сцене могут
использоваться миллионы полигонов, а на экране может содержаться примерно 8
миллионов пикселей (4K-дисплей). И каждый кадр или изображение, отображаемое
на экране, обычно обновляется с частотой от 30 до 90 раз каждую секунду.
8
Render
На данной вкладке находится большое количество меню, содержащих различные
параметры рендера EEVEE. Здесь устанавливаются самые базовые вещи, такие как:
количество сэмплов, эффекты экранного пространства, настройка теней, запекание
света и многое другое.
Output
На данной вкладке производится настройка финального разрешения изображения,
тип итогового файла, путь его сохранения и прочие параметры, касающиеся
сохранения отрендеренной информации.
World
На данной вкладке производится настройка мира в вашей сцене. Материал мира
немного уникален, так как он не привязывается ни к какому объекту, а задается для
всей сцены целиком.
Material
На данной вкладке вы можете назначать материал объектам и управлять им. Вы
можете назначить одному объекту множество различных материалов. Один и тот же
материал может быть назначен множеству объектов. Но с этим следует быть
аккуратнее, так как изменив материал, он изменится на всех объектах, на которых
был назначен. Поэтому в случае необходимости создавайте копию материала, если
необходимо произвести изменения лишь с одним объектом и не затронуть
остальных. Еще на этой вкладке содержатся дополнительные настройки, которые
можно активировать для каждого материала индивидуально.
Lamp
Если ваш объект является лампой, то вкладка материалов заменится на вкладку
лампы. Именно на данной вкладке производится большинство настроек для ламп, и
изменяются их типы при необходимости.
Camera
При выборе камеры в окне свойств, появится вкладка камеры, на которой будут
содержаться все настройки камеры, такие как: фокусное расстояние, глубина
резкости, тип линзы и многое другое.
Light Probe
При выборе зонда в окне свойств появится вкладка с его настройками, такими как:
размер, интенсивность, затухание и многое другое.
9
Перед тем как закончить эту главу, стоит отметить несколько опций, расположенных
в окне 3D-вида.
10
Рис 1.1) Местонахождение опций для отображения сфер в окне 3D-вида,
использование освещения сцены либо же предустановленных HDR-карт, и указание
финального рендера (F12).
11
Материалы
Система материалов EEVEE использует те же ноды, что и рендер Cycles. И если бы
все было так просто, то на этом предложении данную главу можно было бы и
закончить. Но не все так однозначно и в этой части книги мы рассмотрим
ограничения для всех нодов EEVEE, относительно их функционала в Cycles. Также
мы разберем здесь два новых нода, которые доступны лишь для EEVEE и которых
нет в Cycles.
Ограничения и производительность
Прежде чем приступить непосредственно к нодам, разберем несколько общих
моментов.
Преломление (Refraction)
Преломление невозможно рассчитать методом растеризации, поэтому в EEVEE оно
подделано с помощью того же отражающего зонда, который используется шейдером
Glossy BSDF, но с использованием преломленного направления обзора вместо
отраженного направления. Правильно смоделировано только первое преломление.
Аппроксимация второго преломления может быть использована для относительно
тонких объектов с использованием глубины преломления (опция Refraction Depth).
При использовании SSR преломляться будет лишь то, что видно на экране.
12
Рис 2.1) Преломления в Cycles и EEVEE. В EEVEE тень отсутствует, так как
освещение мира воспринимается как непрямой свет (indirect light), а других
источников света в сцене нет.
Бамп (Bump)
На данный момент bump поддерживается с использованием производных OpenGL,
которые одинаковы для каждого блока размером 2x2 пикселей. Это означает, что
выходное значение объема будет пикселизировано. Вместо bump рекомендуется
использовать нормаль шейдера (Normal mapping).
Рис 2.2) Bump в Cycles и EEVEE. Как и в предыдущем примере тени от зайчика нет.
В данном случае используется AO.
Заметка: Если вам все же необходимо использовать ноды Bump в вашем материале,
и замена на нормаль шейдера невозможна, рендерите изображение размером в два
раза больше целевого разрешения и уменьшайте итоговый результат.
13
Рис 2.3) Шейдер объема (Volume Scatter) в Cycles и EEVEE. Да, отличия трудно
заметить, но они есть :)
Производительность
EEVEE оптимизирован для работы с нодом Principled BSDF. Поэтому
предпочтительнее использовать его вместо нескольких BSDF-нодов. Еще стоит
учитывать тот факт, что производительность сильно зависит от количества нодов
BSDF (в отличии от Cycles), присутствующих в материале. Помните об этом при
создании сложных материалов.
Ноды
Shader to RGB
EEVEE поддерживает преобразование выходов BSDF
нодов в цветовые карты, что позволяет создавать
пользовательские шейдеры. Это возможно благодаря
использованию нода Shader to RGB. Несмотря на то, что
это поддерживается, это разрушает всю PBR-схему и,
таким образом, делает результат непредсказуемым, при
использовании других эффектов. Под непредсказуемостью подразумевается, что вы
не сможете получить ожидаемого результата при использовании таких эффектов как:
окружающая окклюзия (AO), контактные тени (contact shadows), мягкие тени (soft
14
shadows), SSR. Если вы будете использовать нод Shader to RGB, то все последующие
BSDF ноды будут невидимыми для следующих эффектов:
Shader
Вход для шейдера BSDF.
Color
Цвет в формате RGB.
Alpha
Альфа-канал (если есть конечно (Transparent BSDF)).
Specular BSDF
Нод Specular BSDF объединяет в себе несколько шейдеров в один простой в
использовании нод. Он похож на нод Principled BSDF, но работает по совсем
другому алгоритму (зеркальный рабочий процесс, а не металлический, как в случае с
Principled BSDF). Зеркальный рабочий процесс функционирует путем указания цвета
отражения (вдоль нормали). Результат может быть физически не корректным,
потому что нет сохранения энергии. Specular BSDF имеет гораздо меньше
параметров и поддерживает меньшее количество функций. В будущем оба этих нода
могут быть объединены в один.
Base Color
Диффузный цвет поверхности в формате RGB. Для проводящих материалов
15
(металлов) он должен быть черным.
Specular Color
Количество зеркального отражения.
Определяет отражательную способность (вдоль
нормали). Материалы проводника (металлы)
могут иметь цветное отражение. Для
неметаллов стоит использовать белые
отражения, иначе ваш материал перестанет
быть PBR.
Например:
Roughness
Определяет шероховатость поверхности для диффузного и зеркального отражений.
Emissive Color
Цвет излучаемого света. Этот цвет добавляется к результату BSDF.
Transparency
Коэффициент прозрачности. Это обратное значение альфа-канала (1 - альфа),
который может содержаться в изображении. Используйте нод Invert для
преобразования альфа-канала в прозрачность. Это будет работать лишь в случае,
если материал использует режим смешивания, отличный от непрозрачного (opaque).
16
Normal
Вход для подключения карты нормалей. Воздействует на все базовые слои шейдера.
Clearcoat
Дополнительный белый зеркальный слой поверх других. Это полезно для
материалов, таких как автомобильная краска или лакированное дерево.
Clearcoat Roughness
Шероховатость слоя Clearcoat.
Clearcoat Normal
Вход для подключения карты нормалей, которая будет контролировать лишь слой
Clearcoat.
Ambient Occlusion
Количество окклюзии для непрямого освещения. Обычно для данного входа
используется заранее запеченная карта AO. Итоговой окклюзией является фактор
смешивания значения данного входа (в меньшей степени) и эффекта окклюзии
окружающей среды, рассчитываемого во время рендеринга.
BSDF
Функция распределения двунаправленного рассеивания. Математическая функция,
описывающая поведение луча при попадании на поверхность.
17
Рис 2.5) Рендеринг шейдера Specular с различными настройками отражающего
света, излучаемого света и прозрачности.
Поддержка нодов
EEVEE использует те же ноды, что и рендер Cycles. Однако некоторые функции
отсутствуют и могут (или не могут) быть реализованы в EEVEE в будущем. В
основном все шейдерные ноды должны вести себя плюс-минус так же, как в Cycles.
Несмотря на то, что большинство нодов BSDF поддерживаются, многие из них лишь
приближенно соответствуют нодам Cycles и не являются полнофункциональными.
Было бы достаточно удивительно, если бы растеризатор мог выдавать качество
неотличимое от трассировщика. Ниже список из двух нодов, которые присутствуют
лишь в EEVEE (и которые мы уже рассмотрели):
Shader to RGB
Specular BSDF
18
Diffuse BSDF
Шероховатость не поддерживается. Поддерживается только диффузия Ламберта.
Emission
Этот шейдер рассматривается как непрямое освещение и будет отображаться только
в отражениях экранного пространства (SSR) и отражающих зондах.
Glossy BSDF
Не поддерживает распределение Beckmann, Ashikhmin-Shirley и GGX Multiscatter.
Subsurface Scattering
Алгоритм Random Walk не поддерживается. Значение радиуса для каждого
цветового канала задается индивидуально. Любая карта/текстура, подключенная к
этому входу, игнорируется. Если отсутствует карта Albedo, Texture Blur будет
интерпретироваться как 1.0. Размытие текстуры неточно для любого значения,
отличного от 0.0 или 1.0.
Transparent BSDF
Поддерживается только монохроматическая прозрачность. Цветовой вход
используется как альфа-значение. Прозрачность будет иметь эффект только в том
случае, если режим смешивания материалов (material blend mode) не является
непрозрачным (opaque).
Translucent BSDF
Не рассеивает свет внутри объекта. Он просто освещает объект, расценивая его
нормали как вывернутые.
Principled BSDF
Набор всех тех ограничений, что и для Diffuse BSDF, Glossy BSDF, Refraction BSDF
и Subsurface Scattering. Анизотропия не поддерживается. Слой Sheen является
грубым приближением.
Volume Absorption
Смотри ограничения для объемов в начале этой главы.
Volume Scatter
Параметр анизотропии будет смешанным и средним значением для всех
19
перекрывающихся объемных объектов, что не является физически корректным и
отличается от Cycles. Также смотри ограничения для объемов в начале этой главы.
Add Shader
Использование нода Add Shader с нодом Transparent BSDF не даст того результата,
который вы получите в Cycles.
Principled Volume
Все то же самое, что и для Volume Scatter.
Holdout
Не поддерживается.
Anisotropic BSDF
Не поддерживается.
Toon BSDF
Не поддерживается.
Hair BSDF
Не поддерживается.
Velvet BSDF
Не поддерживается.
Geometry
Выход Pointiness не поддерживается.
Attribute
Значением по умолчанию является активная UV-развертка объекта. Поддерживаются
20
встроенные атрибуты «density», «color», «flame» и «temperature». Цвета вершин
(Vertex Color) и UV-развертки также поддерживаются.
Bevel
Не поддерживается.
Hair Info
Выход Random использует другой алгоритм (RNG). Диапазон и статистическое
распределение значений должны быть одинаковыми, но значения будут разными.
Light Path
У EEVEE нет той концепции лучей, что есть у Cycles. Но для облегчения рабочего
процесса между Cycles и EEVEE некоторые результаты поддерживаются в
отдельных случаях. Этот нод позволяет настраивать непрямое освещение в шейдере.
Параметры, связанные с глубиной луча, не будут давать точно такого же значения,
как в Cycles.
Is Camera: Поддерживается.
Is Shadow: Поддерживается.
Is Diffuse: Поддерживается.
Is Glossy: Поддерживается.
Is Singular: Не поддерживается. Работает так же, как и Is Glossy.
Is Reflection: Не поддерживается. Работает так же, как и Is Glossy.
Is Transmission: Не поддерживается. Работает так же, как и Is Glossy.
Ray Length: Не поддерживается. По умолчанию 1.0.
Ray Depth: Указывает на текущий отскок луча при запекании света.
Diffuse Depth: Работает так же, как и Ray Depth, но только при запекании
диффузного света.
Glossy Depth: Работает так же, как и Ray Depth, но только при запекании
отраженного света.
Transparent Depth: Не поддерживается. По умолчанию 0.
Transmission Depth: Не поддерживается. Работает так же, как и Glossy Depth.
Particle Info
Не поддерживается.
21
Texture Coordinate
Выход From Instancer и координаты дополнительного объекта не поддерживаются.
UV Map
Выход From Instancer не поддерживается.
Wireframe
Параметр размера пикселя не дает точно такой же результат, как и в Cycles. Ширина
может быть немного иной.
Другие ноды
Light Falloff
Не поддерживается.
Bump
Качество вдвое хуже из-за менее точных производных.
Displacement/Vector Displacement
Не поддерживается.
IES Texture
Не поддерживается.
Sky Texture
Не поддерживается.
Image Texture
Интеллектуальная интерполяция (тип Smart) всегда использует кубическую
интерполяцию (Cubic). Присутствует небольшой «артефакт» при использовании
проекций Tube или Sphere с линейной интерполяцией (Linear). Это связано с
аппаратным отображением (mip-mapping) и анизотропной фильтрацией. Подобные
«артефакты» будут также видны, если текстурные координаты не будут
непрерывными. Использование проекции Box с типом расширения, установленным в
Clip или Extend, не поддерживается. Она всегда будет использовать тип Repeat.
Material Output
Результат работы входа Displacement не соответствует результату, получаемому при
использовании Cycles.
22
Wavelength
Не поддерживается.
Настройки материала
Данные настройки находятся в меню Settings, на вкладке материала, и в редакторе
нодов, (Shader Editor) на вкладке Options.
Opaque
Предыдущий цвет будет перезаписан цветом поверхности. Альфа-компонент
игнорируется. Это самый быстрый вариант.
Additive
Цвет поверхности будет добавлен к предыдущему цвету. Значение альфа будет
использоваться для смешивания цвета поверхности с нейтральным черным цветом
(0.0, 0.0, 0.0).
Multiply
Предыдущий цвет будет умножен на цвет поверхности. Значение альфа будет
использоваться для смешивания цвета поверхности с нейтральным белым цветом
(1.0, 1.0, 1.0).
Alpha Clip
Предыдущий цвет будет перезаписан цветом поверхности, но только если альфа-
23
значение находится выше установленного порога (clip threshold).
Alpha Hashed
Предыдущий цвет будет перезаписан цветом поверхности, но только если значение
альфа превышает порог случайного значения (random clip threshold). Этот
статистический подход является шумным, но способен аппроксимировать альфа-
смешивание без какой-либо проблемы сортировки (о ней ниже). Увеличение
количества сэмплов в настройках рендеринга приведет к уменьшению шума.
Alpha Blending
Использует альфа-смешивание, чтобы наложить цвет поверхности поверх
предыдущего цвета.
Рис 2.7) Результат работы всех режимов смешивания. Ко всему дереву применена
процедурная текстура Wave, которая контролирует прозрачность листьев на
различных его участках. Особенно хорошо видно отсутствие листвы в правой
верхней части, при использовании режима Alpha Clip.
Проблема сортировки
24
этой поверхности пересекаются друг с другом.
Однако это не работает с Alpha Blending, где даже порядок треугольников важен. В
этом случае вы можете отключить опцию Show Backface.
Show Backface
Если включено, все прозрачные фрагменты будут отображаться. Если отключено,
будут отображаться только ближайшие к камере фрагменты поверхности.
Отключите эту опцию, чтобы обеспечить правильное отображение прозрачности с
любой точки обзора.
25
Рис 2.8) Примеры рендеров со включенной и отключенной опцией Show Backface. Как
видите, результат с отключенной опцией предпочтительнее в большинстве
случаев.
26
Заметка: Эта опция не меняет поведение контактных теней, которые трассируются с
использованием буфера глубины. Если материал записывается в буфер глубины
(другими словами, если режим смешивания установлен на Opaque, Alpha Clip или
Alpha Hashed), контактные тени будут отбрасываться материалом поверхности,
независимо от типа прозрачной тени.
None
Поверхность не будет отбрасывать тени.
Opaque
Поверхность будет отбрасывать тени, как если бы она была непрозрачной
поверхностью.
Clip
Поверхность будет отбрасывать тени как непрозрачная поверхность, но только в
области, где альфа-значение находится выше установленного порога (clip threshold).
Hashed
Поверхность будет отбрасывать тени как непрозрачная поверхность, но только в
области, где альфа-значение выше случайного порога (random threshold).
27
Screen Space Reflection не совместимо со Screen Space Refraction. Поверхности,
использующие Screen Space Refraction, не будут отображаться в Screen Space
Reflection.
Если этот параметр отключен или если трассировка Screen Space Refraction не
возможна, преломленный луч будет использовать цвет ближайшего зонда (probe).
Refraction Depth
Если глубина рефракции не равна 0.0, все рефракционные BSDF в шейдере будут
действовать так, как если бы объект был указанной толщины преломляющего
материала. Это позволит создать второй отскок рефракционного луча, что удвоит
цвет поглощения и создаст рефракционный луч после этого второго отскока.
28
(Soft Shadows) также влияет на этот эффект.
Рис 2.11) Результат работы опции Subsurface Translucency. Между ушей зайчика
расположена лампа (тип Point). Кроме нее других источников света в сцене нет.
29
Вкладка рендера
Следующие три главы мы будем разбирать те или иные меню, расположенные на
вкладке рендера, но в данной главе затронуты лишь 4 из них. Остальные вынесены в
последующие главы, так как они сгруппированы по принципу своей работы.
Sampling (Сэмплы)
Меню с сэмплами является самым основным для рендера, так как оно оказывает
наибольшее воздействие на качество получаемого изображения. В случае
трассировщика лучей Cycles мы получали практически двукратный прирост качества
при двукратном увеличении сэмплов. Это правило работало в диапазоне до 1-2
тысячи сэмплов (более высокие значения уже не стоили потраченного на них
времени).
С растеризатором же все гораздо проще, и при стандартных 16 сэмплах для окна 3D-
вида мы видим чистую картинку на большинстве поверхностей. Но при
использовании некоторых эффектов (таких как мягкие тени, например) начинают
прослеживаться определенные паттерны при низком значении сэмплов. Поэтому
используя мягкие тени и прочие ресурсозатратные эффекты, имеет смысл поднять
количество сэмплов до значений в диапазоне 64-256.
Не стоит воспринимать сэмплы рендера EEVEE точно так же, как семплы рендера
Cycles. Вам не потребуется выставлять их в слишком больших значениях, и тем
самым лишать себя той скорости работы, ради которой EEVEE и был разработан.
Render
Количество сэмплов для финального рендера (F12).
Viewport
Количество сэмплов для окна 3D-вида. При значении 0 рендеринг будет происходить
бесконечно (ну почти, а если точно, то до 65 536 сэмплов).
Viewport Denoising
Позволяет использовать шумоподавление с использованием временной репроекции в
окне 3D-вида. При использовании шумоподавления возможно появление ореола
вокруг некоторых объектов.
30
Рис 3.1) Параметр Blend Mode в настройках материала установлен в значение
Alpha Hashed (Shadow Mode - Opaque) и активированы мягкие тени (Soft Shadows),
на вкладке рендера в меню теней (Shadows). Оба данных параметра наглядно
демонстрируют плохое качество рендера при низком значении сэмплов.
Volumetric (Объемы)
EEVEE имитирует объемное рассеивание для объектов внутри усеченной пирамиды
вида.
Start/End
Начало и конец появления эффекта объема.
Tile Size
Контролирует качество эффектов объема. Более низкий размер увеличивает
потребление видеопамяти. Это размер ячейки объема в пикселях.
Samples
Количество сэмплов для вычисления эффектов объема. Более высокий коэффициент
увеличивает потребление видеопамяти и качество объемов. Эти сэмплы
распределены вдоль глубины вида (view Z axis).
Distribution
Смесь между линейным и экспоненциальным распределением сэмплов. Более
высокие значения распределяют больше сэмплов ближе к камере.
31
Volumetric Lighting
Позволяет рассеивать объемный свет в сцене. Опция бесполезна, если в сцене нет
шейдера Volume Scatter.
Light Clamping
Ограничивает воздействие света для эффекта объемного рассеивания. Уменьшает
мерцание и шум. Установите значение в 0.0, чтобы отключить этот параметр.
Volumetric Shadows
Shadow Samples
Количество сэмплов для вычисления объемного затенения.
32
Рис 3.2) В примерах выше для мира был подключен шейдер Volume Scatter. В
качестве источника света выступает все та же лампа Area (но EEVEE
33
воспринимает ее как Point).
Hair (Волосы)
В этом меню находятся основные параметры для всех систем частиц с типом Hair.
Здесь вы можете указать EEVEE форму частиц и количество их подразделений.
Рис 3.3) С типом Strand частица имеет постоянную толщину на протяжении всей
своей длины, а с типом Strip становится все тоньше в направлении конца.
Additional Subdiv
Количество дополнительных подразделений (относительно настроек системы
частиц) вдоль частицы.
34
Рис 3.4) Чем выше уровень подразделения, тем плавнее изгибы частиц.
Shadows (Тени)
EEVEE использует различные техники (так называемые Shadow Mapping) для
создания правильной тени непосредственно от источников света.
Глобальные настройки
Method
Определяет тип теневой карты. Он изменяет алгоритм сохранения и фильтрации
тени.
ESM
Тени быстро фильтруются, но имеют небольшие неточности около окклюдера
(непрозрачного объекта). Это можно свести к минимуму, увеличив параметр
Exponent. Другая проблема — это артефакты разрыва тени. К сожалению, для этой
проблемы нет обходного пути, и единственный способ минимизировать это —
уменьшить параметр Soft.
VSM
Фильтрация происходит хорошо и дает гладкий вид теневой карты во всем
диапазоне теней. Однако при использовании низкой битовой глубины, мы получаем
видимые зернистые артефакты. Алгоритм также подвержен «протечке» света, когда
35
два окклюдера пересекаются. В этом случае тени можно переопределить, чтобы
уменьшить утечку, используя параметр Bleed Bias. VSM использует в два раза
больше памяти, чем ESM, и работает медленнее.
Cube Size
Размер теневой кубической карты, использующейся для ламп Point, Area и Spot.
Больший размер карты тени даст более высокую точность и более резкие тени.
Рис 3.6) Чем выше разрешение теневой карты, тем качественнее создаваемые
тени.
Cascade Size
36
Размер одного каскада, используемого каскадными картами теней (Cascaded Shadow
Maps). Это только для ламп с типом Sun.
Рис 3.7) Чем выше разрешение теневой карты, тем качественнее создаваемые
тени.
High Bitdepth
Этот параметр может помочь уменьшить некоторые артефакты из-за неточности
расчетов внутри теневых карт. Он удваивает использование памяти теневыми
картами и замедляет их обновление.
Soft Shadows
Случайным образом изменяет центр теневых карт, чтобы создать мягкие тени.
Необходимо много сэмплов, чтобы получить приемлемый результат (64 и выше).
37
Заметка: Метод «Soft Shadows» не является физически корректным и не будет
соответствовать результатам, полученным в Cycles для очень больших ламп.
Light Threshold
Чтобы избежать длительного времени расчета расстояния, это расстояние сначала
вычисляется автоматически на основании светового порога (Light Threshold).
Расстояние вычисляется от центра источника света с использованием
инвертированного квадратного типа спада.
Расстояние воздействия ламп также может повлиять на то, как выглядят тени. Это
расстояние воздействия не касается ламп с типом Sun.
38
Эффекты экранного пространства
Введение
EEVEE не является трассировщиком лучей. Вместо этого EEVEE использует буфер
глубины для примерного представления сцены. Это уменьшает сложность
масштабирования сцены и обеспечивает высокую производительность. Однако при
вычислении этих эффектов учитывается лишь то, что находится непосредственно в
области видимости камеры/вида. Кроме того, поскольку EEVEE использует только
один уровень глубины, известно только ближайшее расстояние между пикселями.
Заметка: Этот эффект (AO) должен быть включен для работы шейдера Ambient
Occlusion.
Distance
Расстояние, на котором проявляется эффект окружающей окклюзии.
Factor
39
Фактор смешивания для эффекта окружающей окклюзии.
Trace Precision
Увеличивает точность эффекта, но добавляет больше шума и уменьшает
максимальное расстояние трассировки. Повышенная точность также увеличивает
нагрузку на железо. Более низкая точность приводит к недостаточному затенению,
зато повышает производительность.
40
Рис 4.1) Результат работы основных параметров AO.
Bent Normals
Вычисляет наименее закрытое направление нормалей. Это направление можно
использовать для создания более точного непрямого освещения.
Bounce Approximation
Опция имитирует легкие отскоки света, за счет чего затенение присутствует в
меньшей степени на более ярких объектах. Параметр учитывает только цвет
поверхности, а не ее окружение. Эта опция никак не влияет на итоговый результат
AO, которая используется на этапе пост-обработки.
41
Рис 4.2) Трудно представить, когда стоит отключать данные опции, кроме как с
целью увеличения производительности во время работы. Для финальных же
рендеров рекомендуется их использовать, так как они прибавляют реализм.
Subsurface Scattering
Этот эффект имитирует реальное подповерхностное рассеивание, размывая
диффузное освещение в пространстве экрана.
Samples
42
Количество сэмплов для расчета эффекта рассеивания.
Jitter Threshold
Чтобы эффект был качественным, образцы должны быть когерентными и не
случайными. Но это может привести к образованию различных паттернов при
небольшом количестве сэмплов. Увеличение параметра Jitter Threshold приведет к
вращению образцов ниже этого радиуса (в процентном соотношении) в случайном
порядке, чтобы скрыть видимый паттерн. Этот параметр может существенно влиять
на производительность.
Separate Albedo
Выводит альбедо BSSRDF в отдельный буфер, чтобы не размывать его. Чтобы
параметр Texture Blur работал корректно, необходимо включить опцию Separate
Albedo. Эта опция увеличивает использование видеопамяти, но не оказывает
большого влияния на производительность.
Рис 4.3) Для демонстрации работы опции Jitter Threshold использовалось 12 сэмплов.
Subsurface Translucency
43
Опция Subsurface Translucency должна быть включена (в свойствах материала) для
того, чтобы свет проходил через объект (например, имитируя освещение позади
человеческого уха).
Overscan
Эта опция находится в меню Film, а не в меню Screen Space Reflections, так как
является общей для всех эффектов экранного пространства. Она позволяет увеличить
область видимости вашей камеры, без фактического захвата в камеру окружающих
объектов. За счет этого эффекты экранного пространства могут работать с теми
объектами, которые отсутствуют в кадре. Конечно же, данная опция увеличивает
нагрузку на железо и время рендера. Измеряется в процентах экранного
пространства.
44
Рис 4.4) Результат работы опции Overscan. По бокам сферы находятся два куба,
которые не попадают в кадр, зато присутствуют в отражениях за счет опции
Overscan.
Refractions
Преломления в пространстве экрана работают так же, как отражения, и используют
одни и те же параметры. Но по умолчанию они не включены. Включение этого
параметра не окажет существенного воздействия на производительность. Вам также
необходимо включить преломления в свойствах материала. Материалы,
использующие преломления, не смогут отражаться в пространстве экрана.
Trace Precision
Увеличивает точность трассировки, но добавляет больше шума и уменьшает
максимальное расстояние трассировки. Повышенная точность трассировки требует
гораздо больше вычислительных ресурсов.
Max Roughness
Трассировка не будет производиться для объектов с уровнем шероховатости выше
45
заданного этим параметром.
Thickness
Определяет толщину пикселей во время трассировки. Более высокие значения будут
растягивать отражения и добавлять мерцание. При низких значениях на некоторых
участках может вовсе не оказаться отражений/преломлений.
Edge Fading
Позволяет плавно скрывать отраженные пиксели, если они близки к краю экрана.
Измеряется в процентах экранного пространства.
Clamp
Ограничивает интенсивность отраженного цвета, чтобы удалить шум и светлячки.
46
47
Рис 4.6) Результаты работы параметров SSR.
48
Эффекты пост-обработки
Все эффекты пост-обработки применяются уже после основного этапа рендеринга к
итоговому 2D-изображению. При работе с Cycles нам приходилось открывать
редактор нодов, и с их помощью создавать часто используемый эффект блюминга
(свечения) либо же размытие по Гауссу. В EEVEE же это все происходит гораздо
проще и быстрее. Вы можете добавлять/убирать эти эффекты одним щелчком
мышки в любое время, без необходимости открывать редактор нодов, и производить
в нем настройки. К сожалению, эффектов здесь не много (на данный момент всего
три), зато они наиболее часто используемые.
Bloom (блюминг)
Bloom — это эффект пост-обработки, который рассеивает очень яркие пиксели. Этот
эффект имитирует то, что происходит внутри реальной камеры.
Threshold
Исключает пиксели ниже заданного уровня яркости.
Color
Цвет применяемый к эффекту.
Knee
Делает переход в области порога (threshold) более плавным (градиентным).
Radius
Радиус распространения эффекта.
Clamp
Задает максимальную интенсивность, которую может иметь пиксель. При значении 0
данная опция отключена
Intensity
Фактор смешивания с исходным рендером.
49
50
Рис 5.1) Очень легко испортить рендер данной опцией. Используйте ее с умом и
лишь там, где она действительно необходима.
Max Size
Максимальный размер формы боке для глубины резкости в пикселях (чем меньше,
тем лучше производительность).
Рис 5.2) Фокус настроен на первом зайчике (как видите, в области ближайшего
уха).
51
выполняется на основании скорости движения пикселя.
Samples
Количество сэмплов для эффекта размытия движения (больше — лучше).
Shutter
Время в кадрах между открытием и закрытием затвора камеры.
Рис 5.3) В примерах выше камера движется с правого верхнего угла в левый нижний.
52
Мир (World)
Мир может излучать свет, освещающий все объекты в сцене (либо же не делать
этого, при необходимости). Это может быть как один сплошной цвет, так и
подключенная текстура (чаще всего это HDR-карта).
Лампы (Lamps)
Наряду с освещением мира, лампы — еще один способ добавить свет в вашу сцену.
Разница в том, что они не видны непосредственно в визуализированном
изображении и легче управляются, так как являются объектами определенного типа.
Общие настройки
Type
Определяет физическую форму света.
Color
Цвет излучаемый лампой.
Power
Интенсивность света. Воздействует как на зеркальный, так и на рассеянный свет.
Значение может быть отрицательным, но в таком случае сцена уже не будет PBR.
53
Specular
Множитель интенсивности света. Используйте этот параметр для более
художественного контроля. Устанавливая данный параметр в значения отличные от
1.0, вы будете получать нефотореалистичный результат.
Custom Distance
Если опция активирована, используется пользовательское расстояние затухания
(параметр Distance) вместо глобального светового порога. Расстояние определяет,
где влияние света будет равняться 0.
54
Рис 6.1) В качестве источника света выступает лампа Area. С увеличением
интенсивности света сцена становится ярче, с увеличением размера лампы тени
становятся мягче, а с увеличением дальности освещения, лампа освещает большую
площадь сцены.
Типы ламп
Point
55
размера (Radius) больше нуля, они становятся сферическими лампами, которые дают
мягкие тени.
Strength
Мощность точечных ламп, указана в ваттах.
Sun
Strength
Сила света, измеряется в ваттах на квадратный метр.
Angle
Параметр Angle изменяет размер солнечного света в зависимости от его углового
диаметра, если смотреть с Земли.
Spot
Spot Shape
Форма лампы.
Area
56
Лампы Area излучают свет из прямоугольной или эллиптической области.
Shape
Форма лампы.
Square
Форма лампы может быть представлена как квадрат и изменена с помощью
параметра «Size».
Rectangle
Форма лампы может быть представлена в виде прямоугольника и изменена с
помощью значений X и Y.
Disk
Форма лампы может быть представлена как диск и изменена с помощью свойства
«Size».
Ellipse
Форма лампы может быть представлена как эллипс и изменена с помощью значений
X и Y.
Рис 6.2) Для всех ламп установлена сила света 250 ватт, за исключением типа Sun.
Для нее сила составляла 10 ватт/м2.
Softness
57
Размер фильтра, применяемого к теневой карте. Этот размер фильтра не зависит от
разрешения карты тени. Более высокий размер фильтра может иметь большое
влияние на производительность. Максимальный размер фильтра (в пикселях)
зависит от разрешения тени.
Bias
Смещение применяется к глубине тени, чтобы уменьшить артефакты самозатенения.
Exponent
Экспонента применяется при использовании алгоритма ESM для уменьшения
«утечки» света.
Bleed Bias
Смещение применяется при использовании алгоритма VSM для уменьшения
«утечки» света.
58
59
Рис 6.3) С помощью параметра Softness можно сгладить низкое разрешение
теневой карты, и тем самым получить мягкие тени без использования опции Soft
Shadows и без поднятия количества сэмплов. Опции Bias, Exponent и Bleed Bias
пригодятся для корректировки результатов, но не стоит доводить их до крайних
значений (как это сделано в примере для наглядности). Как правило, их значения по
умолчанию уже дают неплохой результат, и сильно отклоняться от них, чаще
всего, не имеет смысла.
Distance
Расстояние, на котором происходит поиск окклюдера в экранном пространстве.
Softness
Контролируйте, насколько мягкими будут контактные тени. Размытие контактных
теней не соответствует физическому размеру источника света.
Bias
Смещение применяется к трассировке лучей, чтобы уменьшить артефакты
самозатенения.
Thickness
Толщина пикселей, используемая для обнаружения окклюзии.
60
Рис 6.4) Как и в случае с корректирующими параметрами теней, значения по
умолчанию для контактных теней подходят для большинства ситуаций (за
61
исключением параметра Thickness), и сильное отклонение от них может сделать
лишь хуже. Будьте бдительны при их изменении, так как исправив проблему в одном
месте, можно не заметить, как создали ее в другом.
Count
Количество каскадов для использования. Большее количество означает более
высокую точность, но и более медленное обновление.
Fade
Переходная область между двумя каскадами. Более высокие значения означают
меньшее общее разрешение, потому что каскады должны перекрываться.
Max Distance
Расстояние от вида (или камеры, если находится на виде из камеры), которое должно
быть закрыто каскадом. Если дальность обзора вида/камеры (far clip) меньше
параметра Max Distance, будет использоваться параметр far clip в качестве Max
Distance. Работает только в перспективном режиме отображения.
Distribution
Увеличивает разрешение в направлении ближайшей плоскости усеченной пирамиды
вида (фруструма). Работает только в перспективном режиме отображения.
62
Рис 6.5) В случае освещения большой сцены не стоит гнаться за качеством теней
дальних объектов. Сосредоточьте все вычислительные ресурсы на ближних
63
объектах. Для дальних объектов достаточно будет того, чтобы тени от них
просто были.
64
Indirect Lighting (кеш непрямого света)
Хотя это не совсем правильно, но все освещение, которое не выходит
непосредственно из объекта «лампа», считается непрямым освещением в EEVEE.
Это означает, что освещение HDRI (или мир) рассматривается как непрямое
освещение. Меш-объекты, использующие нод Emission, также рассматриваются как
непрямое освещение.
Запечен может быть лишь свет, независимый от угла обзора. Вот почему Reflection
Planes не хранятся внутри светового кеша.
Отскоки света
Чтобы запечь отскоки света в большой сцене, процесс запекания можно запускать
несколько раз, используя предыдущий результат запекания для последующего.
Общее время запекания имеет практически линейную зависимость от количества
отскоков света.
Непрямое освещение
Auto Bake
Включение этой опции приведет к повторному запеканию при изменении зонда.
Полезно при позиционировании объектов зондов.
65
Diffuse Bounce
Количество отскоков света при запекании диффузного света (diffuse irradiance).
Cubemap Size
Размер отражающих кубических карт.
Irradiance Smoothing
Зонд Irradiance создает более мягкую интерполяцию освещенности, что может
привести к «протечке» света. Данный параметр ослабляет воздействие этой
интерполяции. Это может привести к тому, что освещение не будет правильно
интерполироваться на некоторых поверхностях.
Clamp Glossy
Параметр позволяет ограничить цвет пикселя для уменьшения шума, производимого
глянцевыми отражениями внутри кубических карт (0 — опция отключена).
Filter Quality
Позволяет использовать больше сэмплов при фильтрации кубических карт, чтобы
избежать появления артефактов. На данный момент влияет только на кубические
карты.
Cubemap Display
Отображает запеченные кубические карты отражений, присутствующие в кеше,
непосредственно в окне 3D-вида.
Irradiance Display
Отображает образцы отраженного света, присутствующие в кеше, непосредственно в
окне 3D-вида.
66
Рис 7.1) Все представленные выше параметры идеально сбалансированы, с точки
зрения качества и производительности (значения по умолчанию). Повышение
67
качества значительно повышает время запекания, без явного улучшения и
наоборот.
Зонды (Probes)
Объекты зонды (probes) используются в EEVEE как вспомогательные объекты. Они
записывают информацию об освещении, чтобы осветить сцену с помощью
непрямого освещения (indirect light).
Существует три разных типа зондов. Один для диффузного освещения и два для
зеркального освещения.
Эти типы объектов полезны только для EEVEE (режимы lookdev и rendered). Они
помогают движку вычислять свет быстрее и качественнее.
Irradiance Volumes
Диффузное непрямое освещение хранится в специальных массивах объема. Эти
массивы определяются пользователем, с помощью объектов Irradiance Volumes. Вы
можете располагать эти массивы где угодно в вашей сцене, а также контролировать
их разрешение.
Если функция Ambient Occlusion включена, она будет применена поверх диффузного
непрямого освещения. Если задействованы как Ambient Occlusion, так и опция «Bent
Normals», непрямое освещение будет браться из наименее закрытого направления
нормалей и выглядеть более реалистичным.
Distance
Объект зонд влияет только на освещение ближайших поверхностей. Эта зона
влияния определяется параметром Distance и масштабированием объекта.
68
Влияние внутри зонда всегда равно 100%. Влияние затухает только вне зонда, пока
не станет равным 0 на расстоянии, указанном параметром Distance (в локальных
координатах). Внешняя рамка зонда в окне 3D-вида наглядно демонстрирует это
расстояние.
Falloff
В процентном соотношении контролирует линейное затухание зонда. Также
отображается ограничительная рамка в окне 3D-вида, показывающая область, по
достижению которой влияние зонда станет равно 0.
Intensity
Коэффициент интенсивности запеченного освещения. Любые значения данного
параметра, отличные от 1.0, не являются физически корректными. Используйте его
для индивидуальной настройки сцены или для придания художественного стиля.
Resolution
Пространственное разрешение для зондов Irradiance Volumes определяется для
каждого из них индивидуально. Локальный объем делится на сетку указанных
размеров. Один сэмпл будет вычисляться для каждой ячейки в этой сетке.
Clipping
Определяет ближнее и дальнее расстояние при захвате сцены.
Visibility Collection
В некоторых случаях полезно ограничить видимость объектов в световом зонде.
Например, объект, который находится слишком близко к точке захвата. Это то, что
делает коллекция видимости (Visibility Collection). Только объекты, находящиеся в
этой коллекции, будут видны зонду во время захвата сцены.
Заметка: Это только вариант фильтрации. Это означает, что если объект не
отображается во время визуализации, то он и не будет отображаться во время
рендеринга зонда.
69
70
Рис 7.2) Для демонстрации параметров Distance и Falloff зонд покрывал лишь
половину сцены. За счет этого отчетливо видны границы влияния и плавности
перехода. Также стоит отметить опцию Resolution. Время запекания при большом
разрешении не всегда соизмеримо с качеством. Intensity и Clipping, полагаю, в
дополнительных комментариях не нуждаются. Результат их работы отчетливо
виден на изображении.
Visibility (видимость)
Для каждой точки сетки создается небольшая вариационная карта теней. Эта
кубическая карта используется для уменьшения «протечки» света позади
окклюдеров. Вы можете настроить размер этой карты на вкладке рендеринга, а также
настроить коэффициенты смещения и размытия (bias и blur) для сетки на вкладке
свойств зонда.
Bias
Уменьшает самозатенение.
Bleed Bias
Увеличивает «контраст» результатов теста глубины.
Blur
Количество размытия, которое необходимо применить при фильтрации карты теней.
Немного увеличивает время запекания, без увеличения нагрузки на рендеринг.
71
Рис 7.3) Крайние значения данных параметров больше вредят, нежели помогают
исправить проблемы «протечек» света. Как видите, результаты минимальны, и
стоит использовать эти параметры лишь в случае возникновения проблем.
Blending (смешивание)
Значения освещенности от Irradiance Volume будут затухать до тех пор, пока не
достигнут ограничительной рамки объема. Они будут исчезать в мировом освещении
или другом зонде Irradiance Volume.
Если несколько зондов Irradiance Volume пересекаются, меньший (по объему) всегда
72
будет иметь больший приоритет.
Если объект не находится внутри зонда Irradiance Volume, или если непрямое
освещение не было запечено, для его тени будет использоваться диффузное
освещение мира.
Советы:
Clipping
Показывает расстояние отсечения в окне 3D-вида (clipping).
Reflection Cubemaps
Зеркальное непрямое освещение хранится в массиве кубических карт. Они
определяются специальными объектами Reflection Cubemap. Они указывают, в каких
пределах сохранять непрямое освещение и на какие объекты применять его.
SSR гораздо точнее, нежели кубические карты отражений. В случае активации SSR,
у него приоритет будет выше, нежели у кубических карт отражения, и они будут
использоваться лишь в том случае, если не будет возможности создать отражение с
помощью экранного пространства.
73
Рис 7.4) Для сферических объектов предпочтительнее использовать сферический
тип зонда, для остальных же — кубический.
Blending (смешивание)
Значения освещенности от Reflection Cubemap будут исчезать до тех пор, пока не
будут достигнуты границы объема. Они будут исчезать в освещении мира или
освещении другого зонда Reflection Cubemap. Если несколько Reflection Cubemap
перекрываются, меньший (по объему) всегда будет иметь больший приоритет. Если
объект не находится внутри какого-либо влияния Reflection Cubemap, или если
непрямое освещение не было запечено, для него будет использоваться кубическая
карта мира.
Distance
Объект зонд влияет только на освещение ближайших поверхностей. Эта зона
влияния определяется параметром Distance и масштабированием объекта.
Для отражающих кубических карт объем влияния может быть либо кубом, либо
сферой, расположенными вокруг центра зонда. Внешняя рамка зонда в окне 3D-вида
наглядно демонстрирует это расстояние.
74
Falloff
В процентном соотношении контролирует линейное затухание зонда. Также
отображается ограничительная рамка в окне 3D-вида, показывающая область, по
достижению которой влияние зонда станет равно 0.
Intensity
Коэффициент интенсивности запеченного освещения. Любые значения данного
параметра, отличные от 1.0, не являются физически корректными. Используйте его
для индивидуальной настройки сцены или для придания художественного стиля.
Clipping
Определяет ближнее и дальнее расстояние при захвате сцены.
Visibility Collection
В некоторых случаях полезно ограничить видимость объектов в световом зонде.
Например, объект, который находится слишком близко к точке захвата. Это то, что
делает коллекция видимости (Visibility Collection). Только объекты, находящиеся в
этой коллекции, будут видны зонду во время захвата сцены.
Заметка: Это только вариант фильтрации. Это означает, что если объект не
отображается во время визуализации, то он и не будет отображаться во время
рендеринга зонда.
75
Рис 7.5) Результат работы опций нагляден, интуитивно понятен и ничем не
отличается от предыдущего зонда. Единственный вопрос вызывает
76
отсутствующее отражение красной стенки на последнем примере. Сфера и зонд
находятся на одинаковом удалении от стен коробки. Во всяком случае, при значении
End: 1.01, она уже появляется в отражении. Имейте это ввиду, если что.
Clipping
Показывает расстояние отсечения в окне 3D-вида (clipping).
Parallax
Показывает границы влияния опции Custom Parallax в окне 3D-вида.
77
Reflection Planes
Эти специальные типы зондов подходят для гладких плоских поверхностей. По сути
своей они захватывают всю сцену, как если бы камера находилась на их месте (как
зеркало).
Если SSR включено, Reflection Planes будет служить опорным буфером. Это ускорит
процесс трассировки и поможет заполнить отсутствующие данные в пространстве
экрана. Это также делает отражение более правильным для поверхностей, имеющих
среднюю шероховатость и пользовательские нормали (то есть карты нормалей).
Рис 7.7) При виде сверху на объект мы не видим его нижнюю часть и
соответственно не можем ее отразить в пространстве экрана. Зонд Reflection
Plane здорово помогает в подобных ситуациях.
Размещение
Если параметр Backface Culling не включен, привязка плоскости отражения к
плоской поверхности будет эффективно захватывать нижнюю поверхность.
78
Ручного перемещения плоскости отражения над поверхностью достаточно, чтобы
она не появлялась в отражениях. В качестве альтернативы вы можете поместить
объект пола в коллекцию, и использовать ее в виде коллекции видимости
(инвертированной), внутри настроек зонда Reflection Plane.
Distance
Объект зонд влияет только на освещение ближайших поверхностей. Эта зона
влияния определяется параметром Distance и масштабированием объекта.
Falloff
Расстояние, в течение которого влияние зонда линейно затухает (в процентном
соотношении). Также определяет количество нормалей, которые необходимо
выровнять с плоскостью для получения отражений.
79
Рис 7.9) Результат работы опции Falloff.
Clipping Offset
Определяет, насколько ниже плоскости находится расстояние отсечения при захвате
сцены. Увеличение этого параметра может устранить проблемы с отражением.
Visibility Collection
В некоторых случаях полезно ограничить видимость объектов в световом зонде.
Например, объект, который находится слишком близко к точке захвата. Это то, что
делает коллекция видимости (Visibility Collection). Только объекты, находящиеся в
этой коллекции, будут видны зонду во время захвата сцены.
Заметка: Это только вариант фильтрации. Это означает, что если объект не
отображается во время визуализации, то он и не будет отображаться во время
рендеринга зонда.
80
Viewport Display (отображение в окне 3D-вида)
Arrow Size
Размер стрелки в окне 3D-вида, показывающей направление нормали плоскости
отражения.
Show Data
Показывает захваченное отраженное изображение на зеркальной плоскости в окне
3D-вида (в режиме lookdev).
81
Ограничения
EEVEE создавался с прицелом на интерактивность. Некоторые функции могут быть
недоступны или могут быть невозможны для реализации в рамках архитектуры
EEVEE без ущерба для производительности.
Камеры
Источники света
Световые зонды
82
Объемы
Ambient Occlusion
Подповерхностное рассеивание
83
Правильно смоделировано только первое преломление.
Только непрозрачные (opaque) и альфа-хешированные (alpha hashed) материалы
могут преломляться.
Управление памятью
На данный момент EEVEE использует OpenGL, и управление памятью GPU
осуществляется с помощью драйвера OpenGL. Теоретически только необходимые
текстуры и меши (теперь называемые «ресурсами») для одного вызова (draw call)
должны записываться в память GPU.
Нет стандартного способа определить, поместятся ли все ресурсы в память GPU или
будет ли рендеринг выполнен корректно.
84