本發(fā)明涉及一種對多個3d模型進行統(tǒng)一操作的3d虛擬現(xiàn)實建模,特別涉及一種基于3d模型綁定關系庫對多個3d模型綁定操作的系統(tǒng)和方法,尤其涉及在對多個3d模型進行以整體的方式進行操作時,只需要對此多個3d模型組合綁定,當對其中任意一個3d模型進行操作操作時,其他3d模型與被操作的3d模型形成統(tǒng)一的整體一起進行操作的方法。
背景技術:
隨著人們追求更加逼真虛擬現(xiàn)實體驗的強烈欲望,3d的虛擬現(xiàn)實技術也隨之普及。比如在現(xiàn)有的居室3d模型建模技術中,常常涉及對多個家具的3d模型需要以整體的方式進行移動或旋轉操作。在現(xiàn)有的技術中,都是通過人工對其多個家具的3d模型挨個進行相同的重復移動或旋轉操作以達到整體的平移或旋轉的效果,這種單調重復的操作大大增加了用戶對3d建模的操作成本,也更容易出現(xiàn)誤差。
技術實現(xiàn)要素:
1.發(fā)明要解決的技術問題
針對現(xiàn)有技術中所提及的在模型建模中,涉及對多個3d模型需要以整體的方式進行移動或旋轉操作時,都是通過人工對其多個的3d模型挨個進行相同的重復操作以達到整體的平移或旋轉或控制等統(tǒng)一效果的問題;本發(fā)明提供了一種基于3d模型綁定關系庫對多個3d模型綁定操作的系統(tǒng)和方法,在3d模型中對多個3d模型進行以整體的方式進行移動或旋轉或控制等操作時,只需要對此多個3d模型組合綁定,當對其中任意一個3d模型進行操作時,其他3d模型與被操作的3d模型形成統(tǒng)一的整體一起進行操作的方法。
2.技術方案
一種基于3d模型綁定關系庫對多個3d模型綁定操作的系統(tǒng)和方法的技術方案進行了充分公開,其技術方案如下:
一種基于3d模型綁定關系庫對多個3d模型綁定操作的方法,其步驟包括:
步驟1,捕捉操作信息:通過3d模型操作捕捉器從屏幕中捕捉控制移動物3d模型的操作信息,所述的操作信息包括:操作對象標識、操作類型和操作值;所述的操作對象就是指被操作的3d模型,即移動物3d模型;操作類型包括:綁定操作或移動操作或旋轉操作或控制操作。綁定操作時的操作值為多個被綁定的3d模型的對象標識以及各被綁定的3d模型之間的關聯(lián)方向信息(所謂對象標識就是區(qū)別于其他3d模型的唯一標記,即通過對象標識可以找到一個3d模型);當移動操作時的操作值為3d模型位移坐標值,當旋轉操作時的操作值為3d模型的旋轉角度;當控制操作時的操作值為控制指令,此控制指令如:開啟或者關閉等;3d模型操作捕捉器將綁定操作的若干個3d模型的對象標識傳輸給3d模型綁定關系庫,并將移動操作、旋轉操作或控制操作操作信息傳輸3d模型綁定操作器;
步驟2,初始化綁定關系庫:3d模型綁定關系庫從3d模型操作捕獲器中獲取綁定操作的若干個3d模型的對象標識,將此若干個3d模型的對象標識進行綁定,以建立并記錄它們之間的綁定關系信息;此綁定關系信息由被綁定的所有3d模型的對象標識組成;此綁定關系信息唯一標記不同的綁定關系組,即在同一個綁定關系組下的3d模型對應綁定關系信息相同,如果一個綁定關系組下所包括的所有3d模型對象標識與另一個綁定關系組下所包括的所有3d模型對象標識完全相同,則認為此兩個綁定關系組為同一個綁定關系組,因此可以通過3d模型找到對應的此綁定關系信息,根據(jù)此綁定關系信息查詢到一起綁定的3d模型;并將綁定關系信息傳輸給3d模型綁定操作器;
步驟3,統(tǒng)一操作:3d模型綁定操作器從3d模型綁定關系庫中獲取的綁定關系信息以及從3d模型操作捕獲器中獲取操作信息,從操作信息中獲取操作對象標識(此操作對象即為被操作的3d模型),再根據(jù)此操作對象標識從3d模型綁定關系庫獲取對應的綁定關系信息,再根據(jù)此綁定關系信息可以查詢到與被操作的3d模型一起綁定的其他3d模型;從操作信息中獲取操作類型,并根據(jù)操作類型進行處理。
如果操作類型為移動操作,3d模型綁定操作器從操作信息中獲取移動操作時的操作值,假設所操作值對應的位移坐標為t,然后從被操作的3d模型以及所有與被操作的3d模型一起綁定的其他3d模型獲取其所有的節(jié)點坐標,此所有的節(jié)點坐標即為被綁定一起的所有3d模型整體的節(jié)點坐標,并對此所有的節(jié)點坐標進行平移,即將所有的節(jié)點坐標與位移坐標t相加,此平移后的坐標即為移動操作后的坐標;
如果操作類型為旋轉操作,從操作信息中獲取旋轉操作時的操作值,假設所操作值對應的旋轉角度為a,然后從被操作的3d模型以及所有與被操作的3d模型一起綁定的其他3d模型獲取其所有的節(jié)點坐標,此所有的節(jié)點坐標即為被綁定一起的所有3d模型整體的節(jié)點坐標,對此所有的節(jié)點坐標重新計算obb包圍盒,此重新計算的obb包圍盒即為所有被綁定一起的所有3d模型對應的整體obb包圍盒,然后根據(jù)以經(jīng)過此整體的obb包圍盒的中心或者以被指定的3d模型中的某一點為旋轉中心并將此中心向旋轉面投影,此投影線為旋轉軸、、并以旋轉角度為a對此被綁定一起的所有3d模型整體的節(jié)點坐標進行旋轉(圍繞某點為中心對節(jié)點坐標進行旋轉的方法在現(xiàn)有技術中已有公開,本發(fā)明不再贅述),此旋轉后的坐標即為旋轉操作后的坐標;
如果操作類型為控制操作,從操作信息中獲取操作值,此操作值為控制指令,然后根據(jù)此控制指令挨個對被操作的3d模型以及所有與被操作的3d模型一起綁定的其他3d模型進行逐一控制,以至被綁定在一起的3d模型都可以根據(jù)控制指令進行統(tǒng)一動作(根據(jù)控制指令進行動作的方法在現(xiàn)有技術中已有公開,本發(fā)明不再贅述);
一種基于3d模型綁定關系庫對多個3d模型綁定操作的系統(tǒng),包括3個模塊,3d模型操作捕獲器、3d模型綁定關系庫和3d模型綁定操作器,其中3d模型操作捕捉器捕捉控制移動物3d模型的操作信息,將綁定操作的操作信息傳輸給3d模型綁定關系庫,并將移動操作、旋轉操作或控制操作操作信息傳輸3d模型綁定操作器,3d模型綁定關系庫將綁定關系信息傳輸給3d模型綁定操作器。
3d模型操作捕獲器:捕獲對3d模型的操作信息,操作信息包括:操作對象標識、操作類型和操作值;操作對象就是指被操作的3d模型,操作類型就是對3d模型各種操作的標記,其包括但不限于:綁定操作或移動操作或旋轉操作或控制操作,當綁定操作時的操作值為多個被綁定的3d模型的對象標識以及各被綁定的3d模型之間的關聯(lián)方向信息,當移動操作時的操作值為3d模型位移坐標值,當旋轉操作時的操作值為3d模型的旋轉角度,當控制操作時的操作值為控制指令,此控制指令如:開啟或者關閉等;并將綁定操作的操作信息傳輸給3d模型綁定關系庫,將移動操作、旋轉操作或控制操作操作信息傳輸3d模型綁定操作器;
3d模型綁定關系庫:對若干個需要一起操作的3d模型建立綁定關系,此綁定關系信息由被綁定的所有3d模型的對象標識以及各對象標識之間的關聯(lián)方向信息組成(所謂3d模型的對象標識是區(qū)別于其他3d模型的標記,即唯一標識某個3d模型的標記);因此通過3d模型找到對應的此綁定關系信息,根據(jù)此綁定關系信息可以查詢到一起綁定的3d模型;并將綁定關系信息傳輸給3d模型綁定操作器;所述3d模型綁定關系庫具有特性:
合理性:同一個綁定關系組內所包含的3d模型對象標識唯一;例如:綁定關系信息a所包含的3d模型對象標識分別為:對象標識a和對象標識b以及對象標識c,只有對象標識a與對象標識b與對象標識c兩兩皆不相等才被視為合理的綁定關系信息;如果兩個對象標識相同或相關聯(lián)則視為一個3d模型與自已關聯(lián),這是不符合常理的,即被視為異常的綁定關系信息;
有方向性:同一個綁定關系組內所包含兩兩3d模型之間的關聯(lián)方向分為單向的與雙向的;例如:綁定關系信息a包含有兩個3d模型,此兩個3d模型的對象標識分別為3d模型對象標識1和3d模型對象標識2,如果3d模型對象標識1可以查詢到3d模型對象標識2但3d模型對象標識2無法查詢到3d模型對象標識1,則被視為單向的;如果3d模型對象標識1可以查詢到3d模型對象標識2,且3d模型對象標識2也可以查詢到3d模型對象標識1,則被視為雙向的;
綁定關系傳遞性:當對任意兩個3d模型進行綁定關聯(lián)時,此兩個3d模型所屬的綁定關系組將會通過此兩個3d模型的綁定關聯(lián)而自動對關系組與關系組或關系組與3d模型之間進行綁定關聯(lián)(如果被綁定關聯(lián)的3d模型皆屬于不同的關系組,即此3d模型有與其他3d模型的關聯(lián)關系,則綁定關聯(lián)發(fā)生在關系組與關系組之間;如果被綁定關聯(lián)的某一個3d模型不屬于關系組,即此3d模型沒有與其他3d模型的關聯(lián)關系,則綁定關聯(lián)發(fā)生在關系組與3d模型之間),此時關系組與關系組或關系組與3d模型之間便形成了關系組的關聯(lián)關系從內部向外部的傳遞。
唯一性:綁定關系信息唯一標記不同的綁定關系組,只有同時滿足以下三個條件才被視為相同的綁定關系信息:
條件一:不同綁定關系組之間所包含的3d模型對象標識的數(shù)目相等;例如:綁定關系信息a所包含的3d模型對象標識有m個,綁定關系信息b所包含的3d模型對象標識有n個,如果m值與n的值不等,則綁定關系信息a和綁定關系信息b不是同一個綁定關系信息;如果m值與n的值相等,則此條件校驗通過;
條件二:不同綁定關系組之間所包含的3d模型對象標識的值相同;例如:綁定關系信息a所包含的3d模型對象標識分別為:對象標識a和對象標識b以及對象標識c,如果綁定關系信息b中沒有包含對象標識a或者對象標識b或者對象標識c,則綁定關系信息a和綁定關系信息b不是同一個綁定關系信息;如果綁定關系信息b中包含對象標識a和對象標識b和對象標識c,則此條件校驗通過;
條件三:不同綁定關系組之間所包含的3d模型對象的關聯(lián)方向相同;例如:從綁定關系信息a中任意獲取3d模型對象標識分別為:對象標識a和對象標識b;從綁定關系信息b獲取對應的3d模型對象標識分別也為:對象標識a和對象標識b;如果綁定關系信息a中的根據(jù)對象標識a可以找到對象標識b但根據(jù)對象標識b不能找到對象標識a,此屬于單向關聯(lián);因此,只有綁定關系信息b中的根據(jù)對象標識a可以找到對象標識b且根據(jù)對象標識b不能找到對象標識a,則綁定關系信息a與綁定關系信息b被視為同一個綁定關系信息,否則綁定關系信息a與綁定關系信息b不是同一個綁定關系信息;如果綁定關系信息a中根據(jù)對象標識a可以找到對象標識b且根據(jù)對象標識b也可以找到對象標識a,此屬于雙向關聯(lián);因此,只有綁定關系信息b中根據(jù)對象標識a可以找到對象標識b且根據(jù)對象標識b也可以找到對象標識a,則綁定關系信息a與綁定關系信息b被視為同一個綁定關系信息,否則綁定關系信息a與綁定關系信息b不是同一個綁定關系信息;
3d模型綁定控制器:根據(jù)從3d模型綁定關系庫中獲取的綁定關系信息以及從3d模型操作捕獲器中獲取操作信息,根據(jù)操作信息中獲取的被操作的3d模型的對象標識從綁定關系信息中查詢與其綁定的其他3d模型的對象標識,并對被操作的3d模型以及與其綁定的3d模型進行統(tǒng)一操作。
3.有益效果
(1)本發(fā)明通過3d模型綁定關系庫,即通過一種對多個3d模型組合綁定以建立起相互關聯(lián)的關系模型庫,解決了現(xiàn)有技術中需要通過人工對多個3d模型進行挨個操作的問題,為多個3d模型作為可以被統(tǒng)一操作的整體提供了基礎;
(2)本發(fā)明提供了3d模型綁定操作器,即發(fā)明了基于3d模型綁定關系庫可以通過對其中任意一個3d模型進行操作以控制被綁定的其他3d模型一起被操作,解決了現(xiàn)有技術中需要通過人工對多個3d模型挨個進行相同的重復被操作的問題,以至當對其中任意一個3d模型進行被操作時,其他3d模型與被操作的3d模型形成統(tǒng)一的整體一起進行被操作;
綜上,本發(fā)明尤其涉及在3d模型中對多個3d模型進行以整體的方式進行被操作時,只需要對此多個3d模型組合綁定,當對其中任意一個3d模型進行被操作時,其他3d模型與被操作的3d模型形成統(tǒng)一的整體一起進行被操作的方法,不再需要通過人工對多個3d模型進行挨個進行相同的重復操作,這便大大降低了用戶對3d建模的操作成本,提升了用戶對3d模型的操作體驗。
附圖說明
圖1為本發(fā)明的多個3d模型整體平移或旋轉的示意圖;
圖2為本發(fā)明所涉及的系統(tǒng)模塊圖以及連接關系圖;
圖3為本發(fā)明方所涉及的方法流程圖。
具體實施方式
實施例1:
以居室3d模型,對放置電視的電視柜與電視進行單向綁定并對其進行平移或旋轉操作為例:
如圖2所示,基于3d模型綁定關系庫對多個3d模型綁定操作的系統(tǒng),包括3d模型操作捕獲器、3d模型綁定關系庫和3d模型綁定操作器,其中3d模型操作捕捉器捕捉控制移動物3d模型的操作信息,將綁定操作的操作信息傳輸給3d模型綁定關系庫,并將移動操作、旋轉操作或控制操作操作信息傳輸3d模型綁定操作器,3d模型綁定關系庫將綁定關系信息傳輸給3d模型綁定操作器。
其中3d模型操作捕獲器:捕獲對3d模型的操作信息,操作信息包括:操作對象標識、操作類型和操作值;操作對象就是指被操作的3d模型,操作類型就是對3d模型各種操作的標記,其包括但不限于:綁定操作或移動操作或旋轉操作或控制操作,當綁定操作時的操作值為多個被綁定的3d模型的對象標識以及各被綁定的3d模型之間的關聯(lián)方向信息,當移動操作時的操作值為3d模型位移坐標值,當旋轉操作時的操作值為3d模型的旋轉角度,當控制操作時的操作值為控制指令,此控制指令如:開啟或者關閉等;并將綁定操作的操作信息傳輸給3d模型綁定關系庫,將移動操作、旋轉操作或控制操作的操作信息傳輸3d模型綁定操作器。
3d模型綁定關系庫:對若干個需要一起操作的3d模型建立綁定關系,此綁定關系信息由被綁定的所有3d模型的對象標識以及各對象標識之間的關聯(lián)方向信息組成(所謂3d模型的對象標識是區(qū)別于其他3d模型的標記,即唯一標識某個3d模型的標記);因此通過3d模型的對象標識找到對應的此綁定關系信息,根據(jù)此綁定關系信息可以查詢到一起綁定的3d模型;并將綁定關系信息傳輸給3d模型綁定操作器;所述3d模型綁定關系庫具有特性:合理性:同一個綁定關系組內所包含的3d模型對象標識唯一;例如:綁定關系信息a所包含的3d模型對象標識分別為:對象標識a和對象標識b以及對象標識c,只有對象標識a與對象標識b與對象標識c兩兩皆不相等才被視為合理的綁定關系信息;如果兩個對象標識相同、相關聯(lián)則視為一個3d模型與自己關聯(lián),這是不符合常理的,即被視為異常的綁定關系信息;有方向性:同一個綁定關系組內所包含兩兩3d模型之間的關聯(lián)方向分為單向的與雙向的;例如:綁定關系信息a包含有兩個3d模型,此兩個3d模型的對象標識分別為3d模型對象標識1和3d模型對象標識2,如果3d模型對象標識1可以查詢到3d模型對象標識2但3d模型對象標識2無法查詢到3d模型對象標識1,則被視為單向的;如果3d模型對象標識1可以查詢到3d模型對象標識2,且3d模型對象標識2也可以查詢到3d模型對象標識1,則被視為雙向的;綁定關系傳遞性:當對任意兩個3d模型進行綁定關聯(lián)時,此兩個3d模型所屬的綁定關系組將會通過此兩個3d模型的綁定關聯(lián)而自動對關系組與關系組或關系組與3d模型之間進行綁定關聯(lián)(如果被綁定關聯(lián)的3d模型皆屬于不同的關系組,即此3d模型有與其他3d模型的關聯(lián)關系,則綁定關聯(lián)發(fā)生在關系組與關系組之間;如果被綁定關聯(lián)的某一個3d模型不屬于關系組,即此3d模型沒有與其他3d模型的關聯(lián)關系,則綁定關聯(lián)發(fā)生在關系組與3d模型之間),此時關系組與關系組或關系組與3d模型之間便形成了關系組內部的關聯(lián)關系向關系組外部的傳遞。唯一性:綁定關系信息唯一標記不同的綁定關系組,只有同時滿足以下三個條件才被視為相同的綁定關系信息:
條件一:不同綁定關系組之間所包含的3d模型對象標識的數(shù)目相等;例如:綁定關系信息a所包含的3d模型對象標識有m個,綁定關系信息b所包含的3d模型對象標識有n個,如果m值與n的值不等,則綁定關系信息a和綁定關系信息b不是同一個綁定關系信息;如果m值與n的值相等,則此條件校驗通過;
條件二:不同綁定關系組之間所包含的3d模型對象標識的值相同;例如:綁定關系信息a所包含的3d模型對象標識分別為:對象標識a和對象標識b以及對象標識c,如果綁定關系信息b中沒有包含對象標識a或者對象標識b或者對象標識c,則綁定關系信息a和綁定關系信息b不是同一個綁定關系信息;如果綁定關系信息b中包含對象標識a和對象標識b和對象標識c,則此條件校驗通過;
條件三:不同綁定關系組之間所包含的3d模型對象的關聯(lián)方向相同;例如:從綁定關系信息a中任意獲取3d模型對象標識分別為:對象標識a和對象標識b;從綁定關系信息b獲取對應的3d模型對象標識分別也為:對象標識a和對象標識b;如果綁定關系信息a中的根據(jù)對象標識a可以找到對象標識b但根據(jù)對象標識b不能找到對象標識a,此屬于單向關聯(lián);因此,只有綁定關系信息b中的根據(jù)對象標識a可以找到對象標識b且根據(jù)對象標識b不能找到對象標識a,則綁定關系信息a與綁定關系信息b被視為同一個綁定關系信息,否則綁定關系信息a與綁定關系信息b不是同一個綁定關系信息;如果綁定關系信息a中根據(jù)對象標識a可以找到對象標識b且根據(jù)對象標識b也可以找到對象標識a,此屬于雙向關聯(lián);因此,只有綁定關系信息b中根據(jù)對象標識a可以找到對象標識b且根據(jù)對象標識b也可以找到對象標識a,則綁定關系信息a與綁定關系信息b被視為同一個綁定關系信息,否則綁定關系信息a與綁定關系信息b不是同一個綁定關系信息;
3d模型綁定控制器:根據(jù)從3d模型綁定關系庫中獲取的綁定關系信息以及從3d模型操作捕獲器中獲取操作信息,根據(jù)操作信息中獲取的被綁定的3d模型的對象標識從綁定關系信息中查詢與其綁定的其他3d模型的對象標識,并對被操作的3d模型以及與其綁定的3d模型進行統(tǒng)一操作?;?d模型綁定關系庫對多個3d模型綁定操作的的方法,如圖2和3所示:
本例中涉及一個電視柜3d模型與一個電視3d模型,將電視柜與電視對應的3d模型的對象標識進行單向綁定后,當對電視柜3d模型進行操作時,與其綁定的電視3d模型也被一起操作;當對電視3d模型進行操作時,與其綁定的電視柜將不被一起操作;
步驟1.捕捉操作信息。3d模型位移捕捉器從屏幕中捕捉控制電視柜3d模型的操作信息,此操作信息包括:操作對象信息、操作類型和操作值;操作對象就是指被操作的那個3d模型,即電視柜,操作類型包括:綁定操作或移動操作或旋轉操作或控制操作;本實施例所涉及的綁定操作,其操作值的3d模型的對象標識包括電視柜3d模型的對象標識和電視3d模型的對象標識,其操作值中的3d模型的各對象關聯(lián)方向信息為可以根據(jù)電視柜3d模型的對象標識找到電視3d模型的對象標識,但不能由根據(jù)電視3d模型的對象標識找到電視柜3d模型的對象標識;本實施例所涉及的移動操作時,其操作值為3d模型位移坐標值;本實施例所涉及的旋轉操作時,其操作值為3d模型的旋轉角度;并將綁定操作的操作信息傳輸給3d模型綁定關系庫,將移動操作、旋轉操作或控制操作的操作信息傳輸3d模型綁定操作器;
步驟2.初始化綁定關系庫。3d模型綁定關系庫從3d模型操作捕獲器中獲取綁定操作的多個3d模型的對象標識以及各3d模型之間關系方向信息,此對象標識分別為電視柜3d模型的對象標識與電視3d模型的對象標識,3d模型之間關系方向信息為電視柜3d模型的對象標識與電視3d模型的對象標識單向關聯(lián);根據(jù)其3d模型之間關系方向信息將電視柜3d模型的對象標識與電視3d模型的對象標識進行綁定,以建立并記錄它們之間的綁定關系信息;此被建立的綁定關系信息中的各對象標識之間的關聯(lián)方向信息為可以根據(jù)電視柜3d模型的對象標識找到電視3d模型的對象標識,但不能由根據(jù)電視3d模型的對象標識找到電視柜3d模型的對象標識;并將綁定關系信息傳輸給3d模型綁定操作器;
步驟3.統(tǒng)一操作:綁定移動,3d模型綁定操作器從3d模型綁定關系庫中獲取的綁定關系信息以及從3d模型操作捕獲器中獲取操作信息,從操作信息中獲取操作對象信息,此被操作的3d模型為電視柜。則根據(jù)此被操作的電視柜3d模型的對象標識從3d模型綁定關系庫獲取對應的找到對應的綁定關系信息,再根據(jù)此綁定關系信息可以查詢到與被操作的3d模型一起綁定的其他3d模型,此被綁定的3d模型即為電視;如果被操作的是電視3d模型,根據(jù)被操作的電視3d模型的對象標識從3d模型綁定關系庫獲取對應的找到對應的綁定關系信息,從綁定關系信息中無法找到被綁定的電視柜3d模型的對象標識;從操作信息中獲取操作類型,并根據(jù)不同的操作類型進行處理。
如果操作類型為移動操作,從操作信息中獲取操作值,假設所操作值分別在x、y、z軸對應的位移坐標為(tx,ty,tz),然后從被操作的電視柜3d模型以及所有與被操作的3d模型一起綁定的電視3d模型獲取其所有的節(jié)點坐標,此所有的節(jié)點坐標即為被綁定一起的所有3d模型整體的節(jié)點坐標,假設此節(jié)點分別在x、y、z軸的坐標為(px,py,pz),并對此所有的節(jié)點坐標進行平移,即將所有的節(jié)點坐標與位移坐標相加,此平移后分別在xyz軸上的坐標(px+tx,py+ty,pz+tz)即為移動操作后的坐標,如圖1所示。
如果操作類型為旋轉操作,從操作信息中獲取操作值,假設所操作值對應的旋轉角度為a,然后從被操作的電視柜3d模型以及所有與被操作的電視3d模型一起綁定的其他3d模型獲取其所有的節(jié)點坐標,此所有的節(jié)點坐標即為被綁定一起的所有3d模型整體的節(jié)點坐標,對此所有的節(jié)點坐標重新計算obb包圍盒,此重新計算的obb包圍盒即為所有被綁定一起的所有3d模型對應的整體obb包圍盒,然后根據(jù)以經(jīng)過此整體的obb包圍盒的中心或者以電視柜3d模型的中心并垂直于地面的直線為旋轉軸、并以旋轉角度為a對此被綁定一起的所有3d模型整體的節(jié)點坐標進行旋轉(圍繞某點為中心對節(jié)點坐標進行旋轉的方法在現(xiàn)有技術中已有公開),此旋轉后的坐標即為旋轉操作后的坐標,如圖1所示。
實施例2:
以對餐桌與餐椅進行雙向綁定并對其進行平移或旋轉操作為例:
基于3d模型綁定關系庫以對多個3d模型統(tǒng)一進行操作的方法,如圖2和3所示,基于3d模型綁定關系庫對多個3d模型綁定操作的系統(tǒng)同實施例1:
本例中涉及一個餐桌3d模型與四個餐椅3d模型,將餐桌與餐椅對應的3d模型的對象標識進行雙向綁定后,無論對餐桌還是對其中任意一個餐椅的3d模型進行操作時,與其綁定的其他3d模型也被一起操作;
步驟1.捕捉操作信息。3d模型位移捕捉器從屏幕中捕捉控制餐椅3d模型的操作信息,此操作信息包括:操作對象信息、操作類型和操作值;操作對象就是指被操作的那個3d模型,即餐椅,操作類型包括:綁定操作或移動操作或旋轉操作或控制操作;本例所涉及的綁定操作,其操作值的3d模型的對象標識包括餐桌3d模型的對象標識和其他4個餐椅3d模型的對象標識,其操作值的3d模型中的各對象關聯(lián)方向信息為雙向關聯(lián)系統(tǒng),即可以根據(jù)其他的任意一個3d模型的對象標識查詢到其他所有與其綁定的3d模型的對象標識;本例所涉及的移動操作時,其操作值為3d模型位移坐標值;本例所涉及的旋轉操作時,其操作值為3d模型的旋轉角度;并將綁定操作的操作信息傳輸給3d模型綁定關系庫,將其他操作的操作信息傳輸3d模型綁定操作器;
步驟2.初始化綁定關系庫。3d模型綁定關系庫從3d模型操作捕獲器中獲取綁定操作的多個3d模型的對象標識以及各3d模型之間關系方向信息,此對象標識分別為一個餐桌3d模型的對象標識與四個桌椅3d模型的對象標識,3d模型之間關系方向信息為餐桌3d模型的對象標識與其他餐椅3d模型的對象標識雙向關聯(lián);可以根據(jù)其他的任意一個3d模型的對象標識查詢到其他所有與其綁定的3d模型的對象標識;并將綁定關系信息傳輸給3d模型綁定操作器;
步驟3.統(tǒng)一操作:3d模型綁定操作器從3d模型綁定關系庫中獲取的綁定關系信息以及從3d模型操作捕獲器中獲取操作信息,從操作信息中獲取操作對象信息,此被操作的3d模型為餐椅。則根據(jù)此被操作的餐椅3d模型的對象標識從3d模型綁定關系庫獲取對應的找到對應的綁定關系信息,再根據(jù)此綁定關系信息可以查詢到與被操作的3d模型一起綁定的其他3d模型,此被綁定的3d模型即為一個餐桌以及三個餐椅;從操作信息中獲取操作類型,并根據(jù)不同的操作類型進行處理。
如果操作類型為移動操作,從操作信息中獲取操作值,假設所操作值分別在x、y、z軸對應的位移坐標為(tx,ty,tz),然后從被操作的餐椅3d模型以及所有與被操作的3d模型一起綁定的其他模型獲取其所有的節(jié)點坐標,此所有的節(jié)點坐標即為被綁定一起的所有3d模型整體的節(jié)點坐標,假設此節(jié)點分別在xyz軸的坐標為(px,py,pz),并對此所有的節(jié)點坐標進行平移,即將所有的節(jié)點坐標與位移坐標相加,此平移后分別在xyz軸上的坐標(px+tx,py+ty,pz+tz)即為移動操作后的坐標,如圖1所示。
如果操作類型為旋轉操作,從操作信息中獲取操作值,假設所操作值對應的旋轉角度為a,然后從被操作的餐椅3d模型以及所有與被操作的其他模型一起綁定的其他3d模型獲取其所有的節(jié)點坐標,此所有的節(jié)點坐標即為被綁定一起的所有3d模型整體的節(jié)點坐標,對此所有的節(jié)點坐標重新計算obb包圍盒,此重新計算的obb包圍盒即為所有被綁定一起的所有3d模型對應的整體obb包圍盒,然后根據(jù)以經(jīng)過此整體的obb包圍盒的中心并垂直于地面的直線為旋轉軸、并以旋轉角度為a對此被綁定一起的所有3d模型整體的節(jié)點坐標進行旋轉(圍繞某點為中心對節(jié)點坐標進行旋轉的方法在現(xiàn)有技術中已有公開,本發(fā)明不再贅述),此旋轉后的坐標即為旋轉操作后的坐標,如圖1所示。
實施例3:
以對照明燈與音響進行雙向綁定并對其進行控制操作為例:
基于3d模型綁定關系庫以對多個3d模型統(tǒng)一進行操作的方法,如圖2和3所示,基于3d模型綁定關系庫對多個3d模型綁定操作的系統(tǒng)同實施例1:
本例中涉及一個照明燈3d模型與一個音響3d模型,將照明燈與音響對應的3d模型的對象標識進行雙向綁定后,無論對照明燈還是對音響的3d模型進行操作時,與其綁定的其他3d模型也被一起操作;
步驟1.捕捉操作信息。3d模型位移捕捉器從屏幕中捕捉控制照明燈3d模型的操作信息,此操作信息包括:操作對象信息、操作類型和操作值;操作對象就是指被操作的那個3d模型,即音響,操作類型包括:綁定操作或移動操作或旋轉操作或控制操作;本例所涉及的綁定操作,其操作值的3d模型的對象標識包括照明燈3d模型的對象標識和音響3d模型的對象標識,其操作值的3d模型中的各對象關聯(lián)方向信息為雙向關聯(lián)系統(tǒng),即可以根據(jù)其他的任意一個3d模型的對象標識查詢到其他所有與其綁定的3d模型的對象標識;當控制操作時的操作值為控制指令,此控制指令如:開啟或者關閉等;并將綁定操作的操作信息傳輸給3d模型綁定關系庫,將其他操作的操作信息傳輸3d模型綁定操作器;
步驟2.初始化綁定關系庫。3d模型綁定關系庫從3d模型操作捕獲器中獲取綁定操作的多個3d模型的對象標識以及各3d模型之間關系方向信息,此對象標識分別為一個照明燈3d模型的對象標識與一個音響3d模型的對象標識,3d模型之間關系方向信息為照明燈3d模型的對象標識與音響3d模型的對象標識雙向關聯(lián);可以根據(jù)其他的任意一個3d模型的對象標識查詢到其他所有與其綁定的3d模型的對象標識;并將綁定關系信息傳輸給3d模型綁定操作器;
步驟3.統(tǒng)一操作,3d模型綁定操作器從3d模型綁定關系庫中獲取的綁定關系信息以及從3d模型操作捕獲器中獲取操作信息,從操作信息中獲取操作對象信息,此被操作的3d模型為照明燈。則根據(jù)此被操作的照明燈3d模型的對象標識從3d模型綁定關系庫獲取對應的找到對應的綁定關系信息,再根據(jù)此綁定關系信息可以查詢到與被操作的3d模型一起綁定的其他3d模型,此被綁定的3d模型即為音響;從操作信息中獲取操作類型,并根據(jù)不同的操作類型進行處理。
如果操作類型為控制操作,從操作信息中獲取操作值,此操作值為控制指令,然后根據(jù)此控制指令挨個對被操作的3d模型以及所有與被操作的3d模型一起綁定的其他3d模型進行逐一控制,以至被綁定在一起的3d模型都可以根據(jù)控制指令進行統(tǒng)一動作(根據(jù)控制指令進行動作的方法在現(xiàn)有技術中已有公開,本發(fā)明不再贅述);假設控制指令為開啟指令,則根據(jù)此控制指令挨個對被操作照明燈的3d模型以及所有與被操作的3d模型一起綁定的音響3d模型進行逐一開啟控制,以至被綁定在一起的3d模型都可以根據(jù)控制指令進行統(tǒng)一動作;假設控制指令為關閉指令,則根據(jù)此控制指令挨個對被操作照明燈的3d模型以及所有與被操作的3d模型一起綁定的音響3d模型進行逐一關閉控制,以至被綁定在一起的3d模型都可以根據(jù)控制指令進行統(tǒng)一動作。