Экспорт только сеток, содержащихся в Object3Ds, в GLTF в Three.js - PullRequest
0 голосов
/ 24 июня 2018

У меня была хорошая охота, но я не могу найти решение:

GLTFExport for Three.js позволяет экспортировать определенные объекты, когда они названы в экспортере.

Моя ситуация:

У меня есть случайное количество Object3D с дочерними сетками в моей сцене, которые я хотел бы экспортировать, однако я удалил все из моей сцены, кроме объектов и их дочерних сеток и помощника для отображения направления нормали лица, и Я все еще получаю ошибку:

Uncaught Error: THREE.GLTFExporter: userData can't be serialized

Раньше у меня не было Object3D, а только сами сетки, как дети сцены, и экспорт работал нормально. К сожалению, для работы программы необходимо иметь сетки внутри объектов, и документация предполагает, что они могут быть экспортированы.

Кто-нибудь может придумать способ обойти эту проблему?

1 Ответ

0 голосов
/ 24 июня 2018

userData - это поле в каждом Object3D, которое обычно имеет значение {}. Он предназначен для того, чтобы позволить пользователю (вам) хранить ваши собственные данные в Object3D или производном классе, не путая внутренности объекта. В вашей сцене может быть установлено несколько .userData для object3D ..

Самый простой способ узнать это scene.traverse((o)=>{console.log(o.userData)}) и посмотреть, есть ли данные пользователя, хранящиеся на каком-либо из ваших объектов.

Вы можете сделать копию своей сцены перед экспортом, используя var sceneCopy = scene.clone (true);

затем sceneCopy.traverse((o)=>{o.userData={};});

, а затем попытайтесь экспортировать sceneCopy.

Попробуйте, и если это не сработает, попробуйте сюда:)

НТН

...