Модель DAE в формате xml

Я делаю небольшую работу, связанную с ThreeJS.

var loader = new THREE.ColladaLoader();
loader.load(path, function (collada) {
var dae = collada.scene;
dae.position.set(0, 0, 0);  
scene.add(dae); 
}, function () { }, function (result) { console.log(result); });

Этот код является рабочим файлом, если я загружаю фактический файл dae.

Но теперь я пытаюсь загрузить XML из DAE. Пожалуйста, предложите мне, как мне подойти к этому.

Я попробовал код ниже, чтобы проанализировать xml и загрузить 3D-модель. Это не работает.

var parser = new DOMParser();
var xml = parser.parseFromString(path, "text/xml");
var loader = new THREE.ColladaLoader();
loader.parse(xml, function (collada) {
    collada.scene.traverse(function (node) {
        if (node.material) node.material.map = dummyTexture;
    });
    signals.objectAdded.dispatch(collada.scene);
    signals.objectSelected.dispatch(collada.scene);
});  

Пожалуйста, предложите, как загрузить 3d xml в загрузчик collada.

С уважением, Амит


person amitk_189    schedule 14.12.2017    source источник


Ответы (1)


Если вы хотите анализировать XML Collada напрямую, вы можете использовать этот шаблон:

var loader = new THREE.FileLoader();

loader.load( url, function ( text ) {

    var loader = new THREE.ColladaLoader();

    var path = THREE.LoaderUtils.extractUrlBase( url );

    var collada = loader.parse( text, path );

    var dae = collada.scene;

    scene.add( dae );

} );

три.js р.88

person WestLangley    schedule 14.12.2017
comment
Могу ли я передать XML вместо URL? - person amitk_189; 14.12.2017
comment
Я пытаюсь использовать XML для этой функции и визуализировать модель, потому что, если я передам путь к файлу в качестве URL-адреса, загрузчик не загрузится. Вот почему я пытаюсь передать dae как xml. Пожалуйста, предложите. - person amitk_189; 14.12.2017