Полезное

Мы Вконтакте

Discord канал

Освещение и окружение

UEngine.RU » Материалы сайта » Документация » Освещение и окружение

Апр 06 2016

Тени дают объектам ощущения контакта с поверхностью, тем самым позволяя ощутить глубину и пространство.Статические тени отображаются настолько далеко, насколько идёт рендеринг, но динамические тени могут сильнее сказатся на производительности.Данный документ покажет базовые виды теней которые есть в Unreal Engine 4.

Static Lights

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

Тени в unreal engnine 4

Персонаж на картинке выше, тот что слева, стоит под статическим светом, свет и тени никак не взаимодействуют с ним; а тот что справа, стоит под стационарным источником света.

Прямое освещение каскадными картами теней(затенение всей сцены)

Directional Stationary Lights — специальные источники света, т.к. они поддерживают затенение всей сцены посредством Cascaded Shadow Maps, в момент использования статического затенения.Это очень удобно на уровнях с множеством анимированной растительности; вы хотите движущиеся тени вокруг игрока, но не хотите переплачивать за чрезмерное количество каскадов, для покрытия больших дистанций обзора.С увеличением расстояния, динамические тени растворяются среди статических теней настолько, что переход практически незаметен.Чтобы применить данную возможность, просто измените значение Dynamic Shadow Distance StationaryLight в DirectionalLightStationary, чтобы изменить дистанцию растворения.

Тени Стационарных источников света

Динамические объекты (такие как StaticMeshComponents и SkeletalMeshComponents с подвижностью установленной в Movable) должны быть интегрированны в мировое статическое затенение на дистанции полей карт затенения.Это достигается с помощью теней для каждого объекта.Каждый подвижный объект создаёт 2 динамические тени от стационарного источника света: одну, для управления статической тени проецируемой на объект и вторую, для управления тени проецируемую на остальной мир.С такой настройкой, затенение для стационарных источников света происходит от динамических объектов,которое оно затрагивает.Это означает, что стоимость может варьироваться от очень маленькой, до огромной, в зависимости от того, сколько присутствует динамических объектов.При наличии достаточного количества динамических объектов, более эффективным будет использование Movable освещения. На сцене ниже, сферы — подвижный объект, и все они получают тени от статического мира и проецируют собственные тени, которые соединяются с остальными тенями на отдалении.Фруструм Per Object теней для каждого подвижного объекта также показан.

Тени в unreal engnine 4

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

Динамические тени

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

Динамические тени самые ресурсоёмкие.

Превью теней

Когда редактируете стационарное или статическое освещение, тени могут стать «незапечёнными», Preview Shadowing показывает вам как будут выглядеть ваши тени после запекания.

Такие (имеется ввиду незапечённые ) тени показываются в редакторе с наложенным поверх текстом «Preview«, для распознавания их среди других теней.

Тени в unreal engnine 4

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

Тени в unreal engnine 4

Для того, чтобы получить тени из превью теней, вам необходимо выбрать опцию Build Lighting из меню Build.

Тени в unreal engnine 4

Вы можете отключить превью теней посредством снятия галочки с Preview Shadows Indicator во вьюпорте Show/Visualize меню.

Если вы хотите изменить текст материал функции освещения, которая проецирует этот текст, то вы можете его найти в : Engine/EditorMaterials/PreviewShadowIndicator.

Всё вместе

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

Тени в unreal engnine 4

Добавил: RedComrade Категория: Освещение и окружение Читать дальше »

Мар 14 2016
Sky Light

Sky Light имитирует небесное освещение путем захватывания панорамного изображения (так же именуемое как Cubemap) дальних частей сцены (которые дальше параметра SkyDistanceThreshold), и применения его в качестве освещения. Это значит, что освещение от Sky Light будет схож с окружением сцены. В том числе будет захватывать и побочные объекты, вроде наложенных облаков на скайбокс или гор вокруг сцены. Вы так же можете вручную установить Cubemap’у, которая будет освещать пространство.

Изображение Sky Light будет изменено только тогда, когда вы перепросчитываете освещение или обновляете сцену при помощи команды Build -> Update Reflection Captures. Вы также можете обновить SkyLight при помощи кнопки Recapture Scene в параметрах Sky Light. Учтите, что если вы измените текстуру неба или окружение, дальше параметра SkyDistanceThreshold, освещение не изменится автоматически.

Sky Light можно использовать вместо Ambient Cubemap, потому что Sky Light поддерживает локальное затенение, которое препятствует освещению внутренних помещений от небесного освещения.

Иконка SkyLight

Sky Light бывает двух типов в зависимости от подвижности:

Static (Статичный свет) — источник света такого типа не может быть изменен во время игры. Это самый быстрый способ для рендеринга и позволяет использовать заранее просчитанное, «запеченное» освещение.

Stationary (Стационарный свет) — при использовании этого типа, тени и отраженный свет будут статичными, а все остальное будет динамичным. Это позволяет вам во время игры изменять цвет и интенсивность света, но такой свет не может двигаться.

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

Со SkyLightБез SkyLight

Статичный Sky Light

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

Примечание: Статичный Sky Light воздействует только на Статичные или Стационарные обьекты. Более того, только Emmisive материалы могут быть захвачены в качестве панорамного изображения для статичного освещения во избежании цикличности. Убедитесь, что к вашему skybox’у применен Unlit материал.

Стационарный Sky Light

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

Предварительно просчитанное освещение хранит информацию о преградах на пути света и называется Bent Normal. Там где на пути света стоит множество преград, применяется эта технология. Это позволяет немного улучшить качество освещения, например в труднодоступных местах.

Первое изображение показывает Sky Light без использования Bent Normal. Второе изображение показывает Sky Light со включенным Bent Normal.

Без Bent NormalBent Normal

Стационарный Sky Light воздействует только на Статичные или Стационарные обьекты.

Как и все виды стационарного освещения, цвет направленного света может быть изменен при помощи Blueprint (визуальных скриптов) или Matinee. Однако цвет ненаправленного освещения заренее просчитывается в Lightmap и не меняется во время игры.

На первом изображении свет просчитан без использования SkyLight. На втором он используется в качестве добавки к основному Global Illumination и делает сцену чуть более освещенной.

Без Sky LightSky Light GI

Movable Sky Light

Movable Sky Light (подвижный небесный свет) не использует предварительный расчет. Все вычисления производятся во время игры.

Distance Field Ambient Occlusion

Освещение при помощи подвижного небесного света выполняется при помощи новой функции под названием Distance Field Ambient Occlusion. Эта функция поддерживает динамические изменения сцены — обьекты могут быть перемещены или скрыты и это не повлияет на игру. По умолчанию, эта функция отключена и ее нужно вручную настраивать.

Ограничения

Эти функции могли бы быть полезными, но еще не реализованы:

  • Мягкие тени от обьектов или персонажей.
  • Динамическое обновление сцены для типов Stationary и Movable. В визуальных скриптах есть функция RecaptureSky(), которую можно использовать, но это может вызвать ошибки.

Параметры Sky Light

Параметры Sky Light делятся на 2 категории: Light и Sky Light.

Light

Параметр Описание
Intensity Сила излучения света.
Light Color Определяет цвет света.
Affects World Может ли свет влиять на мир, или эта опция отключена.
Casts Shadows Должен ли свет отбрасывать тени.

Sky Light

Включение/отключение нижней полусферы.Обновление SkyLight. При нажатии, обновляет кубическое изображение, которое используется для освещения.

Свойство Описание
Source Type Определяет исполльзовать источник света или назначенную cubemap. Ко всему что находится дальше чем SkyDistanceThreshold от Sky Light, будет применяться это освещение.
Cubemap Назначает Cubemap, если тип источника света установлен на SLS_SpecifiedCubemap.
Sky Distance Threshold Расстояние от Sky Light,на котором любая геометрия должна рассматриваться как часть неба (также используется ReflectionCapture).
Lower Hemisphere is Black Определяет, будет ли небесное освещение освещать только с верхней полусферы. Если параметр отключен, SkyLight будет освещать сцену и снизу.
Recapture Scene Обновляет панорамное изображение, которое используется в качестве небесного освещения.
Добавил: Flakky Категория: Освещение и окружение Читать дальше »

Фев 16 2016
Просчет освещения

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

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

Возможности статического и стационарного освещения.

Отражение света

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

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

Только прямое освещение

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

Первый отскок света

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

Второй отскок фотонов

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

Результат просчета

Если ваша поверхность имеет контрастный и яркий цвет, то это может сильно повлиять на непрямое освещение. Если эффекта не достаточно, вы можете увеличить параметр DiffuseBoost в материале или же самом уровне.

Влияние цвета на отражение светаОтображение, как цвет влияет на отражение цвета

Освещение динамики

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

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

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

Визуализация семплеровВизуализация

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

Вы можете визуализировать семплеры через меню Вьюпорта Show > Vizulize > Volume Lighting Samples.

Ограничения

По умолчанию, создание кеша на больших картах приведет к огромному количеству подобных семплеров. Это может вызвать проблемы с оптимизацией. Используйте параметр Static Lighting Level Scale в настройках освещения вашей карты, что бы исправить данную проблему.
Динамические объекты, находящиеся вне Lightmass Importance Volume, будут иметь полностью черную затененную сторону.

Ambient Occlusion

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

Ambient Occlusion (AO) — это специальный алгоритм затенения поверхности, который вы можете увидеть при равномерно яркой атмосфере (например пасмурной погоде). Данный алгоритм затенияет углы, проемы и остальные «тесные» места при непрямом и прямом освещении, после чего запекает это вместе с остальным просчетом в текстуры. AO включен по умолчанию, однако вы можете его выключить в настройках просчета (Lightmass Settings) в World Settings.

На первом скриншоте сцена без Ambient Occlusion, а второй скриншот уже с ним. Обратите снимание на затенения поверхности там, где объекты близко друг к другу.

Без Ambient OcclusionAmbient Occlusion

Настройки AO

Параметр Описание
Visualize Ambient Occlusion Помещает в запеченые текстуры только AO, при этом остальное освещение не учитывается. Полезно для того, что бы настроить данный эффект и точно видеть, где и как сильно он применяется.
Max Occlusion Distance Максимальная дистанция от объекта, на которой он будет отбрасывать подобную тень на другие поверхности.
Fully Occluded Samples Fraction Максимальный процент затенения, выше которого AO будет полностью черным.
Occlusion Exponent Контраст

Просчет Ambient Occlusion почти ничего не стоит до тех пор, пока Num Indirect Lighting Bounces выше 0.

Ограничения

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

Тени от Masked материалов

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

Тени от Masked материаловВизуализация света для Masked

Возможности Статичных источников освещения

Объемные источники

При просчете освещения, все источники освещения с режимом мобильности Static имеют определенный размер (в других случаях свет излучается из точки). Point и Spot источники используют сферу в качестве формы, в то время как Directional использует диск на краю сцены. Контролировать радиус сферы у первых двух можно с помощью Light Source Radius параметра. Из-за того, что источники света имеют определенный размер, тени от объектов имеют свойство становиться мягче на расстоянии, так же как и в реальном мире появляется полутень.

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

Тени одного размераПостепенно рассеивающиеся тени

Радиус Point и Spot Light можно увидеть благодаря желтой сетке сферической формы. Белая сетка означает радиус влияния источника света. Следите за тем, что бы радиус самого источника света не пересекал геометрию, иначе такой источник будет излучать свет и с другой стороны и может так же создать артефакты в конечном результате.

Радиус источника света

Тени от прозрачных материалов

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

Тени от прозрачных материалов

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

Режимы смешивания BLEND_Translucent и BLEND_Additive — Цвет тени = интерполяция между белым и цветом из BaseColor в зависимости от свойства Opacity.
Режим BLEND_Modulate выдает цвет тени такой же, как и BaseColor свойство материала.

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

Жесткость теней

Существует несколько способов контролировать жесткость теней от полупрозрачных материалов.

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

Жесткие тени от прозрачного материалаМягкие тени от прозрачного материала

На первом изображении ниже использовался свет из одной точки, как и на втором примере выше, однако разрешение карт освещения (Lightmap resolution) довольно малое, что бы сохранить четкость материалов. На втором изображении в материале было установлен параметр Export Resolution Scale на очень низкий, из-за чего тени хоть и низкого разрешения, но жесткие.

Низкое качество тенейВысокое качество теней

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

Воздействие прозрачных теней на непрямое освещение

Ограничения

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

Создание качественного освещения

Выделяющийся свет

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

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

На изображениях ниже вы можете сравнить, как на первом видно свет при светлых материалах, и на втором, где заметны только резкие смены освещения из-за того, что там использовались в основном темные и «шумные» текстуры.

Нормальное освещениеТемное освещение

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

Нормальные цвета материаловТемные цвета материалов

Настройка освещения

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

Улучшение качества освещения

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

Предустановка качества просчета

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

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

Ускорение процесса просчета

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

Используйте высокое разрешение карт освещения только в тех местах, где у вас есть контрастное (сильно меняющиеся) освещение и жесткие тени. Уменьшайте разрешение на тех моделях, которые не попадают под прямое освещение или тени. Если объект находится в зоне, где освещение будет непрямым, лучше поставить разрешение поменьше.
Поверхности, которые никогда не увидит игрок должны быть с наименьшим разрешением.
Используйте Lightmass Importance Volume для того, что бы выделить важные зоны для просчета освещения (например только те, где может находится сам игрок).
Оптимизируйте разрешение карт таким образом, что бы оно было равномерным. Запомните, что процесс просчета никогда не может быть быстрее, чем самый медленный объект для просчета, не важно, сколько машин у вас занимается этим процессом. Избегайте больших объектов с очень высоким разрешением. Лучше поделите их на несколько модульных кусков, в особенности если у вас несколько ядер или несколько машин, просчитывающих освщение.
Объекты, которые сами себя перекрывают будут просчитываться в разы дольше. Например ковер с несколькими слоями полигонов, наложенных друг на друга для получения 3х мерного эффекта, будет просчитываться значительно дольше, нежели просто плоский пол.

Существует очень полезное окно — Lighting Build Info. В нем вы сможете проверить, сколько заняло времени, что бы просчитать карту для конкретного примера. Вы можете найти это окно под меню Build > Lighting Info > Lighting StaticMesh Info. Переключите вкладку на Lighting Build Info, что бы найти нужную информацию.

Lighting Build Info

Настройка просчета освещения

lightmass Importance Volume

Границы многих карт, в особенности открытых, уходят гораздо дальше, чем играбельная зона. Процесс просчета излучает фотоны в зависимости от размера карты, поэтому фоновые объекты за границами игровой площадки могут сильно тормозить процесс просчета, так как увеличивается общее количество фотонов. Lightmass Importance Volume устанавливает, в какой зоне излучаются и просчитываются фотоны более точно и реалистично. Это позволяет сфокусировать внимание процесса просчета только там, где там, где будет находится игрок и видеть результаты освещения вплотную. В пространстве вне Lightmap Importance Volume просчитывается только один отскок непрямого освещения и более низкого качества.

На первом изображении ниже показана игровая локация сверху с включенным режимом просмотра Wireframe. Зона, где будет находится игрок и которой нужно более качественное освещение гораздо меньше. На втором изображении игровая зона приближена. На ней так же установлен Lightmass Importance Volume (Он выделен). Радиус приорететного просчета уменьшился с 80 000 юнитов до 10 000, что в 64 раза меньше.

Игровая локацияКонкретное место игры

Вы можете добавить Lightmass Importance Volume на уровень, перетащив его с панели Modes, категории Volumes. После чего нужно установить размер зоны.

Добавление Lightmass Importance Volume

Вы так же можете сконвертировать любой BSP Браш. Вам нужно выделить его, нажав на параметр Convert Actor на панели Details, и выбрать Lightmass Importance Volume из выпадающего списка.

Конверт BSP в Lightmass Importance Volume

Если вы установите несколько подобных зон на уровень, тогда большая часть света будет просчитываться в контейнере, который описывает все Lightmass Importance зоны. Однако семплеры непрямого освящения будут помещены только внутрь выставленных на сцену Volume’ов.

Настройки сцены

Настройки просчета освещения можно изменить в настройках сцены — так называемой World Settings панели. Параметры для освещения находятся под категорией Lightmass.

Настройки сцены

Вы можете отобразить World Settings панель, кликнув на иконку Settings на Тулбаре и выбрав в выпадающем списке соответствующий пункт.

Параметр Описание
Force No Precomputed Lighting Отключает статичное освещение на сцене, указывая, что на ней будет только динамическое освещение, а так же не будет хранится никаких карт освещения в файле. Что бы очистить файл сцены от карт освящения (которые могут весить достаточно много), вам нужно включить данный параметр и ещё раз нажать на Build для просчета и вычещения карт.
Static Lighting Level Scale Масштаб сцены по сравнению со стандаатной системой в UE4 (1 юнит = 1 см). Это используется для того, что бы определять, насколько детальнее должен быть просчет. Учитывайте, что уменьшение данного параметра приведет к увеличению времени просчета. На больших сценах освещение может просчитываться в 2 или даже 4 раза дольше.
Num Indirect Lighting Bounces Количество отскоков непрямого освящения. 0 — только прямое освещение без отражений от поверхности. параметр 1 и больше включает непрямое освещение, позволяя фотонам отражаться от поверхности. 1й отскок занимает всегда больше всего времени, но и имеет больше влияния на само освещение, чем последующие, которые так же гораздо дешевле в просчете.
Indirect Lighting Quality Увеличивает качество непрямого освещения. Высокие настройки могут избавить от некоторых артефактов на сцене, такие как шум или грязь. Учтите, что это не избавит от артефактов, которые возникают из-за UV развертки модели (швы, неправильные тени и т.п.).
Indirect Lighting Smoothness Смягчает непрямое освещение, что так же может избавить от шума. С другой стороны тени непрямого освящения или Ambient Occlusion могут потерять свою детализацию. Иногда полезно уменьшать данный параметр до 0.66 или 0.75, при этом увеличивая параметр Indirect Lighting Quality. Таким образом можно сохранить детализацию, но при этом избавиться от шумов. Однако такой прием может повлиять на время просчета освещения в худшую сторону.
Environment Color Цвет, который подхватывается в процессе просчета. Данный параметр можно визуализировать как сферу вокруг сцены, которая излучает указанный цвет во все стороны.
Environment Intensity Усиливает параметр Envirement Color.
Diffuse Boost Определяет влияения Diffuse свойства при просчете освещения. Другими словами, без данного параметра свет будет отражаться от поверхности со своим цветом, не подхватывая цвет самого материала. Обратите внимание, что повышая параметр Diffuse Boost, вы не сделаете непрямое освещение святлее, так как свет ограничен яркостью 1.0, а при каждом отскоке он становится все слабее.
Use Ambient Occlusion Определяет, будет ли в процессе просчитываться так называемый Ambient Occlusion и запекаться с основными картами освещения.
Direct Illumination Occlusion Fraction Как сильно AO накладывается под прямым освящением.
Indirect Illumination Occlusion Fraction Как сильно AO накладывается под непрямым освящением.
Occlusion Exponen Определяет контраст эффекта AO.
Fully Occluded Samples Fraction Максимальный процент затенения, выше которого AO будет полностью черным.
Max Occlusion Distance Максимальная дистанция от объекта, на которой он будет отбрасывать подобную тень на другие поверхности.
Visualize Material Diffuse Заменяет обычное прямое и непрямое освещение цветом, соответствующим Diffuse свойством материала. Это полезно для удостоверения того, что Diffuse свойство на материалах соответствует тому, какой цвет будет участвовать в просчете освящения.
Visualize Ambient Occlusion Помещает в запеченые текстуры только AO, при этом остальное освещение не учитывается. Полезно для того, что бы настроить данный эффект и точно видеть, где и как сильно он применяется.
Level Lighting Quality Определяет общее качество просчета освещения и его настройки.

Настройки источников света

Настройки источников света

Параметр Описание
Indirect Lighting Saturation Насыщенность непрямого света от источника света.
Shadow Exponent Контролирует радиус полутени, или другими словами, как быстро тень от источника света меняется с полностью темногой до её же отсутствия.
Light Source Angle Определяет угол под которым стоит источник света относительно той поверхности, куда попадает его свет. Влияет на размер полутеней. Только для Directional Light.

Настройки BSP примитивов

Настройки BSP

Настройки освещения для BSP геометрии доступны в параметрах объекта на панеле Details, в разделе Lightmass.

Параметр Описание
Diffuse Boost Определяет вклад Diffuse свойства поверхности в процесс просчета освящения.
Fully Occluded Samples Fractio Максимальный процент затенения, выше которого AO на данной поверхности будет полностью черным.
Shadow Indirect Only Определяет, будет ли объект отбрасывать тени только от непрямого освящения.
Use Two Sided Lighting Определяет, будет ли объект освещен с обоих сторон поверхности.

Настройки материала

Настройка материалов

Параметр Описание
Cast Shadow as Masked У полупрозрачного материала (Translucent) указывает, что тени будут отбрасываться как от Masked материала.
Diffuse Boost Определяет вклад Diffuse свойства при просчете статичного освящения.
Export Resolution Scale Увеличивает разрешения Diffuse свойство при экспорте в программу просчета освящения. Полезно, когда стандартное разрешение не дает нужное разрешение при непрямом освящении.
Добавил: Flakky Категория: Освещение и окружение Читать дальше »

Фев 11 2016
Стационарное освещение

Stationary Lights — Стационарные источники света. Предназначены для размещения в одной позиции с возможностью изменения контрастности и цвета. Это то, что отличает их от статичного типа, совершенно не поддающихся изменению во время игры. Однако, учитывайте, что изменения будут влиять только на прямое освещение, так как отраженные лучи просчитываются заранее в Lightmass.

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

Всё непрямое освещение и затенение от неподвижных источников света запечено в Lightmap. Прямые тени – в картах теней. Эти и.с. используют Distance Field Shadows: их тени могут оставаться четкими даже при низком разрешении Lightmap объекта.

Прямое освещение

Прямое освещение неподвижного источника света рендерится в режиме реального времени с использованием отложенного затенения. Что позволяет менять контрастность и цвет на ходу вместе со световыми функциями или IES профилями. И.с. будет иметь высококачественное аналитическое отражение как у подвижного и.с. Прямое освещение может быть активировано или деактивировано параметром «Visible» («Видимость») в настройках источника света.

Прямое затенение

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

Статичное затенение

Для непрозрачных объектов

Lightmass генерирует карты distance field shadow для неподвижных и.с. и статичных объектов в процессе построения освещения. Карты distance field shadow обеспечивают аккуратные тени даже на низких разрешениях, причем всего лишь капельку влияют на производительность. Как и lightmaps, карты distance field shadow требуют развертки для каждого статичного меша, использующего статичное освещение.

Только четыре пересекающиеся неподвижные и.с. могут иметь статичное затенение, поскольку каждое освещение должно быть применено к различным каналам карты теней. Это проблема графа. Таак что, чем меньше пересекающихся и.с., тем лучше (из-за топологии). Затенение не может влиять на проверку пересечения: солнечный свет обычно требует отдельный канал всего уровня, на котором он находится, даже для подземных областей.
Как только будет превышен лимит на каналы, неподвижные и.с. начнут использовать полноценные динамические тени, сильно влияя на производительность. Можно использовать режим просмотра «StationaryLightOverlap» («Пересекающиеся неподвижные и.с.») для визуализации пересечений и.с., которые будут обновляться в режиме реального времени после изменений каких бы то ни было источников света.
Иконка и.с. изменится на красный крест, указывая на невозможность выделения канала.

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

Полупрозрачность

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



Верхнее изображение: Незатененная «полупрозрачность».
Нижнее изображение: «Полупрозрачность» отбрасывает статичные тени от направленного и.с.

Динамическое затенение

Динамические объекты (такие, как компоненты статичного и скелетного мешей с установленным параметром «Mobility» («Подвижность») должны быть интегрированы в статичное затенение мира distance field shadowmaps. Это осуществляется с использование По-Объектных. Каждый подвижный объект создает две динамические тени от неподвижного и.с.: тень для обработки окружающего мира, отбрасываемую на объект, и тень, отбрасываемую объектом. Такая схема позволяет сказать следующее: затраты на затенение от неподвижных источников света зависят от динамических объектов. Следовательно, влияние на производительность может вырастать до высоких значения, в зависимости от количества динамических объектов. При большом количестве подобных объектов стоит обратить внимание на и.с..

В сцене ниже, все сферы подвижны, и все они отбрасывают тени, которые совмещаются с distance field shadows. Показаны также конусы для каждого из подвижных компонентов.

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

Динамическое затенение направленного света

Направленные неподвижные и.с. особенные, поскольку поддерживают как статичное затенение всей сцены, так и динамическое затенение, при помощи карт каскадных теней. Это очень полезно при работе с уровнями, содержащими большое количество анимированной растительности. В таком случае, логично, что вы хотите иметь вокруг игрока динамические тени, но не хотите жертвовать производительностью. Настройте параметр «Dynamic Shadow Distance StationaryLight» неподвижного направленного и.с. на ту дистанцию, на которой хотите видеть отбрасываемые тени.

Подвижные компоненты все-таки будут создавать По-Объектные тени даже при использовании карт каскадных теней с направленным и.с. Это поведение полезно при использовании динамических теней с небольшой дальностью прорисовки, в других случая появляется ненужная нагрузка. Для отключения По-Объектных теней и сохранения производительности, отключите «Use Inset Shadows For Movable Objects» («Использовать тени для подвижных объектов») источнику света.

Непрямое освещение

Неподвижные и.с. хранят свое ненаправленное освещение в карте освещения, так же, как и статичные и.с.. Его нельзя менять в режиме реального времени, как, к примеру, у направленного освещения. Это означает, что даже тогда, когда свойство «Visible» («Видимый») у и.с. отключено, ненаправленный свет будет запекаться в карту освещения. Параметр «IndirectLightingIntensity» («Интенсивность ненаправленного света») используется для управления (в том числе, и отключения) ненаправленного освещения.

Однако, существует свойство волюма постобработки, называющееся «IndirectLightingIntensity» («Интенсивность ненаправленного освещения»), которое позволяет управлять освещением для всех источников света в сцене. Его можно изменять в режиме реального времени из Блупринта.

Добавил: Flakky Категория: Освещение и окружение Читать дальше »

Янв 24 2016

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

отражения окружающей среды

Быстрая настройка

Для того, что бы начать испольвать отражение окружающей среды — настройте освещение и постройте его.Там (имеет ввиду на сцене) должно присутствовать непрямое диффузное освещение, что бы отражение окружающей среды могло показыватся.Далее, перетащите эктор SphereReflectionCapture из вкладки Modes в вашу сцену и убедитесь, что ваши материалы имеют заметный блеск, и низкую шероховатость.
Используйте режим вихуализации Reflection Override, чтобы увидеть то, что было захвачено.

Глянцевая непрямая зеркальность

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

отражения окружающей среды
только диффуз
отражения окружающей среды
только отражения

отражения окружающей среды
Полное освещение

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

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

отражения окружающей среды

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

отражения окружающей средыотражения на шершавой поверхности без затенений отражения окружающей средыотражения с затенениями

Формы захвата отражений

На данный момент существует 2 формы захвата отражений : сфера и коробка.Форма захвата очень важна, так как она контролирует, какая часть сцены будет захвачена в кубмапу,как форма сцены будет перепроецирована в отражениях, и кака часть сцены сможет получать отражения из кубмапы (зоны влияния).

Форма сферы

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

отражения окружающей среды

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

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

Форма коробки

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

отражения окружающей среды

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

Редактирование

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

Визуализация

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

отражения окружающей среды

Были добавлены несколько новых полезных флажков для изоляции некоторых компонентов освещения:

Флажок Описание
Lighting Components > Diffuse Отключение диффузного вклада от всех методов освещения.
Lighting Components > Specular Отключение зеркальных вкладов от всех методов отражений.
Lighting Features > ReflectionEnvironment Это позволит отключить отражение объектов окружающей среды, но другие свойства отражения по-прежнему будет активной(SSR, analytical specular).

Настройка уровня для использования отражений окрущающей среды

  1. Чтобы иметь хорошие отражения, первым делом необходимо создать дифуузное освещение, включая непрямое освещение, посредством лайтмап.Раздел Lightmass содержит больше информации. Основные ошибки Lightmass, неправильные настройки UV развёрток,отсутствие LightmassImportanceVolume, или Force No Precomputed Lighting установленные в World Properties.

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

  2. Крайне важно,настроить материалы вашей сцены, чтобы они правильно работали с отражениями окружающей среды.Плоская, зеркальная поверхность позволит выявить неточности совмещения проекций кубмап на простые формы.Тем не менее, пышные геометрические или неровные поверхности могут скрыть эти артефакты и обеспечить приемлимые результаты.Поэтому важно использовать detail normal maps и указать некоторую степень шероховатости на материалах, которые будутиспользуется в плоских областях.
  3. отражения окружающей средыСглаженная поверхность, но пышная геометрия — хорошее качество отражений отражения окружающей средыШероховатая поверхность, но плоская геомертрия — хорошее качество отражений отражения окружающей средыСглаженная поверхность и плоская геометрия — видно, что отражения не совпадают
  4. Разместите захват отражений в области, где вы хотите видеть отражения.Попробуйте разместить сферу захвата так, чтобы часть уровня где вам нужны отражения, поместилась внутри радиуса, так как сцена будет проецировать эту форму на сферу.Старайтесь избегать размещения захватов слишком близко к любой геометрии сцены,так как близконаходящаяся геометрия будет доминировать и блокировать важные детали за ними.

Вопросы производительности

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

Ограничения

  • Отражения с помощью этого метода, являются приблизительными.В частности, отражение объекта редко совпадает с фактической формой объекта в сцене из-за проекции его на простые формы.Это приводит к созданию нескольких видов этого объекта в отражениях, так как много кубмап смешивается вместе.Плоские, гладкие поверхности, которые дають зеркальные отражения, более заметно покажут ошибки.Используйте детальные карты нормалей и отражений, чтобы разбить отражения.
  • Захват сцены в кубмапы — медленный процесс, который должен быть выполнен вне игры.Это значит, что динамические объекты не могут быть отображены в отражениях, но тем не меннее, они могут получать отражения от статической сцены.
  • Для уменьшения ошибки, захватывается лишь диффуз сцены.Чисто зеркальные поверхности (металлы) будут иметь своё зеркальное применение, как будто бы если это было их диффузом во время захвата.
  • Могуть присутствовать значительные потёки, когда существуют различные условия освещения по обе стороны стены.Одна сторона может быть настроена на правильные отражения, но они всегда будут перетекать на другую сторону.
  • Из-за аппаратных ограничений DX11,количество кубмап используемые для захвата сцены лишь 128 с каждой стороны, и мир может иметь не более 341 захвата отражений включеных одновременно.
Добавил: RedComrade Категория: Освещение и окружение Читать дальше »

Апр 27 2015
Подвижные источники света

Movable Lights — Подвижные источники света, отбрасывающие полностью динамические тени, могут изменять положение, вращение, цвет, насыщенность, ослабление, радиус и прочие параметры. Свет от этих источников света не запекается в картах освещения.

Затенение

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

Использование

В категории «Transform» в настройках любого источника света вы можете найти параметр «Mobility» («Подвижность»). Измените его на «Movable» («Подвижный»). Это свойство влияет также на источники света, добавленные в блупринт.

Использование

Добавил: Flakky Категория: Освещение и окружение Читать дальше »

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница