Threejs在带有MTL的obj文件中导出marchingcubes

时间:2018-07-12 18:09:25

标签: three.js

我已经看到了很多有关如何将ThreeJS或整个场景从ThreeJS导出到OBJ文件的示例。从此处的MrDoob示例开始:https://threejs.org/examples/#misc_exporter_obj

但是由于这样的前进多维数据集:https://threejs.org/examples/webgl_marchingcubes.html不是THREE.Mesh的实例,将其当前几何图形导出到Obj文件的解决方法是什么?然后将其材料扩展为一个mtl文件,如以下问题所述:Export a three js textured model to a .OBJ with .MTL file

编辑

据我所知,可以使用行进多维数据集提供的generateGeometry()函数导出元球当前状态的副本。下面是一个使用filesaver.js和JSZip.js将几何图形和材料导出为zip中的两个文件的示例。 THREE.OBJExporter来自ThreeJS的原始obj导出程序的修改版,如上所述(Export a three js textured model to a .OBJ with .MTL file):

function exportToObj(the_object){
                var zip = new JSZip();
                var the_exporter = new THREE.OBJExporter();
                var result = the_exporter.parse(the_object);
                zip.file("Blob.obj", result.obj);
                zip.file("Blob.mtl", result.mtl);
                zip.generateAsync({type:"blob"}).then(function (blob) {
                    saveAs(blob, "Blob.zip");
                });
}
$(document).on('keyup',function(e) {
    if (e.which == 13){ // enter key to export to OBJ
            var TempMesh = new THREE.Mesh(effect.generateGeometry(),effect.material);
            //effect is of the type: new THREE.MarchingCubes()
            exportToObj(TempMesh);
    }
});

这样,如果为材质提供了颜色,则它将导出到.mtl文件中。但是最后丢失的部分可能是例如如何正确转换shaderMaterial?也许另存为纹理?

0 个答案:

没有答案