YouTube-канал Threat Interactive опубликовал детальный технический анализ графического конвейера The Callisto Protocol. В видеоролике на примере одного-единственного кадра подробно разбирается, как игра на движке Unreal Engine 4 формирует и выводит на экран финальное изображение.
Анализ начинается с предварительного прохода (pre-pass), в ходе которого создается буфер глубины для оптимизации последующих этапов. Отмечается, что геометрия сцены обрабатывается достаточно эффективно, занимая всего 0,35 мс. Для этого используется специализированный аппаратный путь, который записывает данные о глубине без вызова пиксельных шейдеров, что экономит ресурсы.
Основная нагрузка приходится на базовый проход (base pass), где происходит рендеринг материалов. Этот этап в разобранной сцене занял 2,1 мс. Разработчики из Striking Distance Studios применили несколько кастомных техник. Например, технология RealIs использовалась для повышения детализации лиц персонажей, а метод Dual Normal позволил реалистично отображать пот на коже. В то же время автор видео указывает на неэффективность рендеринга волос и бороды, которая усугубляется на этом этапе.
Освещение и тени также были подвергнуты анализу. В игре используется кастомная система отсечения источников света по геометрии (Hull-Based Light Culling), чтобы избежать их просачивания сквозь стены и снизить нагрузку на GPU. Тем не менее были обнаружены и явные проблемы с оптимизацией. Например, статичные объекты вроде пола отбрасывают тени, хотя не должны, что ведет к лишним вычислениям. Кроме того, копирование карт теней высокого разрешения названо неэффективной операцией.
В процессе рендеринга игра активно использует трафаретный буфер (stencil buffer) для разделения областей, на которые влияют разные источники света. Однако, по мнению автора, этот процесс организован неоптимально, что приводит к многократной перерисовке одних и тех же объектов и лишней работе GPU. Например, модель персонажа для создания трафаретов перерисовывается пять раз, что занимает 0,7 мс.
Наконец, на этапе постобработки применяются стандартные для современных игр эффекты: объемный туман, отражения в экранном пространстве (SSR), подповерхностное рассеивание (SSS), временное сглаживание (TAA) и цветокоррекция. Примечательно, что вместо стандартного для Unreal Engine оператора тональной компрессии (tonemapper) разработчики внедрили собственный, известный как GT Tonemapper, для достижения более фотореалистичного изображения.
В итоге, по подсчетам автора, при исправлении всех найденных проблем с оптимизацией рендеринга волос, теней, освещения и неэффективного использования текстур, общее время кадра можно было бы сократить с 11,56 мс до 7,48 мс. Теоретически, это позволило бы поднять производительность с 86 до 133 FPS на использованной в тесте конфигурации.
оптимизация по мнению разрабов - "нужны более мощные печки, для выпечки пластиковых пирожков",
фото-реалистичный пластик очень порадовал)))
В смысле ue4? Всегда думал, что 5. Одни из самых проработанных лиц. Ну и статтеры