Небольшая жалоба японского инди-разработчика на популярную техническую проблему графического движка внезапно переросла в масштабную дискуссию, куда пришли на помощь легенды мировой игровой индустрии. Unreal Engine 5 создает массу проблем для разработчиков любого уровня, но уже несколько полезных лайфхаков.
Независимый разработчик, выступающий под псевдонимом Tonoji, опубликовал в сети X видео со своей грядущей игры Gothic Scythe. Японец пожаловался на распространенный артефакт в Unreal Engine: при переходе камеры из комнаты в коридор скрытые за стеной объекты появлялись с небольшой задержкой, создавая неприятное мерцание.
Проблема крылась в функции Occlusion Culling — алгоритме оптимизации, который отключает рендер невидимых объектов. В UE часто возникает рассинхронизация: видеокарта фиксирует появление объекта, но передает данные процессору для отрисовки лишь в следующем кадре, вызывая тот самый «прыжок» текстур. Неожиданно в комментарии к молодому разработчику пришли эксперты ААА-индустрии, чтобы поделиться профессиональными секретами решения бага.
Первым на помощь пришел Джон Кинзел из студии Raven Software, отвечающей за серию Call of Duty. Он посоветовал разработчику искусственно увеличить невидимые границы объектов. Благодаря этому трюку движок начинает прорисовывать мебель и стены чуть раньше, чем они фактически попадают в поле зрения объектива камеры, полностью исключая задержку при выходе из-за угла.
Следом к беседе присоединился бывший старший программист Ubisoft Себастьян Аалтонен, работавший над Assassin's Creed Unity и Rainbow Six Siege. Он объяснил, что когда-то решал аналогичную проблему путем переписывания архитектуры рендеринга. Себастьян порекомендовал перевести всю систему проверки видимости объектов

