如何在Blender中为Three.js分组顶点?

3
什么是在Blender中分组一堆顶点的最佳方法?导出后,我想仅操作这组顶点在ThreeJS中(例如更改它们的位置)。
我尝试过:
- 使用Blender(v2.73)集成的.obj导出器和ThreeJS的.json导出器(Add-on“io_three”),但它们忽略了例如Blenders“顶点组”,并未将顶点分组。 - 使用.obj导出器,我设法拥有一个节点(类型“Object3D”),其中有3个子节点(类型“Mesh”),而不是2个子节点。在最后一个子节点中,有一些网格的分离顶点(但不是我在Blender中选择的顶点组)。如果我知道顶点是如何进入另一个子节点的话,这可能是一个好的解决方案。
1个回答

1
  • Wavefront (.obj)没有分组或嵌套对象的概念。虽然有一种分组机制,可以使用注释ghttp://www.fileformat.info/format/wavefrontobj/egff.htm#WAVEOBJ-DMYID.3.1)将具有不同材料的面组合在一起。这种行为在Blender中也以某种方式存在于顶点组中。但是Blender中默认的Wavefront导出器不支持这种分组。

  • 一旦在.obj文件的面定义中设置了usemtl属性(我不知道我的示例中哪个Blender设置导致了这种情况),ThreeJS将在该属性后将面分隔成一个新的子节点。

我的解决方案:将所有属于一个组的对象放入Blender中的一个单独对象中。导出器然后为每个Blender对象创建一个对象o。ThreeJS将为每个对象创建一个子节点。 唯一的问题是:操作现在已组合在一个对象中的原始对象在Blender中更加困难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接