DAE 模型为 xml

Posted

技术标签:

【中文标题】DAE 模型为 xml【英文标题】:DAE model as xml 【发布时间】:2018-05-28 03:44:33 【问题描述】:

我正在做与 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 文件,此代码就是工作文件。

但现在我正在尝试从 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。

问候, 阿米特

【问题讨论】:

【参考方案1】:

如果你想直接解析 Collada XML,你可以使用这个模式:

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

【讨论】:

我可以通过 XML 代替 URL 吗? 我正在尝试将 XML 写入此函数并渲染模型,因为如果我将文件路径作为 url 传递,则加载程序将不会加载。这就是我试图将 dae 作为 xml 传递的原因。请提出建议。

以上是关于DAE 模型为 xml的主要内容,如果未能解决你的问题,请参考以下文章

如何将复杂的 .dae 模型导入到 SceneKit?

将dae批量转换为scn

flex + papervision 中的交互式(添加侦听器)DAE 模型

iOS Xcode 从 Maya 导入 COLLADA .dae 3D 模型,同时尊重枢轴点

SceneKit - 如何获取 .dae 模型的动画?

如何使用 Three.js 和 Collada Loader 更新 .dae 文件中模型的特定部分