загрузка моделей - threejs - PullRequest
2 голосов
/ 11 июля 2020

Я обнаружил проблему с загрузкой объектов в 3. js область просмотра. Учебники показывают, что необходимо использовать THREE.ObjectLoader () . Насколько мне известно, ObjectLoader был удален несколькими версиями go. Как правильно загружать модели или какой загрузчик (и формат файла) использовать? Я пробовал GLTFLoader

import * as THREE from "https://cdn.jsdelivr.net/npm/three@0.114/build/three.module.js";
import { OrbitControls } from "https://cdn.jsdelivr.net/npm/three@0.114/examples/jsm/controls/OrbitControls.js";
import { GLTFLoader } from 'https://cdn.jsdelivr.net/npm/three@0.114.0/examples/jsm/loaders/GLTFLoader.js';
...
let loader = new GLTFLoader();

loader.load('./models/object.gltf',
    (obj) => {
        scene.add(obj);
    }
);

Мне выдает three.module. js: 5562 THREE.Object3D.add: объект не является экземпляром THREE.Object3D. Можно найти загрузчики CDN здесь - https://cdn.jsdelivr.net/npm/three@0.114.0 / examples / jsm / loaders /

Обновление: Как импортировать данные с помощью ObjectLoader?

import * as THREE from "https://cdn.jsdelivr.net/npm/three@0.114/build/three.module.js";
import { OrbitControls } from "https://cdn.jsdelivr.net/npm/three@0.114/examples/jsm/controls/OrbitControls.js;
...
let loader = new THREE.ObjectLoader();

loader.load('./models/object.json',
    (obj) => {
        scene.add(obj);
    }
);

/* throws
   three.module.js:39957 THREE.ObjectLoader: Loading "Geometry"
   is not supported anymore
*/

1 Ответ

1 голос
/ 11 июля 2020

THREE.ObjectLoader не был удален из репозитория. Вы можете использовать его для загрузки формата three.js custom JSON.

Для загрузки внешних моделей, созданных с помощью инструментов D CC, таких как Blender, рекомендуемый формат 3D - glTF. К сожалению, вы неправильно используете загрузчик. Это должно быть:

loader.load('./models/object.gltf',
    (gltf) => {
        scene.add(gltf.scene);
    }
);

Я предлагаю вам взглянуть на официальную страницу документации из THREE.GLTFLoader, чтобы лучше понять, как параметр gltf из onLoad() обратный вызов структурирован.

...