一種基于webGL的三維倉庫模型建立方法
【技術領域】
[000? ]本發明屬于倉庫建模技術領域,具體涉及一種基于webGL的三維倉庫模型建立方法。
【背景技術】
[0002]隨著物流技術的不斷發展,倉庫成為現代物流系統的一個重要的環節,倉庫的高效存儲能力以及資源的有效存儲分配均是對物流系統的很好的支持。現有的倉庫管理,主要依靠建立依靠計算機系統應用程序,依靠監控系統,實時監控貨物的出入庫以及倉庫的存儲空間,雖然能夠有效的提高倉庫的空間利用率、出入庫能力以及貨物周轉能力,但是這種倉庫主要是利用貨物的定位管理,建立貨位與信息系統對應的數據庫以及采用條形碼作為貨位、包裝箱識別的手段,進而達到貨物與貨位管理的目的,因此現有的無法對倉庫作業流程進行三維的可視化定位,倉庫管理系統直觀性較差。
【發明內容】
[0003]本發明的目的在于:針對倉庫管理中存在的問題,提供一種基于webGL的三維倉庫模型建立方法,三維模型的倉庫,使得倉庫可以通過三維模型來呈現,直觀性更好,提高倉庫管理的利用率以及出入庫能力。
[0004]為了實現上述目的,本發明采用的技術方案為:
[0005]—種基于webGL的三維倉庫模型建立方法,包括:
[0006]利用webGL技術構建基礎應用結構,創建基礎的多面體,并加載設置參數;
[0007]將背景、相機、360度的旋轉添加至基礎應用結構中,創建具有三維坐標的場景容器;
[0008]結合倉庫實際建筑結構創建三維倉庫組件模型,基于基礎的多面體,加載倉庫組件模型;其中,三維倉庫組件模型包括建筑組件模型和設計組件模型;
[0009]加載建筑組件模型時,通過模型接口調用函數庫中對應建筑組件的應用函數,包括調用createGround()方法創建倉庫地面,調用createYt()創建倉庫的月臺,輸入倉庫的層高whhigh及樓層的層數whf10r,根據輸入值,自動創建每個樓層在三維場景中所處的位置,并默認添加與底層一致的地面;調用createWal 1創建倉庫墻面,調用createPillar O創建倉庫柱子,調用createWindow()創建倉庫窗戶,調用createDoor ()創建倉庫門,調用createRoot()創建倉庫頂部;加載完建筑組件模型,從而形成單樓層或者多樓層的建筑模型;
[0010]選擇建筑模型的其中一個樓層,在該樓層中加載設計組件模型,且在加載設計組件模型時,對所有設計組件模型進行碰撞檢測。
[0011]優選地,所述的碰撞檢測包括以組件封裝的六面體為基礎,實時記錄組件模型變換后八個頂點的坐標位置,通過八個坐標位置形成一個坐標點的閉合區間,每個模型組件都有一個模型的閉合區間記錄,該閉合區間的值根據模型的改變或者位置的移動而實時更新;
[0012]在組件模型進行變化時,實時判斷模型的八個頂點的坐標是是否出現在當前已經創建的其他模型的坐標區間之內,若在其中則表示該模型與另一模型有模型重疊;
[0013]出現模型重疊時再判斷該模型的屬性是否與重疊的模型是融合關系,若是融合關系,則不進行提示;若不是,則提示該模型擺放位置不正確,無法擺放。
[0014]進一步優選,所述的碰撞檢測還包括在組件模型定位時,實時判斷模型的八個頂點的坐標是是否出現在該樓層的建筑區域之內,若在其中則不提示,若不在,則提示該模型擺放位置不正確,無法擺放。
[0015]優選地,創建基礎的多面體時,加載設置參數,該參數包括多面體面數,物體的材質,顏色和/或透明度。
[0016]由于采用了上述技術方案,本發明的有益效果是:
[0017]本發明的一種基于webGL的三維倉庫模型建立方法,利用webGL技術,并通過函數調用加載建模組件,快速、方便的建立起三維的倉庫模型,為倉庫的管理和優化提供可視化操作界面,直觀性更強;加載建筑組件的過程中,按照一定的順序,快速調用函數建立起建筑模型,使得建筑模型的建立更加迅速;加載設計組件過程中,引入碰撞檢測,確保倉庫組件不會出現重疊或者超出加載區域的問題。
【具體實施方式】
[0018]本發明的基于webGL的三維倉庫模型建立方法,利用webGL技術,調用tree,js構建基礎應用結構,創建基礎的多面體,并加載相應的設置參數,如:多面體面數、物體的材質、顏色、透明度等。
[0019]將背景、相機、360度的旋轉添加至應用結構中構建三維場景,形成具有三維坐標的場景容器。
[0020]加載倉庫組件模型,基于基礎的多面體,結合倉庫實際建筑結構創建的三維倉庫組件模型,組件模型包括建筑組件模型和設計組件模型。
[0021]建筑實物組件主要包括:地面(水泥地面、水磨地面、地板磚地面、耐磨地坪、環氧涂裝地坪、地坪耐磨增強劑);月臺、墻面、柱子(圓柱、方柱)、門(單開門、雙開門、推拉門)、窗(固定窗、平開窗、推拉窗、旋轉窗)、房頂(平頂、尖頂)。倉庫設計組件主要包括:布局區域(儲存區、通道、出入庫區、暫存區、輔助作業區、行政生活區)、貨架(層架、懸臂式貨架、托盤貨架、移動式貨架、駛入駛出式貨架、旋轉式貨架、自動貨柜)、作業設備(叉車、托盤、集裝箱、堆垛機、輸送機、起重機)、監管設備(電子秤、溫濕度測量儀、攝像機)。
[0022]加載建筑組件模型時,通過模型接口調用函數庫中對應建筑組件的應用函數,加載建筑組件模型,形成單樓層或者多樓層的建筑模型。具體包括:
[0023]通過選取一個倉庫地面組件,調用createGround()方法創建倉庫地面,該組件固定為長方體結構,在參數中它的長、寬、高以及組件的材質和貼圖。
[0024]調用createYtO創建倉庫的月臺,月臺采用固定組件,與倉庫地面組建進行關聯綁定,根據傳入的布爾值判定月臺是否顯示。True為顯示月臺,false為不顯示。
[0025]輸入倉庫的層高whhigh及樓層的層數whf10r,根據輸入值,自動創建每個樓層在三維場景中所處的位置,并默認添加與底層一致的地面。
[0026]調用createWal1創建倉庫墻面,墻面包括了前、后、左、右四面,可選擇每一面墻獨立創建,也可以直接創建四面墻。創建墻面組件時,自動獲取已創建地面的邊界四個角的坐標值以及倉庫的整體高度,自動創建出覆蓋所有樓層的墻面。在墻面組件參數中,設置墻面的厚度及墻面貼圖。
[0027]調用createPillarO創建倉庫柱子,柱子組件類型包括方柱和圓柱兩種。方柱組件參數包括長、寬;圓柱的參數包括直徑。柱子組件與倉庫底層地面進行關聯,指定柱子組件與地面組件邊界的距離來確定柱子組件的位置。通過組件復制,在地面創建多個柱子,指定第一個柱子和最后一