Илья
29 мая 2019 г. 23:57

WebEngineView: Проблема с длительной загрузкой WebGL проекта (экспортированного из Unity)

#QML, #Qt, #WebEngine, #WebEngineView, #WebGL

Здравствуйте!

Возникла необходимость создания интерактивного просмотрщика 3D-моделей, который будет встраиваться в QML проект. Решено было пойти по такому пути - сам просмотрщик делать в Unity 2018 и оттуда экспортировать в виде WebGL проекта, который затем открывать в QML посредством WebEngineView (версия Qt 5.12.0). На данный момент видится пока такой путь.

Начал пробовать на малом и по минимуму, чтобы отладить механизм открытия.

В Unity, в качестве примера, была создана пустая сцена без объектов (только камера)...

Сцена в Unity проекте

...и экспортирована в сборке WebGL (применена .gzip компрессия, размер сборки 2.3 Мб).

Build Settings в Unity

Qt проект был взят из библиотеки примеров QtCreator ("WebEngine Widgets Minimal Example").

  1. #include <QApplication>
  2. #include <QWebEngineView>
  3.  
  4. QUrl commandLineUrlArgument()
  5. {
  6. const QStringList args = QCoreApplication::arguments();
  7. for (const QString &arg : args.mid(1)) {
  8. if (!arg.startsWith(QLatin1Char('-')))
  9. return QUrl::fromUserInput(arg);
  10. }
  11. return QUrl(QStringLiteral("file:///F:/qt/test4Exp/index.html"));
  12. }
  13.  
  14. int main(int argc, char *argv[])
  15. {
  16. QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
  17. QApplication app(argc, argv);
  18.  
  19. QWebEngineView view;
  20. view.setUrl(commandLineUrlArgument());
  21. view.resize(1024, 750);
  22. view.show();
  23.  
  24. return app.exec();
  25. }

При открытии WebGL проекта в браузере Chrome все загружается очень быстро (мгновенно).

Открытие WebGL проекта в браузере Chrome

При открытии WebGL проекта в WebEngineView проект загружается очень очень долго - примерно 5-6 минут...

Загрузка WebGL проекта в WebEngineView (в таком состоянии 5-6 минут)

но после загрузки работает без тормозов (проверял с загрузкой проекта сложной 3D-модели).

WebGL проект открытый в WebEngineView

WebGL проект открывается с локального диска.
Я пробовал различные варианты параметров экспорта из Unity (brotil компрессия, оптимизаци кода и др.). Пробовал также открытие WebGL проекта из под QML страницы. Разницы никакой. Скажите, в чем может быть проблема? Может быть применить какие-нибудь опции при сборке или применить QCoreApplication::setAttribute ??

Ниже прикладываю ссылки на проект Qt и WebGL проект.

WebGL проект

Qt проект

1

Вам это нравится? Поделитесь в социальных сетях!

1
Илья
  • 22 июня 2019 г. 19:31
  • Ответ был помечен как решение.

В общем проблема решилась сама собой, после того, как запустил приложение не из под QtCreator, а из под exe файла. Вообще под exe файлом шустрее работает все. Видимо запуск и инициализация движка Unity тормозится QtCreator-ом. При работе приложения из под exe запуск WebGL проекта в WebEngineView происходит за 2-3 секунды (на стареньких ПК 7-9 сек).

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь
    • Последние комментарии
    • IscanderChe
      12 апреля 2025 г. 17:12
      Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
    • AK
      1 апреля 2025 г. 11:41
      Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
    • Evgenii Legotckoi
      9 марта 2025 г. 21:02
      К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
    • VP
      9 марта 2025 г. 16:14
      Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
    • ИМ
      22 ноября 2024 г. 21:51
      Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…