為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及一種虛擬現(xiàn)實系統(tǒng),尤其涉及一種為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng)。
【背景技術】
[0002]目前在虛擬現(xiàn)實技術已經(jīng)大規(guī)模的進入工業(yè)仿真的鄰域。但是在工業(yè)應用中,始終有一個技術隔閡存在,就是各個大型的工業(yè)設計平臺與實時多邊形引擎的數(shù)據(jù)互通性。
[0003]工業(yè)設計平臺為了設計的需要以及數(shù)據(jù)的準確性,通常使用基于參數(shù)建模的實體模型描述方式。雖然,各大平臺所支持數(shù)據(jù)類型大同小異,但是格式的不相容,給虛擬現(xiàn)實應用帶來了極大的成本。
[0004]在虛擬現(xiàn)實應用中,通常幾何體數(shù)據(jù)都是預先通過轉換工具轉換成多邊形后預先置入引擎的。這種做法帶來大量的缺陷,數(shù)據(jù)轉換本身是一項費時費力的工作,而工業(yè)數(shù)字模型通常都是針對機械、廠房等大規(guī)模對象設計的,其動輒上百GB甚至上TB的數(shù)據(jù)量對于手動的預先轉換來說極其困難。
[0005]同時,由于多邊形模型是一種近似模型,為了顯示精度和速度的平衡,通常需要轉換多種不同精度的結果,而多邊形用來表達同一數(shù)據(jù)模型時,往往數(shù)據(jù)量要大大高于實體模型的表達方式。所以,由此還會產(chǎn)生額外的巨大數(shù)據(jù)量。這在講求高效率的虛擬現(xiàn)實引擎中顯然非常不理想。再則,對于工業(yè)仿真來說,通常用戶更加希望能夠在仿真環(huán)境中直接看到數(shù)字模型上最新的修改,這對于傳統(tǒng)提前轉換并預置的模式來說幾乎無法實現(xiàn)。
【發(fā)明內容】
[0006]本發(fā)明公開了一種為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng),用以解決現(xiàn)有現(xiàn)有技術中虛擬現(xiàn)實技術通過預轉換的方式植入引擎,導致轉換成本高、產(chǎn)生的數(shù)據(jù)量大、轉換效率低的問題。
[0007]本發(fā)明的上述目的是通過以下技術方案實現(xiàn)的:
一種為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng),其中,包括:一引擎任務集群通過中心交換機與數(shù)據(jù)庫通信,一任務列隊管理機與所述中心交換機連接;多個緩存服務器與中心交換機連接,多個緩存服務器還與一次交換機連接;所述中心交換機上還連接有一應用接口路由,終端應用機與所述應用接口路由通信。
[0008]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng),其中,所述引擎任務集群為CAD引擎任務集群。
[0009]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng),其中,所述應用接口路由連接有一無線AP,所述終端應用機與所述應用接口路由通過無線連接。
[0010]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng),其中,所述數(shù)據(jù)庫包括:工業(yè)數(shù)字模型數(shù)據(jù)庫及信息數(shù)據(jù)庫。
[0011]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng),其中,所述應用接口路由與所述中心交換機之間具有一防火墻。
[0012]—種為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法,其中,包括:
任務列隊管理機獲取終端應用機上內嵌CAD引擎的任務請求,任務列隊管理機獲取相關的數(shù)字模型信息,查找其需要訪問的數(shù)據(jù)句柄以及目標模型是否存在該數(shù)字模型信息的處理數(shù)據(jù);
如果未找到相應的處理數(shù)據(jù),則增加一轉換任務至任務列隊,并加入任務輸入輸出必要的信息;
引擎任務集群獲取來自任務列隊的轉換任務,提取轉換任務中的必要信息,引擎任務集群從數(shù)據(jù)庫獲取數(shù)字模型內容,對數(shù)字模型進行處理后通傳送給任務管理機,任務管理機通過預設歸類數(shù)據(jù)進行歸類形成歸類信息,并將處理后的數(shù)字模型內容及歸類信息存儲至緩存服務器中,之后進行任務請求是否需要返回多邊形結果的判斷;
如果找到相應的處理數(shù)據(jù),直接進行任務請求是否需要返回多邊形結果的判斷;
判斷任務請求是否需要返回多邊形結果,如果需要,則對數(shù)字模型進行剪裁、剖切的操作,拆分以及合并多邊形模塊,按照顏色、層以及線型等信息,為模型賦予頂點顏色、UV信息以及法線;之后,為當前內存中的數(shù)字模型數(shù)據(jù)生成訪問句柄;
如果不需要,則直接為當前內存中的數(shù)字模型數(shù)據(jù)生成訪問句柄;
生成訪問句柄后,返回任務結果給終端應用機,對應數(shù)字模型的數(shù)據(jù)句柄一同返回。
[0013]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法,其中,引擎任務集群對數(shù)字模型進行處理包括:
從數(shù)據(jù)庫讀取數(shù)據(jù)的接口,讀取數(shù)字模型內容;
檢查由模型格式轉換帶來的可能的誤差和錯誤,并加以修復;
抽取幾何體基本屬性;
計算幾何體邊界范圍;
按照有限種常用精度預先轉換幾何體為多邊形,并計算各級別多邊形數(shù)據(jù)量,計算三角形化時數(shù)據(jù)量相關于精度的變化趨勢;
根據(jù)對目標應用的預先定義數(shù)據(jù)來預先剪裁幾何體;
按照任務信息中的指示輸出中間模型文件,將前述過程中提取的各種信息返回給任務管理機。
[0014]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法,其中,將處理后的數(shù)字模型內容及歸類信息存儲至緩存服務器中后:
檢查新紀錄是否來自原有數(shù)據(jù)的更新;
如果是則刪除或歸檔原記錄以及緩存的數(shù)據(jù)文件;
按照預先計算的模型邊界、分層以及預測的多邊形數(shù)量計算數(shù)字模型的最優(yōu)化拼合關系;
之后,為當前內存中的數(shù)字模型數(shù)據(jù)生成訪問句柄。
[0015]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法,其中,引擎任務集群為CAD引擎任務集群,以多邊形引擎提供的sdk開發(fā)插件將CAD引擎植入,數(shù)據(jù)請求以及多邊形轉換結果,通過多邊形引擎所定義的交換調用方式進行數(shù)據(jù)交換。
[0016]如上所述的為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法,其中,如果目標對象不支持創(chuàng)建動態(tài)多邊形對象的引擎,則在多邊形引擎所在平臺上開啟內存盤(ramdisk),CAD引擎通過多邊形引擎的sdk或者通過內存盤上信息交換文件獲取數(shù)據(jù)請求信息,按照多邊形引擎所支持的外部多邊形格式直接輸出多邊形轉換結果到內存盤上;通過多邊形引擎的sdk接口告知引擎多邊形模型已準備就緒以及數(shù)據(jù)文件所在位置,或由多邊形引擎主動輪詢轉換結果。
[0017]綜上所述,由于采用了上述技術方案,本發(fā)明解決了現(xiàn)有技術中虛擬現(xiàn)實技術通過預轉換的方式植入引擎,導致轉換成本高、產(chǎn)生的數(shù)據(jù)量大、轉換效率低的問題,通過利用開源CAD引擎,在一組數(shù)據(jù)處理服務器上建立數(shù)字模型數(shù)據(jù)分析以及轉換服務,并在基于多邊形的虛擬現(xiàn)實端嵌入剪裁版本的CAD引擎用來做數(shù)據(jù)的即時多邊形轉換以及其他基于數(shù)字模型的高精度計算,在結合有線/無線網(wǎng)絡連接,即可構成一個在線的實體幾何體數(shù)據(jù)服務系統(tǒng)。
【附圖說明】
[0018]圖1是本發(fā)明為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的系統(tǒng)圖;
圖2是本發(fā)明為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法的任務列隊管理流程圖;
圖3是本發(fā)明為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法的CAD引擎任務集群的任務流程圖;
圖4是本發(fā)明為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法的多邊形引擎端CAD引擎植入部分事務邏輯流程圖。
【具體實施方式】
[0019]下面結合附圖和實施例對本發(fā)明做進一步描述:
圖1是本發(fā)明為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的系統(tǒng)圖,請參見圖1,一種為多邊形引擎提供幾何實體數(shù)據(jù)服務的系統(tǒng),其中,包括:一引擎任務集群2通過中心交換機I與數(shù)據(jù)庫10通信,一任務列隊管理機6與所述中心交換機I連接;多個緩存服務器7與中心交換機I連接,多個緩存服務器7用于緩存已經(jīng)處理的數(shù)據(jù),多個緩存服務器7還與一次交換機8連接;所述中心交換機I上還連接有一應用接口路由3,終端應用機5與所述應用接口路由3通信。
[0020]本發(fā)明的所述引擎任務集群2為CAD引擎任務集群2,可以采用一組計算機集群作為CAD引擎任務集群2,也可以采用單個的節(jié)點,負擔全部計算任務。
[0021]本發(fā)明選用開源CAD系統(tǒng)0penCascade6.7.1作為CAD引擎,使用OpenCascade原生支持的brep格式作為中間數(shù)字模型格式,對數(shù)據(jù)使用zlib庫進行壓縮,并使用RC4算法進行加密。使用Unity4.5作為多邊形虛擬現(xiàn)實引擎。
[0022]進一步的,本發(fā)明的中心交換機I可以采用Cisco 3750作為中心交換機1,用HPz800作為CAD引擎任務集群2,任務管理器也可以安裝在該服務器上,用HP Proliant存儲服務器作為緩沖服務器,在緩沖服務器上安裝PostgreSQL數(shù)據(jù)庫10,開啟samba文件共享服務以及HTTP服務以提供客戶端下載中間數(shù)據(jù)文件,將應用接口路由3以及無線AP4合并在一臺CISCO WRT1900AC無線路由器中。
[0023]本發(fā)明的所述應用接口路由3連接有一無線AP4,所述終端應用機5與所述應用接口路由3通過無線連接,本發(fā)明的終端應用機5。
[0024]本發(fā)明的所述數(shù)據(jù)庫10包括:工業(yè)數(shù)字模型數(shù)據(jù)庫10及信息數(shù)據(jù)庫10,本發(fā)明以常用的實體交換格式Step格式作為數(shù)字模型數(shù)據(jù)源。
[0025]本發(fā)明的所述應用接口路由3與所述中心交換機I之間具有一防火墻9。
[0026]圖2是本發(fā)明為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法的任務列隊管理流程圖,請參見圖2,本發(fā)明還公開了一種為多邊形引擎提供幾何實體數(shù)據(jù)服務系統(tǒng)的方法,其中,包括:
步驟2-1:任務列隊管理機獲取終端應用機上內嵌CAD引擎的任務請求;
步驟2-2:任務列隊管理機驗證請求來源的合法性;
步驟2-3:任務列隊管理機按照任務請求的信息檢索數(shù)據(jù)庫中匹配的數(shù)字模型;
步驟2-4:任務列隊管理機獲取相關的數(shù)字模型信息,查找其需要訪問的數(shù)據(jù)句柄以及目標模型是否存在該數(shù)字模型信息的處理數(shù)據(jù);
步驟2-5:任務列隊管理機對數(shù)字模型文件計算哈希,作為鍵值檢查是否為已經(jīng)處理過的數(shù)據(jù);
步驟2-6:如果未找到相應的處理數(shù)據(jù),則增加一轉換任務至任務列隊,并加入任務輸入輸出必要的信息,具體包括:文件來源、屬性、附加信息、輸出位置的信息;
任務列隊管理機進行的步驟2-6后,引擎任務集群獲取來自任務列隊的轉換任務,圖3是本發(fā)明為多邊形引