В моем текущем проекте Im, использующем Threejs для построения уровня с сетками. Все графические элементы с камерой, сценой, проектором, визуализатором и т. Д. Выполняются в одном объекте. В целях тестирования я хочу сбросить всю сцену с разными параметрами, например, разными уровнями.Снижается производительность при попытке сбросить всю сцену с помощью Three.js
Поскольку я хочу измерить время алгоритма, я хочу «полный» сброс. Таким образом, мой текущий подход заключается в удалении div-box, содержащего сцену/холст, и удаление всего объекта с трехзначным кодом. После этого я создаю новый объект для графического уровня. К сожалению, это примерно 10 раз подряд приводит к резкому снижению производительности.
Я также попытался удалить все ячейки в сцене с помощью scene.delete() и удалить такие вещи, как сцена, рендеринга и т. Д., Прежде чем удалять весь объект. Но все-таки проблемы с производительностью.
Как я могу добиться полного сброса всех графических компонентов webgl без потери производительности?
Заранее спасибо.
Какой браузер вы используете? Примерно через месяц я заметил замедление на моей странице WebGL в Chrome, которая сохраняется при перезагрузке страницы и сбрасывается, если я закрываю и снова открываю вкладку. –
Да, я использую Chrome в новейшей версии (19). Но мои проблемы с производительностью прекращаются при перезагрузке страницы. В качестве промежуточного решения я теперь написал функцию для моего объекта, которая очищает все объекты, а не удаляет весь объект. Это работает без заметного снижения производительности, но было бы полезно узнать, есть ли способ сделать «полный» сброс. – DerDree
renderer.deallocateObject может быть где-то посмотреть? –