Импорт 3d модели в three.js во время выполнения из локального файла - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь загрузить 3d-модель из локального файла во время выполнения, но появляется сообщение об ошибке CORS.Я использовал http-сервер для загрузки фиксированных моделей при запуске, но если я хочу загрузить случайные объекты из моих локальных файлов на сцену, каков наилучший способ избежать ошибки CORS?

Для загрузки я использовал "OBJLoader" из https://threejs.org/docs/#examples/loaders/OBJLoader.

1 Ответ

1 голос
/ 02 мая 2019

Вы можете использовать метод drag'n'drop, аналогичный редактору three.js , для загрузки файлов с вашего компьютера в приложение.Идея состоит в том, чтобы добавить прослушиватель события к событию drop, извлечь файлы из соответствующего объекта события, а затем использовать FileReader для чтения фактического содержимого.Когда процесс загрузки завершен, вы можете напрямую использовать OBJLoader.parse() для создания реальных трехмерных объектов.

Чтобы лучше понять этот рабочий процесс, ознакомьтесь со следующими разделами кода в редакторе.

  • Обрабатывать drop событие.

https://github.com/mrdoob/three.js/blob/b524f4bca95169a2b197f8a68058e6c28abf416d/editor/index.html#L284-L290

  • Обрабатывать список файлов, поскольку можно перетаскивать несколько объектов одновременно.

https://github.com/mrdoob/three.js/blob/b524f4bca95169a2b197f8a68058e6c28abf416d/editor/js/Loader.js#L12-L43

  • Используйте FileReader и соответствующий загрузчик (в вашем случае OBJLoader) для загрузки и анализа текущего файла.Связанный метод обрабатывает множество различных 3D-форматов.Просто найдите OBJ деталь.

https://github.com/mrdoob/three.js/blob/b524f4bca95169a2b197f8a68058e6c28abf416d/editor/js/Loader.js#L45

three.js R104

...