2017-01-21 80 views
1

我目前使用josdirkson's SVG拉伸腳本來形成20-30個複雜形狀的組。我的目標是在整個用戶的交互過程中單獨操作每個對象以及整個組。到目前爲止,我已經能夠實現這一目標,但是,在各種設備上,我的加載時間可能在7到20秒之間。我想知道是否有很多這可能只是腳本內在的轉換所有的SVG路徑bezierCurves等,如果是這樣的話,我想知道如果一個可行的解決方案可能是以某種方式從Three.js導出到JSON或其他文件類型,然後這些文件類型將成爲用戶從其加載的後續數據源。我一直在尋找at this thread,但是在羣體採購解決方案之前,我不想過於自信。任何建議或意見非常感謝!謝謝!我可以將THREE.Group導出爲JSON以改進我複雜的SVG擠出中的加載/渲染時間嗎?

回答

1

我可以給你的最好建議是查看加載過程的配置文件。要在Chrome中測試此功能,您可以將console.profile('something');console.profileEnd('something');調用對添加到您要分析的區域的代碼中。然後打開devtools中的Profiles-panel並重新加載頁面/重新運行javascript。

這可能會告訴你,如果你對你的假設是正確的。至少它會幫助你找到JS花費的時間。

如果確實如此,可以使用geometry.toJSON()new THREE.JSONLoader().parse(json)來保存和恢復幾何圖形。在大多數情況下,這應該比以某種方式計算幾何圖形快得多。 (注意:還有其他更節省空間且更高效的緩存方式,但json格式是一個很好的起點)

+0

謝謝!我會在今晚晚些時候嘗試分析開始/結束觸發器。這超出了我的技能水平,但我很樂意搞清楚它!下面是我拍攝的一個chrome錄製的截圖:http://i.imgur.com/ueXm1Yu.png 我可以將組導出爲JSON並保留個別對象標識嗎?或者可能向上移動層次結構以導出整個場景? – ChrisTalbot

+1

好的,太棒了。這確實看起來像網格的初始構造是問題。您可以嘗試的第一件事是使用更快的三角測量庫,比如mapbox的earcut-library(請參閱https://github.com/mrdoob/three.js/issues/5959#issuecomment-148334316)。我還可以推薦的是在Worker中做三角測量工作,所以你至少不要凍結你的瀏覽器。 –

+0

這個傳奇的最新發展是JSONLoader不支持擠壓對象。我想知道是否需要將所有SVG路徑重新加工爲更小或找到另一種導入對象的方法。深入到三角測量庫似乎有點超出了我的技能水平。 – ChrisTalbot

相關問題