Полезное
Мы Вконтакте
Discord канал
Вчера Epic Games выпустили обновление 4.14. В этом обновлении можно найти forward shading renderer, оптимизированный для VR, обеспечивающий четкое сглаживание в играх. Новая функция Contact Shadows позволяет создать красивые детализированные тени для сложных объектов. Epic Games также добавили новую функцию — Автоматическая генерация уровней детализации для статических объектов, которая не требует дополнительных библиотек.
Ну и как обычно, разработчики добавили очень много и других возможностей в движок. Некоторые из них мы рассмотрим в новости
Новый forward shading рендер сочетает в себе высококачественные возможности освещения UE4 с поддержкой мультисеплового сглаживания (MSAA). MSAA и опция для включения по материальной оптимизации делает этот рендер хорошим выбором для VR.
Forward рендер работает посредством отбора освещение и отражений в сетку фрустума. Каждый пиксель в forward проходе взаимодействует с освещением и отражениями влияющими на него, затеняя материал с ними. Динамические тени для стационарного освещения просчитываются заранее и упаковываются в канал screen-space shadow mask, позволяя нескольким функциям затенения эффективно их использовать. Включение «Forward Shading» производится во вкладке Rendering в настройках проекта с последующим перезапуском редактора.
Поддерживаемые forward рендером функции:
Некоторые функции пока что не поддерживаемые forward шейдингом:
Проекты, которые решили использовать MSAA захотят построить контент, дабы смягчить зеркальное сглаживание. Функция Normal to Roughness может помочь уменьшить зеркальное сглаживание от деталезированных карт нормалей. Автоматическая генерация ЛОДов для статик мешей имеет функцию расплющивания для объектов на расстоянии, тем самым помогая в уменьшении сглаживания от маленьких треугольников.
По нашим тестам, использование MSAA вместо TAA, увеличивает время кадра примерно на 25%, но фактическое значение будет зависеть от вашего контента.
Для использования MSAA смените Anti-Aliasing Method во вкладке Rendering в настройках проекта:
Консольная переменная r.MSAACount контролирует то, сколько MSAA семплов будет вычисляться для каждого пикселя. r.MSAACount 1 имеет особое значение, т.к. переключает обратно на ТАА, что упрощает переключение между методами сглаживания.
Производительность
Forward рендер может быть быстрее чем deferred рендер для некоторого контента. Большая часть улучшения производительности происходит от функций, которые могут быть отключены в материале. По умолчанию, только ближайший захват отражений будет применяться без параллаксного сглаживания, если материал выбран в High Quality Reflections, высотный туман вычисляется повертексно, а плоские отражения применяются только на тех материалах, в которых они включены.
Используя эти параметры в новой VR игре от Epic, Robo Recall, forward рендер быстрее примерно на 22% нежели deferred на NVIDIA с 970 GTX.
Функция контактных теней добавляет небольшой проход луча в экранном пространстве от буфера глубины дабы знать, где пиксель покрывается или нет данным источником освещения. Это помогает обеспечить чёткие детализированные тени в точке контакта геометрии. Есть целый ряд причин, почему тени через других алгоритмов могут быть пропущены или размываться в месте контакта. Как правило, это происходит из-за отсутствия разрешения или смещения глубины. Независимо от причины, новая функция контактных теней может заполнить пустоту за небольшую цену.
Контактные тени могут быть использованы путём увеличение параметра Contact Shadow Length в вашем источнике освещения. Данная опция управляет длиной прохода луча в экранном пространстве, где 1 — это весь проход через экран. Большое значение может ухудшить качество и производительность, поэтому постарайтесь использовать минимальное значение при котором достигается желаемый результат.
Ещё один случай использования контактных теней, это получение самозатенения от parallax occlusion mapping от произвольных источников освещения. Для этого требуется вывод pixel depth offset в материале. Анимация ниже показывает РОМ поверхность с контактными тенями длиной 0.1 .
UE4 теперь автоматически уменьшает полигонаж ваших статик мешей для создания ЛОДов!
Изображение выше показывает 5 ЛОДов, которые были автоматически сгенерированны. Каждый последующий ЛОД имеет в 2 раза меньше полигонов нежели предыдущий.
Автоматическая генерация ЛОДов использует так называемую quadric mesh упрощение. Объект упрощается исходя из значения визуальной разницы, которая получается при коллапсировании грани при сшивании двух вершин. Затем выбирается ребро с наименьшим количеством визуального воздействия и коллапсит его. В этот момент выбирается наилучшее место для размещения новых сшитых вершин и удаление любых треугольников которые были также сколлапсены вместе с гранью. Это будет продолжатся до тех пор, пока не будет достигнут требуемый полигонаж.
Этот метод упрощения поддерживает UV, включая сгенерированные UV лайтмап, нормалей, тангенсов и цветов вершин. Т.к. поддерживаются UV, то могут быть использованы те же, а также могут быть использованы одни и те же лайтмапы.
Параметры высокого уровня для управления сгенерированных ЛОДов находятся во вьювере статик меша во вкладке LOD Settings.
«LOD Group» предоставляет список пресетов. Они могут быть изменены для каждого проекта в BaseEngine.ini под [StaticMeshLODSettings]. Рекомендуется создать категории для вашего проекта и в большинстве случаем использовать именно их, вместо управления каждым ЛОДом.
«Auto Compute LOD Distances» — параметр заслуживающий внимания. Поскольку алгоритм знает, величину визуальной разницы каждого сколапсенного ребра, он может использовать эту информацию, чтобы определить, для какого расстояния количество ошибок является приемлемым. Это означает, что размер экранного пространства будет автоматически вычислен для каждого ЛОДа.
Если вы хотите поковыряться в настройках автогенерации ЛОДов, то найти вы их можете во вкладке Reduction Settings. Заметьте, что данный функционал применим сугубо лишь к статик мешам и mesh proxy пока не поддерживается.
Теперь UE4 поддерживает предпросчитанное освещение для нескольких предустановок с одной и той же геометрией. Это особенно важно в случае использования VR или архитектурной визуализации, где вам необходимо максимальное качество при максимальной производительности.
На примерах выше направленное освещение, освещение неба и скайбокс были помещены в сценарий освещения уровня под названием DayScenario. Освещение улицы были помещены в сценарий под названием NightScenario.
Для использования сценария освещения:
Ограничения:
Это были лишь самые интересные, на наш взгляд, обновления. Полный список можно изучить в официальной новости.
Самое топовое обновление движка за год! Спасибо за перевод)
Вы должны войти, что бы оставлять комментарии.