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

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

這臺電腦已經(jīng)是好幾年之前的配置了,相對現(xiàn)在的主流配置已經(jīng)落后了。
3 測試結(jié)果

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

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

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

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