專利名稱:基于SaaS架構(gòu)的三維場景管理平臺及編輯瀏覽方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種Web3D場景管理技術(shù),特別是一種基于SaaS架構(gòu)的三維場景管 理平臺及編輯瀏覽方法。
背景技術(shù):
隨著信息通訊技術(shù)的飛速發(fā)展,當(dāng)今計算機領(lǐng)域的前沿應(yīng)用幾乎都是面向互聯(lián) 網(wǎng)的,而三維圖形技術(shù)也在互聯(lián)網(wǎng)上等到了延伸,即Web3D技術(shù)。Web3D技術(shù)是在網(wǎng) 頁中呈現(xiàn)與真實環(huán)境高度近似的三維場景,或者在場景中加入創(chuàng)意互動元素,以實現(xiàn)真 實環(huán)境中無法實現(xiàn)的效果。人們借助于鍵盤、鼠標及顯示器等設(shè)備與場景中的物體進行 交互,產(chǎn)生身臨其境的感受和體驗。當(dāng)前Web3D技術(shù)可以分為兩大陣營,其中之一是由眾多商業(yè)公司設(shè)計開發(fā)的 Web3D專有技術(shù),另外的一個陣營是由Web3D聯(lián)盟發(fā)布的VRML (VirtualRealityMarkup Language,虛擬現(xiàn)實標記語言)以及后續(xù)的X3D (Extensible 3D)標準技術(shù)。Web3D 軟件一般包含編輯工具和顯示插件,許多商業(yè)軟件公司推出了的Web3D軟件使用專用的 文件格式和顯示插件,類似的軟件大約有三十幾種之多。這些軟件各有特色,在顯示速 度,圖像質(zhì)量,造型技術(shù),交互性以及數(shù)據(jù)的壓縮與優(yōu)化上都有各自的優(yōu)勢?,F(xiàn)今比較 成熟的Web3D軟件有法國的Virtools、丹麥的Unity3D以及荷蘭Act_3D公司的Quest3D 等,國內(nèi)目前有上海創(chuàng)圖網(wǎng)絡(luò)科技有限公司的Webmax、中視典數(shù)字科技的VRP產(chǎn)品系 列等。另一方面,Web3D聯(lián)盟制定了早期的Web3D標準VRML,它可以用于建立虛擬 現(xiàn)實場景模型,使得場景模型可以通過互聯(lián)網(wǎng)進行傳輸。由于VRML在性能及編程實現(xiàn) 上的缺陷,Web3D聯(lián)盟發(fā)布了一個新的標準X3D。X3D整合了 XML等相關(guān)技術(shù),提 高了場景模型的處理能力、繪制質(zhì)量和傳輸速度。VRML/X3D是免費的、開放標準的 文件格式和體系架構(gòu),部分商業(yè)公司和開源社區(qū)實現(xiàn)了基于X3D標準的Web3D軟件,如 Bitmanagement 公司的 BS Editor/Contact 等。無論是基于專有技術(shù)還是標準技術(shù),都以文件的形式存儲場景內(nèi)容,Web3D插 件實現(xiàn)方式都不盡相同,且互不兼容,這也就意味著用戶瀏覽不同Web3D軟件開發(fā)出 的應(yīng)用時需要安裝不同的插件,有的插件體積甚至非常龐大,這大大降低了用戶的體驗 度。2009年,Khronos Group提出了 WebGL標準,它是一種免費開放的跨平臺3D繪 圖Web標準,提供了在下一代互聯(lián)網(wǎng)技術(shù)標準HTML5的Canvas元素中顯示三維內(nèi)容和 Javascript腳本交互能力,而不需要安裝插件。目前已經(jīng)有很多瀏覽器開始支持這一標 準,例如 Apple (Safari)、Google (Chrome)、Mozilla (Firefox)禾口 Opera (Opera)。另一 方面,目前所有Web3D編輯工具都局限于桌面應(yīng)用程序,不利于軟件的傳播和使用。隨 著基于云計算的軟件運營服務(wù)(Software-as-a-Service , SaaS)的逐漸普及,帶來了更低 的成本、更簡單的部署和更輕松的維護等諸多好處,這種新型的應(yīng)用程序架構(gòu)必將代替大部分傳統(tǒng)的桌面應(yīng)用程序架構(gòu)。集成三維圖形技術(shù)是互聯(lián)網(wǎng)進化的必然趨勢,而要實現(xiàn)Web3D技術(shù)的普及和應(yīng) 用,就必須解決Web3D技術(shù)發(fā)展存在的上述瓶頸問題,需要設(shè)計一種便于創(chuàng)造、發(fā)現(xiàn)和 分享3D內(nèi)容的軟件運營服務(wù)(SaaS)架構(gòu),為不同系統(tǒng)、瀏覽器的Web3D開發(fā)人員、 設(shè)計人員和使用者提供基于Web標準的環(huán)境支持。
發(fā)明內(nèi)容
發(fā)明目的本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種基于 SaaS架構(gòu)的三維場景管理平臺及編輯瀏覽方法。為了解決以上技術(shù)問題,本發(fā)明公開了一種基于SaaS架構(gòu)的三維場景管理平 臺,包括瀏覽器端和云平臺計算端;
所述瀏覽器端用于提供Web用戶界面交互及遠程過程調(diào)用功能,包括三維圖形程序 接口、場景運行時模塊、場景編輯模塊以及場景瀏覽模塊;
所述場景編輯模塊是用戶管理場景的Web模塊,用于用戶界面交互并通過遠程過程 調(diào)用向所述云計算平臺端發(fā)送場景編輯命令,并與所述場景運行時模塊進行雙向場景數(shù) 據(jù)同步;
所述場景瀏覽模塊是用戶瀏覽場景的Web模塊,用于通過遠程過程調(diào)用向所述云計 算平臺端發(fā)送場景瀏覽請求,接收云計算平臺端返回的場景代碼并調(diào)用所述場景運行時 模塊在瀏覽器端進行顯示場景;
所述場景運行時模塊用于同步所述場景編輯模塊和場景瀏覽模塊中的場景代碼,通 過調(diào)用所述三維圖形程序接口在瀏覽器端進行三維圖形顯示;
所述云平臺計算端用于處理業(yè)務(wù)邏輯并向瀏覽器端發(fā)送場景代碼,包括場景管理模 塊、數(shù)據(jù)訪問層、數(shù)據(jù)倉庫以及資源管理模塊;
所述場景管理模塊負責(zé)場景和場景中所有對象的創(chuàng)建和管理,其中場景管理器用于 場景物體屬性設(shè)置,維護其所有場景物體的列表,進行場景物體的創(chuàng)建、查詢、銷毀和 設(shè)置,同時使用所述數(shù)據(jù)訪問層的Java數(shù)據(jù)對象將場景對象在所述數(shù)據(jù)倉庫中同步;所 述場景編輯模塊向所述場景管理模塊發(fā)出場景編輯命令,并調(diào)用所述場景管理模塊傳來 的場景代碼;所述場景瀏覽模塊向所述場景管理模塊發(fā)出場景瀏覽命令,并調(diào)用所述場 景管理模塊傳來的場景代碼;
所述資源管理模塊用于管理場景需要的可復(fù)用資源對象的上傳、移除和調(diào)用,包括 資源對象以及資源管理器,所述資源管理器負責(zé)管理創(chuàng)建場景的模型對象和外觀對象, 并提供使用接口供場景管理模塊調(diào)用;資源管理器根據(jù)場景編輯模塊發(fā)出的場景編輯命 令類型、對象的名稱和屬性,進行資源對象的創(chuàng)建、查詢、銷毀和設(shè)置,并使用所述數(shù) 據(jù)訪問層的Java數(shù)據(jù)對象將場景對象在數(shù)據(jù)倉庫中同步;
所述數(shù)據(jù)訪問層分別與所述場景管理模塊、資源管理模塊以及數(shù)據(jù)倉庫進行雙向數(shù) 據(jù)傳輸,用于將所屬場景管理模塊或資源管理模塊的對象保存進入所述數(shù)據(jù)倉庫,調(diào)用 所述數(shù)據(jù)倉庫的對象傳輸給所述場景管理模塊或資源管理模塊。本發(fā)明中,所述三維圖形程序接口為WebGL三維圖形程序接口。本發(fā)明中,所述瀏覽器端支持HTML5和WebGL標準,所述場景運行時模塊包括JavaScript腳本,用于將HTML5網(wǎng)頁中符合X3D標準的場景代碼通過調(diào)用所述WebGL
三維圖形程序接口在瀏覽器端進行場景顯示。本發(fā)明還公開了一種基于SaaS架構(gòu)的三維場景管理平臺的場景編輯瀏覽方法, 包括瀏覽器端和云平臺計算端;所述瀏覽器端包括三維圖形程序接口、場景運行時模 塊、場景編輯模塊以及場景瀏覽模塊;所述云平臺計算端包括場景管理模塊、數(shù)據(jù)訪問 層、數(shù)據(jù)倉庫以及資源管理模塊;
所述場景編輯瀏覽方法包括以下步驟
步驟(1),所述場景編輯模塊新建場景并初始化生成空白場景,場景編輯模塊通過 遠程過程調(diào)用將場景屬性發(fā)送至云計算平臺端的場景管理模塊,場景管理模塊創(chuàng)建和場 景名稱對應(yīng)的場景管理器,并通過數(shù)據(jù)訪問層將場景管理器存儲到數(shù)據(jù)倉庫;
步驟(2),所述場景編輯模塊通過遠程過程調(diào)用發(fā)出創(chuàng)建模型、外觀、音頻、視 頻等可復(fù)用資源的命令,云計算平臺端資源管理模塊生成相應(yīng)的資源對象并同步數(shù)據(jù)倉 庫;其中資源管理模塊中的模型管理器讀取X3D模型數(shù)據(jù),解析并生成一個或若干個子 模型對象,組合形成一個模型對象,子模型對象包括用于存儲幾何形狀的屬性,以及用 于關(guān)聯(lián)外觀對象的外觀名稱屬性,外觀對象的屬性包括與X3D標準對應(yīng)的材質(zhì)、紋理及 紋理變換信息;
步驟(3),場景編輯模塊發(fā)出場景編輯命令,包括實體對象、相機、燈光、聲音創(chuàng) 建和設(shè)置命令;云計算平臺端的場景管理模塊創(chuàng)建和維護相應(yīng)實體對象,同步數(shù)據(jù)倉庫 并返回X3D代碼至瀏覽器端;當(dāng)場景管理器創(chuàng)建一個實體對象時,模型管理器將模型對 象與實體對象關(guān)聯(lián),并令模型對象在云計算平臺端只有一個對象實例,隨后實體對象生 成子實體列表,每個子實體對應(yīng)一個子模型,并包含子模型的外觀名稱屬性;所述外觀 名稱作為獲取外觀資源對象的唯一標識,多個實體對象共用一個模型對象,場景管理器 通過設(shè)置外觀名稱屬性動態(tài)改變其中一個實體的外觀;場景管理器將實體對象通過數(shù)據(jù) 訪問層將存儲于數(shù)據(jù)庫,場景管理器將實體對象轉(zhuǎn)換為X3D代碼,通過遠程過程調(diào)用塊 發(fā)送至瀏覽器端的場景編輯模塊;場景編輯模塊接收后使用JavaScript腳本語言操作添加 或修改上述實體對象的X3D代碼,同時場景運行時模塊調(diào)用內(nèi)置三維圖形程序接口同步 顯不場景;
在進行場景物體的空間變換操作,包括場景物體位置移動、縮放、旋轉(zhuǎn)時,場景編 輯模塊使用JavaScript腳本語言操作改變物體X3D代碼的對應(yīng)屬性,通過遠程過程調(diào)用將 場景物體名稱和相應(yīng)的屬性發(fā)送至云計算平臺端的場景管理模塊進行對象更新;
步驟(4),場景瀏覽時通過訪問一個包含場景名稱的網(wǎng)址,場景瀏覽模塊根據(jù)場景 名稱向云計算平臺端發(fā)送瀏覽請求,場景管理模塊獲取與場景名稱對應(yīng)的場景管理器, 場景管理器調(diào)用所有場景物體的符合X3D標準的場景代碼轉(zhuǎn)換方法,最終生成整個場景 的X3D代碼并發(fā)送至瀏覽器端;在瀏覽器端,場景瀏覽模塊通過場景運行時模塊調(diào)用內(nèi) 置三維圖形程序接口加載場景的場景X3D代碼符合X3D標準的場景代碼,在瀏覽器中進 行場景內(nèi)容顯示。有益效果本發(fā)明提供一種部署在Internet上的基于HTML5、X3D和WebGL標
準的無插件、可視化三維場景編輯、發(fā)布和瀏覽的平臺架構(gòu),克服現(xiàn)有Web3D技術(shù)普遍 使用客戶端軟件、以文件形式存儲場景、應(yīng)用程序模型及編程接口與現(xiàn)有Web標準不統(tǒng)一以及需要安裝插件、對瀏覽器支持不一等缺點,實現(xiàn)與當(dāng)前Web標準的無縫融合,做 到三維場景的在線實時管理,并快速發(fā)布到Internet上供用戶使用,有效降低了軟件復(fù)雜 度,并使易用性和開放性大大提高。
下面結(jié)合附圖和具體實施方式
對本發(fā)明做更進一步的具體說明,本發(fā)明的上述 和/或其他方面的優(yōu)點將會變得更加清楚。圖1為本發(fā)明的平臺架構(gòu)示意圖。圖2為本發(fā)明中場景管理模塊類圖。圖3為本發(fā)明中資源管理模塊類圖。圖4為三維場景管理平臺運行實例圖。
具體實施例方式
本發(fā)明的平臺架構(gòu)如圖1所示,平臺架構(gòu)是由瀏覽器端和云計算平臺端兩個系統(tǒng)協(xié) 同工作完成。其中瀏覽器端提供Web用戶界面交互及遠程過程調(diào)用(RPC)功能,而業(yè) 務(wù)邏輯則交由云計算平臺端處理。瀏覽器端包括場景編輯模塊、場景瀏覽模塊、場景運 行時模塊和三維圖形程序接口,實現(xiàn)如下功能
場景編輯模塊是用戶管理場景的Web用戶界面,負責(zé)用戶界面交互并通過遠程過程 調(diào)用(RPC)的方式向云計算平臺端發(fā)送場景編輯命令,包括場景屬性(名稱、描述、背 景、霧效等)的設(shè)置,場景物體和資源對象的創(chuàng)建、查詢、銷毀和設(shè)置等命令,以及接 收云計算平臺端返回的X3D代碼并調(diào)用場景運行時模塊在瀏覽器中進行場景顯示。場景 編輯模塊的用戶界面由功能區(qū)、查看器、屬性區(qū)和編輯區(qū)組成,功能區(qū)包含所有場景編 輯命令菜單和工具欄,查看器是包含所有場景物體的分類列表,屬性區(qū)用于設(shè)置各種對 象的屬性值,編輯區(qū)用于顯示編輯狀態(tài)下的三維場景。在向云計算平臺端發(fā)送場景編輯 命令時,系統(tǒng)采用JAVA Map集合作即/鍵值/數(shù)值對集合的形式,存儲不同對象的場景 編輯命令類型、對象類型、名稱及其他屬性,以作為統(tǒng)一的傳輸容器。場景瀏覽模塊是用戶瀏覽場景的Web用戶界面,負責(zé)通過遠程過程調(diào)用(RPC) 向云計算平臺端發(fā)送場景瀏覽請求,接收云計算平臺端返回的場景X3D代碼并調(diào)用場景 運行時模塊在瀏覽器中顯示場景。場景運行時模塊是一個JavaScript腳本,用于將HTML5網(wǎng)頁中的X3D代碼通過 調(diào)用內(nèi)置WebGL三維圖形程序接口顯示在瀏覽器中,而不需要安裝任何插件。這里的 瀏覽器必須支持HTML5和WebGL標準,由于目前已經(jīng)有很多瀏覽器開始支持WebGL標 準,例如 Apple (Safari)、Google (Chrome)、Mozilla (Firefox)和 Opera (Opera),從而實
現(xiàn)了多瀏覽器支持。云計算平臺端負責(zé)處理業(yè)務(wù)邏輯及對象持久化,并向瀏覽器端發(fā)送X3D代碼。 云計算平臺端包括場景管理模塊、資源管理模塊、數(shù)據(jù)訪問層和數(shù)據(jù)倉庫,實現(xiàn)如下功 能
場景管理模塊負責(zé)場景和場景中所有對象的創(chuàng)建和管理,其基本構(gòu)成如圖2所示。 其中場景管理器(SceneManager)是其核心類,在處理瀏覽器端場景編輯模塊發(fā)送的 場景編輯命令時,場景管理器會根據(jù)場景編輯命令的類型、對象的名稱和屬性,設(shè)置場景屬性(例如名稱、描述、背景、霧效等),維護其所有場景物體的列表,進行場 景物體的創(chuàng)建、查詢、銷毀和設(shè)置等操作,同時使用數(shù)據(jù)訪問層的JDO (Java數(shù)據(jù)對 象)方法保證場景對象在數(shù)據(jù)倉庫中的持久化。場景物體類(SceneObject)是實體類 (Entity)、相機類(Camera)、燈光類(Light)、聲音類(Sound)的父類,包含名 稱(場景物體對象的唯一標識)、可見性以及位置、縮放、旋轉(zhuǎn)等空間變換屬性,而場 景物體的每個子類也有自己的特有屬性。實體類描述所有可見的場景物體,通過實體類 可以創(chuàng)建預(yù)制實體對象(包括立方體、圓柱體、錐體和球體),也可以創(chuàng)建自制實體對 象,即用戶自定義的場景實體,一般用于較為復(fù)雜實體的表示。場景管理器和場景物體 都提供X3D代碼轉(zhuǎn)換方法,負責(zé)將這些對象需要輸出的屬性賦值給相應(yīng)X3D代碼模板中 標簽的屬性及屬性值,形成對象的X3D代碼,其中場景管理器輸出的是整個場景的X3D 代碼。資源管理模塊包括資源對象(Resource) 及其資源管理器 (ResourceManager),其基本構(gòu)成如圖3所示。資源管理器負責(zé)管理創(chuàng)建場景所需的模
型(Model)、外觀(Appearance)等可復(fù)用資源對象,并提供使用接口供場景管理模塊 調(diào)用。其中,模型是系統(tǒng)內(nèi)置、用戶編輯或使用第三方設(shè)計工具導(dǎo)出的描述場景實體的 X3D代碼塊,外觀是用來描述場景實體外觀屬性的X3D代碼塊。在處理瀏覽器端場景 編輯模塊發(fā)送的場景編輯命令時,資源管理器根據(jù)場景編輯命令類型、對象的名稱和屬 性,進行資源對象的創(chuàng)建、查詢、銷毀和設(shè)置等操作,使用數(shù)據(jù)訪問層的JDO (Java數(shù) 據(jù)對象)方法保證對象在數(shù)據(jù)倉庫中的持久化。本發(fā)明的基本實現(xiàn)包括以下步驟
1)登錄場景編輯模塊,新建場景并初始化生成空白場景,云計算平臺端生成場景 管理器并保存到數(shù)據(jù)倉庫;
2)通過遠程過程調(diào)用創(chuàng)建模型、外觀、音頻、視頻等可復(fù)用資源,云計算平臺端 資源管理模塊生成相應(yīng)資源對象并同步數(shù)據(jù)倉庫;
3)通過遠程過程調(diào)用創(chuàng)建并設(shè)置實體、相機、燈光、聲音等場景物體,云計算平 臺端場景管理模塊生成和維護相應(yīng)對象,同步數(shù)據(jù)倉庫并返回X3D代碼至瀏覽器端同步 顯不;
4)訪問一個包含場景名稱的網(wǎng)址,場景瀏覽模塊發(fā)送場景名稱至云計算平臺端; 云計算平臺端解析場景瀏覽請求,返回相應(yīng)場景X3D代碼至瀏覽器端,并返回步驟3。在步驟1中,新建場景時場景編輯模塊使用JavaScript腳本語言操作其編輯區(qū)的 DOM樹,初始化場景X3D代碼,此時為空白場景。隨后通過遠程過程調(diào)用(RPC)將 場景屬性發(fā)送至云計算平臺端的場景管理模塊,場景管理模塊創(chuàng)建和場景名稱對應(yīng)的場 景管理器,并通過數(shù)據(jù)訪問層將其存儲到數(shù)據(jù)倉庫。在步驟2中,當(dāng)用戶通過遠程過程調(diào)用創(chuàng)建一個模型資源時,資源管理模塊中 的模型管理器(ModelManager)讀取X3D模型數(shù)據(jù),解析并生成一個或若干個子模型 (SubModel)對象,組合形成一個模型(Model)對象。子模型對象有用于存儲幾何形狀的 屬性,以及用于關(guān)聯(lián)外觀對象的外觀名稱屬性,外觀對象的屬性包括與X3D標準對應(yīng)的 材質(zhì)(Material)、紋理(Texture)及紋理變換等。在步驟3中,實體對象是基于所述資源管理模塊中的模型構(gòu)建的,當(dāng)場景管理
8器創(chuàng)建一個實體對象時,模型管理器將用戶指定的模型對象與實體對象關(guān)聯(lián),并保證模 型對象在云計算平臺端只有一個對象實例存在。隨后實體對象生成子實體(SubEntity) 列表,每個子實體對應(yīng)一個子模型,并包含子模型的外觀名稱屬性。本發(fā)明使用外觀名 稱作為獲取外觀資源對象的唯一標識,多個實體對象可以共用一個模型對象,場景管理 器能夠通過設(shè)置外觀名稱屬性動態(tài)改變實體的外觀。最后,場景管理器將實體對象通過 數(shù)據(jù)訪問層將存儲于數(shù)據(jù)倉庫,如果成功,場景管理器則將實體對象轉(zhuǎn)換為X3D代碼, 通過遠程過程調(diào)用塊發(fā)送至瀏覽器端。場景編輯模塊接收后使用JavaScript腳本語言操作 其編輯區(qū)的DOM樹,添加上述實體對象的X3D代碼,同時場景運行時模塊調(diào)用內(nèi)置三 維圖形程序接口同步場景,此時實體被顯示在編輯區(qū)。在進行場景物體的位置、縮放、旋轉(zhuǎn)等空間變換操作時,場景編輯模塊直接使 用JavaScript腳本語言操作其編輯區(qū)的DOM樹以改變物體的屬性,再通過遠程過程調(diào)用 將場景物體名稱和相應(yīng)的屬性發(fā)送至云計算平臺端進行對象更新。而對于場景物體的特 有屬性,則先將場景物體名稱和相應(yīng)的屬性通過遠程過程調(diào)用發(fā)送至云計算平臺端,場 景物體更新相應(yīng)的屬性后,發(fā)送屬性的X3D代碼塊至瀏覽器端。場景編輯模塊接收后使 用JavaScript腳本語言操作其編輯區(qū)的DOM樹,修改實體對象相應(yīng)屬性的X3D代碼。在步驟4中,場景瀏覽模塊根據(jù)場景名稱向云計算平臺端發(fā)送瀏覽請求,場景 管理模塊獲取與場景名稱對應(yīng)的場景管理器,場景管理器調(diào)用所有場景物體的符合X3D 標準的場景代碼轉(zhuǎn)換方法,最終生成整個場景的X3D代碼并發(fā)送至瀏覽器端。在瀏覽器 端,場景瀏覽模塊通過場景運行時模塊調(diào)用內(nèi)置三維圖形程序接口加載場景的場景X3D 代碼符合X3D標準的場景代碼,在瀏覽器中進行場景內(nèi)容顯示。以創(chuàng)建一個戶型三維場景“房屋框架”為例,如圖4所示。首先通過瀏覽器登 錄三維場景管理平臺,在場景編輯模塊中新建“房屋框架”場景,設(shè)置相關(guān)屬性,如名 稱、描述等,場景編輯模塊發(fā)送場景屬性集合至云計算平臺端的場景管理模塊,創(chuàng)建名 為“房屋框架”的場景管理器,并在數(shù)據(jù)倉庫中持久化。隨后通過場景編輯模塊添加若 干立方體,分別代表墻面和地面,并設(shè)置大小、位置、旋轉(zhuǎn)等屬性,在屬性區(qū)中選擇材 質(zhì)和紋理等資源與其關(guān)聯(lián),場景編輯模塊發(fā)送場景物體屬性集合至云計算平臺端的場景 管理模塊,“房屋框架”場景管理器創(chuàng)建立方體,同步數(shù)據(jù)庫后返回其X3D代碼至瀏覽 器端,場景運行時模塊調(diào)用內(nèi)置三維圖形程序接口加載立方體的場景X3D代碼在瀏覽器 中內(nèi)容顯示。在添加門窗、桌椅、沙發(fā)等時,可以在場景編輯模塊已有模型的列表中選 擇添加,如要添加的家具不在此列表,則可以自行添加第三方模型X3D代碼及其關(guān)聯(lián)的 紋理圖片,交由資源管理模塊生成相應(yīng)資源對象,供場景編輯模塊調(diào)用加載。同理添加 若干燈光、聲音,以增強戶型的真實感。在戶型“布置”完畢后,即可通過訪問瀏覽器 端瀏覽場景。本發(fā)明采用的SaaS架構(gòu)方式全面基于Web標準(X3D,HTML5和WebGL),解 決了 Web3D開發(fā)模型及編程接口與現(xiàn)有Web標準不統(tǒng)一的問題,提高了 Web3D場景的可 訪問性、開放性和易用性,同時突破了傳統(tǒng)架構(gòu)以文件形式存儲場景內(nèi)容、必須安裝龐 大客戶端軟件,升級、維護復(fù)雜等局限,降低了用戶使用成本和風(fēng)險,實現(xiàn)了集Web3D 場景開發(fā)和運行為一體的內(nèi)容管理平臺軟件運營服務(wù)。本發(fā)明提供了一種基于SaaS架構(gòu)的三維場景管理平臺及編輯瀏覽方法的思路,具體實現(xiàn)該技術(shù)方案的方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指 出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出 若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。本實施例中未明確的各 組成部分均可用現(xiàn)有技術(shù)加以實現(xiàn)。
權(quán)利要求
1.一種基于SaaS架構(gòu)的三維場景管理平臺,其特征在于,包括瀏覽器端和云平臺計 算端;所述瀏覽器端用于提供Web用戶界面交互及遠程過程調(diào)用功能,包括三維圖形程序 接口、場景運行時模塊、場景編輯模塊以及場景瀏覽模塊;所述場景編輯模塊是用戶管理場景的Web模塊,用于用戶界面交互并通過遠程過程 調(diào)用向所述云計算平臺端發(fā)送場景編輯命令,并與所述場景運行時模塊進行雙向場景數(shù) 據(jù)同步;所述場景瀏覽模塊是用戶瀏覽場景的Web模塊,用于通過遠程過程調(diào)用向所述云計 算平臺端發(fā)送場景瀏覽請求,接收云計算平臺端返回的場景代碼并調(diào)用所述場景運行時 模塊在瀏覽器端進行顯示場景;所述場景運行時模塊用于同步所述場景編輯模塊和場景瀏覽模塊中的場景代碼,通 過調(diào)用所述三維圖形程序接口在瀏覽器端進行三維圖形顯示;所述云平臺計算端用于處理業(yè)務(wù)邏輯并向瀏覽器端發(fā)送場景代碼,包括場景管理模 塊、數(shù)據(jù)訪問層、數(shù)據(jù)倉庫以及資源管理模塊;所述場景管理模塊負責(zé)場景和場景中所有對象的創(chuàng)建和管理,其中場景管理器用于 場景物體屬性設(shè)置,維護其所有場景物體的列表,進行場景物體的創(chuàng)建、查詢、銷毀和 設(shè)置,同時使用所述數(shù)據(jù)訪問層的Java數(shù)據(jù)對象將場景對象在所述數(shù)據(jù)倉庫中同步;所 述場景編輯模塊向所述場景管理模塊發(fā)出場景編輯命令,并調(diào)用所述場景管理模塊傳來 的場景代碼;所述場景瀏覽模塊向所述場景管理模塊發(fā)出場景瀏覽命令,并調(diào)用所述場 景管理模塊傳來的場景代碼;所述資源管理模塊用于管理場景需要的可復(fù)用資源對象的上傳、移除和調(diào)用,包括 資源對象以及資源管理器,所述資源管理器負責(zé)管理創(chuàng)建場景的模型對象和外觀對象, 并提供使用接口供場景管理模塊調(diào)用;資源管理器根據(jù)場景編輯模塊發(fā)出的場景編輯命 令類型、對象的名稱和屬性,進行資源對象的創(chuàng)建、查詢、銷毀和設(shè)置,并使用所述數(shù) 據(jù)訪問層的Java數(shù)據(jù)對象將場景對象在數(shù)據(jù)倉庫中同步;所述數(shù)據(jù)訪問層分別與所述場景管理模塊、資源管理模塊以及數(shù)據(jù)倉庫進行雙向數(shù) 據(jù)傳輸,用于將所屬場景管理模塊或資源管理模塊的對象保存進入所述數(shù)據(jù)倉庫,調(diào)用 所述數(shù)據(jù)倉庫的對象傳輸給所述場景管理模塊或資源管理模塊。
2.根據(jù)權(quán)利要求1所述的基于SaaS架構(gòu)的三維場景管理平臺,其特征在于,所述三 維圖形程序接口為WebGL三維圖形程序接口。
3.根據(jù)權(quán)利要求2所述的基于SaaS架構(gòu)的三維場景管理平臺,其特征在于,所述瀏 覽器端支持HTML5和WebGL標準,所述場景運行時模塊包括JavaScript腳本,用于將 HTML5網(wǎng)頁中符合X3D標準的場景代碼通過調(diào)用所述WebGL三維圖形程序接口在瀏覽 器端進行場景顯示。
4.一種基于SaaS架構(gòu)的三維場景管理平臺的場景編輯瀏覽方法,其特征在于,包括 瀏覽器端和云平臺計算端;所述瀏覽器端包括三維圖形程序接口、場景運行時模塊、場 景編輯模塊以及場景瀏覽模塊;所述云平臺計算端包括場景管理模塊、數(shù)據(jù)訪問層、數(shù) 據(jù)倉庫以及資源管理模塊;所述場景編輯瀏覽方法包括以下步驟步驟(1),所述場景編輯模塊新建場景并初始化生成空白場景,場景編輯模塊通過 遠程過程調(diào)用將場景屬性發(fā)送至云計算平臺端的場景管理模塊,場景管理模塊創(chuàng)建和場 景名稱對應(yīng)的場景管理器,并通過數(shù)據(jù)訪問層將場景管理器存儲到數(shù)據(jù)倉庫;步驟(2),所述場景編輯模塊通過遠程過程調(diào)用發(fā)出創(chuàng)建模型、外觀、音頻、視 頻等可復(fù)用資源的命令,云計算平臺端資源管理模塊生成相應(yīng)的資源對象并同步數(shù)據(jù)倉 庫;其中資源管理模塊中的模型管理器讀取X3D模型數(shù)據(jù),解析并生成一個或若干個子 模型對象,組合形成一個模型對象,子模型對象包括用于存儲幾何形狀的屬性,以及用 于關(guān)聯(lián)外觀對象的外觀名稱屬性,外觀對象的屬性包括與X3D標準對應(yīng)的材質(zhì)、紋理及 紋理變換信息;步驟(3),場景編輯模塊發(fā)出場景編輯命令,包括實體對象、相機、燈光、聲音創(chuàng) 建和設(shè)置命令;云計算平臺端的場景管理模塊創(chuàng)建和維護相應(yīng)實體對象,同步數(shù)據(jù)倉庫 并返回X3D代碼至瀏覽器端;當(dāng)場景管理器創(chuàng)建一個實體對象時,模型管理器將模型對 象與實體對象關(guān)聯(lián),并令模型對象在云計算平臺端只有一個對象實例,隨后實體對象生 成子實體列表,每個子實體對應(yīng)一個子模型,并包含子模型的外觀名稱屬性;所述外觀 名稱作為獲取外觀資源對象的唯一標識,多個實體對象共用一個模型對象,場景管理器 通過設(shè)置外觀名稱屬性動態(tài)改變其中一個實體的外觀;場景管理器將實體對象通過數(shù)據(jù) 訪問層將存儲于數(shù)據(jù)庫,場景管理器將實體對象轉(zhuǎn)換為X3D代碼,通過遠程過程調(diào)用塊 發(fā)送至瀏覽器端的場景編輯模塊;場景編輯模塊接收后使用JavaScript腳本語言操作添加 或修改上述實體對象的X3D代碼,同時場景運行時模塊調(diào)用內(nèi)置三維圖形程序接口同步 顯不場景;在進行場景物體的空間變換操作,包括場景物體位置移動、縮放、旋轉(zhuǎn)時,場景編 輯模塊使用JavaScript腳本語言操作改變物體X3D代碼的對應(yīng)屬性,通過遠程過程調(diào)用將 場景物體名稱和相應(yīng)的屬性發(fā)送至云計算平臺端的場景管理模塊進行對象更新;步驟(4),場景瀏覽時通過訪問一個包含場景名稱的網(wǎng)址,場景瀏覽模塊根據(jù)場景 名稱向云計算平臺端發(fā)送瀏覽請求,場景管理模塊獲取與場景名稱對應(yīng)的場景管理器, 場景管理器調(diào)用所有場景物體的符合X3D標準的場景代碼轉(zhuǎn)換方法,最終生成整個場景 的X3D代碼并發(fā)送至瀏覽器端;在瀏覽器端,場景瀏覽模塊通過場景運行時模塊調(diào)用內(nèi) 置三維圖形程序接口加載場景的場景X3D代碼符合X3D標準的場景代碼,在瀏覽器中進 行場景內(nèi)容顯示。
全文摘要
本發(fā)明公開了一種基于SaaS架構(gòu)的三維場景管理平臺,包括瀏覽器端和云平臺計算端;所述瀏覽器端用于提供Web用戶界面交互及遠程過程調(diào)用功能,包括三維圖形程序接口、場景運行時模塊、場景編輯模塊以及場景瀏覽模塊;所述云平臺計算端用于處理業(yè)務(wù)邏輯并向瀏覽器端發(fā)送場景代碼,包括場景管理模塊、數(shù)據(jù)訪問層、數(shù)據(jù)倉庫以及資源管理模塊。本發(fā)明實現(xiàn)與當(dāng)前Web標準的無縫融合,做到三維場景的在線實時管理,并快速發(fā)布到Internet上供用戶使用,有效降低了軟件復(fù)雜度,并使易用性和開放性大大提高。
文檔編號G06T19/00GK102012906SQ20101052156
公開日2011年4月13日 申請日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者周文軍, 李勇志, 秦衛(wèi)明 申請人:南京工業(yè)大學(xué), 南京聚社數(shù)字科技有限公司, 江蘇教育學(xué)院