Я разрабатываю конфигуратор и для просмотра нашей 3D-модели использую Autodesk Viewer.
Иногда это немного тормозит/медленно, поэтому я хотел сам поэкспериментировать с хостингом моделей, чтобы посмотреть, улучшит ли это скорость загрузки. Я нашел пример https://github.com/Autodesk-Forge/viewer-javascript-offline.sample/tree/gh-pages здесь, и после его адаптации я могу успешно загрузить свою модель из общедоступного каталога.
Однако я могу установить модель только при инициализации средства просмотра. Я хотел бы динамически загружать модели из приложения реагирования.
Я адаптировал обертку реакции отсюда: https://github.com/autodesk-platform-services/viewer-react-sample/blob/master/src/comComponents/Viewer.jsx
Но загрузка модели работает только тогда, когда я загружаю ее при инициализации:
this.viewer = new Autodesk.Viewing.Viewer3D(this.container);
this.viewer.start(this.props.path);
Можно ли динамически загружать узлы/модели так же, как при получении моделей из OSS приложения? Ниже не загружается модель. В конце концов я хотел бы попытаться загрузить модели со своего собственного сервера i.c.m. AggregatedView/Загрузка нескольких моделей.
onDocumentLoadSuccess(doc) {
this.viewer.loadDocumentNode(doc, doc.getRoot().getDefaultGeometry()),
console.info('loaded document node')
}
updateViewerState(prevProps) {
if (this.props.path && this.props.path !== prevProps.path) {
Autodesk.Viewing.Document.load(this.props.path, (doc) =>
onDocumentLoadSuccess(),
// failure
(code, message, errors) => console.error(code, message, errors),
);
}
else if (!this.props.path && this.viewer.model) {
this.viewer.unloadModel(this.viewer.model);
}
}
Да, я сделал. Модель загружается, но только в качестве аргумента в методе view.start(). Кажется, я не могу правильно загрузить модель с помощью Autodesk.Viewing.Document.load. Думаю, я смогу полностью обновить программу просмотра, когда мне понадобится другая модель. Но, как написано в моем посте, я надеюсь объединить несколько автономных моделей.
Document.load()
вам необходимо передать URN или URL-адрес файла bubble.json
.loadModel()
(который Viewer.start()
также использует) вам необходимо передать URN или URL-адрес файла *.svf
. Это то, что вам нужно будет использовать.Дополнительная информация, которая все еще кажется более или менее правильной: https://stackoverflow.com/a/39758123/4654233
Спасибо, Адам. После моего поста я продвинулся немного дальше и понял, что loadModel — это способ загрузки моделей по URL-адресу!
Вы установили среду
Local
, как в вашем связанном образце ?