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