我正在尝试显示一组嵌套网格,我从服务器检索并且无法更改。到目前为止,网格有点不寻常,旋转和位置在局部坐标中,但是缩放都在全局坐标中。
理想情况下,我更愿意通过将子网格添加到THREE.Mesh来维护层次结构,但是层次结构被展平的解决方案也是可行的。
我的问题是,简单地添加子网格会使子网格的大小爆炸:
this.add(child);
会使孩子和孩子的孩子的体积过大,因为服务器认为不会继承缩放信息。
我尝试过一个简单的事情:
child.scale.divide(this.scale);
this.add(child);
但这不起作用,我认为这是因为THREE.Object3D
的{{1}}定义为[旋转x缩放x翻译]。
我的liniear代数有点生疏,有人可以给我一些关于如何调整孩子缩放矢量的指示吗?
答案 0 :(得分:2)
以适当的层次顺序添加对象,将比例设置为(1,1,1),并使用以下方法将每个对象的几何图形放大到正确的全局大小:
geometry.scale( s, s, s );
three.js r.86