Создание реалистичного освещения в unreal engine 4. Выделение контура у объекта в UE4. Не накладывайте ненужных текстур

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

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

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

Например, если в минимальных системных требованиях игры значится процессор не ниже Intel Core i5, то не стоит ожидать, что она запустится на i3. Однако сравнивать процессоры от разных производителей сложнее, именно поэтому разработчики часто указывают наименования от двух основных компаний - Intel и AMD (процессоры), Nvidia и AMD (видеокарты).

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

Здесь Вы узнаете информацию по системным требованиям онлайн игры Max Payne 3 для персонального компьютера. Кратко и по делу получите информацию по Max Payne 3 и требованиям к PC, операционной системе (ОС / OS), процессору (ЦПУ / CPU), объёму оперативной памяти (ОЗУ / RAM), видеокарте (GPU) и свободному месту на жёстком диске (HDD / SSD), достаточных для запуска Max Payne 3!

Иногда очень важно заранее знать требования, предъявляемые к компьютеру для комфортного запуска онлайн игры Max Payne 3, именно поэтому мы публикуем как минимальные, так и рекомендуемые системные требования для Max Payne 3.

Зная системные требования можно переходить к следующему этапу, Скачать Max Payne 3 и начать играть !

Помните, обычно все требования условны, лучше всего примерно оценить характеристики компьютера, сравнить с системными требованиями игры Max Payne 3 и если характеристики приблизительно подходят к минимальным требованиям, скачивайте и запускайте игру!

Минимальные системные требования Max Payne 3:

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

  • Поддерживаемые ОС : 32- или 64-разрядная Windows 7 с пакетом обновления 1, 32- или 64-разрядная Windows Vista с пакетом обновления 2, 32- или 64-разрядная Windows XP с пакетом обновления 3
  • Центральный процессор (CPU / ЦПУ) : двухъядерный Intel с тактовой частотой 2,4 ГГц – шестиядерный i7 3930K с тактовой частотой 3,06 ГГц / двухъядерный AMD с тактовой частотой 2,6 ГГц – восьмиядерный FX8150 с тактовой частотой 3,6 ГГц
  • Оперативная память (RAM / ОЗУ) : от 2 до 16 ГБ
  • Жёсткий диск (HDD / SSD) : 35 ГБ свободного места
  • Видеокарта (GPU) : NVIDIA 8600 GT с 512 МБ видеопамяти – NVIDIA GeForce GTX 680 с 2 ГБ видеопамяти / Radeon HD 3400 с 512 МБ видеопамяти – Radeon HD 7970 с 3 ГБ видеопамяти
  • Звуковая карта (Sound Card) : полностью совместимая с DirectX 9.0 – совместимая с DirectX 9.0 и поддерживающая Dolby Digital Live
  • Дополнительно : пожалуйста, обратитесь к производителю комплектующих или по адресу http
  • Другие требования : внутренняя активация игры требует интернет-соединение и действительный аккаунт Rockstar SocialClub (для регистрации вы должны быть старше 13 лет); игра по сети требует вход в Rockstar Social Club (13+); для установки требуетсяследующее программное обеспечение

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

  • Рендерят сетку дважды. В этом случае сначала рендерится одна сетка (со стандартным материалом), а затем вторая (со слегка увеличенным масштабом и эмиссионным материалом)
  • Используют алгоритм распознавания контура. Он задается в виде материала пост-обработки

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

Основные шаги

Реализация эффекта выделения контура в виде материала пост-обработки проходит в несколько этапов:

  • Создание материала пост-обработки, который выделит контур у объектов со включенным параметром Render Custom Depth.
  • Добавление этого материала пост-обработки в список Blendables, который находится в параметрах блока Post Process Volume.
  • Включение параметра Render Custom Depth у всех скелетных и статичных сеток, у которых нужно выделить контур

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

Карта глубины

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

Наша карта глубины выглядит похожим образом, за исключением того, что в ней видны лишь объекты, у которых включен параметр «Render Custom Depth»:

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

Создание материала

Самый сложный этап. Мы создадим материал, в котором будет реализован оператор Собеля, свернутый с кастомной картой глубины. Другими словами, мы применим на кастомную карту глубины фильтр распознавания контура.

Начнем с алгоритма свертки. В его основе лежит довольно мудреная математика, но на самом деле все сводится к нескольким простым шагам

  • Берем пиксель P
  • Берем 8 пикселей PN, прилегающих к пикселю P
  • Умножаем значения в пикселях P и PN на значения в ядре свертки (т.е. делаем 9 умножений)
  • Складываем полученные значения
  • Возвращаем результат

Сначала нужно задействовать карту глубины. Делается это просто: добавьте нод Scene Texture и подключите его к Emissive Color материала. Также выставьте настройку Scene Texture ID на CustomDepth.

Теперь давайте задействуем прилегающие пиксели. Для этого можно использовать параметр UVs в ноде Scene Texture. Но проблема в том, что UV-параметры работают в текстурных координатах, т.е. используют значения от «0,0» (левый верхний угол текстуры) до «1,1» (правый нижний угол текстуры). Поэтому нам нужно взять инвертированные значения высоты и ширины текстуры, умножить их на смещение от центра ячейки (-1,-1), а затем прибавить к UV-координатам текущего пикселя. Таким образом мы выберем левый верхний пиксель.

В редакторе материалов это будет выглядеть следующим образом:

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

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

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

С левой стороны – два набора входных параметров. Первые 9 векторов – это просто значения пикселей, которые мы будем обрабатывать. Другие 3 вектора служат для значений ядра свертки. По сути, это просто матрица 3х3, но поскольку в редакторе материалов UE4 нет типа данных для матрицы, я сделал собственную при помощи параметров Vector3.

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

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

Теперь давайте объединим два этих значения.

Далее открываем редактор материалов, при помощи рассчитанных значений создаем вектор, а затем возвращаем длину вектора. Результатом будет черное изображение с контуром вокруг сеток, у которых включен параметр Render Custom Depth. Осталось лишь смешать полученный эффект с финальной картинкой. В моем случае будет использоваться оператор «IF», но вы можете встроить алгоритм и по-своему. Ничего сложного в этом нет.

ПРИМЕЧАНИЕ: Убедитесь, что ваш материал находится в домене Post Process, а не Surface (имеется в виду «material domain»; это параметр, через который настраивается, для чего будет использоваться материал). Это можно поменять в свойствах материала.

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

Теперь, когда материал готов, нам нужно добавить его в список пост-обработочных эффектов сцены. Выберите у своей сцены блок Post Process Volume и найдите пункт Blendables. Добавьте в список Blendables новый компонент, а затем выберите из списка созданный нами материал. Если блока пост-обработки в вашей сцене нет, создайте его. Также убедитесь, что у блока Post Process свойство Unbound выставлено на «true». В противном случае игрок будет видеть эффект строки только в том случае, если будет находиться внутри блока Post Process Volume.

Чтобы проверить результат, поместите в сцену какую-нибудь сетку и включите у нее параметр Render Custom Depth.

Блюпринт

Я настроил сцену таким образом, что эффект строки будет появляться у статической сетки только в том случае, если игрок наведет на нее прицел. Я решил воспользоваться шаблоном для FPS. Кроме того, я добавил в блюпринт MyCharacter функцию Trace. Она вызывается таймером, тикающим каждые 0,1 секунды, и проверяет, смотрит ли игрок на статичную сетку. Если смотрит, параметр Render Custom Depth выставляется на «true». Если игрок перестает целиться в сетку, значение в переменной Render Custom Depth меняется на «false». Посмотреть, как это все работает, можно в файле, ссылку на который можно найти ниже, в разделе «Загрузки».

Epic Games продемонстрирует архитекторам возможности Unreal Engine

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

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

Epic Games планирует провести четыре бесплатных вебинара, первый из которых намечен на 27 апреля. Специальным гостем станет архитектор Фабрис Боррелли (Fabrice Bourrelly), который расскажет о причинах, по которым Unreal Engine стоит использовать в данной сфере. .

Используя модели Дома из стекла Филиппа Джонсона (Philip Johnson) и Церкви света Тадао Андо (Tadao Ando), Фабрис покажет, как Unreal Engine привносит эмоции, настроение и атмосферу рендеринга в автономном режиме в глубокую и интерактивную виртуальную и дополненную реальность в режиме реального времени, - сказал представитель сообщества движка Крис Руффо (Chris Ruffo). - Фабрис является архитектором, художником и 3D-визуализатором, который за последний год стал лидирующим пользователем и учителем по Unreal Engine. В список клиентов Фабриса входят Google, IDEO, Томас Хизервик (Thomas Heatherwick), Аниш Капур (Anish Kapoor), Bentley Motors и Филипп Старк (Philippe Starck).


Боррелли начал работать с Unreal Engine не так давно. В прошлом году он провёл лекцию по визуализации и обнаружил, что огромное число людей, работающих в сфере, хотели бы узнать больше о движке и исследовании моделей виртуальной реальности. Так он решил скачать программное обеспечение и опробовать его.

Фабрис Боррелли:

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

Архитектор загружает свои работы на канал в YouTube .

Несмотря на кажущуюся сложность работы, редактор Unreal Editor 4 выглядит приветливым. А с ростом производительности компьютерного оборудования GPU рендер может изменить традиционный подход к работе визуализаторов, дизайнеров и архитекторов.

Из минусов хочу отметить пару моментов. На данный момент добиться фотореалистичной картинки не просто, но если уйти в проект с головой и потратить больше времени, то можно .Размер готового билда может превышать 1GB, что может затруднить обмен среди коллег и заказчиков. На текущее время далеко не каждый компьютер способен выдать стабильные 25-30 FPS в заполненном 100 м² интерьере.

Это интерактивная трехмерная визуализация квартиры-студии с полным погружением в проект. Модель сделана полностью в программе Unreal Engine 4 - движок, который используют во многих современных играх.

Основное различие с максовской 3д моделью - время "рендера". Например, чтобы создать классический трехмерный ролик необходимо отрендерить 25 кадров для каждой секунды, что занимает очень много времени и денег.

А в таком интерактивном формате "рендер" отсутствует. Все текстуры, материалы и свет создаются сразу в 3d модели, поэтому по проекту сразу можно ходить как в игре, при этом графика дошла до вполне реалистичного уровня. Теперь, чтобы сделать видео ролик, достаточно 1 часа, при готовой модели в Unreal Engine.

Создано: 29 Апрель 2017

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

Подготовка сцены

Сначала настраиваем Light Map Resolution всех объектов на сцене. Для игр обычно разрешение Light Map оставляют синего или увеличивают до зеленого цвета (если смотреть в режиме Lightmap Density). Но нам придется делать максимально большую Light Map, так как мы будем использовать только статический свет. Например, для комнаты я ставлю разрешение Light Map от 1024 до 2048, для стола — 512-1024. Если разрешение недостаточное, появляются "пиксельные" тени, а нам этого не надо. Самое главное  —  найти баланс между хорошим результатом и не перегруженной билдатой. Лучше избегать размера билдаты больше 512 Мб, иначе могут быть проблемы с компилированием экзешника.

Mode Lightmap Density

Размещаем на сцене Box Reflections, Lightmass Portals, Lightmass Importance Volume.

Box Reflections ставим в каждую комнату по ее размеру, чтобы получить отражения на полу и металлических объектах. Planar Reflection мы используем только на зеркалах, которые выносим в свой уровень и подгружаем потом через Level Streaming Volume, так как это сильно влияет на FPS. А в VR самое главное  —  стабильные 90 FPS!

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

Lightmass Importance Volume делаем максимально большим, чтобы он не пересекался с внешней оболочкой, иначе могут быть засветы на Movable объектах. Здесь главное экспериментировать с размером самого Importance Volume и количеством Volumetric Lightmap Detail Cell size. Мы используем значение Lightmap Detail Cell size в диапазоне от 25-50  —  большее количество может давать грубые переходы в черный, меньшее  —  дает эффект помятости.

Иногда есть проблемы с тем, что появляются проплешины (leaks) при построении Cells, тогда можно изменить в файле BaseLightmass.ini параметр MinBrickError=0.

Box Reflections, Lightmass Portals, Lightmass Importance Volume

Проверьте свои материалы в моде Shader Complexity . Если есть материалы светло-розового цвета  —  исправьте их.

Mode Shader Complexity

Освещение

Ставим сферу с материалом неба. Размер сферы приблизительно R=15000м. Материал делаем Unlit.

Материал для неба

Ставим на сцену SkyLight , делаем его Static. Отключаем в нем галочку Lower Hemisphere. Не забудьте настроить Sky Distance Treshhold, если его значение будет слишком большим, а внешняя сфера слишком маленькая, свет от SkyLight будет считаться некорректно, и вся сцена будет черной. Intensity оставляем единичку.

Ставим Post Process Volume . Отключаем Ambient Occlusion  —  он влияет на FPS, так как SSAO строится поверх изображения. Тонкие тени мы будем делать через настройки Lightmass. Настраиваем экспозицию. Все остальное я меняю по желанию после билда света, в основном это баланс белого и контраст.

SkyLight and Post Process Settings

Расставляем локальные источники света. Все светильники — статичные! Для большей реалистичности можно использовать значения температуры, как у реальных лампочек. 2700 Кельвинов  —  теплый белый, 4000 Кельвинов  —  прохладный белый.

DirectionalLight  —  в этой квартире мы решили не ставить солнце, чтобы получить более естественное для нашего климата освещение:) От SkyLight получается ровный рассеянный свет, что соответствует зимнему виду из окна. Но я оставлю ниже настройки солнца, которые обычно использую.

DirectionalLight

Lightmass Settings

  1. Static Lighting Level Scale . Этот параметр делает красивые собственные тени, но из-за него могут вылезти артефакты. Мы используем значение 0,2-0,3. Важно помнить, что чем значение ближе к 0, тем большее время занимает билд. Если хотите все супер красивое, используйте значение 0,1, но тогда билд займет больше времени, также нужно увеличить значение Indirect Lighting Quality.
  2. Indirect and Sky Lighting Bounces  —  мы ставим по 10 отскоков. Мне кажется, это оптимальное минимальное значение. Можно сделать Indirect Bounces = 100 и Sky Bounces = 15, но я не вижу значительной разницы между 100 и 10. Долго считаются только первые 3 отскока.
  3. Indirect Lighting Quality  —  мы используем значение 10, оно дает всегда хороший результат. Вообще считается, что перемноженные значения Static Lighting Level Scale и Indirect Lighting Quality должны равняться 1, я советую, по крайней мере, не использовать значения меньше.
  4. Indirect Lighting Smoothness . Можно не менять этот параметр, значение 0,75 делает картинку более четкой.
  5. Отключаем Use Ambient Occlusion . Отключаем галочку Compress Lightmass  —  это сильно увеличивает время билда, но зато не будет никакого песка на стенах.

Lightmass Settings

Итог

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

Кстати, обратите внимание на стол и тени от тарелок. Тени размытые, тарелки как будто левитируют. Это вышло из-за того, что у этого стола неправильная UV-развертка и к тому же недостаточно большой Light Map Resolution  —  64. На первое время можно просто увеличить Light Map Resolution до 512, однако это все равно не даст хорошего результата. Развертка где-то пережата, где-то растянута, и плотность не будет равномерной, что может привести к артефактам. О том как правильно подготовить 3D-контент я напишу в следующей статье.

Дополнительная информация

Про освещение:

Советую посмотреть на ютубе Unreal Lighting Academy . Канал ведет Senior Lighting Artist Dice Tilmann Milde, который отвечает за освещение в Battlefront. Очень полезные видео, но на английском и длительностью больше часа.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: