Windows cpp target замедляется в более высоких разрешениях

У меня возникли неожиданные проблемы с производительностью в моей игре haxeflixel при создании цели windows (cpp) со следующими настройками

    <window if="cpp" width="480" height="270" fps="60" background="#000000"hardware="false" vsync="true" />

Я замечаю, что когда я изменяю размер окна до больших разрешений или перехожу на полноэкранный режим до 1920x1080p, игра становится медленнее и отстает. Однако, согласно консоли отладки flixel, частота кадров одинакова для всех разрешений.

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

Это двухмерная игра с платформой, включающая около 6 карт тайлов (самая большая карта тайлов — 1600×1440) и 32×32 или 16×16 спрайтов. Я не ожидал проблем с производительностью в любой современной системе. Поэтому я обеспокоен тем, что делаю что-то не так, например, пропускаю очевидные настройки.

Это нормально? Есть ли какие-то ключевые факторы эффективности рендеринга, которые я должен проверить? Пожалуйста, не стесняйтесь спрашивать меня о любых деталях, если вы думаете, что это поможет.

используя Haxeflixel 3.3.12

2

Решение

Я думаю, что это может быть общей проблемой среди всех целей C ++. Я испытал это и с родной целью Linux для моей игры. Моим решением было отключить сглаживание с помощью

<window antialiasing="0" />

Конечно, это лучше всего работает с пиксельной графикой, а не с 3D или HD. И еще есть потенциальная проблема снижения производительности при более высоком разрешении (дисплеи сетчатки и все такое). Но этого может быть достаточно в качестве временного решения.

1

Другие решения

Я тестировал настройки своего приложения с различными конфигурациями, когда, наконец, обнаружил, что отключение vsync вариант будет иметь наибольшее влияние. Существует некоторое дрожание по вертикали, но игра, наконец, быстро запускается, и цель Windows быстрее, чем вспышка.

Оказывается, мой нынешний ноутбук оснащен графическим процессором IntelHD, а функция vsync, похоже, не работает. Я помню, что на моем предыдущем ПК, оснащенном низкоуровневым графическим процессором AMD, такой проблемы не было.

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

Другие вещи, которые, кажется, помогли:

  1. Выключение antialiasing как предложил @Jon O
  2. Превращение hardware на

Для справки, мои текущие настройки

<window if="cpp" width="960" height="540" fps="60" background="#000000" hardware="true" vsync="false" antialiasing="0" />
0

По вопросам рекламы [email protected]