2013-02-14 53 views
3

我想在three.js webgl畫布上(使用線框材質)顯示2D矢量地圖。 地圖最初來自dwg格式,將被轉換爲svg。SVG矢量圖像Three.js形狀?

但沒有找到任何SVG導入器three.js。

有沒有svg加載器/導入器? 或其他一些顯示矢量地圖的方法?

(我試圖將其轉換爲一個網格在3ds Max,並出口到OBJ, 但它失去了一些非閉合路徑和一些物品得到三角面, 這does not看起來線框材料好)

理想情況下,地圖將被導入/轉換爲形狀並可在此處查看(中間圖層爲「純形狀」,無額外頂點等) http://mrdoob.github.com/three.js/examples/webgl_geometry_shapes.html

謝謝!

回答

1

嘗試使用「SVGLoader」(http://threejs.org/docs/#Reference/Loaders/SVGLoader),你需要添加一個功能,因爲它不是在three.js所R71,所以,在這裏它是「https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/SVGLoader.js

+1

謝謝,看起來像一個很好的解決方案 – AdvancedTech 2015-07-20 07:51:21

+6

嗨,你能解釋這是如何完全實現的嗎?該文檔說svg將作爲SVGDocument加載。這將如何被轉換成三維形狀? – 2015-09-01 18:44:24

-1

如果您將SVG帶入您的網頁(可能是隱藏的DIV?),您應該能夠查詢DOM中的所有組件。然後畫出你認爲合適的three.js項目。

+0

沒有找到其他合適的解決方案,所以做了一個小的SVG裝載機/解析(從文件加載)與JavaScript然後從那裏建立線條/元素。 – AdvancedTech 2013-02-22 08:42:20

+0

是的,正好 - 它可以讓您生成適合您的特定用例的WebGL元素。 – bjorke 2013-02-26 00:37:17

0

有兩種方式:

  1. 使用https://github.com/mattdesl/svg-mesh-3d/
  2. Blender使用

與SVG目-3D的問題是,它不會爲你做的擠壓,以及everythi ng必須被編程。這就是爲什麼攪拌機是更好的方法。如果您瞭解Blender,則可以將SVG導入其中,然後在幾分鐘內擠出並導出爲JSON格式。稍後,您將使用加載器將JSON加載到您的動畫中。如果你不知道攪拌機,這裏是如何做到這一點:

https://www.youtube.com/watch?v=rDjhO7r3agc&t=225s

https://www.jonathan-petitcolas.com/2015/07/27/importing-blender-modelized-mesh-in-threejs.html