除了讀取輕松外,HOOPS Communicator對超大模型的支持效果也非常好,它可以支持30GB的包含70萬個零件和3.5億個三角面的Catia裝配模型!
那么它是如何來實現對大模型的支持呢?
我們將從以下幾個方面與大家分享:最低幀率控制、增量更新、截流等級、邊界預覽、內存限制以及破碎模式輕量化。
HOOPS_HOOPS試用_3D軟件開發工具_HOOPS中國區指定經銷商_慧都科技-HOOPS_HOOPS試用_3D軟件開發工具_慧都科技慧都科技是HOOPS全套產品中國地區指定授權經銷商,提供3D軟件開發工具HOOPS售賣、試用、中文試用指導服務、中文技術支持。http://techsoft3d.evget.com/
1 最低幀率
渲染場景時,HOOPS Communicator將按投影屏幕大小對可見對象進行排序,并首先渲染最大的項目。
系統旨在通過中斷渲染和將控件返回給用戶來保持最小的交互式幀率,以便他們可以繼續與查看器進行交互。
您可以使用WebViewer.setMinimumFrame函數設置系統將維護的幀率。
但是,通過設置更高的最小幀率獲得更高的性能是有代價的。
與系統交互時,將渲染較少的場景,以保持交互性。下圖演示了在模型中飛行時以不同的最小幀率渲染相同視圖的效果。
將最小幀速率設置為 15 的室內場景渲染
將最小幀速率設置為?30?的室內場景渲染
2 增量更新
場景將增量渲染,以保持與大型場景的交互性。從上面的示例中,當用戶停止與模型交互時,場景將增量渲染其余對象,而無需執行完全重繪,直到渲染整個場景。
當交互恢復時,增量更新將中斷,并再次保持最小幀率。
您可以使用WebViewer.setDisplayCompletFrames方法啟用或禁用增量更新。
默認情況下,增量更新處于啟用狀態,在呈現包含許多部分的非常大的模型時非常有用。此功能可防止系統在渲染過程中產生明顯的暫停,并允許用戶在所有的時間移動攝像機。
3 截流等級
HOOPS Communicator的默認行為是剔除視圖中顯示非常小的項目。目的是避免在對當前場景沒有明顯影響的幾何圖形上花費帶寬和渲染資源。
使用此技術剔除對象的判斷條件是通過將其投影邊界直徑視為屏幕空間的百分比而做出。如果此百分比小于截流值,則剔除對象,并且不進行繪制調用。
默認流截止值為0.0125。這意味著要渲染對象時,這意味著要渲染的對象,其投影屏幕空間邊界直徑(占屏幕空間的百分比)必須至少為該值。
您可以通過使用WebViewer.setStreamCutoffScale方法將比例因子應用于此值來調整應用程序中的性能。傳遞給此方法的值標識了一個介于0.0和2.0之間的比例,該比例將應用于默認值。
將比例因子設置為0將完全禁用流截止選擇。
下圖顯示了在部件的一部分上設置streamCutoffScale的效果:
*注意機器外殼周圍細節的變化
StreamCutoffScale: 0 (disabled)
StreamCutoffScale: 1
StreamCutoffScale: 1
4 邊界預覽
加載非常大的模型時,將需要一些時間才能將相關數據從服務器流式傳輸到客戶端。 邊界預覽提供了可視化的模型中正在等待數據到達的部分。 下圖顯示了部分加載的飛機模型的邊界預覽。
部分加載模型的邊界預覽
在啟動查看器之前,應設置邊界預覽模式。
邊界預覽可以與OnDemand加載模式一起使用,以在處理大型模型時提高性能。 它們還可以用于提供有關加載部分如何適合模型的整個上下文。 您可以使用Communicator.StreamingMode設置OnDemand。
5 內存限制
內存限制使您可以對給定時間在客戶端上使用的GPU資源量進行某種控制。
當試圖在圖形資源有限的模型上查看具有大量幾何圖形的模型時,這很有用。
要啟用內存限制,請在創建WebViewer對象時指定memoryLimit選項。
以下代碼顯示了創建一個Web瀏覽器的示例,該示例施加了256 MB的限制:
啟動查看器后,數據將正常開始流式傳輸。
如果系統檢測到流傳輸到服務器的其他數據將超出限制,則現有數據將從客戶端彈出,為新的、更相關的數據騰出空間。
彈出順序由當前加載的網格投影邊界信息的優先級隊列控制。 如果彈出的數據再次變得相關,它將根據需要從服務器重新傳輸。
6 顯示幀率
您可以使用setStatisticsDisplayVisibility方法啟用實時渲染統計信息。 統計信息可幫助您深入了解模型的性能。
統計信息顯示在 WedViewer 的左上角
下表描述了統計信息顯示面板中包含的數據:
>>>點擊申請HOOPS試用http://x7pfmmn259623uby.mikecrm.com/l9292M9? ? ?如果您當前也有3D模型格式轉換、3DWEB輕量化或數據發布的需求,歡迎留言~