專利名稱:一種三維模型中模擬人物行走所見的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種三維模型中模擬人物行走所見的方法。
背景技術(shù):
相比于二維GIS(地理信息系統(tǒng)),三維GIS的空間信息的展示更為直觀。從人們懂得通過空間信息來認(rèn)識和改造世界開始,空間信息主要是以圖形化的形式存在的。然而,用二維的圖形界面展示空間信息是非常抽象的,只有專業(yè)的人士才懂得使用。相比二維GIS,三維GIS為空間信息的展示提供了更豐富、逼真的平臺(tái),使人們將抽象難懂的空間信息可視化和直觀化,人們結(jié)合自己相關(guān)的經(jīng)驗(yàn)就可以理解,從而做出準(zhǔn)確而快速的判斷。毫無疑問,三維GIS在可視化方面有著得天獨(dú)厚的優(yōu)勢。雖然三維GIS的動(dòng)態(tài)交互可視化功能對計(jì)算機(jī)圖形技術(shù)和計(jì)算機(jī)硬件也提出了特殊的要求,但是一些先進(jìn)的圖形卡、工作站以及 帶觸摸功能的投影設(shè)備的陸續(xù)問世,不僅完全可以滿足三維GIS對可視化的要求,還可以帶來意想不到的展示和體驗(yàn)效果。此外,三維GIS的多維度空間分析功能更加強(qiáng)大??臻g信息的分析過程,往往是復(fù)雜、動(dòng)態(tài)和抽象的,在數(shù)量繁多、關(guān)系復(fù)雜的空間信息面前,二維GIS的空間分析功能常具有一定的局限性,如淹沒分析、地質(zhì)分析、日照分析、空間擴(kuò)散分析、通視性分析等高級空間分析功能,二維GIS是無法實(shí)現(xiàn)的。由于三維數(shù)據(jù)本身可以降維到二維,因此三維GIS自然也能包容二維GIS的空間分析功能。三維GIS強(qiáng)大的多維度空間分析功能,不僅是GIS空間分析功能的一次跨越,在更大程度上也充分體現(xiàn)了 GIS的特點(diǎn)和優(yōu)越性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種三維模型中模擬人物行走所見的方法,通過平面要素層的分塊劃分和幾何點(diǎn)面間的overlap操作,在三維地理信息系統(tǒng)中快速高效的模擬三維場景中的人物漫游過程。為了實(shí)現(xiàn)發(fā)明目的,所述方法包括以下步驟SI.準(zhǔn)備及獲取所需要顯示的三維模型的數(shù)據(jù),所述數(shù)據(jù)包括將構(gòu)造成的多層帶地理屬性的面要素層中的每層進(jìn)行分塊而形成的所有面要素文件;S2.接收程序調(diào)用的指令,根據(jù)程序?qū)嶋H需要設(shè)置人物的初始坐標(biāo)(X,y, z),以及初始與正北的朝向角度theta,并根據(jù)用戶機(jī)器硬件數(shù)據(jù)設(shè)置最大顯示半徑R ;S3.以任務(wù)當(dāng)前坐標(biāo)為中心,使用三維圖像引擎顯示半徑為R的人物可視的區(qū)域;S4.根據(jù)用戶輸入確定人物移動(dòng)中心點(diǎn)的坐標(biāo);S5.回到步驟S3,否則結(jié)束;其中, 所述步驟S4進(jìn)一步包括S41.通過外部輸入設(shè)備接收用戶輸入信號;S42.根據(jù)所述輸入信號更改計(jì)算人物可能平面坐標(biāo)(xt+deltax, yt+deltay);S43.以(xt+deltax, yt+deltay, z)為中心搜索對應(yīng)的所述所有面要素文件;
S44.通過overlap方法逐層判斷中心坐標(biāo)(xt+deltax, yt+deltay, z)是否落在該層面要素上,一旦為是則停止判斷;S45.根據(jù)所在面要素的特性更改坐標(biāo),將新坐標(biāo)(xt+deltax’,yt+deltay’,zt+deltaz’)存入人物當(dāng)前坐標(biāo)(xt,yt, zt),所述面要素特性對于坐標(biāo)的影響需要根據(jù)程
序定義。所述步驟SI進(jìn)一步包括Sll.獲取所需要顯示的三維模型及三維圖形圖像顯示引擎;S12.獲取所需顯示地區(qū)的平面圖;S13.使用所述平面圖,根據(jù)程序?qū)嶋H需要構(gòu)建多層帶地理信息屬性的面要素層,并添加移動(dòng)特性字段;·S14.通過拓?fù)潋?yàn)證要素保證數(shù)據(jù)間無邏輯錯(cuò)誤;S15.將構(gòu)建成功的每層帶地理信息屬性的面要素層進(jìn)行分塊,以其層數(shù)與x、y坐標(biāo)范圍聯(lián)合作為各塊的文件名。在上述步驟S41中,所述外部輸入設(shè)備包括鼠標(biāo)、鍵盤或其它交互式設(shè)備。在上述步驟S42、S43中,所述deltax與deltay根據(jù)程序需要設(shè)定。在所述步驟S13中,所述根據(jù)程序?qū)嶋H需要構(gòu)建多層帶地理信息屬性的面要素層,并添加移動(dòng)特性字段包括將第一層構(gòu)建為阻礙視線層,特性字段為N_vw ;將第二層構(gòu)建為不可移動(dòng)層,特性字段SN_Mv;將第三層構(gòu)建為平面移動(dòng)層,特性字段為Prll_Mv;將第四層構(gòu)建為樓梯移動(dòng)層,特性字段為Vrtcl_Mv,所述樓梯移動(dòng)層的特性字段需要添加豎直移動(dòng)分量deltaz字段。本發(fā)明通過對平面要素層的分塊劃分以及幾何點(diǎn)面間的overlap操作,在三維地理信息系統(tǒng)中可快速高效地模擬三維場景中的人物漫游過程,對三維地理信息系統(tǒng)的開發(fā)具有重要的實(shí)踐意義。
圖I是本發(fā)明一個(gè)實(shí)施例中在三維模型中模擬人物行走所見的方法流程圖;圖2是本發(fā)明另一個(gè)實(shí)施例中在三維模型中模擬人物行走所見的方法流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖I示出了本發(fā)明一個(gè)實(shí)施例中在三維模型中模擬人物行走所見的方法流程。該流程包括數(shù)據(jù)準(zhǔn)備和程序處理兩大部分。在步驟Sll中,獲取需要顯示的三維模型以及三維顯示引擎,對需要顯示的三維模型的數(shù)據(jù)進(jìn)行相關(guān)的處理。在步驟S12中,對初始狀態(tài)進(jìn)行設(shè)置,包括設(shè)備的初始化及場景的初始化,例如,設(shè)置人物的初始坐標(biāo),以及顯示的最大半徑R。
在步驟S13中,接收用戶輸入信息,并使三維模型和觀察狀態(tài)做相應(yīng)變換,主要的輸入設(shè)備是鍵盤,利用計(jì)算機(jī)圖形學(xué)的圖形變換基礎(chǔ),通過坐標(biāo)變換來實(shí)現(xiàn)前進(jìn)、后退、仰視、俯視、左轉(zhuǎn)和右轉(zhuǎn)。在步驟S14中,計(jì)算新對象信息,根據(jù)當(dāng)前觀察的位置、角度等參量,根據(jù)場景組織本身的特性,提取出渲染的對象并重新計(jì)算獲得各對象的狀態(tài),例如,在處理山地地形時(shí),利用的是地形單元重復(fù)拼接的方法,當(dāng)視點(diǎn)變化時(shí),把視點(diǎn)坐標(biāo)到世界坐標(biāo)原點(diǎn)的偏移坐標(biāo)(X,y)對地形單元的寬度求模,即可得出視點(diǎn)所在位置的地形狀態(tài)。在步驟S15中,進(jìn)行圖形渲染處理,將經(jīng)過處理最終生成的3D對象顯示在計(jì)算機(jī)屏幕上,采用的是與步驟S14中同樣的遠(yuǎn)原理,將被渲染位置的地形數(shù)據(jù)取出,然后貼圖處理就可以提交顯示了。當(dāng)視點(diǎn)變化時(shí),距離視點(diǎn)不同距離的物體應(yīng)采用LOD自動(dòng)調(diào)整層次,實(shí)現(xiàn)圖形的高速渲染。
在步驟S15中,若選擇是,則進(jìn)入步驟S16回收系統(tǒng)資源,結(jié)束整個(gè)系統(tǒng)的運(yùn)行,否則系統(tǒng)回到步驟S13進(jìn)行交互處理,繼續(xù)運(yùn)行系統(tǒng)。圖2示出了本發(fā)明另一個(gè)實(shí)施例中在三維模型中模擬人物行走所見的方法流程。在步驟S21中,獲取所需要顯示的三維模型,該三維模型可購買、由工程設(shè)計(jì)圖構(gòu)建或自己構(gòu)建等。在步驟S22中,購買三維圖形圖像顯示引擎,或自主開發(fā)三維圖形圖像顯示引擎。在步驟S23中,獲取所需顯示地區(qū)的平面圖。在步驟S24中,使用在步驟S23中獲取的平面圖,根據(jù)程序?qū)嶋H需要構(gòu)建多層帶地理信息屬性的面要素層,并添加移動(dòng)特性字段。例如,第一層為阻礙視線層,特性字段為N_vw ;第二層為不可移動(dòng)層,特性字段為N_Mv ;第三層為平面移動(dòng)層,特性字段為Prll_Mv ;第四層為樓梯移動(dòng)層特性字段為Vrtcl_Mv,樓梯移動(dòng)字段需要添加豎直移動(dòng)分量deltaz字段等。在步驟S25中,通過拓?fù)潋?yàn)證要素保證數(shù)據(jù)間無邏輯錯(cuò)誤,將構(gòu)建成功的每層帶地理信息屬性的面要素層進(jìn)行分塊,以其層數(shù)與X、I坐標(biāo)范圍聯(lián)合作為文件名,例如,X坐標(biāo)在30-50之間、y坐標(biāo)為20-40、y坐標(biāo)為_10_0的第一層文件命名為“30-50_20-40_-10-00Lyrl”。在步驟S26中,對程序進(jìn)行初始化。接收程序調(diào)用的指令,根據(jù)程序?qū)嶋H需要設(shè)置人物的初始坐標(biāo)(X,1,z),以及初始與正北的朝向角度theta,并根據(jù)用戶機(jī)器硬件數(shù)據(jù)設(shè)置最大顯示半徑R。在步驟S27中,以人物當(dāng)前坐標(biāo)(xt,yt, zt)為中心,使用三維圖像引擎顯示半徑為R的區(qū)域。在步驟S28中,通過輸入設(shè)備接收用戶輸入信號,若用戶選擇結(jié)束,則退出程序,系統(tǒng)運(yùn)行結(jié)束。否則,根據(jù)根據(jù)輸入信號更改計(jì)算人物可能平面坐標(biāo)(xt+deltax,yt+deltay),其中,deltax 與 deltay 根據(jù)程序需要設(shè)定,再以(xt+deltax, yt+deltay, z)為中心搜索對應(yīng)的所有面要素文件。在步驟S29中,通過overlap方法逐層判斷中心坐標(biāo)是否落在該層面要素上,一旦為是則停止判斷。在步驟S210中,根據(jù)所在面要素的特性更改坐標(biāo),將新坐標(biāo)(xt+deltax’,yt+deltay’, zt+deltaz’)存入人物當(dāng)前坐標(biāo)(xt,yt, zt),面要素特性對于坐標(biāo)影響需要根據(jù)程序定義,例如,特性字段為N_mv時(shí),deltax’ =deltay’ =deltaz’ =O ;特性字段為Vrtcl_Mv 時(shí),deltax,=deltax, deltay’ =deltay, deltaz,為樓梯移動(dòng)層中的字段 deltaz。步驟S210完成后,程序回到步驟S27,以新坐標(biāo)為中心,使用三維圖像引擎顯示半徑為R的區(qū)域,直到在步驟S28收到結(jié)束顯示的相關(guān)指令。本發(fā)明所披露的方法,目前主要應(yīng)用于三維地理信息系統(tǒng)的開發(fā)中,但是可以預(yù)見的是,本發(fā)明的應(yīng)用范圍并不限于三維地理信息系統(tǒng),還可應(yīng)用于其它模擬三維場景中的人物漫游過程的方法和系統(tǒng)中。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)?!?br>
權(quán)利要求
1.一種三維模型中模擬人物行走所見的方法,其特征在于,所述方法包括以下步驟 51.準(zhǔn)備及獲取所需要顯示的三維模型的數(shù)據(jù),所述數(shù)據(jù)包括將構(gòu)造成的多層帶地理屬性的面要素層進(jìn)行分塊而形成的所有面要素文件; 52.接收程序調(diào)用的指令,根據(jù)程序?qū)嶋H需要設(shè)置人物的初始坐標(biāo)(X,y,z),以及初始與正北的朝向角度theta,井根據(jù)用戶機(jī)器硬件數(shù)據(jù)設(shè)置最大顯示半徑R ; 53.以任務(wù)當(dāng)前坐標(biāo)為中心,使用三維圖像引擎顯示半徑為R的人物可視的區(qū)域; 54.根據(jù)用戶輸入確定人物移動(dòng)中心點(diǎn)的坐標(biāo); 55.回到步驟S3,否則結(jié)束;其中, 所述步驟S4進(jìn)ー步包括 541.通過外部輸入設(shè)備接收用戶輸入信號; 542.根據(jù)所述輸入信號更改計(jì)算人物可能平面坐標(biāo)(xt+deltax,yt+deltay); 543.以(xt+deltax,yt+deltay, z)為中心搜索對應(yīng)的所述所有面要素文件; 544.通過overlap方法逐層判斷中心坐標(biāo)(xt+deltax,yt+deltay, z)是否落在該層面要素上,一旦為是則停止判斷; 545.根據(jù)所在面要素的特性更改坐標(biāo),將新坐標(biāo)(xt+deltax’,yt+deltay’,zt+deltaz’)存入人物當(dāng)前坐標(biāo)(xt,yt, zt),所述面要素特性對于坐標(biāo)的影響需要根據(jù)程序定義。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述步驟SI進(jìn)ー步包括 511.獲取所需要顯示的三維模型及三維圖形圖像顯示引擎; 512.獲取所需顯示地區(qū)的平面圖; 513.使用所述平面圖,根據(jù)程序?qū)嶋H需要構(gòu)建多層帶地理信息屬性的面要素層,并添加移動(dòng)特性字段; 514.通過拓?fù)潋?yàn)證要素保證數(shù)據(jù)間無邏輯錯(cuò)誤; 515.將構(gòu)建成功的每層帶地理信息屬性的面要素層進(jìn)行分塊,以其層數(shù)與x、y坐標(biāo)范圍聯(lián)合作為各塊的文件名。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述步驟S41中的外部輸入設(shè)備包括鼠標(biāo)、鍵盤或其它交互式設(shè)備。
4.根據(jù)權(quán)利要求I所述的方法,其特征在干,所述deltax與deltay根據(jù)程序需要設(shè)定。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟S13中據(jù)程序?qū)嶋H需要構(gòu)建多層帶地理信息屬性的面要素層,并添加移動(dòng)特性字段包括 將第一層構(gòu)建為阻礙視線層,特性字段為N_vw ;將第二層構(gòu)建為不可移動(dòng)層,特性字段、N_Mv;將第三層構(gòu)建為平面移動(dòng)層,特性字段為Prll_Mv;將第四層構(gòu)建為樓梯移動(dòng)層,特性字段為Vrtcl_Mv,所述樓梯移動(dòng)層的特性字段需要添加豎直移動(dòng)分量deltaz字段。
全文摘要
本發(fā)明公開了一種三維模型中模擬人物行走所見的方法,所述方法包括以下步驟S1.準(zhǔn)備及獲取所需要顯示的三維模型的數(shù)據(jù);S2.接收程序調(diào)用的指令,根據(jù)程序?qū)嶋H需要設(shè)置人物的初始坐標(biāo)(x,y,z),以及初始與正北的朝向角度theta,并根據(jù)用戶機(jī)器硬件數(shù)據(jù)設(shè)置最大顯示半徑R;S3.以任務(wù)當(dāng)前坐標(biāo)為中心,使用三維圖像引擎顯示半徑為R的人物可視的區(qū)域;S4.根據(jù)用戶輸入確定人物移動(dòng)中心點(diǎn)的坐標(biāo);S5.回到步驟S3,否則結(jié)束。本發(fā)明通過對平面要素層的分塊劃分以及幾何點(diǎn)面間的overlap操作,在三維地理信息系統(tǒng)中可快速高效地模擬三維場景中的人物漫游過程,對三維地理信息系統(tǒng)的開發(fā)具有重要的實(shí)踐意義。
文檔編號G06T13/20GK102855651SQ20121026913
公開日2013年1月2日 申請日期2012年7月31日 優(yōu)先權(quán)日2012年7月31日
發(fā)明者曹緒龍, 夏明輝, 李睿陽 申請人:深圳市賽格導(dǎo)航科技股份有限公司