Илья
ИльяМамыр 29, 2019, 1: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").

#include <QApplication>
#include <QWebEngineView>

QUrl commandLineUrlArgument()
{
    const QStringList args = QCoreApplication::arguments();
    for (const QString &arg : args.mid(1)) {
        if (!arg.startsWith(QLatin1Char('-')))
            return QUrl::fromUserInput(arg);
    }
    return QUrl(QStringLiteral("file:///F:/qt/test4Exp/index.html"));
}

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication app(argc, argv);

    QWebEngineView view;
    view.setUrl(commandLineUrlArgument());
    view.resize(1024, 750);
    view.show();

    return app.exec();
}

При открытии 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 проект

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

1
Илья
  • Маусым 22, 2019, 9:31 Т.Ж.
  • Жауап шешім ретінде белгіленді.

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

    Пікірлер

    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
    Кіріңіз немесе Тіркеліңіз
    Г

    C++ - Тест 001. Первая программа и типы данных

    • Нәтиже:66ұпай,
    • Бағалау ұпайлары-1
    t

    C++ - Тест 001. Первая программа и типы данных

    • Нәтиже:33ұпай,
    • Бағалау ұпайлары-10
    t

    Qt - Тест 001. Сигналы и слоты

    • Нәтиже:52ұпай,
    • Бағалау ұпайлары-4
    Соңғы пікірлер
    G
    GoattRockҚыр. 3, 2024, 1:50 Т.Қ.
    Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
    d
    dblas5Шілде 5, 2024, 11:02 Т.Ж.
    QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
    k
    kmssrАқп. 8, 2024, 6:43 Т.Қ.
    Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
    АК
    Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
    Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
    Енді форумда талқылаңыз
    Evgenii Legotckoi
    Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
    добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
    F
    FynjyШілде 22, 2024, 4:15 Т.Ж.
    при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
    BlinCT
    BlinCTМаусым 25, 2024, 1 Т.Ж.
    Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
    BlinCT
    BlinCTМамыр 5, 2024, 5:46 Т.Ж.
    Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
    Evgenii Legotckoi
    Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
    Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

    Бізді әлеуметтік желілерде бақылаңыз