Posted on 2023-01-16 22:58
eryar 閱讀(1478)
評論(0) 編輯 收藏 引用 所屬分類:
2.OpenCASCADE
OpenCASCADE Visualization Performance
eryar@163.com
1 Introduction
OpenCASCADE的顯示模塊的功能性能如何,很多人都很關心。開源社區的FreeCAD目前的顯示功能都沒有使用OpenCASCADE的顯示模塊。早在2014年時,我在社區論壇提出過顯示模塊交互選擇的性能問題:
https://dev.opencascade.org/content/selection-convert-2d-not-very-efficient
當時的版本應該是6.8.0。在6.7.1的發布信息中還提到了我很開心:

當時KGV也正在優化這部分的功能:
https://tracker.dev.opencascade.org/view.php?id=24623
通過引入BVH來更高效地處理選擇,這個功能集成到6.9.0的版本中了。在6.8.0版本中已經在增強顯示模塊的性能,如引入culling機制:
https://tracker.dev.opencascade.org/view.php?id=24307
到7.4.0版本,culling基本完善,當模型超出視錐體范圍就從顯存中去除:
https://tracker.dev.opencascade.org/view.php?id=30223
到現在最新版本,顯示模塊的顯示和交互功能的性能到底如何,下面給出我的一個測試,測試結果僅供參考。
2 硬件信息
測試電腦的配置信息如下表:

這臺電腦已經是好幾年之前的配置了,相對現在的主流配置已經落后了。
3 測試結果

這個測試模型是船的艏部模型,包括船體結構和舾裝模型,總共的三角面片數量為5百萬,幀數FPS為25.8,幀數大于12應該算流暢。交互選擇性能很好,感覺不到延遲,鼠標移動到模型上就可以高亮。

這個測試模型是一個渡輪,包括船體結構和舾裝的所有模型,總共的三角面片數量為1千2百萬,幀數FPS為0.1,視圖操作(對視圖縮放、旋轉、移動)已經有比較嚴重的延遲,但是交互選擇性能還不錯,沒有延遲,鼠標移動到模型上也是實時高亮。

這個是海洋平臺模型,包括結構和舾裝模型。這個模型量最大,總共有1千7百萬三角面片,幀數FPS為2.2,視圖操作(對視圖縮放、旋轉、移動)已經有比較嚴重的延遲,但是交互選擇性能還不錯,沒有延遲,鼠標移動到模型上也是實時高亮。這個最大的模型占用內存情況如下圖所示:

軟件總共占存3.4G內存,這其中還包含左邊的設計導航樹的數據。當將模型放大,超出視圖范圍外的模型已經被剔除culling,所以可以從上圖可以看出三角面片數量變少了,為6百萬。
4 Conclusion
通過以上的測試數據,大家可以結合自己行業模型的體量來選擇是否使用OpenCASCADE的顯示模塊。對于接近2千萬三角面片的模型來說,模型量已經比較大,在這個電腦配置情況下基本能滿足一些大體量的模型顯示及交互操作。因為對于大的設計模型,一般在設計過程中,也不是一個人設計,而是多人多專業協同設計,一個人涉及到的模型量一般不會達到2千萬這個量級。而當設計完成,只需要瀏覽時(如模型評審),這時就有很多優化手段。