專利名稱:基于x3d標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)圖形學(xué),尤其涉及一種基于X3D標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法。
背景技術(shù):
每一個(gè)X3D應(yīng)用都是一個(gè)包含視覺和聽覺對(duì)象的三維時(shí)空,并且可以用不同的機(jī)制動(dòng)態(tài)地從網(wǎng)絡(luò)存取或修改。X3D在語義學(xué)上描述了基于時(shí)間的行為、交互3D、多媒體信息的抽象功能。每個(gè)X3D應(yīng)用由一系列3D和多媒體定義和組成,可以定義程序和或數(shù)據(jù)驅(qū)動(dòng)的對(duì)象行為。
X3D的事件模型聲明域(路由)和一個(gè)模型之間的聯(lián)系,行為圖描速了X3D各個(gè)節(jié)點(diǎn)之間的動(dòng)態(tài)的聯(lián)系,是一系列的域連接,可以通過這些連接傳播事件。再通過路由改變這種連接、或增加或打斷這些連接。通過行為圖,可以按預(yù)定義的順序在系統(tǒng)中傳播事件。
路由聲明允許用戶把一個(gè)節(jié)點(diǎn)的輸出事件連接到另一個(gè)節(jié)點(diǎn)的輸入事件上,這樣可以執(zhí)行復(fù)雜的行為,而不需要使用程序命令。在路由中,一個(gè)輸出事件發(fā)生,相應(yīng)目的的輸入事件就會(huì)接受到通知,同時(shí)可以對(duì)輸入事件變動(dòng)做出相應(yīng)的處理。這個(gè)處理可以改變節(jié)點(diǎn)的狀態(tài),產(chǎn)生額外的事件,或者改變場(chǎng)景圖的結(jié)構(gòu)。路由不是節(jié)點(diǎn),但描速了節(jié)點(diǎn)之間的動(dòng)態(tài)聯(lián)系。路由語句是建立指定節(jié)點(diǎn)的域之間通道的語法構(gòu)件。
X3D標(biāo)準(zhǔn)含有各種各樣的傳感器的節(jié)點(diǎn),不同的傳感器節(jié)點(diǎn)基于不同的應(yīng)用,主要是由以下幾類應(yīng)用接測(cè)鍵盤輸入事件,鼠標(biāo)點(diǎn)擊拖動(dòng)事件,空間接測(cè)事件(包括三維空間物體的碰撞接測(cè))。不同的傳感器類型可以接測(cè)到不同的事件,當(dāng)接測(cè)該事件后,傳感器節(jié)點(diǎn)會(huì)產(chǎn)生額外的事件。
以下是X3D標(biāo)準(zhǔn)中比較重要的傳感器節(jié)點(diǎn)時(shí)間傳感器節(jié)點(diǎn)可以接測(cè)到時(shí)間的流動(dòng),它隨時(shí)間流逝不斷產(chǎn)生事件;接觸傳感器可以接測(cè)鼠標(biāo)在物體上的移動(dòng),點(diǎn)擊操作,臨近傳感器節(jié)點(diǎn)可以接測(cè)某一個(gè)物體是否進(jìn)入到一個(gè)特定的區(qū)域。
一旦傳感器或腳本節(jié)點(diǎn)產(chǎn)生了一個(gè)初始事件,這個(gè)事件就將沿著所有可能的路由傳播到其它的節(jié)點(diǎn)。這些其它的節(jié)點(diǎn)可能回應(yīng)并產(chǎn)生額外的事件(同時(shí)這個(gè)額外的事件又傳播到另外的節(jié)點(diǎn)),事件將一直傳播,直到遍歷過所有的路由。這種處理被稱為事件級(jí)聯(lián)。所有在一個(gè)特定的事件級(jí)聯(lián)中產(chǎn)生的事件都被賦予一個(gè)和初始事件相同的時(shí)間戳,因?yàn)樗械氖录急徽J(rèn)為是同時(shí)發(fā)生的。當(dāng)遍歷過所有的初始事件級(jí)聯(lián)中的事件后,后續(xù)事件處理將執(zhí)行由此事件級(jí)聯(lián)激發(fā)的動(dòng)作。
在現(xiàn)有的圖形編輯軟件中,包括3Dmax軟件還不支持編輯基于X3D標(biāo)準(zhǔn)的場(chǎng)景,可以輸出格式為vrml的文件,不能輸出基于X3D標(biāo)準(zhǔn)的文件。此外,現(xiàn)在,所有的圖形編輯軟件都不支持設(shè)計(jì)者直接定義節(jié)點(diǎn)的行為,3Dmax等圖形軟件只支持部分節(jié)點(diǎn)的事件聯(lián)系,不能根據(jù)用戶的要求自己定義行為模式。而且這些行為定義方法分散在不同的功能模塊中,給設(shè)計(jì)者的使用帶來很大的不方便。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于X3D標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法。
方法的步驟如下1)創(chuàng)建時(shí)間傳感器節(jié)點(diǎn),該時(shí)間傳感器節(jié)點(diǎn)每隔1毫秒發(fā)送一個(gè)時(shí)鐘消息;2)設(shè)置空間位置插值器、空間方向插枝器、空間縮放插值器的值,采用關(guān)鍵楨技術(shù),空間位置插值器、空間方向插枝器、空間縮放插值器接收到時(shí)鐘消息后輸出,基于這個(gè)時(shí)鐘消息,采用線性插值的技術(shù)輸出結(jié)果;3)創(chuàng)建空間臨近傳感器節(jié)點(diǎn)、觸摸傳感器節(jié)點(diǎn),通過臨近傳感器節(jié)點(diǎn)來檢測(cè)物體進(jìn)入或者離開某一個(gè)空間區(qū)域的事件,通過觸摸傳感器節(jié)檢測(cè)設(shè)計(jì)者對(duì)于某一個(gè)物體的輸入事件,各種節(jié)點(diǎn)的行為是通過路由來實(shí)現(xiàn)的,所有的路由組成了場(chǎng)景的行為圖,通過觸發(fā)傳感器節(jié)點(diǎn)來觸發(fā)事件在行為圖的傳播;4)建立時(shí)間傳感器和多種觸發(fā)傳感器,多種插值器以及各種物體的動(dòng)態(tài)路由聯(lián)系,提供了路由設(shè)計(jì)的兩種編輯方式的設(shè)計(jì),提供了語義模型編輯和直接文本編輯;5)對(duì)編輯后的路由進(jìn)行編譯,其設(shè)計(jì)目標(biāo)是找出設(shè)計(jì)者編輯完路由后所出現(xiàn)的語義錯(cuò)誤。
所述的采用關(guān)鍵楨技術(shù)是指編輯幾個(gè)特殊楨,對(duì)于每一個(gè)特殊楨記錄下物體的當(dāng)前軌跡,把所有的特殊楨以及對(duì)應(yīng)的物體的運(yùn)動(dòng)的軌跡保存到插值器中。這些特殊楨描述了物體的運(yùn)動(dòng)軌跡,播放的時(shí)候采用線性插值技術(shù)。
采用線性插值的技術(shù)輸出結(jié)果是指當(dāng)插值器接收到一個(gè)代表某一楨的輸入的時(shí)候,找到小于該楨的最大關(guān)鍵楨,大于該楨的最小關(guān)鍵楨,它的輸出取決于該輸入楨和最大關(guān)鍵楨的距離和最大關(guān)鍵楨和最小關(guān)鍵楨的距離的線性比值。
提供了路由設(shè)計(jì)的兩種編輯方式的設(shè)計(jì)是包括提供了語義模型編輯和直接文本編輯,在語義模型編輯方式中以圖形的方式編輯路由,或者在接文本編輯中以文本的方式編輯路由。
本發(fā)明提供了設(shè)計(jì)者和三維場(chǎng)景之間的新的交互方式,使得設(shè)計(jì)人員不僅僅可以編輯靜態(tài)世界(鼓勵(lì)的修改場(chǎng)景節(jié)點(diǎn)的若干屬性),還可以定義虛擬世界中各個(gè)對(duì)象的交互實(shí)現(xiàn),從語義的角度來定義它們的行為。用戶僅僅需要選擇輸出節(jié)點(diǎn),輸出事件,輸入節(jié)點(diǎn),輸入事件就可以定義兩個(gè)節(jié)點(diǎn)之間的行為聯(lián)系,非常的方便,而且可以實(shí)現(xiàn)任意節(jié)點(diǎn)之間的任何有意義的行為交互方式。該方案提供給用戶圖形和文本兩種方式定義路由,此外,當(dāng)編輯動(dòng)畫過程中,該方案還可以根據(jù)用戶的意圖自動(dòng)生成路由功能,實(shí)現(xiàn)相關(guān)的事件級(jí)聯(lián)。此外本方案還實(shí)現(xiàn)了各類傳感器的創(chuàng)建和觸發(fā)功能,這使得各種語義編輯功能更加強(qiáng)大,簡便。
本發(fā)明向設(shè)計(jì)者提供三維場(chǎng)景各種節(jié)點(diǎn)的行為方式新的編輯方式,直接通過編輯路由來定義節(jié)點(diǎn)的行為。本方案實(shí)現(xiàn)了該方案提供了語義模型編輯和直接文本編輯,提供場(chǎng)景的邏輯層次描述的顯示和修改、事件傳輸路由(ROUTE)的表示和修改。
圖1是描述了一個(gè)臨近傳感器的創(chuàng)建方式的界面示意圖;圖2是描述了一個(gè)觸摸傳感器的創(chuàng)建方式的界面示意圖;圖3是描述了用圖形的方式來自定義對(duì)象之間的動(dòng)態(tài)交互行為的界面示意圖;圖4是描述了用文本的方式來自定義對(duì)象之間的動(dòng)態(tài)交互行為的界面示意圖。
具體實(shí)施例方式
為了實(shí)現(xiàn)這樣的目的,本方案采用的技術(shù)方案如下1創(chuàng)建各種傳感器節(jié)點(diǎn)。各種節(jié)點(diǎn)的行為是通過路由來實(shí)現(xiàn)的,所有的路由組成了場(chǎng)景的行為圖。需要通過觸發(fā)傳感器節(jié)點(diǎn)來觸發(fā)事件在行為圖的傳播。行為圖是一系列的域連接。通過再路由改變這種連接、或增加或打斷這些連接。通過行為圖,可以按預(yù)定義的順序在系統(tǒng)中傳播事件。
多種傳感器的創(chuàng)建和編輯包括時(shí)間傳感器,觸摸傳感器,臨近傳感器等多種傳感器,支持這些傳感器的觸發(fā)和相關(guān)的事件觸發(fā)機(jī)制。
2路由的兩種編輯方式的設(shè)計(jì),提供了語義模型編輯和直接文本編輯??梢栽谡Z義模型編輯方式中以圖形的方式編輯路由,或者在接文本編輯中以文本的方式編輯路由。為了方便路由的管理,在語義模型編輯方式中,可以類似于一種包的概念來組織路由管理。
3對(duì)編輯后的路由進(jìn)行編譯,其設(shè)計(jì)目標(biāo)是找出設(shè)計(jì)者編輯完路由后所出現(xiàn)的語義錯(cuò)誤。
4對(duì)編輯后的路由整合到新的場(chǎng)景中,在場(chǎng)景中通過一個(gè)管理器來管理這些路由。
以上四個(gè)步驟設(shè)計(jì)了場(chǎng)景的節(jié)點(diǎn)的行為編輯過程。提供給設(shè)計(jì)者更簡單的設(shè)計(jì)界面,把更多復(fù)雜的實(shí)現(xiàn)功能交有程序解決,減輕了設(shè)計(jì)者的負(fù)擔(dān)。
此外本方案對(duì)于動(dòng)畫編輯過程做了特殊優(yōu)化處理,在編輯物體的過程中,根據(jù)用戶的意圖自動(dòng)生成路由,實(shí)現(xiàn)相關(guān)的事件級(jí)聯(lián),而無需用戶去手動(dòng)的設(shè)計(jì)相關(guān)的節(jié)點(diǎn)的聯(lián)系。同時(shí)本方案支持以可視化的方式來設(shè)定各種插值器的值。
以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說明如圖1所示。它包括名字(由“sensor名字”編輯框確定),所處的坐標(biāo)系(由“變換名字”編輯框確定),中心(分別由“x”“y”“z”等編輯框確定),空間的大小(由“高”“寬”“長”等編輯框確定)。“接受列表“表示當(dāng)該列表里面的物體進(jìn)入到由以上方式確定的空間后,臨近傳感器將會(huì)接測(cè)到該事件。
如圖2所示,它包括名字(由“節(jié)點(diǎn)名字”編輯框確定),所綁定的三維物體(由“sensor名字”編輯框確定)。當(dāng)鼠標(biāo)點(diǎn)擊由以上方式定義的三維物體后,和它綁定的觸摸傳感器就會(huì)接測(cè)到該事件。
如圖3所示,視圖的左面顯示了所有的路由(以“packet”為根),以及X3D場(chǎng)景中所有的擁有名字的節(jié)點(diǎn)(點(diǎn)擊“node”展開就可以顯示)。右邊的視圖顯示了兩個(gè)路由的內(nèi)容。其中“Route0”是路由的名字,“Animation01”是輸出節(jié)點(diǎn)的名字,“franction_changed”是輸出事件的名字,“animation01headTranslation”是輸入節(jié)點(diǎn)的名字,“set_fraction”是輸入事件的名字。
如圖4所示,視圖顯示了所有的路由,每一行表示一個(gè)路由。第一行中,“#ROUTE”表示編輯的是一個(gè)路由,“head_TIER”是輸出節(jié)點(diǎn)的名字,“franction_changed”是輸出事件的名字,“head-COORD-INTERP”是輸入節(jié)點(diǎn)的名字,“set_fraction”是輸入事件的名字。
為了實(shí)現(xiàn)基于X3D標(biāo)準(zhǔn)的對(duì)象動(dòng)態(tài)交互功能接口,其基本步驟如下
1創(chuàng)建各種傳感器節(jié)點(diǎn)。我們不僅僅定義X3D自帶的傳感器節(jié)點(diǎn),也提供的創(chuàng)建和編輯功能。各種節(jié)點(diǎn)的行為是通過路由來實(shí)現(xiàn)的,所有的路由組成了場(chǎng)景的行為圖。需要通過觸發(fā)傳感器節(jié)點(diǎn)來觸發(fā)事件在行為圖的傳播。行為圖是一系列的域連接。通過再路由改變這種連接、或增加或打斷這些連接。通過行為圖,可以按預(yù)定義的順序在系統(tǒng)中傳播事件。
多種傳感器的創(chuàng)建和編輯包括時(shí)間傳感器,觸摸傳感器,臨近傳感器等多種傳感器,支持這些傳感器的觸發(fā)和相關(guān)的事件觸發(fā)機(jī)制。
下面具體介紹各種傳感器的創(chuàng)建。
1)臨近傳感器(ProximitySensor)的創(chuàng)建,設(shè)計(jì)者可以設(shè)定臨近傳感器的名字,大小空間位置,此外還可以設(shè)定當(dāng)哪些物體進(jìn)入臨近傳感器指定的空間時(shí)才觸發(fā)相關(guān)的事件。圖一顯示相關(guān)的界面。
當(dāng)系統(tǒng)自動(dòng)通過一個(gè)管理器來管理所有的臨近傳感器以及它的路徑,當(dāng)修改臨近傳感器的路徑的時(shí)候,系統(tǒng)更新場(chǎng)景樹。
2)觸摸傳感器(touchSensor)的創(chuàng)建設(shè)計(jì)者可以在相關(guān)的物體上綁定一個(gè)觸摸傳感器,當(dāng)鼠標(biāo)點(diǎn)擊到這個(gè)物體的時(shí)候,系統(tǒng)會(huì)判斷一下是否有觸摸傳感器綁定,若有則觸發(fā)相關(guān)的事件。
3)時(shí)間傳感器(touchSensor)的創(chuàng)建本方案對(duì)于新創(chuàng)建的時(shí)間傳感器都視為一個(gè)相關(guān)動(dòng)畫,設(shè)置一個(gè)動(dòng)畫管理器來管理所有的動(dòng)畫,每一個(gè)動(dòng)畫管理在該動(dòng)畫編輯過程中所編輯的物體運(yùn)動(dòng)軌跡。每一個(gè)物體的運(yùn)動(dòng)軌跡保存在插值器節(jié)點(diǎn)中,該插值器節(jié)點(diǎn)的父節(jié)點(diǎn)就是所編輯的物體。本方案自動(dòng)對(duì)每一個(gè)運(yùn)動(dòng)物體生成兩個(gè)路由,一個(gè)是連接時(shí)間傳感器到插值器節(jié)點(diǎn)的連接,另一個(gè)是插值器節(jié)點(diǎn)到運(yùn)動(dòng)物體節(jié)點(diǎn)的連接。這些新生成的路由自動(dòng)保存到路由管理器中。
2路由的兩種編輯方式的設(shè)計(jì),提供了語義模型編輯和直接文本編輯??梢栽谡Z義模型編輯方式中以圖形的方式編輯路由,或者在接文本編輯中以文本的方式編輯路由。為了方便路由的管理,在語義模型編輯方式中,可以類似于一種包的概念來組織路由管理。
1)語義模型編輯過程設(shè)計(jì)者在語義模型編輯過程可以直接編輯節(jié)點(diǎn)之間的交互行為,設(shè)計(jì)者可以選擇所設(shè)計(jì)的節(jié)點(diǎn)和節(jié)點(diǎn)的相關(guān)的事件,大大方便了設(shè)計(jì)者。
本方案通過組件模式(一種設(shè)計(jì)模式)來對(duì)路由進(jìn)行管理,允許設(shè)計(jì)者的刪除,編輯,貼加等多種操作。系統(tǒng)內(nèi)部描述了一張樹形圖數(shù)據(jù)結(jié)構(gòu)來表示設(shè)計(jì)者對(duì)路由的管理方式。其中的葉子表示一個(gè)路由或者空的包,枝表示一個(gè)包,每一種操作僅僅在相關(guān)的數(shù)據(jù)結(jié)構(gòu)中標(biāo)記操作類型。刪除一個(gè)包,系統(tǒng)并沒有刪除這個(gè)包相關(guān)的數(shù)據(jù)結(jié)構(gòu),而是僅僅在這個(gè)包對(duì)應(yīng)的節(jié)點(diǎn)和下面所有的子節(jié)點(diǎn)結(jié)構(gòu)中貼加刪除標(biāo)記,直到設(shè)計(jì)者選擇更新到場(chǎng)景的時(shí)候,相關(guān)的數(shù)據(jù)結(jié)構(gòu)才被刪除。每一個(gè)表示路由的葉子節(jié)點(diǎn)保存了原來路由內(nèi)容,這樣修改后的內(nèi)容可以恢復(fù)為初值。通過在用戶界面數(shù)據(jù)和路由管理器之間增加路由樹形圖數(shù)據(jù)結(jié)構(gòu)保證了設(shè)計(jì)者對(duì)于路由各種編輯(修改,貼加,刪除)都可以選擇更新,樹形圖數(shù)據(jù)結(jié)構(gòu)的路由數(shù)據(jù)將會(huì)更新到路由管理器中;或者選擇放棄,該維護(hù)算法通過樹形圖數(shù)據(jù)結(jié)構(gòu)的各種操作標(biāo)記重新設(shè)置為剛開始修改時(shí)候的內(nèi)容。
2)文本編輯過程系統(tǒng)從場(chǎng)景內(nèi)包含的路由管理器中讀取所有路由,以文本的方式提供給設(shè)計(jì)者。當(dāng)用戶修改完后,系統(tǒng)將會(huì)接測(cè)用戶的輸入是否有效,首先確定格式是否正確,然后對(duì)于每一個(gè)名字,通過一個(gè)名字管理器來接測(cè)該名字對(duì)應(yīng)的節(jié)點(diǎn)是否存在。當(dāng)編譯通過后,所有的路由將更新到路由管理器中。
3對(duì)編輯后的路由進(jìn)行編譯,其設(shè)計(jì)目標(biāo)是找出設(shè)計(jì)者編輯完路由后所出現(xiàn)的語義錯(cuò)誤。
通過把用戶編輯的所有的路由包含的信息,包括節(jié)點(diǎn)名字和事件名字和場(chǎng)景的名字器中的名字和事件名字進(jìn)行匹配,如果不存該節(jié)點(diǎn),則判斷用戶輸入錯(cuò)誤。
4對(duì)編輯后的路由整合到新的場(chǎng)景中,在場(chǎng)景中通過一個(gè)管理器來管理這些路由,再繪制的時(shí)候,繪制引擎可以通過這個(gè)管理器來讀取路由,本方案設(shè)計(jì)了一個(gè)效率高的路由驅(qū)動(dòng)實(shí)現(xiàn)設(shè)計(jì)方案。
以上四個(gè)步驟設(shè)計(jì)了場(chǎng)景的節(jié)點(diǎn)的行為編輯過程。提供給設(shè)計(jì)者更簡單的設(shè)計(jì)界面,把更多復(fù)雜的實(shí)現(xiàn)功能交有程序解決,減輕了設(shè)計(jì)者的負(fù)擔(dān)。
5多種編輯方式之間的路由數(shù)據(jù)一致性,在系統(tǒng)的實(shí)現(xiàn)中,臨近傳感器,時(shí)間傳感器,觸摸傳感器的刪除,語義模型編輯過程,文本編輯過程都會(huì)影響到路由數(shù)據(jù)。為了做到處理的一致性,當(dāng)觸摸傳感器,首先修改相關(guān)的數(shù)據(jù)結(jié)構(gòu)在場(chǎng)景樹中刪除該觸摸傳感器,更新觸摸傳感器管理器,再刪除路由管理器中包含有該觸摸傳感器節(jié)點(diǎn)的路由。這樣當(dāng)切換到路由編輯模式的時(shí)候,可以做到數(shù)據(jù)的一致性。對(duì)臨近傳感器的刪除也采用同樣的流程。
當(dāng)刪除時(shí)間傳感器的時(shí)候,系統(tǒng)更新場(chǎng)景樹,刪除該時(shí)間傳感器節(jié)點(diǎn),該動(dòng)畫包含的所有的插值器節(jié)點(diǎn);接著更新動(dòng)畫管理器,刪除時(shí)間傳感器對(duì)應(yīng)的動(dòng)畫對(duì)象。在上述操作過程中,本算法會(huì)刪除路由管理器中包含有該時(shí)間傳感器節(jié)點(diǎn)的所有路由,同時(shí)針對(duì)新的動(dòng)畫模塊生成新的路由,將他們加入到路由管理器中。這樣當(dāng)切換到路由編輯模式的時(shí)候,可以做到數(shù)據(jù)的一致性。
當(dāng)修改場(chǎng)景圖的一個(gè)物體節(jié)點(diǎn)的名字的時(shí)候,更新該動(dòng)畫數(shù)據(jù)結(jié)構(gòu)中,臨近傳感器數(shù)據(jù)結(jié)構(gòu),觸摸傳感器數(shù)據(jù)結(jié)構(gòu)中的物體列表。
6此外本方案對(duì)于動(dòng)畫編輯過程做了特殊優(yōu)化處理,在編輯物體的過程中,根據(jù)用戶的意圖自動(dòng)生成路由,實(shí)現(xiàn)相關(guān)的事件級(jí)聯(lián),而無需用戶去手動(dòng)的設(shè)計(jì)相關(guān)的節(jié)點(diǎn)的聯(lián)系。同時(shí)本方案支持以可視化的方式來設(shè)定各種插值器的值。自動(dòng)生成路由的事件級(jí)聯(lián)的結(jié)構(gòu)是一個(gè)時(shí)間傳感器節(jié)點(diǎn)和一個(gè)插值器的連接,一個(gè)插值器到一個(gè)物體節(jié)點(diǎn)的連接。
以下舉例說明其自動(dòng)生成的典型格式#ROUTE Animation01(一個(gè)TimeSensor節(jié)點(diǎn)).fraction_changed Toanimation01headTranslation(某一個(gè)插值器節(jié)點(diǎn)名字).set_fraction#ROUTE Animation01headTranslation.value_changedTo head(一個(gè)Transform節(jié)點(diǎn)).set_translation實(shí)施例創(chuàng)建戰(zhàn)場(chǎng)仿真系統(tǒng)第一部分創(chuàng)建一個(gè)時(shí)間傳感器T1(關(guān)閉該時(shí)間傳感器),設(shè)定一卡車的路徑(從倉庫到巡邏機(jī)上)(通過設(shè)置空間位置插值器、空間方向插枝器的內(nèi)容,然后建立空間位置插值器、空間方向插枝器和卡車物體和時(shí)間傳感器T1路由關(guān)系),創(chuàng)建一個(gè)觸摸傳感器節(jié)點(diǎn)TO1,創(chuàng)建觸摸傳感器節(jié)點(diǎn)和時(shí)間傳感器的路由關(guān)系。編輯的結(jié)果是操作員一點(diǎn)擊卡車,卡車自動(dòng)開始運(yùn)動(dòng)。
第二部分創(chuàng)建一個(gè)時(shí)間傳感器T2(關(guān)閉該時(shí)間傳感器),設(shè)定巡邏機(jī)P2的飛行路徑,(通過設(shè)置空間位置插值器、空間方向插枝器的內(nèi)容,然后建立空間位置插值器、空間方向插枝器和巡邏機(jī)物體P2和時(shí)間傳感器T2的路由關(guān)系),創(chuàng)建一個(gè)臨近傳感器節(jié)點(diǎn)PR1,創(chuàng)建觸摸傳感器節(jié)點(diǎn)PR1和時(shí)間傳感器T2的路由關(guān)系。編輯的結(jié)果是卡車運(yùn)動(dòng)到巡邏機(jī)附近的時(shí)候,會(huì)自動(dòng)觸發(fā)巡邏機(jī)P2的飛行。
第三部分創(chuàng)建一個(gè)時(shí)間傳感器T3(打開該時(shí)間傳感器),用腳本編寫入侵飛機(jī)P1的飛行路徑。創(chuàng)建時(shí)間傳感器T3和入侵飛機(jī)P1的路由關(guān)系。
第四部分創(chuàng)建一個(gè)時(shí)間傳感器T4(關(guān)閉該時(shí)間傳感器),用腳本編寫導(dǎo)彈M1的飛行路徑。創(chuàng)建時(shí)間傳感器T4和導(dǎo)彈M11的路由關(guān)系。
第五部分創(chuàng)建一個(gè)臨近傳感器節(jié)點(diǎn)PR2(該傳感器掛在巡邏機(jī)P2上),創(chuàng)建時(shí)間傳感器T4和臨近傳感器節(jié)點(diǎn)PR2的路由關(guān)系。
第六部分。創(chuàng)建一個(gè)時(shí)間傳感器T5(關(guān)閉該時(shí)間傳感器),編輯導(dǎo)彈M1的落點(diǎn),創(chuàng)建時(shí)間傳感器T5和導(dǎo)彈M1的路由關(guān)系。
第七部分創(chuàng)建一個(gè)時(shí)間傳感器T6(關(guān)閉該時(shí)間傳感器),編輯入侵飛機(jī)P1的下落方式,創(chuàng)建時(shí)間傳感器T6和入侵飛機(jī)P11的路由關(guān)系。
以上操作的結(jié)果是卡車開到巡邏機(jī)附近,巡邏機(jī)起飛P1,在巡邏機(jī)不斷的巡邏過程中,檢測(cè)到入侵飛機(jī)的入侵,于是觸發(fā)導(dǎo)彈射向入侵飛機(jī),當(dāng)入侵飛機(jī)檢測(cè)到導(dǎo)彈飛近后,開始下落,同時(shí)會(huì)有爆炸效果。
權(quán)利要求
1.一種基于X3D標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法,其特征在于,方法的步驟如下1)創(chuàng)建時(shí)間傳感器節(jié)點(diǎn),該時(shí)間傳感器節(jié)點(diǎn)每隔1毫秒發(fā)送一個(gè)時(shí)鐘消息;2)設(shè)置空間位置插值器、空間方向插枝器、空間縮放插值器的值,采用關(guān)鍵楨技術(shù),空間位置插值器、空間方向插枝器、空間縮放插值器接收到時(shí)鐘消息后輸出,基于這個(gè)時(shí)鐘消息,采用線性插值的技術(shù)輸出結(jié)果;3)創(chuàng)建空間臨近傳感器節(jié)點(diǎn)、觸摸傳感器節(jié)點(diǎn),通過臨近傳感器節(jié)點(diǎn)來檢測(cè)物體進(jìn)入或者離開某一個(gè)空間區(qū)域的事件,通過觸摸傳感器節(jié)檢測(cè)設(shè)計(jì)者對(duì)于某一個(gè)物體的輸入事件,各種節(jié)點(diǎn)的行為是通過路由來實(shí)現(xiàn)的,所有的路由組成了場(chǎng)景的行為圖,通過觸發(fā)傳感器節(jié)點(diǎn)來觸發(fā)事件在行為圖的傳播;4)建立時(shí)間傳感器和多種觸發(fā)傳感器,多種插值器以及各種物體的動(dòng)態(tài)路由聯(lián)系,提供了路由設(shè)計(jì)的兩種編輯方式的設(shè)計(jì),提供了語義模型編輯和直接文本編輯;5)對(duì)編輯后的路由進(jìn)行編譯,其設(shè)計(jì)目標(biāo)是找出設(shè)計(jì)者編輯完路由后所出現(xiàn)的語義錯(cuò)誤。
2 根據(jù)權(quán)利要求1所述的一種基于X3D標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法,其特征在于,所述的采用關(guān)鍵楨技術(shù)是指編輯幾個(gè)特殊楨,對(duì)于每一個(gè)特殊楨記錄下物體的當(dāng)前軌跡,把所有的特殊楨以及對(duì)應(yīng)的物體的運(yùn)動(dòng)的軌跡保存到插值器中,這些特殊楨描述了物體的運(yùn)動(dòng)軌跡,播放的時(shí)候采用線性插值技術(shù)。
3 根據(jù)權(quán)利要求1所述的一種基于X3D標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法,其特征在于,所述的采用線性插值的技術(shù)輸出結(jié)果是指當(dāng)插值器接收到一個(gè)代表某一楨的輸入的時(shí)候,找到小于該楨的最大關(guān)鍵楨,大于該楨的最小關(guān)鍵楨,它的輸出取決于該輸入楨和最大關(guān)鍵楨的距離和最大關(guān)鍵楨和最小關(guān)鍵楨的距離的線性比值。
4 根據(jù)權(quán)利要求1所述的一種基于X3D標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法,其特征在于,所述的提供了路由設(shè)計(jì)的兩種編輯方式的設(shè)計(jì)是包括提供了語義模型編輯和直接文本編輯,在語義模型編輯方式中以圖形的方式編輯路由,或者在接文本編輯中以文本的方式編輯路由。
全文摘要
本發(fā)明公開了一種基于X3D標(biāo)準(zhǔn)的物體動(dòng)態(tài)交互建模方法。通過創(chuàng)建多種傳感器和插值器,以及它們之間和物體的動(dòng)態(tài)路由關(guān)系,來實(shí)現(xiàn)物體的動(dòng)態(tài)建模。該方案提供了建模者和三維場(chǎng)景之間的新的交互方式。該方案使得設(shè)計(jì)人員不僅僅可以編輯靜態(tài)世界,還可以定義虛擬世界中各個(gè)物體的交互實(shí)現(xiàn),從語義的角度來定義它們的行為。該方案提供了語義模型編輯和直接文本編輯,提供場(chǎng)景的邏輯層次描述的顯示和修改、事件傳輸路由的表示和修改。當(dāng)編輯動(dòng)畫過程中,該方案還可以根據(jù)用戶的意圖自動(dòng)生成路由功能,實(shí)現(xiàn)相關(guān)的事件級(jí)聯(lián)。此外本方案還實(shí)現(xiàn)了各類傳感器的創(chuàng)建和觸發(fā)功能,這使得各種語義編輯功能更加簡便。
文檔編號(hào)G06T17/00GK1731452SQ200510060290
公開日2006年2月8日 申請(qǐng)日期2005年8月4日 優(yōu)先權(quán)日2005年8月4日
發(fā)明者華煒, 王青, 鮑虎軍 申請(qǐng)人:浙江大學(xué)