Three.JS Blender 仅导出单个对象

Three.JS Blender Is Only Exporting A Single Object

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

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

我将每个对象分开,这样我就可以轻松地进行选择并为每个对象应用不同的材质。过去,在从 C4D 导出 .obj 之前,我将所有对象合并到一个网格中,并且在 Blender 和生成的 .json 文件

中一切正常

在 blender 中,我所做的是尝试 link 所有对象到单个父对象,希望整个模型都能导出。这没有用。

我的问题是这是正常现象吗?

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

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

注意在 Blender 中将对象分组到 Null(空)下。我不久前用我的灯光设置尝试过这个,因为它通常是一个合乎逻辑的工作流程,但发现在 three.

中构建场景时存在转换问题

When I export in three.js, only the last selected object in Blender will be exported as a .json file.

这里的关键字是"last selected",这告诉我你可能没有点击导出的Scene选项。默认情况下,导出仅生成具有单个几何体的 .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.js中的Scene选项很重要json 导出器设置。但重要的是要知道导出的 json 文件不再只是一个 Geometry。它现在被标记为 Scene 类型,必须以不同的方式处理它。

您可以在我的 answer to this post.

上了解从 Blender 导出整个场景的完整过程以及处理导出网格的正确方法

此外,正如你们所说,所有网格都可以合并为一个网格,并使用 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 );

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