專利名稱:多人在線交互設計系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機設計領域,特別是涉及一種利用計算機網絡實現(xiàn)多人同時在線設計的系統(tǒng)。
背景技術:
多人在線交互設計是一種近年來新興的產品設計方式,該設計方式允許分布在不同地點的設計人員通過網絡和利用各種各樣不同的計算機輔助設計工具來共同設計一樣產品。處于設計過程中的每個用戶都可以感覺到其他用戶的存在并與其進行一定程度的交流。
近年來網絡速度及技術的飛速發(fā)展使得多人在線設計系統(tǒng)成為可能。同時隨著經濟全球化的飛速發(fā)展,許多跨行業(yè)、跨國家、跨地區(qū)的聯(lián)盟性虛擬企業(yè)正在發(fā)展壯大。而越來越復雜的產品設計和越來越短的需求周期使得某些復雜的產品不得不由處于不同地理位置的多個產品設計人員同時參與設計并協(xié)作完成。
發(fā)明內容
本發(fā)明旨在提供一種能夠使位于不同地理位置的多個產品設計人員同時參與交互設計的系統(tǒng)。本發(fā)明的多人在線交互設計系統(tǒng)的技術方案如下本發(fā)明的多人在線交互設計系統(tǒng),包括物體抽象模塊,操作抽象模塊,沖突檢測和解決模塊,以及用戶管理及同步模塊;所述物體抽象模塊,用于生成描述三維場景中的物體的標識;所述操作抽象模塊,用于生成描述三維場景中的設計操作的標識,將用戶的本地操作和遠程操作抽象為具體的數(shù)據(jù)對象進行管理和維護;所述沖突檢測和解決模塊,用于對沖突操作進行檢測及解決,保證協(xié)同設計的正確性;所述用戶管理及同步模塊,用于管理參與協(xié)同設計的用戶,并且根據(jù)用戶情況同步場景,控制用戶操作權限。優(yōu)選的,所述物體抽象模塊包括物體操作模塊、3D場景控制模塊和物體識別模塊;所述物體操作模塊,用于對特定物體進行增加、刪除和更改屬性的操作;所述3D場景控制模塊,用于通過初始數(shù)據(jù)建立整個場景,將整個場景打包序列化為初始場景數(shù)據(jù),發(fā)送給其他參與交互的用戶,進行場景的同步操作;所述物體識別模塊,用于將遠程操作所對應的物體識別出來,并將遠程操作實施在正確的物體上。優(yōu)選的,所述操作抽象模塊包括本地操作序列化模塊、遠程操作反序列化模塊、遠程操作實施模塊;所述本地操作序列化模塊,用于將本地操作翻譯成為字節(jié)流,并發(fā)送給其他參與協(xié)同的用戶;所述遠程操作反序列化模塊,用于將遠程操作命令轉化成為能夠執(zhí)行的命令,并通過所述遠程操作實施模塊執(zhí)行;所述遠程操作實施模塊,用于調用所述沖突檢測和解決模塊進行沖突操作的處理,將遠程操作實施到所述物體抽象模塊上。進一步,所述操作抽象模塊還包括本地操作管理模塊,用于實現(xiàn)對本地操作的撤銷和恢復。優(yōu)選的,所述沖突檢測和解決模塊包括物體識別算法模塊、沖突檢測算法模塊、多版本單顯示沖突解決算法模塊和物體多版本移除算法模塊;所述物體識別算法模塊,用于識別操作所對應的場景物體;所述沖突檢測算法模塊,用于檢測收到的遠程操作是否與其他歷史操作互相沖突;所述多版本單顯示沖突解決算法模塊,用于對沖突的操作進行處理,增加物體的版本,并根據(jù)沖突操作的權重決定應該顯示哪個版本;所述物體多版本移除算法模塊,用于對沖突處理后的物體版本進行移除。優(yōu)選的,所述用戶管理及同步模塊包括用戶管理模塊和場景及用戶狀態(tài)同步模塊;所述用戶管理模塊,用于支持協(xié)同設計過程中用戶的加入和離開,控制用戶的操作權限;所述場景及用戶狀態(tài)同步模塊,用于當新用戶加入到協(xié)同設計過程中時,對新用戶的初始場景進行同步場景;當參與協(xié)同設計過程的用戶離開協(xié)同設計時,對本地的場景進行同步;當協(xié)同設計完成后,清除協(xié)同設計數(shù)據(jù),并且斷開參與協(xié)同設計的用戶相互之間的連接。本發(fā)明的有益效果
本發(fā)明的多人在線交互設計系統(tǒng)能夠使位于不同地理位置的人員同時參與協(xié)同設計,解決了系統(tǒng)設計過程中的操作沖突和場景同步的技術難題,提高了設計的效率。
圖I多人在線交互設計系統(tǒng)結構框2多版本單顯示沖突解決算法與其他算法的關系比較圖
具體實施例方式本發(fā)明的多人在線交互設計系統(tǒng)可以應用于虛擬家裝設計領域,實現(xiàn)多人同時在線進行家裝交互設計。下面就以虛擬家裝設計領域中多人在線交互設計系統(tǒng)為例,對本發(fā)明予以舉例說明。當然,本發(fā)明也可以應用于其他領域,但其原理都是一樣的。在虛擬家裝系統(tǒng)中,每一個家具都是根據(jù)真實家具事先由專業(yè)美工人員設計完成,錄入到家具庫中,場景中的每一個家具都可以抽象為一個擁有固定屬性的數(shù)據(jù)結構,分別為家具名稱(name)、家具的位置(translate)、家具旋轉角度(rotate)、縮放(scale)、家具模型編號(furniture_ID)。用戶設計的過程,就是對房間中的家具進行添加、刪除、布置的過程,設計的同時可以通過對場景的旋轉,從而可以從各個視角觀察設計的戶型,調整房間中的家具,達到最佳效果。虛擬家裝設計領域中多人在線交互設計系統(tǒng)包括物體抽象模塊、操作抽象模塊、沖突檢測和解決模塊、用戶管理及同步模塊。物體抽象模塊,用于生成描述三維場景中的物體的標識,例如物體ID、類型(桌椅、家電、壁畫)等;所述操作抽象模塊,用于生成描述三維場景中的設計操作的標識,將用戶的本地操作和遠程操作抽象為具體的數(shù)據(jù)對象進行管理和維護,例如添加或刪除家電;所述沖突檢測和解決模塊,用于對沖突操作進行檢測及解決,保證協(xié)同設計的正確性;所述用戶管理及同步模塊,用于管理參與協(xié)同設計的用戶,并且根據(jù)用戶情況同步場景,控制用戶操作權限。一、物體抽象模塊,包括物體操作模塊、3D場景控制模塊和物體識別模塊。I、物體操作模塊,用于對特定物體進行增加、刪除和更改屬性的操作。遠程協(xié)同操作通過算法處理后,對物體抽象模塊進行增、刪、改操作,通過物體抽象模塊反饋給場景中的具體物體,從而達到遠程操作的效果。具體實現(xiàn)是通過在物體抽象模塊中保存一個所有3D場景物體的一個抽象物體的列表,在物體抽象模塊中將任意3D場景的物體抽象成為一個具有n個固定屬性和物體ID的對象。針對3D場景中的某個物體的本地修改操作,可以看成將抽象物體模塊中的特定的物體的第i個屬性值進行更新。相應地對于其他參與協(xié)同的用戶發(fā)送過來的遠程操作,首先由操作抽象模塊轉換為具體的操作,然后由物體抽象模塊進行物體識別后,將i和屬性值分別轉換為3D場景中那個物體的某個具體屬性和這個屬性所對應的數(shù)據(jù),然后調用虛擬家裝系統(tǒng)提供的接口對3D場景中的物體進行更改。2、3D場景控制模塊,用于通過初始數(shù)據(jù)建立整個場景,將整個場景打包序列化為初始場景數(shù)據(jù),發(fā)送給其他參與交互的用戶,進行場景的同步操作;3、物體識別模塊,用于將遠程操作所對應的物體識別出來,并將遠程操作實施在正確的物體上。 二、操作抽象模塊,主要功能是將用戶的本地操作和遠程操作抽象為具體的數(shù)據(jù)對象進行管理和維護,包括本地操作序列化模塊、遠程操作反序列化模塊、遠程操作實施模塊、本地操作管理模塊;I、本地操作序列化模塊,用于將本地操作翻譯成為字節(jié)流,并發(fā)送給其他參與協(xié)同的用戶。對一個本地操作進行序列化,首先要區(qū)分操作的類型,不同類型的操作,需要的參數(shù)也不一樣,總體可以分為三個部分(a)操作類型0P_TYPE,所有的操作可以抽象成為三個類型創(chuàng)建操作、刪除物體操作和更改物體操作;(b)操作ID,由用戶ID和表示該用戶當前狀態(tài)向量SEQ組成,保證了全局的唯一性;(C)操作所對應的參數(shù),對于三種抽象操作,需求不同參數(shù)也不相同。下面詳細介紹這三種抽象操作的具體參數(shù)組成。創(chuàng)建物體操作功能添加一個物體到3D場景中。參數(shù)物體初始參數(shù)(0BJ_INF0):包括家具的名稱,初始位置,初始旋轉角度,家具模型ID等。表達形式〈0P_TYPE,0P_ID,0BJ_INF0>。更改場景中某物體操作功能更改一個場景中現(xiàn)有物體的狀態(tài)。比如更改某個家具的位置,參數(shù)目標物體標識符(OBJ_ID),操作的權重(PRIORITY),更改參數(shù)的索引(KEY),更改先前的值(0LD_VALUE),更改后的新值(NEW_VALUE)。表達形式<0P_TYPE, 0P_ID, 0BJ_ID, PRIORITY, KEY, 0LD_VALUE, NEW_VALUE>。刪除操作功能刪除場景中的某個物體。參數(shù)只需要知道目標物體標識符(0BJ_ID)就可以判定刪除的物體了。表達形式〈0P_TYPE,0P_ID,0BJ_ID>。2、遠程操作反序列化模塊,用于將遠程操作命令轉化成為能夠執(zhí)行的命令,并通過所述遠程操作實施模塊執(zhí)行。反序列化過程就是序列化的逆過程。3、遠程操作實施模塊,用于調用沖突檢測和解決模塊進行沖突操作的處理,將遠程操作實施到物體抽象模塊上;4、本地操作管理模塊,用于實現(xiàn)對本地操作的撤銷和恢復。考慮到用戶的習慣和撤銷操作的有效性,采用單步本地的操作進行撤銷,也就是用戶只能撤銷自己發(fā)出的操作,然后利用撤銷\恢復算法對歷史操作進行維護。三、沖突檢測和解決模塊,主要功能是采用多版本單顯示算法對收到的遠程操作進行沖突檢測和沖突解決,保證協(xié)同設計的正確性。本模塊是整個虛擬家裝系統(tǒng)中多人在線交互設計系統(tǒng)的核心,包括物體識別算法模塊、沖突檢測算法模塊、多版本單顯示沖突解決算法模塊、物體多版本移除算法模塊。 I、物體識別算法模塊,用于識別操作所對應的場景物體。2、沖突檢測算法模塊,用于檢測收到的遠程操作是否與其他歷史操作互相沖突。3、多版本單顯示沖突解決算法模塊,用于對沖突的操作進行處理,增加物體的版本,并根據(jù)沖突操作的權重決定應該顯示哪個版本。多版本單顯示沖突解決算法的基本原理如下當一個物體被沖突的操作更改了以后,物體的多版本只保存在內部,而在用戶客戶端看來只有一個版本,這樣的解決方案叫做多版本單顯示技術解決沖突。多版本單顯示沒有必要去創(chuàng)建物體的多個版本,只要能夠保存多版本足夠的信息,在需要的時候動態(tài)的創(chuàng)建并顯示任意一個版本就可以了。多版本單顯示技術在版本選擇上也跟單一操作有效解決方案一樣,需要對操作進行權重分配,以便在協(xié)同中一旦產生操作沖突,系統(tǒng)如何選擇該有那個操作的效果進行顯示,那么多版本單顯示,多版本多顯示和單一操作有效的解決方案又有些不同。如果有四個操作01 04這四個操作都是針對物體Obj進行更改,它們的關系如附圖2所示,01是發(fā)生在02,03,04的操作,也就是說01 — 02,01 — 03,01 — 04 ;02、03
和O4三個操作之間是相互沖突的,即02<§)d03 02^^04,03 '04;02的權重較03
和04大。圖中黑色圓圈表示當前所顯示的Obj (被操作物體)的版本狀態(tài)。(I)在多版本多顯示系統(tǒng)中,這四個操作在執(zhí)行完畢的最終結果(如上附圖2左上)狀態(tài),場景中的Obj產生了三個版本,這三個版本所執(zhí)行的操作分別為Obj {01,02},Obj {01,03},Obj {01,04}。(2)在多版本單顯示系統(tǒng)中,四個操作在執(zhí)行完畢的最終結果(如附圖2左中)狀態(tài),場景中Obj最終的狀態(tài)為Obj {01,02},而剩下兩個空心的狀態(tài)只存儲在系統(tǒng)內部,用戶無法是看到。(3)在單版本的系統(tǒng)中,在四個操作執(zhí)行完畢的最終顯示結果跟多版本單顯示系統(tǒng)一樣,(如附圖2左下),場景中物體Obj的狀態(tài)為Obj {01,02}。如果現(xiàn)在用戶撤銷02操作,在這三個系統(tǒng)中的區(qū)別就顯現(xiàn)出來了。(I)在撤銷了 02操作以后,在多版本多顯示系統(tǒng)中,02的效果消失,從而將由于02沖突而產生的物體版本移除,場景中剩余兩個物體=Obj {01,03},Obj {01,04}(如附圖2右上)。(2)在多版本單顯示系統(tǒng)中,02的撤銷導致了物體版本顯示的替換,由原來的Obj {01,02}替換為 Obj {01,03},(如附圖 2 右中)。(3)在單版本系統(tǒng)中,由于在02在執(zhí)行時,與03與04發(fā)生沖突,在沖突解決的時候,03與04被沖突的操作所取代了,所以,在撤銷02操作以后,直接返回到了執(zhí)行完01時候的結果,最終場景中的結果為Obj {01}(如附圖2右下)。從以上分析得出,多版本多顯示會使得場景中的物體由于操作沖突的產生從而產生新的物體版本,多版本單顯示系統(tǒng)將產生的新的物體版本選擇一個顯示,在用戶看來,不會產生新的物體版本,在用戶撤銷操作的時候,多版本單顯示的方法會選擇一個有效的物體版本進行顯示,而并不是返回到沖突以前的初始狀態(tài)。4、物體多版本移除算法模塊,用于對沖突處理后的物體版本進行移除。四、所述用戶管理及同步模塊包括用戶管理模塊和場景及用戶狀態(tài)同步模塊; I、用戶管理模塊,用于支持協(xié)同設計過程中用戶的加入和離開,控制用戶的操作權限;2、場景及用戶狀態(tài)同步模塊,用于當新用戶加入到協(xié)同設計過程中時,對新用戶的初始場景進行同步場景;當參與協(xié)同設計過程的用戶離開協(xié)同設計時,對本地的場景進行同步;當協(xié)同設計完成后,清除協(xié)同設計數(shù)據(jù),并且斷開參與協(xié)同設計的用戶相互之間的連接。下面,對于一個由本地用戶和遠程用戶進行交互設計的工作流程進行介紹在本地用戶發(fā)起操作后,由物體抽象模塊根據(jù)3D場景生成被操作物體的描述信息(序列化),操作抽象模塊生成用戶的本地操作的描述信息(序列化),這兩個信息被作為一個完整的操作發(fā)送信息給遠程用戶;遠程用戶接收到這個信息后,作為遠程操作和遠程用戶自身的操作一起經沖突檢測和解決模塊進行處理,生成最終的操作;遠程用戶根據(jù)物體抽象模塊生成的最終操作轉化為具體的控制信息,更新3D場
旦
牙、;用戶管理和同步模塊根據(jù)物體抽象模塊需要更新3D場景的部分,負責對本地用戶和遠程用戶進行信息同步。
權利要求
1.多人在線交互設計系統(tǒng),其特征在于包括物體抽象模塊,操作抽象模塊,沖突檢測和解決模塊,以及用戶管理及同步模塊; 所述物體抽象模塊,用于生成描述三維場景中的物體的標識; 所述操作抽象模塊,用于生成描述三維場景中的設計操作的標識,將用戶的本地操作和遠程操作抽象為具體的數(shù)據(jù)對象進行管理和維護; 所述沖突檢測和解決模塊,用于對沖突操作進行檢測及解決,保證協(xié)同設計的正確性; 所述用戶管理及同步模塊,用于管理參與協(xié)同設計的用戶,并且根據(jù)用戶情況同步場景,控制用戶操作權限。
2.根據(jù)權利要求I所述的多人在線交互設計系統(tǒng),其特征在于所述物體抽象模塊包括物體操作模塊、3D場景控制模塊和物體識別模塊; 所述物體操作模塊,用于對特定物體進行增加、刪除和更改屬性的操作; 所述3D場景控制模塊,用于通過初始數(shù)據(jù)建立整個場景,將整個場景打包序列化為初始場景數(shù)據(jù),發(fā)送給其他參與交互的用戶,進行場景的同步操作; 所述物體識別模塊,用于將遠程操作所對應的物體識別出來,并將遠程操作實施在正確的物體上。
3.根據(jù)權利要求I所述的多人在線交互設計系統(tǒng),其特征在于所述操作抽象模塊包括本地操作序列化模塊、遠程操作反序列化模塊、遠程操作實施模塊; 所述本地操作序列化模塊,用于將本地操作翻譯成為字節(jié)流,并發(fā)送給其他參與協(xié)同的用戶; 所述遠程操作反序列化模塊,用于將遠程操作命令轉化成為能夠執(zhí)行的命令,并通過所述遠程操作實施模塊執(zhí)行; 所述遠程操作實施模塊,用于調用所述沖突檢測和解決模塊進行沖突操作的處理,將遠程操作實施到所述物體抽象模塊上。
4.根據(jù)權利要求3所述的多人在線交互設計系統(tǒng),其特征在于所述操作抽象模塊還包括本地操作管理模塊,所述本地操作管理模塊,用于實現(xiàn)對本地操作的撤銷和恢復。
5.根據(jù)權利要求I所述的多人在線交互設計系統(tǒng),其特征在于所述沖突檢測和解決模塊包括物體識別算法模塊、沖突檢測算法模塊、多版本單顯示沖突解決算法模塊和物體多版本移除算法模塊; 所述物體識別算法模塊,用于識別操作所對應的場景物體; 所述沖突檢測算法模塊,用于檢測收到的遠程操作是否與其他歷史操作互相沖突;所述多版本單顯示沖突解決算法模塊,用于對沖突的操作進行處理,增加物體的版本,并根據(jù)沖突操作的權重決定應該顯示哪個版本; 所述物體多版本移除算法模塊,用于對沖突處理后的物體版本進行移除。
6.根據(jù)權利要求I所述的多人在線交互設計系統(tǒng),其特征在于所述用戶管理及同步模塊包括用戶管理模塊和場景及用戶狀態(tài)同步模塊; 所述用戶管理模塊,用于支持協(xié)同設計過程中用戶的加入和離開,控制用戶的操作權限; 所述場景及用戶狀態(tài)同步模塊,用于當新用戶加入到協(xié)同設計過程中時,對新用戶的初始場景進行同步場 景;當參與協(xié)同設計過程的用戶離開協(xié)同設計時,對本地的場景進行同步;當協(xié)同設計完成后,清除協(xié)同設計數(shù)據(jù),并且斷開參與協(xié)同設計的用戶相互之間的連接。
全文摘要
本發(fā)明公開了一種多人在線交互設計系統(tǒng),包括物體抽象模塊、操作抽象模塊、沖突檢測和解決模塊、用戶管理及同步模塊;物體抽象模塊,用于生成描述三維場景中的物體的標識;操作抽象模塊,用于將用戶的本地操作和遠程操作抽象為具體的數(shù)據(jù)對象進行管理和維護;沖突檢測和解決模塊,用于對沖突操作進行檢測及解決,保證協(xié)同設計的正確性;用戶管理及同步模塊,用于管理參與協(xié)同設計的用戶,并且根據(jù)用戶情況同步場景,控制用戶操作權限。本發(fā)明的多人在線交互設計系統(tǒng)能夠使位于不同地理位置的人員同時參與協(xié)同設計,解決了系統(tǒng)設計過程中的操作沖突和場景同步的技術難題,提高了設計的效率。
文檔編號H04L29/08GK102752330SQ20111010060
公開日2012年10月24日 申請日期2011年4月21日 優(yōu)先權日2011年4月21日
發(fā)明者劉志誼, 周果, 邱顯杰, 陽文明, 黃河 申請人:北京七十二炫信息技術有限公司