1

我对编程比较陌生,目前正在尝试了解有关three.js(一个JavaScript 3D 库)的更多信息。许多事情相对容易理解,但我很难保存几何图形及其材料。

我已经构建了一个简单的立方体,并且每当加载图片时都会将图像投影到它上面。像这样:

$('#picture')[0].onload = function() {
    var texture = new THREE.Texture(this,null);
    texture.needsUpdate = true;
    cube.material = new THREE.MeshBasicMaterial( { map: texture } );
    render();
}

我的目标是保存立方体及其材料。理想情况下,我想将它直接保存为 .dae 文件,因为我想在其中导入我的多维数据集的另一个程序只需要 .dae 文件。

但是,我找不到 THREE.js 的 collada 导出器。因此,我搜索了其他可以生成可以在 Blender 或 MeshLab 中打开的文件格式并从那里另存为 .dae 的导出器。不幸的是,我无法使用这些导出器保存几何和材料/图片:

GeometryExporter.js、OBJExporter.js、SceneExporter.js

我还研究了 OBJ 和 MTL 的组合。我确实找到了 OBJMTLLoader.js,但是我缺乏将 OBJMTLLoader.js 重写为 OBJMTLExporter.js 的知识

谁能帮我找到从 THREE.js 中的立方体及其(图片)材料到 .dae 文件的方法?

4

1 回答 1

0

对于这样一个非常简单的用例,您可以手动编写 DAE,或者更简单,即时修改现有 DAE。如果您更改文件扩展名,它只是 XML。

在 Blender 中使用材质创建简单的立方体,将其导出到 DAE,并将其用作模板。使用文本编辑器阅读简单的 DAE 文件并不难,您可以找到相关部分并在 javascript 中搜索和替换这些部分(可能是纹理参考、材料属性和 UV)。

这可能不是您正在寻找的,但可以工作。没有多少格式对材料有适当的支持,我怀疑你是否能成功地为这样的东西找到一个工作的、功能齐全的 Three.js 导出器(虽然不确定)。

于 2013-04-26T13:13:34.017 回答