就上文提到的四類常見諮詢內容,本文介紹第四類:離線模型的下載和部署。
這是個經典問題,主要和Forge模型上載,轉換,網頁檢視模型幾個API有關,尤其國內朋友最為關心。所以單獨提出來介紹。
預設情況下,Forge轉換後的資料放在Forge雲端(目前在AWS美國),所以就有網路訪問效能的考慮。轉換後的資料在雲端都有唯一的地址,Forge也允許下載,對於obj,stl等格式,下載很直接,這裡有兩篇文章介紹:
而挑戰是SVF格式,也就支援網頁瀏覽的格式。SVF不是單一檔案,是一個資料包,包括了構件幾何資訊,屬性包,有一個.svf的清單檔案(二維模型是.F2D)。而Forge Viewer的JavaScript庫對此資料進行解析和渲染。例如,下圖是前面提到的Forge Viewer 課程系列(全英文)中使用到的離線資料包。目前,SVF資料格式並沒有文件說明,也無官方埠直接下載資料包。不過,只要按清單檔案下載到這些資料。
注意:
- 使用Forge Viewer相關js程式碼載入SVF前提是SVF資料包必須是由Forge的資料提取和轉換服務而產生。
- SVF2暫時還不支援下載資料包
Autodesk Forge支援團隊提供了幾種語言的下載示例:
- https://forge.autodesk.com/blog/forge-svf-extractor-nodejs
- https://forge.autodesk.com/blog/forge-svf-extractor-c-net
- https://forge.autodesk.com/blog/php-sample-extract-svf
若手動測試,推薦使用VSCode 的Forge擴充套件包中的功能,見下文提到的選單。
- https://segmentfault.com/a/1190000021764276
若需要,亦可整合對應的原始碼 - https://github.com/petrbroz/forge-convert-utils/tree/develop/src/svf
SVF資料包下載好以後,可以參考此樣例載入到瀏覽器:
請注意:Forge Viewer的版權屬於Autodesk,使用Forge Viewer客戶端的JavaScript程式碼,必須是從Forge資料提取和轉換服務得到的的資料。而且,必須是從Autodesk Forge官網連結引用Viewer相關程式碼(形如下)。這是使用Forge Viewer的兩個重要條款
關於extract.autodesk.io
很早前,我們部門提供了一個示例工具http://extract.autodesk.io/ ,用來演示上傳,下載離線SVF包,而且這個工具還搭建了一個很簡單的測試框架(Node.js和PHP兩種)。
現在https://extract.autodesk.io/ 已撤銷,請透過其原始碼工程自行研究測試。並請注意:extract這個工程有幾段程式碼是下載某個很早前版本的viewer庫,但這只是為了讓大家測試和理解離線的過程,而非正式合規方式,其原始碼工程Readme中也做了特別說明。所以:即便在離線方式下,正確引用viewer程式碼應遵循上面提到的以下條款規定的方式。
如果您的應用在無網路的場景下也需要使用viewer,請參考另外一篇博文 Forge雲服務的本地化經驗總結與最佳化實戰,有詳盡的介紹如何正確使用。