2010-07-27 39 views
1

我必須在Google Sketchup中渲染幾千個多邊形的網格。我發現add_face隨着模型中的面數增加而趨於變慢。我相信這是由於Sketchup在幕後運行的一些邊緣檢測算法。希望應該有某種方法來抑制Sketchup正在進行的邊緣檢測或其他處理,直到將所有面添加到模型中。在SketchUp中創建面和邊對象的最快方法

我發現add_faces_from_meshfill_from_mesh要快很多,但我最終由Surface實例,而不是FaceEdge對象我找的網格。

那麼,在Sketchup中生成由FaceEdge對象組成的模型的最快方法是什麼?有沒有辦法從Surface對象中生成EdgeFace對象?

更新:我剛纔讀here,使用Model::start_transactionModel::commit_transaction可以用來加快速度,但我發現這些改進並不十分顯著。還有什麼我可以做的?

回答

1

我發現add_faces_from_meshfill_from_mesh要快很多,但我 結束了由 Surface實例,而不是FaceEdge對象我找的網格。

調用add_faces_from_meshfill_from_mesh有明確設置爲零正確構建FaceEdge對象smooth_flags參數。 Sketchup Documentation聲稱smooth_flags默認爲零...我的試驗顯示,否則。

1

只是澄清 - add_faces_from_meshfill_from_mesh確實添加了邊和麪 - 但是,默認行爲是創建一個具有柔和和平滑邊緣的網格。當您有一組通過軟邊連接的面時,它們將被SketchUp視爲曲面,當您選擇它們​​時,實體信息窗口將會顯示「曲面」。 但是 - 在內部它仍然只是一組邊和麪 - SketchUp沒有Surface實體。

至於Model::start_transaction - 您必須爲第二個disable_ui參數指定true,才能看到任何速度增益。但是,正如你已經注意到的那樣,SU在添加實體方面速度很慢 - 你添加的實體集合越多,實體越慢。添加實體的絕對最快方式是fill_from_mesh

相關問題