У меня, похоже, проблемы с Three.ObjectLoader. Я экспортирую сцену в формате 4.3 JSON. Эта сцена включает в себя геометрию, материалы и освещение. Сцена открывается в редакторе Three.js просто отлично, без ошибок.Ошибка Three.js с THREE.ObjectLoader
Я работаю над firefox с master.js r70. Вот ссылка на созданный JSON: https://gist.github.com/fraguada/d86637f7987096b361ea
В средстве просмотра я пытаюсь написать, я использую следующий код для загрузки:
var manager = new THREE.LoadingManager();
manager.onProgress = function (item, loaded, total) {
console.log(item, loaded, total);
};
// instantiate a loader
var loader = new THREE.ObjectLoader(manager);
loader.load(
// resource URL coming from other file
Name,
// Function when resource is loaded
function (result)
{ scene.add(result.scene); },
// Function called when download progresses
function (xhr)
{ console.log((xhr.loaded/xhr.total * 100) + '% loaded'); },
// Function called when download errors
function (xhr)
{ console.log('An error happened'); }
);
В консоли я вижу следующее:
THREE.WebGLRenderer 70 three.min.js (line 513)
100% loaded content.js (line 117)
THREE.Object3D.add: undefined is not an instance of THREE.Object3D. three.min.js (line 164)
js/Test83.js 1 1 content.js (line 86)
ошибка также появляется в unminified three.js в строке 7674
Эта проблема также возникает, если я создаю геометрию и другие объекты в редакторе Three.js и экспортировать его как сцену.
Проблема, кажется, здесь: scene.add(result.scene);
Неправильно, если THREE.ObjectLoader может потреблять JSON из файла? В коде, который я отправляю, если я удалю scene.add(result.scene);
, кажется, что файл загружается как минимум (данные загружаются, геометрия не визуализируется), так как ошибок не возникает. Если у меня есть сцены со многими сетками, прогресс будет выводиться на консоль (10% загружен, загружен на 20% и т. Д.).
Любые идеи были бы очень признательны.
p.s. если я допрашиваю объект 'result', прежде чем пытаться выполнить команду' scene.add (result.scene); 'Я вижу все содержимое JSON из файла. Так что, похоже, все нормально. Я увижу, могу ли я отследить любые существенные неопределенные объекты, чтобы увидеть, влияет ли на них беспорядок. –
Таким образом, result.scene является главным виновником, поскольку результат фактически может заменить существующую сцену. Если я сделаю это «scene = result», тогда я получу полный белый мир. Объекты есть, но у них, похоже, нет материалов (хотя материалы действительно появляются как часть их свойств). Если я пройду через детей результата, я смогу добавить сетки на сцену и получить их с плоским материалом по умолчанию. Поэтому я добиваюсь прогресса, просто кажется, что есть лучший способ, который я пропускаю, который принимает результаты и отображает их с помощью загрузчика объектов. –