Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.JS Blender仅导出单个对象_Three.js_Blender - Fatal编程技术网

Three.JS Blender仅导出单个对象

Three.JS Blender仅导出单个对象,three.js,blender,Three.js,Blender,我在Blender中的模型由多组对象组成。模型作为.obj从C4D导出到Blender。每组对象都放在混合器中的空值下。当我在three.js中导出时,只有Blender中最后选定的对象将导出为.json文件 我试着选择了几个不同的对象,再次只会导出一个对象。我通过在编辑器中查看生成的.json文件来验证这一点。事实上,它只显示了一个正在导出的对象 我把每个物体分开,这样我可以很容易地做出选择,并将不同的材料应用到每个物体上。在过去,在从C4D导出.obj之前,我将所有对象合并到一个网格中,Bl

我在Blender中的模型由多组对象组成。模型作为.obj从C4D导出到Blender。每组对象都放在混合器中的空值下。当我在three.js中导出时,只有Blender中最后选定的对象将导出为.json文件

我试着选择了几个不同的对象,再次只会导出一个对象。我通过在编辑器中查看生成的.json文件来验证这一点。事实上,它只显示了一个正在导出的对象

我把每个物体分开,这样我可以很容易地做出选择,并将不同的材料应用到每个物体上。在过去,在从C4D导出.obj之前,我将所有对象合并到一个网格中,Blender和生成的.json文件使一切工作正常

在blender中,我所做的是尝试将所有对象链接到单个父对象,希望整个模型能够导出。这不起作用

我的问题是这是正常的行为吗

在我将材质应用到Blender中的每个网格后,如何将所有单独的块转换为单个网格


或者在处理多个对象时,是否存在某种导出设置错误,每个对象都有自己的空值?

请小心将对象分组到Blender中的空值(空)下。不久前,我尝试将灯光设置作为正常的逻辑工作流程,但发现在
three
中构建场景时存在转换问题

当我在three.js中导出时,只有Blender中最后选定的对象将导出为.json文件

这里的关键词是“last selected”,它告诉我您可能没有单击导出的
场景
选项。默认情况下,导出仅生成带有单个几何体的.json,该几何体是Blender中的当前选择

发布日志文件的输出有助于查看您的选项。您不需要为此粘贴整个内容,只需找到一行(朝向日志顶部)如下所示:

Three.Export - DEBUG: 
Scene().__init__(G:\cleanflight_json_test\cfc_gui_def_green_a.json, 
{'animation': False, 'cameras': False, 'embedGeometry': True, 
'faces': True, 'colors': False, 'influencesPerVertex': 2, 
'scene': True, 'faceMaterials': False, 'precision': 6, 'embedAnimation': True, 'lights': False, 'logging': 'debug', 
'scale': 1.0, 'frameStep': 1, 'bones': False, 'vertices': True, 
'uvs': False, 'copyTextures': True, 'geometryType': 
'geometry', 'mixColors': False, 'maps': False, 'compression': 
'None', 'normals': False, 'enablePrecision': False, 'materials': False, 
'skinning': False, 'morphTargets': False})
这至少会告诉我您的选项是什么

正如Repsac所说,检查Three.json exporter设置中的
场景
选项很重要。但重要的是要知道导出的json文件不再只是一个几何体。它现在已标记为场景类型,必须以不同的方式处理

您可以遵循从Blender导出整个场景的完整过程,以及在my上正确处理导出网格的方法

此外,正如你们两位所说,所有网格都可以合并为一个网格,并使用
THREE.MeshFaceMaterial
处理其中的多个材质,如以下代码所示:

var mat1 = new THREE.MeshLambertMaterial( { map: texture1 } );
var mat2 = new THREE.MeshLambertMaterial( { map: texture2 } );
var materials = [mat1, mat2];
var faceMat = new THREE.MeshFaceMaterial(materials);
mesh = new THREE.Mesh( geometry, faceMat );
scene.add( mesh );

希望这能让步骤更清晰一点。谢谢你们的帮助,伙计们:)

昨天每当我选择场景选项导出时,模型将不会显示在模型所在的gui中。gui中已经有灯光和摄像头,它只需要带有材质的模型。这是一个gui使用昨天的立方体模型的视频短片,这是一个到blender模型的链接,这里的.json文件是一个四旋翼直升机的屏幕截图,我在其中组合了所有网格(Ctrl+J组合了选定的网格)。我更改了每种材质的颜色,以便您可以看到材质指定被保留。如果你只是使用颜色(没有纹理),你也可以考虑烘焙材料到顶点颜色。你的资产(结合到一个单一的网格与多种材料)加载罚款为我。没有时间测试场景版本(保持对象分离)。