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

时间:2015-04-07 15:55:43

标签: three.js blender

在Blender中对一堆顶点进行分组的最佳方法是什么?导出后我想在ThreeJS中仅操纵这组顶点(例如,改变它们的位置)。

我试过了:

  • 使用Blender(v2.73)和.json导出器中的集成.obj导出器 来自ThreeJS(附加“io_three”),但他们忽略了例如 Blenders“Vertex Group”并没有将组中的顶点分开。

  • 使用.obj导出器,我以某种方式设法有一个节点(类型 “Object3D”)有3个孩子(类型为“Mesh”)而不是2个孩子。和 在最后一个孩子中,网格有一些独立的顶点(但是 不是我在Blender中选择的顶点组。如果我知道顶点如何在另一个子节点中获得,这可能是一个很好的解决方案。

1 个答案:

答案 0 :(得分:1)

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

  • 一旦usemtl属性(我不知道哪个Blender设置导致我的例子中出现这种情况)被设置在.obj的faces定义中的任何位置,ThreeJ将在之后分离面部该属性为新的子节点。

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