Форум

Загрузка сцены в другом потоке

16 марта 2017 17:39
Здравствуйте, столкнулись с такой проблемой, на главной страницы у нас довольно большая blend4web сцена, сцена отображается с помощью приложения со своих прелоадером, в процессе загрузки сцены на некоторое время виснет вся страничка, можно ли это как-то предотвратить, поможет ли предзагрузка, и если да, есть ли какой-нибудь пример?
17 марта 2017 15:50
Вообще говоря, размещать тяжелый WebGL-контент на основной странице не рекомендуется. В процессе загрузки сцены JavaScript нагружает CPU на 100%, что и приводит к "зависанию" страницы. Поэтому, желательно дать возможность запускать сцену вручную, например по клику.

Если необходимо все-таки иметь сцену сразу при запуске странице лучше её либо упростить (в первую очередь минимализировав кол-во шейдеров), либо показывать остальные элементы странцы, только когда 3D контент уже загрузился, используя load_cb.
Разработчик Blend4Web
20 марта 2017 13:30
Ответ на сообщение пользователя Евгений Родыгин
Вообще говоря, размещать тяжелый WebGL-контент на основной странице не рекомендуется. В процессе загрузки сцены JavaScript нагружает CPU на 100%, что и приводит к "зависанию" страницы. Поэтому, желательно дать возможность запускать сцену вручную, например по клику.

Если необходимо все-таки иметь сцену сразу при запуске странице лучше её либо упростить (в первую очередь минимализировав кол-во шейдеров), либо показывать остальные элементы странцы, только когда 3D контент уже загрузился, используя load_cb.

а почему бы все-же не сделать какой то вариант "уровни загрузки" сцены.
это я так понимаю только в движке можно реализовать, когда сена разбита на компоненты и первоочередно загружается только основное то без чего сцена не заработает , окружение свет и камера, и показать сцену , после чего загружать уже все меши итд.. лучше конечно чтоб порядок загрузки можно было контролировать ручками или списком или еще как то.
Денис
20 марта 2017 13:33
Поддерживаю Дэна
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.