Ошибка нехватки памяти при загрузке нескольких моделей в Forge Viewer - PullRequest
0 голосов
/ 09 апреля 2019

Я работаю над проектом, в котором есть 14 моделей Navisworks (NWC).Я могу загрузить составную модель в программу просмотра (это занимает некоторое время, но работает).

Однако, когда я загружаю модели по одной в программу просмотра, я выхожу из памяти до того, как будут загружены все 14,Общий размер файла составляет около 500 МБ.

Я заметил, что программа просмотра очень отзывчива вплоть до сбоя браузера (пока загрузка модели происходила в фоновом режиме).

Я подозреваю, что это проблемаОбщее количество полигонов и геометрии.Я привязан к использованию расширения NOP_VIEWER.initDebugTools (), но, похоже, он не показывает общее количество для всех моделей.Кажется, он показывает детали только первой модели.

  1. Есть ли способ остановить просмотрщик, создающий больше геометрии, прежде чем ему не хватит памяти?
  2. Есть ли способ найти статистикувсех моделей с расширением DebugTools?
  3. Есть ли другой способ подсчета полигонов загруженных моделей?

Спасибо, Банду

1 Ответ

0 голосов
/ 10 апреля 2019

Есть ли способ остановить создание Viewer большего количества геометрии до того, как ему не хватит памяти?

Попробуйте ограничить потребление памяти в параметрах загрузки:

var config3d = {
    memory: {
        limit: 1024 // in MB
    }
};
var viewer = new Autodesk.Viewing.Viewer3D(container, config3d);

Кстати, ограничения по умолчанию:

Desktop 600 MB
Mobile  195 MB

Есть ли способ найти статистику всех моделей с расширением DebugTools?

К сожалению, встроенный DebugTools не работает с несколькими моделями.

Но это не должно помешать вам запрашивать статистику по каждой модели:

let modelArray = viewer.impl.modelQueue().getModels();
let targetModel = modelArray[index];
targetModel.getGeometryList() // retrieves geometry info about a specific model

Вы даже можете испечь собственное расширение для соответствиянесколько моделей.

Есть ли другой способ подсчета полигонов загруженных моделей?

model.getGeometryList().geomPolyCount
...