两者:
来自
在两种情况下,源代码均未添加任何功能:
但只有类型和标志
因此,一个组具有组类型,并且标志isGroup = true 并且Bone的类型为bone,并且标志为isBone = true
对于我的用例,我可能需要具有成组的骨骼。这取决于答案:
Bone和Group有什么区别?
文档说:
组:这几乎与Object3D相同。其目的是使语法上的对象组更加清晰。
骨骼:骨骼的一部分。骨骼又由SkinnedMesh使用。骨骼几乎与空白的Object3D相同。
因此两者都是几乎与... Object3D
对于Bone,至少要提到Three.js的哪些部分行为不同。对于群组,我想知道某个东西是否是群组会在哪里有所作为。如果仅是语法,那么Bone会完全像一个组那样运行。如果Three.js代码中的某些部分检查isGroup或kind are group,那将是另一回事了……
如何使用Three.js标准功能实现作为组的骨骼?
是否只需将标志“ isGroup”设置为足够?
我是否必须创建BoneGroup或GroupBone-设置两个标志? 哪种命名与Three.js当前的命名约定更加一致?
答案 0 :(得分:1)
我认为对于您而言,最好的解决方案是将Bone用作Object3D,因为它已经对其进行了扩展。除以下情况外,没有这样的情况无法使用Group3的Object3D:
isGroup属性在WebGLRenderer类,projectObject函数(https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLRenderer.js,当前版本的第1256行)中仅在THREE.JS源代码内部使用一次,并定义了子组的渲染顺序。
所以我认为使用Object3D代替Group几乎是干净的,并且不创建其他类