新四季網

基於ogre的三維場景存儲方法及裝置製造方法

2023-08-05 13:08:11

基於ogre的三維場景存儲方法及裝置製造方法
【專利摘要】本發明公開了一種基於OGRE的三維場景存儲方法,包括:構建基於OGRE的三維場景文件存儲格式;根據所述三維場景文件存儲格式,構建若干個數據結構體,分別用於存儲三維場景中的父節點、子節點以及父子關係;將基於OGRE的三維場景中各個節點相關的數據對應存儲到所述數據結構體;將存儲到所述數據結構體中的數據按照所述三維場景文件存儲格式序列化存儲為三維場景文件。此外,還公開了一種基於OGRE的三維場景存儲裝置。採用本發明,在存儲三維場景時無需進行擴展,便保存了場景節點之間的節點關係,不僅效率大增。而且在存儲之後再加載三維場景文件時,可快速重建解析出的三維場景信息,並準確地進行關係重建以及屬性設置。
【專利說明】基於OGRE的三維場景存儲方法及裝置

【技術領域】
[0001] 本發明涉及三維場景存儲【技術領域】,尤其涉及一種基於0GRE的三維場景存儲方 法和一種基於0GRE的三維場景存儲裝置。

【背景技術】
[0002] 虛擬實境技術的不斷成熟和發展,使得對虛擬場景的全方位立體感的展示成為可 能。OGRE (Ob ject-Oriented Graphics Rendering Engine,面向對象圖形?宣染引擎)是一 款功能強大的開源三維引擎,使用它可以方便地構建三維場景,如家具搭配、室內模擬和拼 牆業務等。在使用0GRE引擎構建三維場景的過程中,需要添加單個模型、組合多個模型、切 換材質、撤銷恢復等等各種操作,這都需要在構建的過程能實時保存或存儲三維場景狀態。 而且大多數三維場景建完後往往需要保存到本地,以方便日後再使用。因此,尋求一種有效 且簡單的方法保存或存儲0GRE三維場景是非常重要的。
[0003] 目前一種常用的做法是採用0GRE提供的DotScene文件格式,即設計人員可將基 於0GRE搭建的三維場景保存為後綴是.scene的文件。該文件不包含任何網格數據和紋理 數據,只包含場景節點(也即場景元素),且該文件格式是一個標準化的XML (Extensible Markup Language,可擴展標記語言)文件格式,易讀易編輯。設計人員在編輯完三維場景 後導出為該文件,同時應用程式也可以再次加載該文件進行三維場景重現。
[0004] 但DotScene只是一個文件格式,並不包括任何保存動作。保存三維場景時設計人 員需要根據需求對DotScene進行擴展並加以實現,不僅效率較低,而且至今仍未形成通用 方法。另外,由於DotScene不包含場景節點之間的節點關係,因此通過DotScene保存三維 場景時,會導致場景重現出現錯誤。


【發明內容】

[0005] 基於此,本發明提供了一種基於0GRE的三維場景存儲方法和一種基於0GRE的三 維場景存儲裝置。
[0006] 一種基於0GRE的三維場景存儲方法,包括以下步驟:
[0007] 構建基於0GRE的三維場景文件存儲格式;其中,所述三維場景文件存儲格式包括 三維場景中節點之間的父子關係;
[0008] 根據所述三維場景文件存儲格式,構建若干個數據結構體,分別用於存儲三維場 景中的父節點、子節點以及父子關係;
[0009] 將基於0GRE的三維場景中各個節點相關的數據對應存儲到所述數據結構體;
[0010] 將存儲到所述數據結構體中的數據按照所述三維場景文件存儲格式序列化存儲 為三維場景文件。
[0011] 與一般技術相比,本發明基於0GRE的三維場景存儲方法,構建一個新型的基於 0GRE的三維場景文件存儲格式來記錄三維場景信息,並構建若干個數據結構體,分別用於 存儲三維場景中的父節點、子節點以及父子關係。將三維場景節點分層次保存到對應的數 據結構體中,可對三維場景節點的增、刪、改進行實時更新。以三維場景文件存儲格式記錄 創建的三維場景節點的屬性以及節點之間的節點關係,存儲為三維場景文件。採用本發明, 在存儲三維場景時無需進行擴展,便保存了場景節點之間的節點關係,不僅效率大增。而且 在存儲之後再加載三維場景文件時,可快速重建解析出的三維場景信息,並準確地進行關 系重建以及屬性設置。
[0012] -種基於0GRE的三維場景存儲裝置,包括第一構建模塊、第二構建模塊、第一存 儲模塊和第二存儲模塊;
[0013] 所述第一構建模塊,用於構建基於0GRE的三維場景文件存儲格式;其中,所述三 維場景文件存儲格式包括三維場景中節點之間的父子關係;
[0014] 所述第二構建模塊,用於根據所述三維場景文件存儲格式,構建若干個數據結構 體,分別用於存儲三維場景中的父節點、子節點以及父子關係;
[0015] 所述第一存儲模塊,用於將基於0GRE的三維場景中各個節點相關的數據對應存 儲到所述數據結構體;
[0016] 所述第二存儲模塊,用於將存儲到所述數據結構體中的數據按照所述三維場景文 件存儲格式序列化存儲為三維場景文件。
[0017] 與一般技術相比,本發明基於0GRE的三維場景存儲裝置,構建一個新型的基於 0GRE的三維場景文件存儲格式來記錄三維場景信息,並構建若干個數據結構體,分別用於 存儲三維場景中的父節點、子節點以及父子關係。將三維場景節點分層次保存到對應的數 據結構體中,可對三維場景節點的增、刪、改進行實時更新。以三維場景文件存儲格式記錄 創建的三維場景節點的屬性以及節點之間的節點關係,存儲為三維場景文件。採用本發明, 在存儲三維場景時無需進行擴展,便保存了場景節點之間的節點關係,不僅效率大增。而且 在存儲之後再加載三維場景文件時,可快速重建解析出的三維場景信息,並準確地進行關 系重建以及屬性設置。

【專利附圖】

【附圖說明】
[0018] 圖1為本發明基於0GRE的三維場景存儲方法的流程示意圖;
[0019] 圖2為本發明基於0GRE的三維場景存儲裝置的結構示意圖。

【具體實施方式】
[0020] 為更進一步闡述本發明所採取的技術手段及取得的效果,下面結合附圖及較佳實 施例,對本發明的技術方案,進行清楚和完整的描述。
[0021] 請參閱圖1,為本發明基於0GRE的三維場景存儲方法的流程示意圖。
[0022] 本發明基於0GRE的三維場景存儲方法,包括以下步驟:
[0023] S101構建基於0GRE的三維場景文件存儲格式;其中,所述三維場景文件存儲格式 包括三維場景中節點之間的父子關係;
[0024] S102根據所述三維場景文件存儲格式,構建若干個數據結構體,分別用於存儲三 維場景中的父節點、子節點以及父子關係;
[0025] S103將基於0GRE的三維場景中各個節點相關的數據對應存儲到所述數據結構 體;
[0026] S104將存儲到所述數據結構體中的數據按照所述三維場景文件存儲格式序列化 存儲為三維場景文件。
[0027] 定義一個新型的XML節點格式來記錄三維場景(三維場景也即3D場景,下同,全 文可以通用)信息,應用程式以XML的方式記錄每次創建3D場景節點(3D場景節點也即3D 場景元素,下同,全文可以通用)的屬性以及節點之間的關係,生成XML場景文件。當應用 程序加載該場景文件時,通過事先設計的XML場景文檔解析工具對所生成的三維場景文件 進行解析,然後重建解析出的3D場景元素,並準確地進行關係重建以及屬性設置。三維場 景節點的屬性是本領域技術人員公知的技術術語,在此不再贅述。
[0028] 在步驟S101中,構建(或者定義,可通用,下同)描述3D場景元素及其屬性、父子 關係甚至材質映射的XML節點格式。這樣,三維場景文件存儲格式中保存了三維場景節點 之間的父子關係以及三維場景節點的材質映射關係。
[0029] 作為其中一個實施例,所述構建基於0GRE的三維場景文件存儲格式的步驟中,所 述三維場景文件存儲格式還包括三維場景中節點的屬性。
[0030] 三維場景節點的屬性包括節點名稱、父節點名稱、掛接的模型名稱、位置、方向、縮 放比例以及材質映射等。三維場景節點的屬性是本領域技術人員公知的技術術語,在此不 再贅述。
[0031] 所述三維場景文件存儲格式包括三維場景中節點的屬性,保證了三維場景的實時 存儲和存儲之後的順利重建。
[0032] 作為其中一個實施例,在所述構建基於0GRE的三維場景文件存儲格式的步驟中, 所述三維場景文件存儲格式為XML文件格式。
[0033] XML文件格式是較為通用的一種三維場景文件保存格式,使本發明易於推廣,並且 增強了穩定性。
[0034] 在步驟S102中,定義一系列數據結構體,在應用程式每次添加 3D場景元素時,將 元素分層次保存到對應的數據結構體中,並根據應用程式中對3D場景元素的增、刪、改進 行實時的更新。
[0035] 所述數據結構體,也即結構體,是由一系列具有相同類型或不同類型的數據構成 的數據集合。
[0036] 作為其中一個實施例,所述構建若干個數據結構體的步驟中,構建的所述數據結 構體還用於存儲三維場景中節點的材質映射關係。
[0037] 目前的DotScen中不包含材質映射關係,如果設計人員在搭建場景的過程中更換 了 3D元素的材質或紋理貼圖,卻並不想影響原模型,按照DotScene無法實現。而本實施例 則可以很好的解決這個問題。
[0038] 在步驟S103中,以樹的結構體來保存整個3D場景。
[0039] 構建的數據結構體可分為如下四類:用於存儲父節點相關數據、用於存儲子節點 相關數據、用於存儲父子關係相關數據和用於存儲材質映射關係相關數據。
[0040] 對於場景中直接掛接模型且沒有孩子的場景節點,調用保存孩子接口 saveChildNodeProperty ;將創建的節點保存在一個map〈Name, Property〉對象中;用節 點名稱與其屬性一一對應,屬性包括:節點名稱、父節點名稱、掛接的模型名稱、位置、方向、 縮放比例以及材質映射。
[0041] 針對凡是掛接子節點的父節點,保存到一個map〈Name, Property〉對象中,在場景 重現時,最先創建該map中的父節點,以保證創建孩子節點時,可以正確的掛接到對應的父 節點中。
[0042] 針對3D場景中元素與元素之間的關係,單獨保存一個map〈ParentName, vector〈C hildName?中,用於重建場景時,查詢核對關係。
[0043] 當場景中的元素需要切換材質時,創建一個新的材質文件保存在本地,然後通過 SetMaterialNameO將新的材質名稱映射到該創建元素,並保存該材質名稱到map中,這樣 也不會影響3D模型(.mesh)本身的材質屬性。
[0044] 在步驟S104中,在應用程式需要保存3D場景為本地文件時,將先前已經保存在數 據結構體中的數據按照所定義的XML節點格式序列化寫入文件,形成XML場景文件。
[0045] 作為其中一個實施例,在所述序列化存儲為三維場景文件的步驟之後,包括以下 步驟:
[0046] 對三維場景文件中的信息進行解析,並反序列化到所述數據結構體中;
[0047] 根據反序列化後所述數據結構體中的數據進行三維場景重建,並恢復三維場景中 節點之間的父子關係。
[0048] 針對XML場景文檔的節點定義,設計一個XML場景文檔解析工具,在應用程式需要 加載XML場景文檔,進行3D場景重現時,快速解析文檔中記錄的所有3D元素,將文檔中所 有信息反序列化到所述數據結構體中;
[0049] 根據數據結構中的數據進行3D場景重建,重建時同時恢復了各個3D元素的父子 兄弟關係以及材質映射關係。
[0050] 與一般技術相比,本發明基於0GRE的三維場景存儲方法,構建一個新型的基於 0GRE的三維場景文件存儲格式來記錄三維場景信息,並構建若干個數據結構體,分別用於 存儲三維場景中的父節點、子節點以及父子關係。將三維場景節點分層次保存到對應的數 據結構體中,可對三維場景節點的增、刪、改進行實時更新。以三維場景文件存儲格式記錄 創建的三維場景節點的屬性以及節點之間的節點關係,存儲為三維場景文件。採用本發明, 在存儲三維場景時無需進行擴展,便保存了場景節點之間的節點關係,不僅效率大增。而且 在存儲之後再加載三維場景文件時,可快速重建解析出的三維場景信息,並準確地進行關 系重建以及屬性設置。
[0051] 請參閱圖2,為本發明基於0GRE的三維場景存儲裝置的結構示意圖。
[0052] 本發明基於0GRE的三維場景存儲裝置,包括第一構建模塊201、第二構建模塊 202、第一存儲模塊203和第二存儲模塊204 ;
[0053] 所述第一構建模塊201,用於構建基於0GRE的三維場景文件存儲格式;其中,所述 三維場景文件存儲格式包括三維場景中節點之間的父子關係;
[0054] 所述第二構建模塊202,用於根據所述三維場景文件存儲格式,構建若干個數據結 構體,分別用於存儲三維場景中的父節點、子節點以及父子關係;
[0055] 所述第一存儲模塊203,用於將基於0GRE的三維場景中各個節點相關的數據對應 存儲到所述數據結構體;
[0056] 所述第二存儲模塊204,用於將存儲到所述數據結構體中的數據按照所述三維場 景文件存儲格式序列化存儲為三維場景文件。
[0057] 作為其中一個實施例,所述第一構建模塊構建的所述三維場景文件存儲格式還包 括三維場景中節點的屬性。
[0058] 三維場景節點的屬性包括節點名稱、父節點名稱、掛接的模型名稱、位置、方向、縮 放比例以及材質映射等。三維場景節點的屬性是本領域技術人員公知的技術術語,在此不 再贅述。
[0059] 所述三維場景文件存儲格式包括三維場景中節點的屬性,保證了三維場景的實時 存儲和存儲之後的順利重建。
[0060] 作為其中一個實施例,所述第二構建模塊構建的所述數據結構體還用於存儲三維 場景中節點的材質映射關係。
[0061] 目前的DotScen中不包含材質映射關係,如果設計人員在搭建場景的過程中更換 了 3D元素的材質或紋理貼圖,卻並不想影響原模型,按照DotScene無法實現。而本實施例 則可以很好的解決這個問題。
[0062] 作為其中一個實施例,所述第一構建模塊構建的所述三維場景文件存儲格式為 XML文件格式。
[0063] XML文件格式是較為通用的一種三維場景文件保存格式,使本發明易於推廣,並且 增強了穩定性。
[0064] 作為其中一個實施例,還包括解析模塊和重建模塊;
[0065] 所述解析模塊,用於對三維場景文件中的信息進行解析,並反序列化到所述數據 結構體中;
[0066] 所述重建模塊,用於根據反序列化後所述數據結構體中的數據進行三維場景重 建,並恢復三維場景中節點之間的父子關係。
[0067] 針對XML場景文檔的節點定義,設計一個XML場景文檔解析工具,在應用程式需要 加載XML場景文檔,進行3D場景重現時,快速解析文檔中記錄的所有3D元素,將文檔中所 有信息反序列化到所述數據結構體中;
[0068] 根據數據結構中的數據進行3D場景重建,重建時同時恢復了各個3D元素的父子 兄弟關係以及材質映射關係。
[0069] 與一般技術相比,本發明基於0GRE的三維場景存儲裝置,構建一個新型的基於 0GRE的三維場景文件存儲格式來記錄三維場景信息,並構建若干個數據結構體,分別用於 存儲三維場景中的父節點、子節點以及父子關係。將三維場景節點分層次保存到對應的數 據結構體中,可對三維場景節點的增、刪、改進行實時更新。以三維場景文件存儲格式記錄 創建的三維場景節點的屬性以及節點之間的節點關係,存儲為三維場景文件。採用本發明, 在存儲三維場景時無需進行擴展,便保存了場景節點之間的節點關係,不僅效率大增。而且 在存儲之後再加載三維場景文件時,可快速重建解析出的三維場景信息,並準確地進行關 系重建以及屬性設置。
[0070] 以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並 不能因此而理解為對本發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員 來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保 護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。
【權利要求】
1. 一種基於OGRE的三維場景存儲方法,其特徵在於,包括以下步驟: 構建基於OGRE的三維場景文件存儲格式;其中,所述三維場景文件存儲格式包括三維 場景中節點之間的父子關係; 根據所述三維場景文件存儲格式,構建若干個數據結構體,分別用於存儲三維場景中 的父節點、子節點以及父子關係; 將基於OGRE的三維場景中各個節點相關的數據對應存儲到所述數據結構體; 將存儲到所述數據結構體中的數據按照所述三維場景文件存儲格式序列化存儲為三 維場景文件。
2. 根據權利要求1所述的基於OGRE的三維場景存儲方法,其特徵在於,所述構建基於 OGRE的三維場景文件存儲格式的步驟中,所述三維場景文件存儲格式還包括三維場景中節 點的屬性。
3. 根據權利要求1所述的基於OGRE的三維場景存儲方法,其特徵在於,所述構建若干 個數據結構體的步驟中,構建的所述數據結構體還用於存儲三維場景中節點的材質映射關 系。
4. 根據權利要求1所述的基於OGRE的三維場景存儲方法,其特徵在於,在所述構建基 於OGRE的三維場景文件存儲格式的步驟中,所述三維場景文件存儲格式為XML文件格式。
5. 根據權利要求1所述的基於OGRE的三維場景存儲方法,其特徵在於,在所述序列化 存儲為三維場景文件的步驟之後,包括以下步驟: 對三維場景文件中的信息進行解析,並反序列化到所述數據結構體中; 根據反序列化後所述數據結構體中的數據進行三維場景重建,並恢復三維場景中節點 之間的父子關係。
6. -種基於OGRE的三維場景存儲裝置,其特徵在於,包括第一構建模塊、第二構建模 塊、第一存儲模塊和第二存儲模塊; 所述第一構建模塊,用於構建基於OGRE的三維場景文件存儲格式;其中,所述三維場 景文件存儲格式包括三維場景中節點之間的父子關係; 所述第二構建模塊,用於根據所述三維場景文件存儲格式,構建若干個數據結構體,分 別用於存儲三維場景中的父節點、子節點以及父子關係; 所述第一存儲模塊,用於將基於OGRE的三維場景中各個節點相關的數據對應存儲到 所述數據結構體; 所述第二存儲模塊,用於將存儲到所述數據結構體中的數據按照所述三維場景文件存 儲格式序列化存儲為三維場景文件。
7. 根據權利要求6所述的基於OGRE的三維場景存儲裝置,其特徵在於,所述第一構建 模塊構建的所述三維場景文件存儲格式還包括三維場景中節點的屬性。
8. 根據權利要求6所述的基於OGRE的三維場景存儲裝置,其特徵在於,所述第二構建 模塊構建的所述數據結構體還用於存儲三維場景中節點的材質映射關係。
9. 根據權利要求6所述的基於OGRE的三維場景存儲裝置,其特徵在於,所述第一構建 模塊構建的所述三維場景文件存儲格式為XML文件格式。
10. 根據權利要求6所述的基於OGRE的三維場景存儲裝置,其特徵在於,還包括解析模 塊和重建模塊; 所述解析模塊,用於對三維場景文件中的信息進行解析,並反序列化到所述數據結構 體中; 所述重建模塊,用於根據反序列化後所述數據結構體中的數據進行三維場景重建,並 恢復三維場景中節點之間的父子關係。
【文檔編號】G06T17/00GK104091367SQ201410350231
【公開日】2014年10月8日 申請日期:2014年7月22日 優先權日:2014年7月22日
【發明者】康曉林, 李金鳳 申請人:廣東威創視訊科技股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀