Unity 6.3
0 онлайн 26 гостей 3 в системе
Вход

Соображения по производительности веб-сайта

В целом, веб-производительность близка к нативным приложениям на GPU, поскольку WebGL графика API использует ваш GPU для аппаратно-ускоренного рендеринга. Единственным исключением является небольшая накладная стоимость перевода WebGL API вызовов и шейдеров к вашему OS графика API (обычно DirectX на Windows, OpenGL на Mac, и Linux).

На CPU, Emscripten переводит ваш код в WebAssembly, производительность которого зависит от используемого вами веб-браузера.

Обратите внимание на следующие соображения:

  • Unity обеспечивает многопоточность для кода C/C++, но пока не для кода C# из-за ограничений WebAssembly.
  • При использовании WebGL API для рендеринга, CPU-сторонняя отправка операций WebGL медленнее, чем в собственном OpenGL. В результате, для наилучшей производительности рекомендуется избегать большого количества вызовов рисования на кадр, так что убедитесь, что в ваших шейдерах используются как методы экземплярования, так и пакетирования.
  • SIMD на вебе поддерживается как часть набора функций WebAssembly 2023. Обязательно включите WebAssembly 2023 для наилучшей производительности на новых браузерах.

Совет: Чтобы узнать, как Unity распределяет работу между различными потоками на не-веб платформах, обратитесь к новой временной шкале Profiler в Unity.

Веб-параметры проигрывателя, влияющие на производительность

Если вы отключите Целевой показатель WebAssembly 2023 (под Параметры публикации > WebAssembly Языковые особенности), улучшить производительность путем установки Исключение (под Другие настройки > Трек стека) до Нет.

Если включить Цель WebAssembly 2023 год, то накладные расходы на производительность от любого варианта поддержки исключений будут незначительными.

Веб-контент на фоновых вкладках

Содержимое продолжает выполняться, когда экран или окно браузера теряют фокус, если включен один из следующих параметров:

Если вкладка с вашим контентом не видна, ваш контент обновляется только один раз в секунду в большинстве браузеров. Обратите внимание, что это приводит к Time.time медленнее, чем обычно с настройками по умолчанию, так как значение по умолчанию Time.maximumDeltaTime меньше одной секунды.

Регулирование производительности веб-сервера

В некоторых ситуациях вы можете запустить веб-контент с меньшей частотой кадров, чтобы уменьшить использование CPU. Например, на других платформах вы можете использовать Application.targetFrameRate API для этого.

Когда вы не хотите снижать производительность, установите API на значение по умолчанию -1. Это позволяет браузеру настраивать частоту кадров для наиболее плавной анимации в цикле рендеринга браузера, и может дать лучшие результаты, чем Unity, пытающийся сделать свое собственное время цикла для соответствия целевой частоте кадров.

Примечание: По соображениям безопасности Unity не может запросить браузер для его частоты кадров. В результате, Unity предполагает частоту отображения 60 кадров в секунду для всех браузеров и баз Application.targetFrameRate на эту значение.