2013-06-05 304 views

回答

6

您可以從SketcUp導出collada(.DAE)。然後使用Three.js ColladaLoader。我認爲SketchUp的免費版本可能不允許collada導出,但無論如何您都可以導出到Google Earth(.KMZ),將其重命名爲.ZIP,在任何存檔程序中打開它,您應該在其中找到.DAE。

這不是防彈的,但主要是作品。一些提示:

  • 在導出設置中保留三角面。雙面的面孔通常是最好的,但有時候你可能會想離開它。

  • 您可能需要調整後的紋理文件到非電源的兩個維度(如256×512個)

  • 爆炸/拆所有組件和組建議,以避免ColladaLoader問題。全選(Ctrl + A),從上下文菜單中爆炸。重複,直到沒有什麼可爆炸的。或者爲此使用插件,例如http://www.smustard.com/script/Bomb SketchUp本身在爆炸非常複雜的模型時遇到了問題,並且可能會凍結。這是非常不幸的,除了從你的模型中刪除更復雜的部分外,你可以做的事情不多。或者等一下,它可能需要1秒到幾天之間的任何時間。

  • 在Three.js端,您可能想要遍歷導入的對象,並將材質設置爲DoubleSide。

  • SketchUp在導出時使用英制單位(即使UI或項目設置爲公制縮放時),因此您可能需要相應地縮放導入的模型。 Three.js沒有預定義的比例尺,但例如,如果您將1.0 Three.js單位設置爲1.0米,則需要設置obj.scale.x = obj.scale.y = obj.scale.z = 0.02539999969303608;

+0

非常感謝!我已成功導出示例! – quanpower

+1

@quanpower im很高興幫助!如果這回答您的問題,請繼續並將答案標記爲已接受 – yaku

+0

我只能使用在攪拌機中無用的三角形表面進行導出。有沒有辦法在導出之前避免在攪拌機中進行三角測量? – simar

0

在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); 
相關問題