Sketchup 允许制作组件以促进几何图形的重用。例如,可以将一个汽车车轮制成一个组件,并且该组件的 4 个实例可以用于汽车的 4 个车轮。
问题是如何将每个重复使用的组件放入自己单独的 THREE.Object3d 实例中(然后可以旋转、定位......即单独控制)
即如何将汽车的 4 个轮子中的每一个检索为 4 个单独的 THREE.Object3D 实例。
为此,我从sketchup 中导出了一个DAE,并使用Three.js ColladaLoader 加载它。但是,Three.js 不会呈现分组的几何图形。同一 dae 中未分组的几何图形呈现正常。
尝试了一些解决方法,例如将 dae 导入 belnder 并使用 three.js blender exporter 进一步导出到 .obj 和 JSON。使用这些变通方法,分组信息会丢失。
我正在尝试深入研究 ColladaLoader.js 代码,看看是否有解决方案。
这个stackoverflow问题看起来很相似(对于blender而不是sketchup)并且有一个答案,但答案不是我想要的。
顺便说一句,可以在下面的片段中看到 DAE 中的分组和未分组几何的示例。
<library_visual_scenes> <visual_scene id="ID1"> <node name="SketchUp"> <instance_geometry url="#ID19"> <!-- UN-GROUPED GEOMETRY --> <bind_material> <technique_common> <instance_material symbol="Material2" target="#ID6"> <bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" /> </instance_material> </technique_common> </bind_material> </instance_geometry> <node id="ID2" name="wheel1"> <!-- A RE-USE OF A COMPONENT --> <matrix>1.0000000 0.0000000 0.0000000 7.0639700 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</matrix> <instance_node url="#ID3" /> </node> </node> </visual_scene> </library_visual_scenes>
上面的 DAE 片段仅显示了组件的重用。组件的实际几何形状出现在 dae 下<library_nodes>
。
</library_visual_scenes> <library_nodes> <node id="ID3" name="WheelComponent"> <instance_geometry url="#ID4"> <!-- GEOMETRY OF A GROUP (COMPONENT) --> <bind_material> <technique_common> ...
将不胜感激任何帮助。