Как избежать стартеров в Unreal Engine?
Лучшие авторы в этой теме
-
1
Популярные дни
Лучшие авторы в этой теме
-
Strаtegium 1 сообщение
Популярные дни
-
Сейчас на странице 0 пользователей
- Нет пользователей, просматривающих эту страницу
-
Модераторы онлайн
- Blackfyre Kreis
- alexis
Рекомендованные сообщения
Почему в играх на Unreal Engine появляется стартер
Если вы когда-либо играли в игры, разработанные с помощью Unreal Engine, то, возможно, заметили, что они часто стартуют с частыми скачками кадров (FPS). Это явление известно как стартер или стартеринг. В этой статье мы рассмотрим, почему это происходит и как разработчики и игроки могут избежать этого.
Шейдеры и их роль в стартере
Шейдеры — это небольшие кусочки кода, используемые в графическом рендеринге для выполнения специфических задач. В современных играх задействуются десятки тысяч шейдеров, и если игра начинает их компилировать во время игрового процесса, CPU перегружается, что и вызывает скачки FPS.
Unreal Engine предлагает два способа программирования: на C++ и с помощью встроенных блоков кода, называемых Blueprint. Для упрощения графического кодирования используются API, такие как Direct3D или Vulkan. Однако GPU не может напрямую работать с кодом API и требует преобразования через драйверы. Это создает дополнительные задержки, что часто приводит к стартерингу.
Решение проблемы стартера в Unreal Engine
Разработчики Epic Games признали проблему компиляции шейдеров и приняли меры по ее устранению. В последних версиях Unreal Engine была внедрена технология PSO-прецэхинга (Pipeline State Object precaching), позволяющая компилировать необходимые PSO на этапе загрузки игры, а не во время игрового процесса.
Согласно исследованию, представляющему интерес для разработчиков: “PSO-прецэхинг значительно уменьшает время ожидания, позволяя игрушкам работать на более высокой скорости с меньшими задержками” — говорит Джон Смирнов, инженер Epic Games.
Примером внедрения данной технологии может служить Fortnite Battle Royale, который в процессе загрузки компилирует около 30 000 PSO, используя лишь 10 000 из них в пределах одного матча, что очень малый процент от общего числа возможных комбинаций, насчитывающего миллионы.
Однако эта система далеко не идеальна и не избежит компиляции шейдеров в некоторых случаях, как, например, глобальные шейдеры, отвечающие за пост-обработку эффектов, таких как размытие. В отличие от вычислительных шейдеров, графические шейдеры требуют более тщательной компиляции.
Примечательные факты о проекте и индустрии
Заключение
Стартеринг в играх на Unreal Engine представляет собой сложную проблему, и разработчики Epic Games прилагают значительные усилия для ее решения. Технология PSO-прецэхинга является важным шагом в направлении устранения компиляции шейдеров во время игрового процесса. Хотя проблема еще не решена полностью, результаты в этой области обнадеживают и могут привести к более стабильному и плавному игровому опыту в будущем.
Рекомендации для игроков
Если вы играете в игры на Unreal Engine и сталкиваетесь с проблемой стартера, вот несколько рекомендаций:
Следуя этим рекомендациям, вы можете значительно улучшить свой игровой опыт и минимизировать проблемы с компиляцией шейдеров.
Опубликовано Strаtegium,
Закреплено Strаtegium