如何将SketchUp模型导出到three.js?

如何将SketchUp模型导出到three.js?,three.js,sketchup,Three.js,Sketchup,我已经用google SketchUp创建了一个模型,我想将它导出到three.js以节省一些时间。因为我认为使用SketchUp比three.js更容易。那么有人能告诉我怎么做吗?非常感谢 您可以从SketcUp导出collada.DAE。然后使用Three.js ColladaLoader。我认为SketchUp的免费版本可能不允许collada导出,但在任何情况下,您都可以导出到Google Earth.KMZ,将其重命名为.ZIP,在任何存档程序中打开它,您应该在那里找到.DAE 它不是

我已经用google SketchUp创建了一个模型,我想将它导出到three.js以节省一些时间。因为我认为使用SketchUp比three.js更容易。那么有人能告诉我怎么做吗?非常感谢

您可以从SketcUp导出collada.DAE。然后使用Three.js ColladaLoader。我认为SketchUp的免费版本可能不允许collada导出,但在任何情况下,您都可以导出到Google Earth.KMZ,将其重命名为.ZIP,在任何存档程序中打开它,您应该在那里找到.DAE

它不是防弹的,但大部分是有效的。一些提示:

在“导出设置”中,保持三角形面处于启用状态。双面脸通常是最好的,但有时你可能想省去它

之后可能需要将纹理文件的大小调整为二维的非幂次,例如256x512

建议分解/解组所有组件和组,以避免折叠装载机问题。选择所有Ctrl+A,从关联菜单中分解。重复上述步骤,直到没有爆炸物。或者使用一个插件,比如SketchUp本身在分解非常复杂的模型时有困难,可能会出现冻结。这是非常不幸的,除了从模型中删除更复杂的部分,您没有什么可以做的。或者等等,可能需要1秒到几天的时间

在Three.js侧,您可能希望遍历导入的对象,并将材质设置为DoubleSide

即使UI或project设置为公制比例,SketchUp在导出时也会使用英寸单位,因此您可能需要相应地缩放导入的模型。JS没有这样的预定义的比例,但是例如,如果你考虑1个三。JS单位为1米,你需要设置Obj.Simult.x= Obj.S垢。y= Obj.Stand。z=0.0253999996930360;
您可以从SketcUp导出collada.DAE。然后使用Three.js ColladaLoader。我认为SketchUp的免费版本可能不允许collada导出,但在任何情况下,您都可以导出到Google Earth.KMZ,将其重命名为.ZIP,在任何存档程序中打开它,您应该在那里找到.DAE

它不是防弹的,但大部分是有效的。一些提示:

在“导出设置”中,保持三角形面处于启用状态。双面脸通常是最好的,但有时你可能想省去它

之后可能需要将纹理文件的大小调整为二维的非幂次,例如256x512

建议分解/解组所有组件和组,以避免折叠装载机问题。选择所有Ctrl+A,从关联菜单中分解。重复上述步骤,直到没有爆炸物。或者使用一个插件,比如SketchUp本身在分解非常复杂的模型时有困难,可能会出现冻结。这是非常不幸的,除了从模型中删除更复杂的部分,您没有什么可以做的。或者等等,可能需要1秒到几天的时间

在Three.js侧,您可能希望遍历导入的对象,并将材质设置为DoubleSide

即使UI或project设置为公制比例,SketchUp在导出时也会使用英寸单位,因此您可能需要相应地缩放导入的模型。JS没有这样的预定义的比例,但是例如,如果你考虑1个三。JS单位为1米,你需要设置Obj.Simult.x= Obj.S垢。y= Obj.Stand。z=0.0253999996930360;
在threejs中,如果要将从文件collada加载的对象放置在某个点上,则必须将偏移量转换为单位,例如:

我想将对象放置在600、1800、0 mm的位置,文件以英寸为单位导出

var dae; 
dae = collada.scene; 
... 
... 

var x = 600; 
var y = 1800; 
var z = 0; 

convertedX var = x * 0.0393700787 * dae.scale.x; 
convertedY var = y * 0.0393700787 * dae.scale.y; 
convertedZ var = z * 0.0393700787 * dae.scale.z; 

dae.position.set (convertedX, convertedY, convertedZ);

在threejs中,如果要将从文件collada加载的对象放置在某个点上,则必须将偏移量转换为单位,例如:

我想将对象放置在600、1800、0 mm的位置,文件以英寸为单位导出

var dae; 
dae = collada.scene; 
... 
... 

var x = 600; 
var y = 1800; 
var z = 0; 

convertedX var = x * 0.0393700787 * dae.scale.x; 
convertedY var = y * 0.0393700787 * dae.scale.y; 
convertedZ var = z * 0.0393700787 * dae.scale.z; 

dae.position.set (convertedX, convertedY, convertedZ);

非常感谢你!我成功地导出了一个例子@我很乐意帮忙!如果这回答了您的问题,请继续并将答案标记为acceptedI只能使用三角形面导出,这使得它在blender中毫无用处。有没有办法避免导出前在blender中进行三角剖分?SketchUp的免费版本支持.DAE导出。感谢这些提示-帮了我大忙!有关信息,请参见在Sketchup中分解模型的菜单>编辑>组件>分解非常感谢!我成功地导出了一个例子@我很乐意帮忙!如果这回答了您的问题,请继续并将答案标记为acceptedI只能使用三角形面导出,这使得它在blender中毫无用处。有没有办法避免导出前在blender中进行三角剖分?SketchUp的免费版本支持.DAE导出。感谢这些提示-帮了我大忙!有关信息,请在Sketchup中分解模型,请在其菜单>编辑>组件>分解中进行