Вы находитесь на странице: 1из 84

Руководство по EEVEE

Версия 1.0

Автор: Артем Слаква

2
Благодарность

Выражаю огромную благодарность Филатовой Евгении за помощь в создании


данной книги (в который раз).

Уже по сложившейся традиции, ею был создан дизайн книги, дизайн лендинг-


страницы, а также произведена работа по улучшению изображений, находящихся в
данной книге.

Помимо этого, Евгения провела десятки часов за чтением книги, с целью выявления
грамматических ошибок и улучшения описания различных моментов, которые могли
бы вызвать затруднения у читателя.

За то, что она смогла выдержать меня на протяжении всего этого времени и за
оказанную помощь, еще раз выражаю огромную благодарность.

3
Об авторе

Артем Слаква родился и проживает в Украине. После окончания школы поступил в


Национальный Горный Университет, на последнем курсе которого была дисциплина
"Современные методы создания мультимедиа". Выбор преподавателя пал на
замечательный редактор трехмерной графики Blender.

В период сдачи дисциплины ощущалась острая нехватка материалов по данному


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

По окончанию университета, Blender был отложен в сторону примерно на год,


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

Так 13 мая 2013 года появился сайт Blender3D, который по сегодняшний день
выполняет поставленную перед собой цель.

4
Терминология
Screen Space Reflaction (SSR) — это метод повторного использования данных
пространства экрана для расчета отражений. Данная техника достаточно
ресурсозатратна, но при грамотном ее использовании можно добиться отличных
результатов, и при этом сохранить высокую производительность.

Ambient Occlusion (AO) — это метод затенения изображения, имитирующий


глобальное затенение. Если говорить конкретно об EEVEE, то в данном случае
корректнее будет использовать аббревиатуру SSAO (Screen Space Ambient
Occlusion). Еще точнее сказать, GTAO (Ground Truth Ambient Occlusion), но об этом
мы уже поговорим в главе, посвященной этому методу. Алгоритм SSAO работает в
режиме реального времени и имитирует рассеянное непрямое освещение и
соответствующее затенение в экранном пространстве. SSAO был разработан отделом
исследований немецкой компании Crytek, при разработке графических компонентов
игрового движка CryEngine 2. Первая игра вышедшая на этом движке и
использовавшая данную технологию была Crysis, которая вышла осенью 2007 года.
Позже данный алгоритм и его модификации были использованы во многих других
игровых движках, таких как Unreal Engine, Unity и многих других.

PBR (Physically based rendering) — это философия компьютерной графики, которая


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

Утечка/протечка света (Light leaking) — это проблема всех движков рендеринга в


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

Окклюдер (Occluder) — в контексте компьютерной графики окклюдером называют


любой объект, который стоит на пути света и может отбрасывать тень. Это слово

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 появится новый игровой движок или же будет добавлен логический
функционал.

EEVEE является PBR-рендером (Physically based rendering), что делает его


совместимым с огромным количеством других PBR-рендеров, в том числе и с Cycles.
Оба они используют одни и те же ноды для создания материалов и, несмотря на
различные алгоритмы работы, выдают практически идентичный результат. Во
многих случаях определить разницу «на глаз» затруднительно или же невозможно
вовсе.

Из-за ограничений рендеринга в реальном времени не все функции Cycles доступны


в EEVEE. Производительность сильно зависит от количества BSDF-нодов,
присутствующих в дереве материалов. То же самое касается и количества
активированных дополнительных эффектов, таких как Screen Space Reflaction (SSR),
Ambient Occlusion (AO), Bloom и т.д.

6
Рендеры Cycles и EEVEE
Данные рендеры принципиально по-разному создают изображение. Cycles является
трассировщиком, а EEVEE — растеризатором. О том, как работает трассировщик
Cycles подробно рассказано в книге «Руководство по Cycles». Принцип же работы
растеризатора мы рассмотрим ниже.

В рамках всей книги EEVEE будет сопоставляться с Cycles с позиции младшего


брата. Результаты и качество изображений, отрендеренных в Cycles, будут
приниматься за эталон и отправную точку, а EEVEE чаще всего будет упоминаться в
контексте своей ограниченности относительно первого.

Если у вас на данном этапе сложилось впечатление, что EEVEE экстремально плох,
смею вас заверить, что это ошибочное впечатление. Во-первых, огромное количество
недостатков EEVEE связано с тем, что это очень молодой и неокрепший рендер.
Чтобы в полной мере осознать это, скачайте Blender версии 2.61 и сравните тот
Cycles с текущей версией.

Во-вторых, мы по сути будем сравнивать теплое с мягким. Это достаточно логично,


что трассировщик не может то, что может растеризатор и наоборот. Ну и в-третьих,
вся та часть книги, в которой EEVEE не выставляется в плохом свете, является его
преимуществом, в сравнении с тем же Cycles. И самое его большое преимущество —
это скорость рендера!

Что такое растеризация?


Компьютерная графика в реальном времени уже давно использует метод,
называемый растеризацией (rasterization), для отображения трехмерных объектов на
двумерном экране. Это быстро. И результат получается очень хорошим, хоть и не
всегда настолько хорош, как то, что может сделать трассировка лучей.

При растеризации объекты на экране создаются из мешей, состоящих из


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

7
объекта обращена к камере.

Затем компьютеры преобразуют треугольники 3D-моделей в пиксели на 2D-экране.


Каждому пикселю может быть назначено начальное значение цвета из данных,
хранящихся в вершинах треугольника. Дальнейшая обработка или «затенение»
(shading) пикселя, включая изменение его цвета на основе того, как источники света
в сцене освещают тот или иной участок меша, и применение одной или нескольких
текстур к пикселю, объединяются, чтобы сформировать окончательный цвет,
примененный к пикселю.

Это все трудозатратно, с точки зрения вычислений. Для всех объектов в сцене могут
использоваться миллионы полигонов, а на экране может содержаться примерно 8
миллионов пикселей (4K-дисплей). И каждый кадр или изображение, отображаемое
на экране, обычно обновляется с частотой от 30 до 90 раз каждую секунду.

Кроме того, буфер памяти (временное пространство), отведенный для ускорения


процесса, используется для предварительной визуализации будущих кадров до их
отображения на экране. Глубина или «z-буфер» также используется для хранения
информации о глубине пикселя, чтобы гарантировать, что ближайшие к камере
объекты в пространстве экрана отображаются на вашем мониторе, а объекты за ними
остаются скрытыми.

Что нужно знать о пользовательском


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

По умолчанию в правой части окна Blender расположено окно свойств. Содержимое


данного окна меняется в зависимости от того, с каким объектом вы работаете, какой
рендер активирован и т.д. Это может вызвать небольшое недоумение у новичков, но
это очень эффективный способ держать меню упорядоченным на протяжении всего
времени работы с ним. В этой главе мы затронем лишь те вкладки, которые важны
для рендера EEVEE.

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

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

World
На данной вкладке производится настройка мира в вашей сцене. Материал мира
немного уникален, так как он не привязывается ни к какому объекту, а задается для
всей сцены целиком.

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

Lamp
Если ваш объект является лампой, то вкладка материалов заменится на вкладку
лампы. Именно на данной вкладке производится большинство настроек для ламп, и
изменяются их типы при необходимости.

Camera
При выборе камеры в окне свойств, появится вкладка камеры, на которой будут
содержаться все настройки камеры, такие как: фокусное расстояние, глубина
резкости, тип линзы и многое другое.

Light Probe
При выборе зонда в окне свойств появится вкладка с его настройками, такими как:
размер, интенсивность, затухание и многое другое.

9
Перед тем как закончить эту главу, стоит отметить несколько опций, расположенных
в окне 3D-вида.

В Blender доступно 4 режима отображения: Wireframe, Solid, Look Dev и Rendered. С


точки зрения EEVEE, нас интересуют лишь последние два. Режим Look Dev всегда
использует движок рендеринга EEVEE, вне зависимости от выбранного рендера. У
данного режима есть две опции: Scene Lights и Scene World. Отметив их, вы укажите
EEVEE использовать лампы и мир/HDR-карту, присутствующие в сцене, для
визуализации вашей сцены. В случае использования EEVEE в качестве финального
рендера, при таких параметрах режимы Look Dev и Rendered будут выдавать
идентичный результат.

Режим Rendered будет рендерить картинку с помощью указанного рендера, и в


случае, если это не EEVEE, то результаты режимов Look Dev и Rendered начнут
заметно отличаться, даже если вы используете Cycles. По изначальной задумке
разработчиков вы должны настраивать материалы вашей сцены в режиме Look Dev,
а уже после производить финальный предпросмотр и коррекцию в режиме Rendered.
Именно для этого у вас есть возможность использовать интегрированные в Blender
HDR-карты в режиме Look Dev, для быстрого предпросмотра сцены или материала с
различной освещенностью (вы также можете загрузить любую свою HDR-карту для
этих целей).

И в дополнение к этим режимам, вы можете активировать опцию Look Dev Preview в


меню Overlays. Она отобразит две сферы (глянцевую и диффузную), в правом
нижнем углу экрана, для быстрого предпросмотра освещения в вашей сцене.

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 в вашем материале,
и замена на нормаль шейдера невозможна, рендерите изображение размером в два
раза больше целевого разрешения и уменьшайте итоговый результат.

Объемные объекты (Volume Objects)


Шейдеры объема будут влиять на весь ограничивающий прямоугольник объекта
(bounding box). Форма объема может быть скорректирована лишь с использованием
процедурных текстур внутри шейдера.

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 ноды будут невидимыми для следующих эффектов:

Screen Space Reflection


Subsurface Scattering

Shader
Вход для шейдера BSDF.

Color
Цвет в формате RGB.

Alpha
Альфа-канал (если есть конечно (Transparent BSDF)).

Рис 2.4) Toon-шейдер, созданный с помощью нода Shader to RGB.

Specular BSDF
Нод Specular BSDF объединяет в себе несколько шейдеров в один простой в
использовании нод. Он похож на нод Principled BSDF, но работает по совсем
другому алгоритму (зеркальный рабочий процесс, а не металлический, как в случае с
Principled BSDF). Зеркальный рабочий процесс функционирует путем указания цвета
отражения (вдоль нормали). Результат может быть физически не корректным,
потому что нет сохранения энергии. Specular BSDF имеет гораздо меньше
параметров и поддерживает меньшее количество функций. В будущем оба этих нода
могут быть объединены в один.

Base Color
Диффузный цвет поверхности в формате RGB. Для проводящих материалов

15
(металлов) он должен быть черным.

Specular Color
Количество зеркального отражения.
Определяет отражательную способность (вдоль
нормали). Материалы проводника (металлы)
могут иметь цветное отражение. Для
неметаллов стоит использовать белые
отражения, иначе ваш материал перестанет
быть PBR.

Заметка: Чтобы вычислить значение


параметра Specular для создания реалистичного
материала с известным показателем индекса
преломления, вы можете использовать этот
частный случай формулы Френеля:

specular = sqr ((ior - 1) / (ior + 1)) / 0.08.

Например:

Вода: ior = 1.33, specular = 0.25


Стекло: ior = 1.5, specular = 0.5
Алмаз: ior = 2.417, specular = 2.15

Roughness
Определяет шероховатость поверхности для диффузного и зеркального отражений.

Заметка: Чтобы получить результат, соответствующий одноименному значению


нода Glossy BSDF, использовавшегося в предыдущих версиях Blender (до выхода
2.8), используйте квадратный корень исходного значения.

Emissive Color
Цвет излучаемого света. Этот цвет добавляется к результату BSDF.

Transparency
Коэффициент прозрачности. Это обратное значение альфа-канала (1 - альфа),
который может содержаться в изображении. Используйте нод Invert для
преобразования альфа-канала в прозрачность. Это будет работать лишь в случае,
если материал использует режим смешивания, отличный от непрозрачного (opaque).

16
Normal
Вход для подключения карты нормалей. Воздействует на все базовые слои шейдера.

Clearcoat
Дополнительный белый зеркальный слой поверх других. Это полезно для
материалов, таких как автомобильная краска или лакированное дерево.

Clearcoat Roughness
Шероховатость слоя Clearcoat.

Clearcoat Normal
Вход для подключения карты нормалей, которая будет контролировать лишь слой
Clearcoat.

Ambient Occlusion
Количество окклюзии для непрямого освещения. Обычно для данного входа
используется заранее запеченная карта AO. Итоговой окклюзией является фактор
смешивания значения данного входа (в меньшей степени) и эффекта окклюзии
окружающей среды, рассчитываемого во время рендеринга.

BSDF
Функция распределения двунаправленного рассеивания. Математическая функция,
описывающая поведение луча при попадании на поверхность.

17
Рис 2.5) Рендеринг шейдера Specular с различными настройками отражающего
света, излучаемого света и прозрачности.

Рис 2.6) При использовании лишь AO в пространстве экрана объект затемняется


достаточно слабо, зато появляется легкая тень на полу. При использовании
запеченной карты AO сам объект выглядит достаточно неплохо, но отсутствует
затенение в нижней его части. И лишь комбинация запеченной карты и AO в
пространстве экрана дает максимально приближенный к реалистичному
результат.

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

Shader to RGB
Specular BSDF

Далее мы рассмотрим все те ноды, которые не поддерживаются, либо же


поддерживаются с определенными оговорками. Все ноды, которые не будут здесь
упомянуты работают так же, как и в Cycles (насколько это возможно, по крайней
мере).

Ноды из категории Shader

18
Diffuse BSDF
Шероховатость не поддерживается. Поддерживается только диффузия Ламберта.

Emission
Этот шейдер рассматривается как непрямое освещение и будет отображаться только
в отражениях экранного пространства (SSR) и отражающих зондах.

Glass BSDF и Refraction BSDF


Не преломляют лампы. Не поддерживают распределение Beckmann и GGX
Multiscatter.

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
Не поддерживается.

Principled Hair BSDF


Не поддерживается.

Ноды из категории Input


Ambient Occlusion
Все параметры никак не будут воздействовать на результат, кроме Normal и Color.
Это связано с тем, что AO вычисляется ранее этого нода, и для создания данного
эффекта используются настройки сцены (расположенные на вкладке рендера), а не
данного нода.

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.

Заметка: Is Glossy не работает со Screen Space Reflections/Refractions (SSR), но


работает с отражающими плоскостями (reflection planes), с использованием SSR или
без него.

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.

Backface Culling (отсечение обратной стороны грани)


Эта опция скрывает обратную сторону граней на финальном рендере.

Blend Mode (режим смешивания)


После вычисления цвета поверхности EEVEE должен знать, как добавить этот цвет в
цветовой буфер. Окончательный цвет пикселя будет отличаться в зависимости от
режима наложения.

Заметка: Аддитивное, мультипликативное и альфа-смешивание рассматриваются


как «прозрачные» режимы смешивания. Это имеет значение для эффектов экранного
пространства (SSR, например).

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.

Проблема сортировки

При записи в цветовой буфер с использованием прозрачных режимов смешивания


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

Заметка: Эта сортировка по каждому объекту достаточно ресурсозатратна, и если в


сцене присутствуют тысячи объектов, то это в значительной степени ухудшает
производительность.

Аддитивное и мультипликативное смешивания независимы от порядка. Это


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

24
этой поверхности пересекаются друг с другом.

Однако это не работает с Alpha Blending, где даже порядок треугольников важен. В
этом случае вы можете отключить опцию Show Backface.

Show Backface
Если включено, все прозрачные фрагменты будут отображаться. Если отключено,
будут отображаться только ближайшие к камере фрагменты поверхности.
Отключите эту опцию, чтобы обеспечить правильное отображение прозрачности с
любой точки обзора.

25
Рис 2.8) Примеры рендеров со включенной и отключенной опцией Show Backface. Как
видите, результат с отключенной опцией предпочтительнее в большинстве
случаев.

Transparent Shadow (прозрачные тени)


Данный параметр указывает тип теней, которые создаются прозрачными
поверхностями. EEVEE не поддерживает цветные карты теней.

Полупрозрачные тени могут быть получены с использованием хэшированных


прозрачных теней и с помощью параметра Soft Shadows для теневой карты.

26
Заметка: Эта опция не меняет поведение контактных теней, которые трассируются с
использованием буфера глубины. Если материал записывается в буфер глубины
(другими словами, если режим смешивания установлен на Opaque, Alpha Clip или
Alpha Hashed), контактные тени будут отбрасываться материалом поверхности,
независимо от типа прозрачной тени.

None
Поверхность не будет отбрасывать тени.

Opaque
Поверхность будет отбрасывать тени, как если бы она была непрозрачной
поверхностью.

Clip
Поверхность будет отбрасывать тени как непрозрачная поверхность, но только в
области, где альфа-значение находится выше установленного порога (clip threshold).

Hashed
Поверхность будет отбрасывать тени как непрозрачная поверхность, но только в
области, где альфа-значение выше случайного порога (random threshold).

Рис 2.9) Процедурная текстура Wave используется в качестве фактора смешивания


прозрачного и непрозрачного шейдеров.

Screen Space Refraction (преломления в экранном


пространстве)
Включение SSR означает, что рефракционные BSDF будут выполнять трассировку в
направлении буфера глубины, чтобы найти наиболее точный преломленный цвет.
Это требует значительной производительности, если поверхность покрывает
большое количество пикселей.

27
Screen Space Reflection не совместимо со Screen Space Refraction. Поверхности,
использующие Screen Space Refraction, не будут отображаться в Screen Space
Reflection.

Если этот параметр отключен или если трассировка Screen Space Refraction не
возможна, преломленный луч будет использовать цвет ближайшего зонда (probe).

Screen Space Refraction


Активирует Screen Space Refraction.

Refraction Depth
Если глубина рефракции не равна 0.0, все рефракционные BSDF в шейдере будут
действовать так, как если бы объект был указанной толщины преломляющего
материала. Это позволит создать второй отскок рефракционного луча, что удвоит
цвет поглощения и создаст рефракционный луч после этого второго отскока.

Эта опция значительно повышает качество тонких стеклянных предметов.

Рис 2.10) Результат работы опции Refraction Depth.

Subsurface Translucency (подповерхностная


полупрозрачность)
Алгоритм Subsurface Scattering в EEVEE работает путем размытия освещенности в
пространстве экрана. Это означает, что если видимая часть поверхности не
освещена, эффект пропадает.

Однако истинное подповерхностное рассеивание проходит под поверхностью и


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

Именно это и пытается имитировать данный эффект. Эффект работает только с


лампами, которые имеют карты теней, и только на подповерхностных BSDF (а не на
прозрачных BSDF). Он не работает с непрямым освещением. Параметр теневых карт

28
(Soft Shadows) также влияет на этот эффект.

Рис 2.11) Результат работы опции Subsurface Translucency. Между ушей зайчика
расположена лампа (тип Point). Кроме нее других источников света в сцене нет.

Pass Index (индекс материала)


Опция задает индекс для материала. В последствии этот материал можно
использовать как маску во время пост-обработки, с помощью нода ID Mask.

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 имитирует объемное рассеивание для объектов внутри усеченной пирамиды
вида.

Для этого используется несколько 3D-текстур, которые заполняют значительное


количество видеопамяти. Размеры текстур могут быть изменены с помощью
параметров Tile Size и Samples.

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 форму частиц и количество их подразделений.

Hair Shape Type


Выбор между рендерингом частиц с постоянной толщиной (strand) или изменяемой
(strip).

Рис 3.3) С типом Strand частица имеет постоянную толщину на протяжении всей
своей длины, а с типом Strip становится все тоньше в направлении конца.

Additional Subdiv
Количество дополнительных подразделений (относительно настроек системы
частиц) вдоль частицы.

34
Рис 3.4) Чем выше уровень подразделения, тем плавнее изгибы частиц.

Shadows (Тени)
EEVEE использует различные техники (так называемые Shadow Mapping) для
создания правильной тени непосредственно от источников света.

Теневая карта — это текстура, которая хранит координаты ближайшего


непрозрачного объекта относительно положения источника света. После создания
карты EEVEE фильтрует ее, чтобы сгладить пикселизированный вид.

Глобальные настройки
Method
Определяет тип теневой карты. Он изменяет алгоритм сохранения и фильтрации
тени.

ESM
Тени быстро фильтруются, но имеют небольшие неточности около окклюдера
(непрозрачного объекта). Это можно свести к минимуму, увеличив параметр
Exponent. Другая проблема — это артефакты разрыва тени. К сожалению, для этой
проблемы нет обходного пути, и единственный способ минимизировать это —
уменьшить параметр Soft.

VSM
Фильтрация происходит хорошо и дает гладкий вид теневой карты во всем
диапазоне теней. Однако при использовании низкой битовой глубины, мы получаем
видимые зернистые артефакты. Алгоритм также подвержен «протечке» света, когда

35
два окклюдера пересекаются. В этом случае тени можно переопределить, чтобы
уменьшить утечку, используя параметр Bleed Bias. VSM использует в два раза
больше памяти, чем ESM, и работает медленнее.

Рис 3.5) Сравнение методов генерации тени.

Cube Size
Размер теневой кубической карты, использующейся для ламп Point, Area и Spot.
Больший размер карты тени даст более высокую точность и более резкие тени.

Рис 3.6) Чем выше разрешение теневой карты, тем качественнее создаваемые
тени.

Заметка: Кубическая карта размером 512 px содержит 6 x 512 x 512 пикселей.


Увеличение ее размера может существенно повлиять на потребление памяти и на
производительность.

Cascade Size

36
Размер одного каскада, используемого каскадными картами теней (Cascaded Shadow
Maps). Это только для ламп с типом Sun.

Рис 3.7) Чем выше разрешение теневой карты, тем качественнее создаваемые
тени.

High Bitdepth
Этот параметр может помочь уменьшить некоторые артефакты из-за неточности
расчетов внутри теневых карт. Он удваивает использование памяти теневыми
картами и замедляет их обновление.

Soft Shadows
Случайным образом изменяет центр теневых карт, чтобы создать мягкие тени.
Необходимо много сэмплов, чтобы получить приемлемый результат (64 и выше).

Рис 3.8) Результат работы опции Soft Shadow.

37
Заметка: Метод «Soft Shadows» не является физически корректным и не будет
соответствовать результатам, полученным в Cycles для очень больших ламп.

Light Threshold
Чтобы избежать длительного времени расчета расстояния, это расстояние сначала
вычисляется автоматически на основании светового порога (Light Threshold).
Расстояние вычисляется от центра источника света с использованием
инвертированного квадратного типа спада.

Этот параметр не учитывает форму источника света и не всегда может давать


корректный результат. Поэтому есть возможность настроить этот параметр
индивидуально для каждой лампы (Вкладка лампы → меню Light → Custom
Distance).

Расстояние воздействия ламп также может повлиять на то, как выглядят тени. Это
расстояние воздействия не касается ламп с типом Sun.

38
Эффекты экранного пространства
Введение
EEVEE не является трассировщиком лучей. Вместо этого EEVEE использует буфер
глубины для примерного представления сцены. Это уменьшает сложность
масштабирования сцены и обеспечивает высокую производительность. Однако при
вычислении этих эффектов учитывается лишь то, что находится непосредственно в
области видимости камеры/вида. Кроме того, поскольку EEVEE использует только
один уровень глубины, известно только ближайшее расстояние между пикселями.

Эти ограничения создают несколько проблем:

Экранное пространство исчезает при достижении границы экрана. Это можно


частично устранить, используя функцию сверхсканирования (Film → Overscan).
При создании эффектов экранного пространства EEVEE не располагает
данными о том, насколько глубокими (или толстыми) являются объекты. Вот
почему большинство эффектов имеют параметр толщины, чтобы
контролировать, как рассматривать потенциальные пересекающиеся пиксели.
Пересекающиеся поверхности не учитываются. Они не являются частью
предустановленной глубины и не отображаются в буфере глубины.

Ambient Occlusion (AO)


Окружающая окклюзия вычисляется с использованием GTAO (Ground Truth Ambient
Occlusion) и применяется для непрямого затенения. Окружающая окклюзия может
использоваться во время пост-обработки. Для этого необходимо отметить
соответствующую опцию на вкладке Render Layers.

Заметка: Этот эффект (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 должна быть включена (в свойствах материала) для
того, чтобы свет проходил через объект (например, имитируя освещение позади
человеческого уха).

Этот параметр работает только в том случае, если Subsurface Scattering


включено.
Этот параметр работает только с прямым светом (и не работает с непрямым
освещением).

SSR (Screen Space Reflections и


Refractions)
Если этот эффект включен, все материалы будут использовать буфер глубины и цвет
предыдущего кадра, чтобы создать более точное отражение, нежели отражающие
зонды.

Если отражающая плоскость (Reflaction Plane) находится вблизи отражающей


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

Overscan
Эта опция находится в меню Film, а не в меню Screen Space Reflections, так как
является общей для всех эффектов экранного пространства. Она позволяет увеличить
область видимости вашей камеры, без фактического захвата в камеру окружающих
объектов. За счет этого эффекты экранного пространства могут работать с теми
объектами, которые отсутствуют в кадре. Конечно же, данная опция увеличивает
нагрузку на железо и время рендера. Измеряется в процентах экранного
пространства.

44
Рис 4.4) Результат работы опции Overscan. По бокам сферы находятся два куба,
которые не попадают в кадр, зато присутствуют в отражениях за счет опции
Overscan.

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

Half Resolution Trace


Позволяет использовать трассировку лучей с вдвое меньшим разрешением. Создает
луч лишь на каждый четвертый пиксель. Включение этой опции значительно
сокращает использование видеопамяти и увеличивает производительность ценой
качества.

Рис 4.5) Результат работы опции Half Res Trace.

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) Очень легко испортить рендер данной опцией. Используйте ее с умом и
лишь там, где она действительно необходима.

Depth of Field (глубина резкости)


Глубина резкости создается на этапе пост-обработки.

Эффект глубины резкости использует те же настройки камеры, что и Cycles.

Заметка: Глубина резкости работает только на виде из камеры.

Max Size
Максимальный размер формы боке для глубины резкости в пикселях (чем меньше,
тем лучше производительность).

Заметка: Из соображений производительности в окне просмотра могут


отображаться цветовые артефакты при использовании больших размеров боке. Эти
артефакты отсутствуют на финальном рендеринге.

Рис 5.2) Фокус настроен на первом зайчике (как видите, в области ближайшего
уха).

Motion Blur (размытие движения)


Размытие движения в Eevee выполняется путем пост-обработки изображения после
рендеринга.

Эффект размытия движения достаточно прост. Размытие результатов рендеринга

51
выполняется на основании скорости движения пикселя.

Заметка: Размытие движения объекта и размытие деформации по-прежнему не


поддерживаются. Поддерживается только размытие движения камеры.

Заметка: Motion Blur работает только на виде из камеры.

Samples
Количество сэмплов для эффекта размытия движения (больше — лучше).

Shutter
Время в кадрах между открытием и закрытием затвора камеры.

Рис 5.3) В примерах выше камера движется с правого верхнего угла в левый нижний.

52
Мир (World)
Мир может излучать свет, освещающий все объекты в сцене (либо же не делать
этого, при необходимости). Это может быть как один сплошной цвет, так и
подключенная текстура (чаще всего это HDR-карта).

Освещение мира в EEVEE визуализируется и сохраняется в текстурах меньшего


разрешения, прежде чем применять их к объектам. Это делает освещение менее
точным, нежели в Cycles, но дает выигрыш в производительности.

В то время как мировое освещение прекрасно для освещения одного объекта,


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

Лампы (Lamps)
Наряду с освещением мира, лампы — еще один способ добавить свет в вашу сцену.
Разница в том, что они не видны непосредственно в визуализированном
изображении и легче управляются, так как являются объектами определенного типа.

Общие настройки
Type
Определяет физическую форму света.

Color
Цвет излучаемый лампой.

Power
Интенсивность света. Воздействует как на зеркальный, так и на рассеянный свет.
Значение может быть отрицательным, но в таком случае сцена уже не будет PBR.

53
Specular
Множитель интенсивности света. Используйте этот параметр для более
художественного контроля. Устанавливая данный параметр в значения отличные от
1.0, вы будете получать нефотореалистичный результат.

Size (или Radius)


Размер лампы в Blender-единицах. Увеличение этого параметра сделает тени от
данного источника света более мягкими.

Custom Distance
Если опция активирована, используется пользовательское расстояние затухания
(параметр Distance) вместо глобального светового порога. Расстояние определяет,
где влияние света будет равняться 0.

54
Рис 6.1) В качестве источника света выступает лампа Area. С увеличением
интенсивности света сцена становится ярче, с увеличением размера лампы тени
становятся мягче, а с увеличением дальности освещения, лампа освещает большую
площадь сцены.

Типы ламп
Point

Точечные лампы излучают свет одинаково во всех направлениях. При значении

55
размера (Radius) больше нуля, они становятся сферическими лампами, которые дают
мягкие тени.

Strength
Мощность точечных ламп, указана в ваттах.

Sun

Солнечные лампы излучают свет в определенном направлении. Их позиция не


учитывается; они всегда находятся вне сцены, бесконечно далеко.

Однако их позиция учитывается при формировании теней (подробно о них


поговорим при рассмотрении каскадных карт теней).

Поскольку лампы этого типа не расположены внутри сцены, их сила использует


отличные от других ламп единицы измерения, и обычно должна быть установлена на
более низкие значения.

Strength
Сила света, измеряется в ваттах на квадратный метр.

Angle
Параметр Angle изменяет размер солнечного света в зависимости от его углового
диаметра, если смотреть с Земли.

Spot

Лампы Spot излучают свет в определенном направлении внутри конуса. Установив


параметр Radius больше нуля, они будут создавать мягкие тени.

Spot Shape
Форма лампы.

Параметр размера (Size) определяет размер конуса, в то время как параметр


смешивания (Blend) может смягчать края конуса. Show Cone отображает конус
лампы в окне 3D-вида.

Заметка: В отличии от Cycles, размер лампы Spot не меняет мягкость ее конуса.

Area

56
Лампы Area излучают свет из прямоугольной или эллиптической области.

Shape
Форма лампы.

Square
Форма лампы может быть представлена как квадрат и изменена с помощью
параметра «Size».

Rectangle
Форма лампы может быть представлена в виде прямоугольника и изменена с
помощью значений X и Y.

Disk
Форма лампы может быть представлена как диск и изменена с помощью свойства
«Size».

Ellipse
Форма лампы может быть представлена как эллипс и изменена с помощью значений
X и Y.

Рис 6.2) Для всех ламп установлена сила света 250 ватт, за исключением типа Sun.
Для нее сила составляла 10 ватт/м2.

Shadows (настройки теней)


Clip
Расстояние от лампы, на котором начинается теневая карта. Любой объект до этого
расстояния не будет отбрасывать тень. Параметр Clip End будет доступен только для
ламп с типом Sun.

Softness

57
Размер фильтра, применяемого к теневой карте. Этот размер фильтра не зависит от
разрешения карты тени. Более высокий размер фильтра может иметь большое
влияние на производительность. Максимальный размер фильтра (в пикселях)
зависит от разрешения тени.

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

Exponent
Экспонента применяется при использовании алгоритма ESM для уменьшения
«утечки» света.

Bleed Bias
Смещение применяется при использовании алгоритма VSM для уменьшения
«утечки» света.

58
59
Рис 6.3) С помощью параметра Softness можно сгладить низкое разрешение
теневой карты, и тем самым получить мягкие тени без использования опции Soft
Shadows и без поднятия количества сэмплов. Опции Bias, Exponent и Bleed Bias
пригодятся для корректировки результатов, но не стоит доводить их до крайних
значений (как это сделано в примере для наглядности). Как правило, их значения по
умолчанию уже дают неплохой результат, и сильно отклоняться от них, чаще
всего, не имеет смысла.

Contact Shadows (контактные тени)


Этот тип теней существует для того, чтобы исправить «утечку» света, вызванную
смещением или субдискретизацией тени. Они используют буфер глубины для поиска
окклюдеров (как и Screen Space Reflections). Однако точно так же, как и Screen Space
Reflections, они страдают от тех же ограничений: неизвестная толщина объекта и
эффект исчезает на краях экрана.

Расстояние воздействия контактных теней должно оставаться небольшим. Они


недостаточно точны, чтобы затенять всю сцену.

Distance
Расстояние, на котором происходит поиск окклюдера в экранном пространстве.

Softness
Контролируйте, насколько мягкими будут контактные тени. Размытие контактных
теней не соответствует физическому размеру источника света.

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

Thickness
Толщина пикселей, используемая для обнаружения окклюзии.

60
Рис 6.4) Как и в случае с корректирующими параметрами теней, значения по
умолчанию для контактных теней подходят для большинства ситуаций (за

61
исключением параметра Thickness), и сильное отклонение от них может сделать
лишь хуже. Будьте бдительны при их изменении, так как исправив проблему в одном
месте, можно не заметить, как создали ее в другом.

Cascaded Shadow Map (каскадная карта


теней)
Эти специальные теневые карты используются лампами с типом Sun. Это связано с
тем, что они могут затенять большие сцены, распределяя несколько теневых карт по
усеченному диапазону. Каждый каскад покрывает индивидуальную часть усеченного
вида. Обратите внимание, что каскадная теневая карта всегда обновляется, потому
что эти карты зависят от вида. Это означает, что они требуют значительных
вычислительных ресурсов.

Count
Количество каскадов для использования. Большее количество означает более
высокую точность, но и более медленное обновление.

Fade
Переходная область между двумя каскадами. Более высокие значения означают
меньшее общее разрешение, потому что каскады должны перекрываться.

Max Distance
Расстояние от вида (или камеры, если находится на виде из камеры), которое должно
быть закрыто каскадом. Если дальность обзора вида/камеры (far clip) меньше
параметра Max Distance, будет использоваться параметр far clip в качестве Max
Distance. Работает только в перспективном режиме отображения.

Distribution
Увеличивает разрешение в направлении ближайшей плоскости усеченной пирамиды
вида (фруструма). Работает только в перспективном режиме отображения.

62
Рис 6.5) В случае освещения большой сцены не стоит гнаться за качеством теней
дальних объектов. Сосредоточьте все вычислительные ресурсы на ближних

63
объектах. Для дальних объектов достаточно будет того, чтобы тени от них
просто были.

64
Indirect Lighting (кеш непрямого света)
Хотя это не совсем правильно, но все освещение, которое не выходит
непосредственно из объекта «лампа», считается непрямым освещением в EEVEE.
Это означает, что освещение HDRI (или мир) рассматривается как непрямое
освещение. Меш-объекты, использующие нод Emission, также рассматриваются как
непрямое освещение.

В EEVEE непрямое освещение разделяется на два компонента: Diffuse и Specular.


Оба имеют разные потребности и представление. Для эффективности данные
непрямого освещения предварительно вычисляются в статический кеш освещения.

На данный момент световой кеш является статическим, и его необходимо вычислять


перед рендерингом. Он не может быть обновлен для каждого кадра (с помощью
Python это можно реализовать). Это ограничение будет удалено в будущих версиях
движка.

Запечен может быть лишь свет, независимый от угла обзора. Вот почему Reflection
Planes не хранятся внутри светового кеша.

В процессе запекания используются видимые на активном слое объекты и


коллекции.

Отскоки света
Чтобы запечь отскоки света в большой сцене, процесс запекания можно запускать
несколько раз, используя предыдущий результат запекания для последующего.
Общее время запекания имеет практически линейную зависимость от количества
отскоков света.

Отскоки света относятся только к рассеянному (диффузному) освещению.

Непрямое освещение
Auto Bake
Включение этой опции приведет к повторному запеканию при изменении зонда.
Полезно при позиционировании объектов зондов.

65
Diffuse Bounce
Количество отскоков света при запекании диффузного света (diffuse irradiance).

Cubemap Size
Размер отражающих кубических карт.

Diffuse Occlusion Size


Каждый сэмпл также хранит теневую карту, которая используется для сведения к
минимуму «протечки» непрямого света. Этот параметр определяет размер этой
теневой карты.

Irradiance Smoothing
Зонд Irradiance создает более мягкую интерполяцию освещенности, что может
привести к «протечке» света. Данный параметр ослабляет воздействие этой
интерполяции. Это может привести к тому, что освещение не будет правильно
интерполироваться на некоторых поверхностях.

Clamp Glossy
Параметр позволяет ограничить цвет пикселя для уменьшения шума, производимого
глянцевыми отражениями внутри кубических карт (0 — опция отключена).

Filter Quality
Позволяет использовать больше сэмплов при фильтрации кубических карт, чтобы
избежать появления артефактов. На данный момент влияет только на кубические
карты.

Cubemap Display
Отображает запеченные кубические карты отражений, присутствующие в кеше,
непосредственно в окне 3D-вида.

Irradiance Display
Отображает образцы отраженного света, присутствующие в кеше, непосредственно в
окне 3D-вида.

66
Рис 7.1) Все представленные выше параметры идеально сбалансированы, с точки
зрения качества и производительности (значения по умолчанию). Повышение

67
качества значительно повышает время запекания, без явного улучшения и
наоборот.

Заметка: Отображение данных кеша работает только в окне просмотра и только в


том случае, если в окне просмотра используется мировое освещение, в режиме
lookdev или в режиме рендера.

Зонды (Probes)
Объекты зонды (probes) используются в EEVEE как вспомогательные объекты. Они
записывают информацию об освещении, чтобы осветить сцену с помощью
непрямого освещения (indirect light).

Существует три разных типа зондов. Один для диффузного освещения и два для
зеркального освещения.

Эти типы объектов полезны только для EEVEE (режимы lookdev и rendered). Они
помогают движку вычислять свет быстрее и качественнее.

Irradiance Volumes
Диффузное непрямое освещение хранится в специальных массивах объема. Эти
массивы определяются пользователем, с помощью объектов Irradiance Volumes. Вы
можете располагать эти массивы где угодно в вашей сцене, а также контролировать
их разрешение.

Освещение рассчитывается в точках, видимых при выборе объекта «Irradiance


Volume».

Если функция 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, или если непрямое
освещение не было запечено, для его тени будет использоваться диффузное
освещение мира.

Советы:

При освещении интерьеров постарайтесь подогнать размеры зондов под


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

Viewport Display (отображение в окне 3D-вида)


Influence
Показывает границы влияния в окне 3D-вида. Внутренняя ограничительная рамка
находится в начале спада (параметр falloff).

Clipping
Показывает расстояние отсечения в окне 3D-вида (clipping).

Reflection Cubemaps
Зеркальное непрямое освещение хранится в массиве кубических карт. Они
определяются специальными объектами Reflection Cubemap. Они указывают, в каких
пределах сохранять непрямое освещение и на какие объекты применять его.

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

Если функция Ambient Occlusion включена, она будет применяться «физически


правдоподобно» для зеркального непрямого освещения.

73
Рис 7.4) Для сферических объектов предпочтительнее использовать сферический
тип зонда, для остальных же — кубический.

Заметка: Кубические зонды закодированы в тетраэдрические карты. На


отрицательном Z-полушарии могут возникать некоторые искажения. Они более
заметны при высоких значениях шероховатости.

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, она уже появляется в отражении. Имейте это ввиду, если что.

Custom Parallax (пользовательский параллакс)


По умолчанию объем влияния зонда также является объемом параллакса. Объем
параллакса — это объем, на который проецируется запеченное освещение. Он
должен приблизительно соответствовать окружению. В некоторых случаях лучше
отрегулировать объем параллакса, не затрагивая параметры влияния. В этом случае
просто включите Custom Parallax и измените форму и расстояние объема параллакса.

Рис 7.6) Обратите внимание на изменение отражений на сфере, при изменении


значений параллакса. Эффект на стенах в данном случае не показателен, и вы вряд
ли захотите видеть его на своих рендерах.

Viewport Display (отображение в окне 3D-вида)


Influence
Показывает границы влияния в окне 3D-вида. Внутренняя сфера/ограничительная
рамка находится в начале спада (параметр falloff).

Clipping
Показывает расстояние отсечения в окне 3D-вида (clipping).

Parallax
Показывает границы влияния опции Custom Parallax в окне 3D-вида.

77
Reflection Planes
Эти специальные типы зондов подходят для гладких плоских поверхностей. По сути
своей они захватывают всю сцену, как если бы камера находилась на их месте (как
зеркало).

Использование этих зондов существенно сказывается на времени рендеринга,


потому что сцена должна отрендериться столько раз, сколько отражающих
плоскостей присутствует в сцене.

Если SSR не включено, Reflection Planes работают только на зеркальных


поверхностях с шероховатостью равной 0.

Если SSR включено, Reflection Planes будет служить опорным буфером. Это ускорит
процесс трассировки и поможет заполнить отсутствующие данные в пространстве
экрана. Это также делает отражение более правильным для поверхностей, имеющих
среднюю шероховатость и пользовательские нормали (то есть карты нормалей).

Рис 7.7) При виде сверху на объект мы не видим его нижнюю часть и
соответственно не можем ее отразить в пространстве экрана. Зонд Reflection
Plane здорово помогает в подобных ситуациях.

Заметка: Подповерхностное рассеивание, отражения в экранном пространстве и


объемы не отражаются в плоскостях отражения.

Размещение
Если параметр Backface Culling не включен, привязка плоскости отражения к
плоской поверхности будет эффективно захватывать нижнюю поверхность.

78
Ручного перемещения плоскости отражения над поверхностью достаточно, чтобы
она не появлялась в отражениях. В качестве альтернативы вы можете поместить
объект пола в коллекцию, и использовать ее в виде коллекции видимости
(инвертированной), внутри настроек зонда Reflection Plane.

Distance
Объект зонд влияет только на освещение ближайших поверхностей. Эта зона
влияния определяется параметром Distance и масштабированием объекта.

Для отражающих плоскостей расстояние воздействия — это расстояние от


плоскости. Только поверхности, нормали которых выровнены с плоскостью
отражения, получат захваченное отражение.

Рис 7.8) На первом изображении плоскости не отражаются на полу, в отличии от


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

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

79
Рис 7.9) Результат работы опции Falloff.

Clipping Offset
Определяет, насколько ниже плоскости находится расстояние отсечения при захвате
сцены. Увеличение этого параметра может устранить проблемы с отражением.

Рис 7.10) С повышением значения мы постепенно исключаем отражения с наших


объектов.

Visibility Collection
В некоторых случаях полезно ограничить видимость объектов в световом зонде.
Например, объект, который находится слишком близко к точке захвата. Это то, что
делает коллекция видимости (Visibility Collection). Только объекты, находящиеся в
этой коллекции, будут видны зонду во время захвата сцены.

Существует также возможность инвертировать видимость коллекции и скрыть


объекты внутри указанной коллекции.

Заметка: Это только вариант фильтрации. Это означает, что если объект не
отображается во время визуализации, то он и не будет отображаться во время
рендеринга зонда.

80
Viewport Display (отображение в окне 3D-вида)
Arrow Size
Размер стрелки в окне 3D-вида, показывающей направление нормали плоскости
отражения.

Show Data
Показывает захваченное отраженное изображение на зеркальной плоскости в окне
3D-вида (в режиме lookdev).

81
Ограничения
EEVEE создавался с прицелом на интерактивность. Некоторые функции могут быть
недоступны или могут быть невозможны для реализации в рамках архитектуры
EEVEE без ущерба для производительности.

Вот довольно исчерпывающий список всех ограничений, с которыми вы можете


столкнуться при работе с EEVEE.

Камеры

В настоящее время поддерживаются только перспективные и ортографические


камеры.

Источники света

Тени не поддерживаются на дубликатах ламп (instance objects, group instancing).


В сцене может поддерживаться только 128 активных ламп.
В сцене может поддерживаться только 8 ламп с типом Sun.
На данный момент свет может иметь только один цвет и не поддерживает
настройку цвета с помощью нодов.

Световые зонды

EEVEE поддерживает только 128 активных кубических карт (Reflection


Cubemap).
EEVEE поддерживает только 64 активных объемов непрямого освещения
(Irradiance Volume).
EEVEE поддерживает только 16 активных отражающих плоскостей (Reflection
Plane) внутри усеченной пирамиды вида.

Непрямое освещение (Indirect Lighting)

Объемы не получают свет от зондов Irradiance Volumes, но получают


диффузное освещение от мира.
EEVEE не поддерживает отскок луча от глянцевой на диффузную поверхности
или от глянцевой на глянцевую.
Все зеркальное освещение отключается во время запекания.

82
Объемы

Поддерживается только однократное рассеивание.


Объемы рендерятся лишь для лучей камеры. Они не появляются в отражениях/
преломлениях и зондах.
Объемы не получают свет от зондов Irradiance Volumes, но получают
диффузное освещение от мира.
Объемное затенение работает только с другими объемами. Они не будут
отбрасывать тени на другие объекты в сцене.
Объемное затенение работает только внутри усеченной пирамиды вида.
Объемное освещение не учитывает формы ламп. Все они рассматриваются как
точечные лампы (Point).

Ambient Occlusion

Объекты рассматриваются как бесконечно толстые, создавая «перезатемнение»,


если расстояние слишком велико (Distance).

Подповерхностное рассеивание

Только один BSSRDF может производить подповерхностное рассеивание в


пространстве экрана.
Этот BSSRDF в настоящее время выбирается произвольно.
Лишь 254 различных поверхностей могут использовать подповерхностное
рассеивание.
Только масштабирование регулируется попиксельно. Цветовые радиусы
настраиваются с помощью нодов.
Входное излучение от каждой поверхности не изолировано во время размытия,
что приводит к «протечке» света с одной поверхности на другую.

Отражения в экранном пространстве (SSR)

Только один глянцевый BSDF может излучать отражения в экранном


пространстве.
Этот BSDF в настоящее время выбирается произвольно.
Screen Space Reflections будет отражать прозрачные и непрозрачные объекты,
используя рефракцию пространства экрана, но без точного позиционирования,
лишь из-за одного слоя буфера глубины.

Преломления в экранном пространстве

83
Правильно смоделировано только первое преломление.
Только непрозрачные (opaque) и альфа-хешированные (alpha hashed) материалы
могут преломляться.

Управление памятью
На данный момент EEVEE использует OpenGL, и управление памятью GPU
осуществляется с помощью драйвера OpenGL. Теоретически только необходимые
текстуры и меши (теперь называемые «ресурсами») для одного вызова (draw call)
должны записываться в память GPU.

Поэтому если сцена действительно тяжелая, драйвер будет загружать и выгружать


«ресурсы», чтобы все объекты были визуализированы корректно.

На практике использование слишком большого количества GPU-памяти может


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

Нет стандартного способа определить, поместятся ли все ресурсы в память GPU или
будет ли рендеринг выполнен корректно.

Рендеринг на процессоре (CPU)


Будучи рендером OpenGL, EEVEE использует только мощность графического
процессора для рендеринга. Нет никаких планов поддержки рендеринга на CPU,
поскольку это было бы очень неэффективно. Мощность процессора по-прежнему
необходима для обработки сцены с высокой степенью сложности, поскольку
геометрия все еще подготавливается процессором перед рендерингом каждого кадра
на видеокарте.

Поддержка нескольких видеокарт (Multiple GPU)


В настоящее время нет поддержки для нескольких видеокарт.

Рендеринг без видеокарты


В настоящее время нет возможности для использования EEVEE на системах без
диспетчера отображения (Display Manager).

84

Вам также может понравиться