今天給大家介紹一些關于3D Web輕量化引擎HOOPS Commuicator的關鍵概念,這些概念可以幫您在HOOPS Communicator流緩存服務器之上更好地構建您自己的模型流服務器。如果您是有大型數據集,那么,使用流緩存服務器可以極大地幫助您最大限度地減少內存使用量,并確保瀏覽器中模型數據的交互流暢性。
HOOPS中文網http://techsoft3d.evget.com/
一、SC Server(流緩存服務器)
SC Server(流緩存服務器)通過Websocket(網絡接口)連接,支持將一個或多個SC模型中包含的數據高效地流式傳輸到HOOPS Web Viewer。SC?Server的單個實例僅支持一個客戶端連接,但SC?Server的多個實例通常會在單個Web服務器上并行運行。SC?Server支持兩種渲染模式——CSR(客戶端渲染)和SSR(服務器端渲染)。
在CSR模式下,SC?Server將CAD模型幾何圖形發送到連接的HOOPS Web Viewer,并讓HOOPS Web Viewer直接在用戶瀏覽器中使用WebGL執行3D渲染。在SSR模式中,SC?Server將在服務器機器上自行執行3D渲染,然后將渲染結果作為圖像數據發送到HOOPS Web Viewer進行顯示。
SC?Server使用WebSocket技術與HOOPS Web Viewer進行通信,這要求每個SC?Server都可以訪問未使用的網絡端口。如果所有中間防火墻均已正確配置,HOOPS Web Viewer可以直接連接到此端口,或者HOOPS Web Viewer可以通過代理技術使用單個共享端口。
但請注意,即使使用代理方法,每個SC?Server實例仍然需要服務器計算機內的專用網絡端口,因為代理在網絡序列中稍后發生。如果正在使用代理,服務器計算機可能只需要為單個代理端口配置其防火墻即可允許網絡流量。HOOPS Communicator?HOOPS Server,它管理多個SC Server實例。但是您不使用HOOPS?Server的服務器配置,則可以直接運行SC?Server。
二、HOOPS Server
HOOPS?Server的主要任務是管理單個計算機上的多個SC?Server實例和關聯資源。任務包括:
- SC?Server生命周期管理
通常會啟動新的SC?Server實例來響應查看模型的請求。如果關聯的HOOPS Web Viewer斷開連接或發生響應超時,現有SC?Server實例將關閉,每臺服務器計算機同時運行的SC?Server實例的最大數量將受到用戶管理的配置文件的限制,因此正確控制這些實例的啟動和關閉非常重要。
- 網絡端口管理
HOOPS?Server配置必須包括一系列專用于SC?Server與HOOPS Web Viewer之間的WebSocket的通信端口。HOOPS?Server必須確保可正確使用這些端口,并且如果SC?Server實例關閉或意外啟動,則必須收回任何端口。
- 查看請求
當用戶希望啟動新的HOOPS Web Viewer時,必須發出請求來創建新的查看會話,從而為該HOOPS Web Viewer啟動新的SC?Server實例。
HOOPS Server支持兩種類型的查看請求:
① REST協議
在此模式下,查看請求通過REST樣式的HTTP URL發送到HOOPS Server。HOOPS Server將啟動一個新的SC Server實例,并使用可用于HOOPS Web Viewer查看的URI進行響應。
② WebSocket代理服務器
在此模式下,查看請求通過WebSocket URL發送到HOOPS Server,通常采用“ws://<服務器主機名>:<端口>”形式。服務器將啟動一個新的SC Server實例,并在內部將請求直接代理到該新實例。
三、HTTP?Server
任何情況下,標準HTTP Web?Server還必須與Communicator服務器結合使用,以將HTML、JS、CSS、圖像和任何其他文件傳送到請求瀏覽器。HOOPS服務器包含一個內置HTTP Web服務器,可用于開發和評估目的,但不建議在生產環境中使用。在特定情況下,應使用針對文件服務進行優化的工業級Web服務器,Apache或NGINX也是不錯的選擇。
四、渲染類型
- 客戶端渲染(CSR)
通過CSR,SC?Server將模型數據流式傳輸到HOOPS Web Viewer,允許客戶端硬件使用WebGL技術渲染3D圖形。WebGL是一種JavaScript API,用于在Web瀏覽器中渲染交互式3D圖形,而無需使用第3方插件。它在大多數現代瀏覽器中都可用。
對于小型模型,SC?Server通常只需發送整個模型即可,但對于大型模型,這種方法在內存或網絡帶寬方面并不實用。因此,在模型較大的情況下,SC?Server會使用啟發式方法,并結合對當前3D攝像機方向的模型面的了解,來確定向所連接的HOOPS Web Viewer發送模型的最佳部分。通過這種方式,當使用CSR方法時,大型模型幾乎可以立即開始部分數據的渲染。
由于WebGL依賴客戶端硬件來執行所有渲染,因此運行HOOPS Web Viewer的任何設備都必須足以渲染交互式3D圖形,比如:
①您需要有非常高頻的網絡帶寬,可以在可接受的時間內提供3D模型數據
②客戶端設備具有足夠的計算能力和GPU能力來正確渲染3D模型
③客戶端瀏覽器支持WebGL
④您打算在每臺服務器計算機上同時運行大量SC Server
- 服務器端渲染(SSR)
當HOOPS Web Viewer設置為服務器端渲染時,3D模型的所有渲染均由Web服務器上的GPU執行。因此,您的服務器后端必須包含一個包含GPU的實例。當用戶與模型交互時,服務器會渲染每一幀,并將圖像發送回客戶端的網絡瀏覽器進行顯示,從而最大限度地降低對客戶端硬件的要求。
圖像是實時發送的,因此在用戶看來,渲染就像是在本地計算機上實時完成的。
請注意,SSR僅用于3D模型渲染,所有其他功能(如按鈕和模型瀏覽器)都是通過HTML在客戶端創建的,這包括所有用戶創建的測量和標記數據。SSR的優勢是可以只將圖像發送到客戶端,因此用戶幾乎可以立即開始模型交互。SSR還允許您使用高性能GPU技術,該技術可以為非常大的模型帶來顯著的優勢。但使用SSR模式會將硬件要求轉移到服務器上。
在以下情況下,您可以選擇SSR:
☉ 您希望針對最廣泛的客戶端硬件☉您正計劃為不同的客戶提供超大型的模型
☉ 您擁有一個復雜的服務器后端,能夠以可接受的速度渲染您的模型,它還應該能夠根據模型的大小和并行用戶數量進行擴展
- SCS基于單個文件的渲染
在轉換源CAD模型時,可以指示HOOPS Communicator?Converter生成名為“<模型名稱>.scs”的單個文件。通過這種方法,您無需使用HOOPS?Server或啟動關聯的SC?Server即可渲染模型。這是CAD模型的獨立版本,可以加載到HOOPS Web Viewer中,以便使用WebGL在客戶端上進行渲染。SCS文件通常會使用HTTP Web服務器傳送到客戶端瀏覽器,所以SCS文件仍然會用到服務器,不過這種方法不需要HOOPS?Server或SC?Server。
雖然SCS文件方法因其簡單性而提供了一些明顯的價值,但也有特定條件:
① 在對CAD模型進行任何渲染之前,瀏覽器必須接收整個SCS文件。對于非常小的模型,這很好,但對于中型到大型模型,與使用CSR相比,這會造成明顯的啟動滯后。
② 對于較大的模型,SCS文件的大小可能會變得太大而不實用,所以,如果您是僅查看小型模型時,SCS這種方式會更便捷且實用。
歡迎持續關注,下期內容,我們將手把手教您構建您自己的流緩存服務器:
- 如何以編程方式配置和生成SC-Server?(流緩存服務器)實例
- 如何將JavaScript WebViewer連接到生成的SC-Server
- 如何監控SC-Server實例的生命周期
關于Tech Soft 3D
Tech Soft 3D是工程軟件開發工具包的領先提供商,成立于1996年,總部位于俄勒岡州本德,在法國、英國、日本和挪威均設有辦事處。該公司的工具包產品為全球數億臺計算機上運行的700多個獨特應用程序提供支持。了解更多HOOPS信息,請訪問“HOOPS中文網”。
申請HOOPS試用http://x7pfmmn259623uby.mikecrm.com/d7EBgIv
如果您的企業目前也有3D數據格式轉換、3D Web輕量化渲染的需求,歡迎聯系我們申請3D 輕量化引擎HOOPS的試用哦~