AFrame / Three.js: почему столько (JS) строк в памяти при загрузке сложных файлов .obj? - PullRequest
0 голосов
/ 30 ноября 2018

у нас довольно сложная веб-сцена, где мы динамически загружаем довольно сложные .obj- и .mtl-файлы.После сравнения сцены без какого-либо из этих объектов с тем, в котором есть несколько объектов, мы заметили странное поведение:

куча памяти firefox показывает, что большая часть памяти (> 100 МБ для 5 объектов) используется для JSStrings .остальная часть памяти используется для объектов , что самоочевидно, когда у нас есть сложные объектные файлы.
Но как получается большое количество строк и мы можем его уменьшить?Преобразует ли AFrame содержимое .obj-файлов в строки?

Мы думали о минимизации самих файлов .obj и сокращении вершин.Может быть, кто-то из вас имел подобный опыт и / или может дать нам советы, как решить эту проблему.

Заранее спасибо: -)

1 Ответ

0 голосов
/ 01 декабря 2018

OBJ-файлы основаны на тексте и, к сожалению, не очень эффективный способ передачи 3D-данных.A-Frame должен проанализировать этот текст, чтобы загрузить ваши данные в графический процессор.

Если вам нужно этого избежать, я бы посоветовал попытаться преобразовать ваши файлы OBJ в двоичный формат, такой как glTF (.glb).Вы можете сделать это преобразование с помощью obj2gltf (CLI) или https://cesiumjs.org/convertmodel.html (web).Файл glTF будет загружаться быстрее.

...