System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于計算機,具體涉及一種2.5d模型處理方法及裝置、設備、及介質。
技術介紹
1、2d的視角是完全鎖定的,只有一個視角;3d的視角是無鎖定的,可以切換任意觀察視角;2.5d的視角介于兩者之間,可以切換若干固定視角。
2、然而現有技術中2.5d模型的處理方法,僅能對頂點進行去重,而對于相鄰的兩個圖形(例如矩形)在拉伸后,中間連接的一個面會重復,兩個面造成冗余。
3、因此,傳統的2.5d模型的處理方法有待進一步改進。
技術實現思路
1、本專利技術提供一種2.5d模型處理方法及裝置、設備、及介質,以解決現有技術中傳統的2.5d模型的處理方法無法去除中間連接的冗余面的問題。
2、為了實現上述目的,本專利技術提供一種2.5d模型處理方法,所述2.5d模型處理方法包括:
3、獲取2.5d模型數據,所述2.5d模型中各要素按照預設高度將二維面拉伸形成三維多邊形,其中2.5d模型數據包括拉伸后構建的頂點緩沖對象,所述頂點緩沖對象包括位置對象,且按照順序每三個位置對象組成一個三角面;
4、根據所述位置對象,生成第一哈希表;
5、循環所述第一哈希表中每個要素的位置對象,查找出所有的垂直三角面;
6、依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值;
7、當存在當前垂直三角面的鍵值,過濾所述當前垂直三角面。
8、優選地,在所述2.5d模型處理方法中,所述依次循環查找第一哈希表中是否存
9、對查找到的每個垂直三角面按照順時針和逆時針分別構建兩個第一哈希表鍵值;
10、依次循環查找第一哈希表中是否存在當前垂直三角面的兩個第一哈希表鍵值中任一鍵值。
11、優選地,在所述2.5d模型處理方法中,所述對查找到的每個垂直三角面按照順時針和逆時針分別構建兩個第一哈希表鍵值的步驟,具體為:
12、按照順時針和逆時針對查找到的每個垂直三角面,按照第一預設規則分別構建兩個第一哈希表鍵值,其中所述第一預設規則為將所述垂直三角面兩高度相等的頂點的坐標、以及所述垂直三角面的高度差拼接。
13、優選地,在所述2.5d模型處理方法中,所述依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值的步驟之后,所述2.5d模型處理方法還包括如下步驟:
14、當不存在當前垂直三角面的鍵值,將所述當前垂直三角面的三個頂點坐標加入第一數組中;
15、根據第一數組,去除重復的頂點數據。
16、優選地,在所述2.5d模型處理方法中,所述根據第一數組,去除重復的頂點數據,具體包括:
17、根據第一數組,遍歷所有的頂點緩沖對象,過濾重復的頂點數據;
18、將過濾后的頂點數據合并更新形成新的頂點緩沖對象;
19、循環所有頂點緩沖對象中的所有屬性對象,以結點為單位,形成第二哈希表,其中,第二哈希表鍵值為全屬性值;
20、遍歷所述第二哈希表,判斷是否存在當前鍵值;
21、當判斷結果為否,將所述頂點數據的位置存儲在第二數組中。
22、優選地,在所述2.5d模型處理方法中,所述獲取2.5d模型數據的步驟之前,所述2.5d模型處理方法還包括如下步驟:
23、獲取給定區域的地圖;
24、根據給定區域的面要素容量閾值以及給定區域中面要素總數量,計算給定區域中需要分割的區塊數量;
25、根據計算得到的區塊數量,計算區塊分塊的行數和列數;
26、按照區塊分塊的行數和列數,對所述給定區域進行分塊;
27、根據給定區域的分塊范圍,對各要素進行分組;
28、對各要素按照預設高度將二維面拉伸形成三維多邊形,并構建頂點緩沖對象,所述頂點緩沖對象包括位置對象,且按照順序每三個位置對象組成一個三角面。
29、優選地,在所述2.5d模型處理方法中,所述根據給定區域的分塊范圍,對各要素進行分組的步驟,包括:
30、根據所述給定區域的分塊范圍以及各要素的中心點,確定各要素所屬的分塊范圍。
31、為了實現上述目的,本專利技術提供一種2.5d模型處理裝置,所述2.5d模型處理裝置包括:
32、獲取單元,用于獲取2.5d模型數據,所述2.5d模型中各要素按照預設高度將二維面拉伸形成三維多邊形,其中2.5d模型數據包括拉伸后構建的頂點緩沖對象,所述頂點緩沖對象包括位置對象,且按照順序每三個位置對象組成一個三角面;
33、生成單元,用于根據所述位置對象,生成第一哈希表;
34、查找單元,用于循環所述第一哈希表中每個要素的位置對象,查找出所有的垂直三角面;
35、循環單元,用于依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值;
36、過濾單元,用于當存在當前垂直三角面的鍵值,過濾所述當前垂直三角面。
37、為了實現上述目的,本專利技術提供一種計算機設備,所述計算機設備包括:
38、至少一個處理器;以及,
39、與所述至少一個處理器通信連接的存儲器;其中,
40、所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行上述的2.5d模型處理方法。
41、為了實現上述目的,本專利技術提供一種計算機可讀存儲介質,存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現上述的2.5d模型處理方法。
42、本專利技術至少具有如下有益效果:
43、本專利技術通過獲取2.5d模型數據,所述2.5d模型中各要素按照預設高度將二維面拉伸形成三維多邊形,其中2.5d模型數據包括拉伸后構建的頂點緩沖對象,所述頂點緩沖對象包括位置對象,且按照順序每三個位置對象組成一個三角面;根據所述位置對象,生成第一哈希表;循環所述第一哈希表中每個要素的位置對象,查找出所有的垂直三角面;依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值;當存在當前垂直三角面的鍵值,過濾所述當前垂直三角面,如此可以過濾中間連接的冗余面。
44、進一步地,本專利技術通過先對冗余面進行過濾,再對冗余的頂點進行過濾,如此可以準確去除冗余數據。
本文檔來自技高網...【技術保護點】
1.一種2.5D模型處理方法,其特征在于,包括:
2.如權利要求1所述的2.5D模型處理方法,其特征在于,所述依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值的步驟,具體為:
3.如權利要求2所述的2.5D模型處理方法,其特征在于,所述對查找到的每個垂直三角面按照順時針和逆時針分別構建兩個第一哈希表鍵值的步驟,具體為:
4.如權利要求1所述的2.5D模型處理方法,其特征在于,所述依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值的步驟之后,所述2.5D模型處理方法還包括如下步驟:
5.如權利要求4所述的2.5D模型處理方法,其特征在于,所述根據第一數組,去除重復的頂點數據,具體包括:
6.如權利要求1所述的2.5D模型處理方法,其特征在于,所述獲取2.5D模型數據的步驟之前,所述2.5D模型處理方法還包括如下步驟:
7.如權利要求6所述的2.5D模型處理方法,其特征在于,所述根據給定區域的分塊范圍,對各要素進行分組的步驟,包括:
8.一種2.5D模型處理裝置,其特征在于,包括:
10.一種計算機可讀存儲介質,存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至7任意一項所述的2.5D模型處理方法。
...【技術特征摘要】
1.一種2.5d模型處理方法,其特征在于,包括:
2.如權利要求1所述的2.5d模型處理方法,其特征在于,所述依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值的步驟,具體為:
3.如權利要求2所述的2.5d模型處理方法,其特征在于,所述對查找到的每個垂直三角面按照順時針和逆時針分別構建兩個第一哈希表鍵值的步驟,具體為:
4.如權利要求1所述的2.5d模型處理方法,其特征在于,所述依次循環查找第一哈希表中是否存在當前垂直三角面的鍵值的步驟之后,所述2.5d模型處理方法還包括如下步驟:
5.如權利要求4所述的2.5d模型處理方法,其特征在于,...
【專利技術屬性】
技術研發人員:段家朕,錢葉青,
申請(專利權)人:蘇州尋智軟件科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。