在Blender中对一堆顶点进行分组的最佳方法是什么?导出后我想在ThreeJS中仅操纵这组顶点(例如,改变它们的位置)。
我试过了:
使用Blender(v2.73)和.json导出器中的集成.obj导出器 来自ThreeJS(附加“io_three”),但他们忽略了例如 Blenders“Vertex Group”并没有将组中的顶点分开。
使用.obj导出器,我以某种方式设法有一个节点(类型 “Object3D”)有3个孩子(类型为“Mesh”)而不是2个孩子。和 在最后一个孩子中,网格有一些独立的顶点(但是 不是我在Blender中选择的顶点组。如果我知道顶点如何在另一个子节点中获得,这可能是一个很好的解决方案。
答案 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中操作原始对象(现在组合在一个对象中)比较困难。