2013-07-11 79 views
1

我正在嘗試構建一個工具,該工具允許設計人員導入部分傢俱的3D模型(在3ds max中創建並轉換爲three.js json)並組裝傢俱這些部分通過移動它們。在完成組裝後,我需要導出最終的傢俱模型(幾何圖形,材料等)作爲svg圖像,以便在我的網站上顯示在一個2D家居設計工具中。如何將three.js模型(一個或多個)轉換爲svg。我也需要在3D家居設計工具中做同樣的事情,因爲用戶可以自己重新組裝傢俱,並且在重新裝配完成後需要在飛行中更新svg。是否有一個three.js插件,例如示例代碼或外部JavaScript庫,它允許我在瀏覽器中將一個或多個three.js模型轉換爲svg。任何幫助表示讚賞。將three.js模型轉換爲svg

回答

1

碰巧Three.js有THREE.SVGRenderer()。除了可能的小的兼容性更改外,您應該可以使用幾乎任何Three.js演示,並用THREE.SVGRenderer替換THREE.WebGLRenderer或THREE.CanvasRenderer。

要從渲染器DOM獲得最終的SVG,請參閱此處:THREE.SVGRenderer save text of image

顯然結果不會與WebGL或Canvas輸出相同,但它將是真正的矢量圖形。除非將基於位圖的圖像數據嵌入SVG,否則將更復雜的陰影WebGL場景轉換爲SVG幾乎是不可能的,這種方式會破壞SVG和矢量圖形的用途。在這種情況下,您最好使用PNG圖像,您可以直接從THREE.WebGLRenderer和THREE.CanvasRenderer中獲取這些圖像。

+0

您建議的解決方案將呈現SVG中的整個場景,但它仍然是3D場景(仍然存在第三個維度)。我想要做的是將JSON對象轉換爲svg圖像。就像我用3DS max打開一個3D模型並從某個角度輸出一個PNG圖像。在功能上類似於爲模型導出圖像,但不使用PNG,而是使用SVG格式。我不希望場景在SVG中呈現,但我需要導出一個單獨的3D模型(使用JsonLoader加載),動態導出爲SVG,並在使用SVG進行圖形顯示的其他查看器中渲染。 – Rajeev

0

拉傑夫,據我所知,你在考慮頂部,左側,右側,正視圖等。你應該檢查three.js正交相機來實現這一點。