2017-12-14 12 views
0

ThreeJS와 관련된 작은 작업을하고 있습니다.DAE 모델 (xml)

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을로드하려고합니다. 친절하게도 이걸 어떻게 접근해야하는지 제안 해주세요.

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 loader에로드하는 방법을 제안하십시오. 직접 콜라다의 XML을 구문 분석 할 경우, 당신은이 패턴을 사용할 수 있습니다

답변

0

안부, 미트는 :

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); 

}); 

three.js를 r.88

+0

는 내가 URL 대신에 XML을 전달할 수 있습니다 ? –

+0

URL로 파일 경로를 전달하면 로더가로드되지 않기 때문에 XML을이 함수로 렌더링하려고합니다. 그게 내가 dae를 XML로 전달하려는 이유입니다. 제발 제안 해주세요. –