專利名稱:用于保護(hù)模型數(shù)據(jù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及信息處理技術(shù)領(lǐng)域,特別地,涉及一種用于保護(hù)模型數(shù)據(jù)的方法及其系統(tǒng)。
背景技術(shù):
目前無(wú)論是在網(wǎng)絡(luò)、游戲等應(yīng)用或者服務(wù)中,內(nèi)容提供商或者應(yīng)用提供商為用戶提供了大量的二維OD)或者三維(3D)的模型數(shù)據(jù)。很多這些模型數(shù)據(jù)被裝載在客戶端。 其中有些模型數(shù)據(jù)是內(nèi)容提供商或者應(yīng)用提供商集中了大量的人力財(cái)力開發(fā)出來(lái)的,具有較高的價(jià)值。但現(xiàn)在存在一些技術(shù),可以獲得這些模型數(shù)據(jù),而且這些模型數(shù)據(jù)可能會(huì)以內(nèi)容提供商或者應(yīng)用提供商所不希望的方式進(jìn)行使用。內(nèi)容提供商或者應(yīng)用提供商可能希望通過(guò)加密相關(guān)模型數(shù)據(jù)以對(duì)其進(jìn)行保護(hù),但事實(shí)上這也是不夠的。以3D模型數(shù)據(jù)為例,如圖1所示,雖然從服務(wù)器或者客戶端硬盤裝載加密過(guò)的數(shù)據(jù)文件,現(xiàn)有的3D應(yīng)用軟件都是通過(guò)通用的編程接口(OpenGL,Direct3D)向底層的標(biāo)準(zhǔn)渲染流水線發(fā)出繪制圖形的命令的.在解密后的3D模型數(shù)據(jù)進(jìn)入流水線的入口處,所有的模型數(shù)據(jù)都能夠被第三方程序進(jìn)行監(jiān)聽。監(jiān)聽程序只需將進(jìn)入標(biāo)準(zhǔn)渲染流水線的數(shù)據(jù)流保存下來(lái),就可完整的獲取到模型的3D幾何形狀以及相應(yīng)的貼圖文件。圖3示出了一個(gè)標(biāo)準(zhǔn)渲染流水線。渲染流水線組件根據(jù)攝像數(shù)據(jù)將輸入的3D 場(chǎng)景數(shù)據(jù)轉(zhuǎn)換成適當(dāng)?shù)亩SOD)模型數(shù)據(jù),然后渲染目標(biāo)組件根據(jù)相應(yīng)化身的視區(qū)數(shù)據(jù) (視窗或者剪裁窗)來(lái)剪裁生成的2D模型數(shù)據(jù),并將其投影到該預(yù)定的視區(qū)。渲染得到的渲染結(jié)果作為幀緩存而存儲(chǔ)在幀緩沖器中。有關(guān)渲染流水線的現(xiàn)有技術(shù)具體可以參考維基百科(http://en. wikipedia. org/wiki/Graphics_pipeline)以及相關(guān)經(jīng)典教科書 James D. Foley,Andries Van Dam,Steven K. Feiner and John F. Hughes(1995). Computer Graphics Principles and Practice, Addison-Wesley 等的相關(guān)介紹。因此需要一種用于保護(hù)模型數(shù)據(jù)的方法或者系統(tǒng)以對(duì)內(nèi)容/應(yīng)用提供商的模型數(shù)據(jù)提供一定的保護(hù)。
發(fā)明內(nèi)容
本發(fā)明提供一種用于保護(hù)模型數(shù)據(jù)的方法及其系統(tǒng)。本發(fā)明一方面提供一種用于保護(hù)模型數(shù)據(jù)的方法。其中所述方法包括獲取模型數(shù)據(jù);識(shí)別模型數(shù)據(jù)的類型;如果模型數(shù)據(jù)被識(shí)別為第一類型模型數(shù)據(jù),則發(fā)送識(shí)別的第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染,其中第一渲染流水線為保密的渲染流水線;如果模型數(shù)據(jù)被識(shí)別為第二類型模型數(shù)據(jù),則發(fā)送識(shí)別的第二類型模型數(shù)據(jù)到第二渲染流水線以進(jìn)行渲染。優(yōu)選地,上述方法還包括在被發(fā)送到第一渲染流水線之前,選取第一類型模型數(shù)據(jù)的部分模型數(shù)據(jù);從所述第一類型模型數(shù)據(jù)中刪除所述部分模型數(shù)據(jù)。優(yōu)選地,其中所述發(fā)送識(shí)別的第一類型模型數(shù)據(jù)到第一渲染流水線以進(jìn)行渲染包括發(fā)送所述部分模型數(shù)據(jù)到所述第一渲染流水線。本發(fā)明另一方面提供一種用于保護(hù)模型數(shù)據(jù)的系統(tǒng)。其中所述系統(tǒng)包括獲取裝置,用于獲取模型數(shù)據(jù);識(shí)別裝置,用于識(shí)別模型數(shù)據(jù)的類型;第一發(fā)送裝置,用于如果模型數(shù)據(jù)被識(shí)別為第一類型模型數(shù)據(jù),則發(fā)送識(shí)別的第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染,其中第一渲染流水線為保密的渲染流水線;第二發(fā)送裝置,用于如果模型數(shù)據(jù)被識(shí)別為第二類型模型數(shù)據(jù),則發(fā)送識(shí)別的第二類型模型數(shù)據(jù)到第二渲染流水線以進(jìn)行渲染。使用本方法和系統(tǒng),需要保密的模型數(shù)據(jù)將不再會(huì)被第三方監(jiān)聽程序完整的獲取,第三方監(jiān)聽程序只能獲得第一類模型數(shù)據(jù)在當(dāng)前視域內(nèi)的,可見的,以及若干局部缺失的部分?jǐn)?shù)據(jù),從而保護(hù)了應(yīng)用/服務(wù)提供商的模型數(shù)據(jù)。另外采用本發(fā)明的方法不會(huì)對(duì)服務(wù)器造成過(guò)分的負(fù)擔(dān)。
為了對(duì)本發(fā)明實(shí)施例的特征和優(yōu)點(diǎn)進(jìn)行詳細(xì)說(shuō)明,將參照以下附圖。如果可能的話,在附圖和描述中使用相同或者類似的參考標(biāo)號(hào)以指代相同或者類似的部分。其中圖1示出了現(xiàn)有技術(shù)監(jiān)聽模型數(shù)據(jù)的方法;圖2示出了標(biāo)準(zhǔn)渲染流水線示意圖;圖3示出了本發(fā)明用于保護(hù)模型數(shù)據(jù)的方法第一具體實(shí)施方式
;圖4示出了一個(gè)三維模型示例;圖5示出了本發(fā)明用于保護(hù)模型數(shù)據(jù)的方法第二具體實(shí)施方式
;圖6、7示出了本發(fā)明的實(shí)現(xiàn)保密渲染流水線的具體實(shí)施方式
;圖8示出了本發(fā)明用于保護(hù)模型數(shù)據(jù)的系統(tǒng)示意圖。
具體實(shí)施例方式現(xiàn)在將參考本發(fā)明的示例性實(shí)施例進(jìn)行詳細(xì)的描述,在附圖中圖解說(shuō)明了所述實(shí)施例的示例,其中相同的參考數(shù)字始終指示相同的元件。應(yīng)當(dāng)理解,本發(fā)明并不限于所公開的示例實(shí)施例。還應(yīng)當(dāng)理解,并非所述方法和設(shè)備的每個(gè)特征對(duì)于實(shí)施任一權(quán)利要求所要求保護(hù)的本發(fā)明都是必要的。此外,在整個(gè)公開中,當(dāng)顯示或描述處理或方法時(shí),方法的步驟可以以任何順序或者同時(shí)執(zhí)行,除非從上下文中能清楚一個(gè)步驟依賴于先執(zhí)行的另一步驟。此外,步驟之間可以有顯著的時(shí)間間隔。圖3示出了本發(fā)明用于保護(hù)模型數(shù)據(jù)的第一具體實(shí)施方式
。其中,在步驟301中, 獲取模型數(shù)據(jù)??梢杂煞?wù)器從其存儲(chǔ)場(chǎng)景數(shù)據(jù)的數(shù)據(jù)庫(kù)中獲取,也可以由客戶端的應(yīng)用程序從客戶端的硬盤獲取加密的模型數(shù)據(jù)(其由用戶在安裝應(yīng)用程序時(shí)存儲(chǔ)在硬盤上), 或者由服務(wù)器向客戶端發(fā)送相關(guān)模型數(shù)據(jù),以用于虛擬場(chǎng)景的造型或者渲染。在步驟303中,識(shí)別模型數(shù)據(jù)的類型。以3D模型數(shù)據(jù)為例,在一個(gè)3D應(yīng)用中,會(huì)使用到大量的3D模型。有些模型的商業(yè)價(jià)值相對(duì)較低,比如普通的房屋和綠化;有些模型的商業(yè)價(jià)值比較高,這些模型被當(dāng)作機(jī)密信息來(lái)考慮。模型數(shù)據(jù)根據(jù)實(shí)際需要可以有各種數(shù)據(jù)結(jié)構(gòu)。一個(gè)示例性的模型如圖4所示,其為一個(gè)三角面片模型。它的模型數(shù)據(jù)可以類似如下形式
IsConfidential = 1 (是否加密標(biāo)志);Vertex number = 12(頂點(diǎn)數(shù));Face number = 16 (表面數(shù));頂點(diǎn)列表A = {XA, YA, Za}B= {XB Jb,ZB}…J = IXr Yj, ZjI表面列表FACE1 = {A, B, F};FACE2 = {B, C, D};…標(biāo)志IsConfidential用來(lái)來(lái)表示模型是否是機(jī)密的.例如,如果IsConfidential =0,則表示該模型數(shù)據(jù)不是機(jī)密的;如果IsConfidential = 1,則表示該模型數(shù)據(jù)是機(jī)密的。通過(guò)識(shí)別上述標(biāo)志位IsConfidential從而確定了哪些模型數(shù)據(jù)需要特定的處理,哪些模型數(shù)據(jù)可以按照標(biāo)準(zhǔn)的流程進(jìn)行處理。當(dāng)然也可以根據(jù)需要,將模型數(shù)據(jù)進(jìn)行更細(xì)的分類,比如對(duì)于機(jī)密的模型數(shù)據(jù)則規(guī)定不同的機(jī)密等級(jí)等。一個(gè)場(chǎng)景所涉及的各個(gè)模型數(shù)據(jù)以及相互關(guān)系可以用一個(gè)場(chǎng)景文件進(jìn)行管理。場(chǎng)景文件不同的應(yīng)用可以有不同的具體實(shí)現(xiàn),但大致概念都是相似的。具體而言,一個(gè)場(chǎng)景文件通過(guò)某種特定的格式(比如XML)定義了一個(gè)場(chǎng)景,它描述了場(chǎng)景內(nèi)所有模型元素以及它們的屬性,包括地形,水面,物體等等。 一個(gè)典型的場(chǎng)景文件內(nèi)容可如下所示<Scene><Terrain>. . . . </Terrain><ffater>. . . </ffater><0bjectGroup>〈Object name ="物體 1" position = “000,,file = " someObjectl. mesh" ></0bject>〈Object name =“物體 2〃 position = “123,,file =" some0bject2. mesh" ></0bject></0bjectGroup></Scene>所述該場(chǎng)景文件可以集中在服務(wù)器中進(jìn)行管理,也可以由服務(wù)器隨模型數(shù)據(jù)文件發(fā)送到客戶端以保證模型數(shù)據(jù)類型定義的一致性??商娲?,上述機(jī)密標(biāo)志位 IsConfidential也可以設(shè)置在場(chǎng)景文件中,從而對(duì)模型數(shù)據(jù)的性質(zhì)進(jìn)行統(tǒng)一管理。上述模型數(shù)據(jù)以及場(chǎng)景文件僅僅是示例性的,不應(yīng)理解為對(duì)本發(fā)明進(jìn)行的限制。本領(lǐng)域技術(shù)人員基于本發(fā)明可以根據(jù)實(shí)際的應(yīng)用而構(gòu)造各種類型的模型數(shù)據(jù)以及場(chǎng)景文件。在步驟305中,如果模型數(shù)據(jù)被識(shí)別為第一類型模型數(shù)據(jù),則發(fā)送識(shí)別的第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染。示例性的,可以將機(jī)密模型數(shù)據(jù)作為第一類型模型數(shù)據(jù),將其中的至少一部分發(fā)送到可以起到保密作用的第一渲染流水線以進(jìn)行后續(xù)的渲染??梢詫⒌谝讳秩玖魉€布置在服務(wù)器端。由于第一渲染流水線處于服務(wù)器端,則監(jiān)聽軟件就無(wú)法在服務(wù)器端竊取第一類型模型數(shù)據(jù),從而使機(jī)密的模型數(shù)據(jù)得到保護(hù)。該第一渲染流水線可以是部署在服務(wù)器上的標(biāo)準(zhǔn)渲染流水線(比如通過(guò)硬件顯卡進(jìn)行渲染)。而又由于機(jī)密的第一類型模型數(shù)據(jù)相對(duì)于整體的模型數(shù)據(jù)而言,其占的比率并不會(huì)很高,在大多數(shù)應(yīng)用或者服務(wù)中并不會(huì)給服務(wù)器以及網(wǎng)絡(luò)帶寬帶來(lái)過(guò)分的負(fù)擔(dān)。 另一種優(yōu)選的方式可以是將第一渲染流水線由應(yīng)用/服務(wù)提供商根據(jù)標(biāo)準(zhǔn)渲染流水線的現(xiàn)有技術(shù)以軟件的方式在客戶端實(shí)現(xiàn),由于監(jiān)聽軟件無(wú)法監(jiān)聽?wèi)?yīng)用/服務(wù)提供商的私有軟件,因此也對(duì)該模型數(shù)據(jù)進(jìn)行了保密,其中的根本原因在于如果使用私有軟件進(jìn)行渲染,第三方程序不會(huì)知道軟件何時(shí)將模型數(shù)據(jù)傳入渲染函數(shù)進(jìn)行渲染,在整個(gè)渲染過(guò)程中任何中間結(jié)果以及被調(diào)用的函數(shù)也都是不可被第三方所知的,最后也只是輸出二維渲染結(jié)果到屏幕,因此這個(gè)過(guò)程無(wú)法被第三方程序監(jiān)聽。對(duì)于該優(yōu)選實(shí)施方式,將在后面做更詳細(xì)的介紹。由于模型數(shù)據(jù)根據(jù)不同的實(shí)施方式,其可能存儲(chǔ)在服務(wù)器端,也可能存儲(chǔ)在客戶端,因此這里所指的“發(fā)送”與本發(fā)明的方法的具體部署相關(guān)。其可以是從服務(wù)器發(fā)送到第一渲染流水線,也可以是從客戶端發(fā)送到第一渲染流水線。進(jìn)行到步驟307,如果模型數(shù)據(jù)被識(shí)別為第二類型模型數(shù)據(jù),則發(fā)送識(shí)別的第二類型模型數(shù)據(jù)到第二渲染流水線以進(jìn)行渲染。示例性的,可以將普通模型數(shù)據(jù)作為第二類型模型數(shù)據(jù),將其發(fā)送到不同于第一渲染流水線的第二渲染流水線。第二渲染流水線和第一渲染流水線的不同可以在于部署的位置的不同,比如第二渲染流水線可以是部署在客戶端的標(biāo)準(zhǔn)流水線,而第一渲染流水線則是部署在服務(wù)器上的標(biāo)準(zhǔn)渲染流水線;其也可以是實(shí)現(xiàn)的方式不同,比如第二渲染流水線是以硬件或者軟件以公知開放編程接口(比如OpenGL 或Direct3D)的方式來(lái)實(shí)現(xiàn),而第一渲染流水線則是以私有軟件的形式來(lái)實(shí)現(xiàn),使得監(jiān)聽軟件無(wú)法獲得保密模型數(shù)據(jù)。值得注意的是,無(wú)論是第一渲染流水線還是第二渲染流水線,優(yōu)選地,它們?cè)阡秩緯r(shí)使用的都是基于(可以來(lái)自客戶端)相同的攝像機(jī)位置、攝像機(jī)角度、光照、貼圖等參數(shù),以確保經(jīng)過(guò)不同渲染線渲染后的不同數(shù)據(jù)模型最后能夠組合到一起。當(dāng)然如果采用不同的參數(shù),也可以記錄其對(duì)應(yīng)關(guān)系以及轉(zhuǎn)換關(guān)系,從而確保后面再組合時(shí)能夠根據(jù)坐標(biāo)換算關(guān)系而重新組合到一起,因?yàn)殇秩驹跀?shù)學(xué)上其實(shí)是由三維空間到二維空間的一種空間映射關(guān)系。與現(xiàn)有的通行做法相同,在第一、二類型模型數(shù)據(jù)分別經(jīng)過(guò)第一、二渲染流水線渲染后,會(huì)被投影到同一個(gè)二維屏幕上的相應(yīng)區(qū)域.這樣,場(chǎng)景中的多個(gè)模型就被顯示在了一起,投影后,模型和模型之間可能有重疊.這時(shí),可以通過(guò)一個(gè)額外的深度信息(ζ值)來(lái)確定哪個(gè)模型應(yīng)該疊放在上層。渲染結(jié)果的重新組合技術(shù)則可具體參見James D. Foley, Andries Van Dam,Steven K. Feiner and John F. Hughes(1995). Computer Graphics Principles and Practice· Addison-Wesley 等,在此不再贊述。圖5示出了本發(fā)明的第二具體實(shí)施方式
。該方法部署在客戶端500。在初始,應(yīng)用或者服務(wù)用戶已經(jīng)從應(yīng)用/服務(wù)提供商獲得了加密的模型數(shù)據(jù)以及應(yīng)用/服務(wù)客戶端應(yīng)用程序。其中在步驟501中,客戶端應(yīng)用程序?qū)@取模型數(shù)據(jù)并進(jìn)行解密。在將其發(fā)送到渲染流水線之前,在步驟503中將識(shí)別模型數(shù)據(jù)的類型。模型數(shù)據(jù)可以采用第一具體實(shí)施方式
中識(shí)別模型數(shù)據(jù)文件中標(biāo)識(shí)的方式進(jìn)行。在對(duì)模型數(shù)據(jù)的類型進(jìn)行區(qū)分后,在步驟505中, 需要保密的模型數(shù)據(jù)將被發(fā)送到保密渲染流水線進(jìn)行渲染,保密渲染流水線由應(yīng)用/服務(wù)提供商根據(jù)標(biāo)準(zhǔn)渲染流水線的現(xiàn)有技術(shù)以軟件的方式在客戶端實(shí)現(xiàn),由于監(jiān)聽軟件無(wú)法監(jiān)聽?wèi)?yīng)用/服務(wù)提供商的私有軟件,因此對(duì)該模型數(shù)據(jù)起到了保密作用。優(yōu)選地,還可以考慮到只將保密模型數(shù)據(jù)的部分?jǐn)?shù)據(jù)發(fā)送到保密渲染流水線中進(jìn)行渲染,而將其余部分發(fā)送到標(biāo)準(zhǔn)流水線中進(jìn)行渲染,并記錄其相對(duì)的關(guān)系,在最后再進(jìn)行組合。這樣可以充分利用標(biāo)準(zhǔn)渲染流水線并減輕保密渲染流水線和CPU的負(fù)擔(dān)。本申請(qǐng)將在本發(fā)明的第三具體實(shí)施方式
詳細(xì)介紹該優(yōu)選實(shí)施方式。而普通的模型數(shù)據(jù)將在步驟507中由客戶端標(biāo)準(zhǔn)渲染流水線進(jìn)行渲染。在步驟509中,按照現(xiàn)有的方法對(duì)來(lái)自保密渲染流水線和標(biāo)準(zhǔn)渲染流水線的渲染后的模型數(shù)據(jù)進(jìn)行組合,并在步驟511中將最后組合的結(jié)果發(fā)送到幀緩沖器中以便為用戶呈現(xiàn)相關(guān)場(chǎng)景。圖6、7示出了本發(fā)明的實(shí)現(xiàn)保密渲染流水線的具體實(shí)施方式
。如圖6的步驟601 所示,在被發(fā)送到保密渲染流水線之前,根據(jù)保密類型模型數(shù)據(jù)相對(duì)于客戶端的攝像機(jī)是否可見,剪裁該保密類型模型數(shù)據(jù)。標(biāo)準(zhǔn)渲染流水線會(huì)在渲染的過(guò)程中進(jìn)行裁剪。但為了保密模型數(shù)據(jù),本實(shí)施例則另辟蹊徑地將模型數(shù)據(jù)的剪裁布置在進(jìn)入渲染流水線之前。這樣帶來(lái)的一個(gè)特別大的好處就在于即使該需要保密的模型數(shù)據(jù)在后續(xù)的渲染過(guò)程中被監(jiān)聽到,監(jiān)聽者也僅僅得到被裁剪了的模型數(shù)據(jù)而得不到完整的模型數(shù)據(jù)。如此則對(duì)保密類型模型數(shù)據(jù)取得了一定程度的保密。如圖7所示,以3D模型數(shù)據(jù)的裁剪為例,3D模型數(shù)據(jù)最常用的就是三角面片.一個(gè)三角面片由η個(gè)三角形組成.對(duì)于每一個(gè)三角形,可以通過(guò)面的法向方向和當(dāng)前攝像機(jī)的方向,來(lái)決定此面是否可見.如果面的法向方向和當(dāng)前攝像機(jī)的方向的夾角大于90度,則此面可見;如果角度等于90度,則此面處于臨界狀態(tài),看到的是一條線;如果角度小于90度,則此面不可見。因此,將三角面片中法向方向和當(dāng)前攝像機(jī)方向夾角大于等于90度的面刪除,就完成了對(duì)隱藏面的剔除。對(duì)模型數(shù)據(jù)的裁剪技術(shù)具體仍可參見文獻(xiàn) James D· Foley,Andries Van Dam, Steven K. Feiner andjohn F. Hughes (1995). Computer Graphics !Principles and Practice. Addison-Wesley。優(yōu)選地,如果圖 4 的矢巨形區(qū)域是應(yīng)用程序窗口的范圍,則可以先根據(jù)視域(view frustum)的剪裁可將在視域外的面{A,B,F(xiàn)},{A,B,G},{A,F(xiàn),G}裁去。其中視域是一個(gè)根據(jù)攝像機(jī)位置,攝像機(jī)角度,近剪裁面,遠(yuǎn)剪裁面所定義的平截頭體。對(duì)于三角面片中的每一個(gè)面,檢查它的三個(gè)頂點(diǎn)。如果這三個(gè)頂點(diǎn)都在平截頭體外,則這個(gè)面在視域外,可以裁去。接著,基于用戶端攝像機(jī)的可視性的剔除可以把那些被遮擋的面,比如{I,E,F(xiàn)},{B,C,D}去除。作為一種變通的實(shí)施方式,考慮到裁剪后的保密類型模型數(shù)據(jù)已經(jīng)不是一個(gè)完整的模型,可以將此時(shí)的保密渲染流水線與標(biāo)準(zhǔn)渲染流水線進(jìn)行合并,即將裁剪后的保密類型模型數(shù)據(jù)發(fā)送到標(biāo)準(zhǔn)渲染流水線中進(jìn)行渲染,則即使進(jìn)行監(jiān)聽,也僅僅是得到被裁剪后的保密類型模型數(shù)據(jù),同樣可以使保密類型模型數(shù)據(jù)得到一定的保護(hù)。因此以下步驟603、 605、607、609等為本實(shí)施例的優(yōu)選實(shí)施步驟。在步驟603中,在被發(fā)送到保密渲染流水線之前,選取保密類型模型數(shù)據(jù)的部分模型數(shù)據(jù),并從所述保密類型模型數(shù)據(jù)中刪除所述部分模型數(shù)據(jù)。其中該保密類型模型數(shù)據(jù)可以是裁剪后的模型數(shù)據(jù)。優(yōu)選地,可以隨機(jī)地從保密模型數(shù)據(jù)中選取部分的模型數(shù)據(jù), 例如選取其中的的數(shù)據(jù),優(yōu)選地,也可以選取模型數(shù)據(jù)中比較關(guān)鍵的部分模型數(shù)據(jù)(比如人物模型數(shù)據(jù)中的眼睛、嘴角等部分的數(shù)據(jù))。比如可以將圖4中C,D,I,H圍成的多邊形區(qū)域刪除。在選定所述部分模型數(shù)據(jù)后,則將保密類型模型數(shù)據(jù)中的這一部分模型數(shù)據(jù)刪除,如此得到的保密類型模型數(shù)據(jù)就缺失了選定的所述部分模型數(shù)據(jù)。在步驟605中,優(yōu)選地,發(fā)送所述部分模型數(shù)據(jù)到所述保密渲染流水線以進(jìn)行渲染。所述保密渲染流水線如上文所指出的通過(guò)應(yīng)用/服務(wù)提供商通過(guò)軟件程序的形式實(shí)現(xiàn)。所述部分模型數(shù)據(jù)在軟件程序構(gòu)成的保密渲染流水線中進(jìn)行渲染,由于所述部分模型數(shù)據(jù)的數(shù)據(jù)量相對(duì)較小,因此這一部分的渲染負(fù)載也較小,完全可以利用CPU的運(yùn)算能力來(lái)進(jìn)行。而監(jiān)聽軟件則無(wú)法對(duì)這個(gè)過(guò)程進(jìn)行監(jiān)聽。通過(guò)保密渲染流水線渲染后,所述部分模型數(shù)據(jù)則被像素化而形成對(duì)應(yīng)的二維圖像。在步驟607中,優(yōu)選地,將刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)發(fā)送到標(biāo)準(zhǔn)渲染流水線以進(jìn)行渲染。由于在標(biāo)準(zhǔn)渲染流水線進(jìn)行渲染的那部分模型數(shù)據(jù)是相對(duì)殘缺的模型數(shù)據(jù),即使被監(jiān)聽到,對(duì)方也僅僅是得到了不完整的模型數(shù)據(jù),從而對(duì)保密類型模型數(shù)據(jù)進(jìn)行了相應(yīng)的保密。進(jìn)行到步驟609,組合渲染后的所述部分模型數(shù)據(jù)和所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)以形成渲染后的第一類型模型數(shù)據(jù)。根據(jù)所述部分模型數(shù)據(jù)與所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)之間的原始坐標(biāo)位置關(guān)系,重新組合得到渲染后的第一類型模型數(shù)據(jù)。所述部分模型數(shù)據(jù)與其余的第一類型模型數(shù)據(jù)具有統(tǒng)一的坐標(biāo)系,則根據(jù)原始記錄的坐標(biāo)關(guān)系,以及渲染時(shí)使用的是同樣的攝像機(jī)位置、攝像機(jī)角度、光照、貼圖等參數(shù),就可以將渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)組合到一塊,從而得到完整的保密類型模型數(shù)據(jù)的渲染圖像。 在最后如上文所述,組合渲染后的保密類型模型數(shù)據(jù)和普通類型數(shù)據(jù)。雖然所述部分模型數(shù)據(jù)由保密的渲染流水線渲染,但是在選定過(guò)程中,所述部分模型數(shù)據(jù)的坐標(biāo)數(shù)據(jù)沒(méi)有發(fā)生改變;而且保密渲染流水線與標(biāo)準(zhǔn)渲染流水線在渲染時(shí)使用的是同樣的攝像機(jī)位置、攝像機(jī)角度、光照、貼圖等參數(shù)。所述部分模型數(shù)據(jù)的渲染結(jié)果和它映射到平面上的位置不會(huì)因使用了不同的渲染流水線而改變。因此,可以將渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)組合到一塊,從而得到完整的保密類型模型數(shù)據(jù)的渲染圖像。另外作為一種變通的實(shí)施方式,可以將上述選定的部分模型數(shù)據(jù)發(fā)送到部署在服務(wù)器端的標(biāo)準(zhǔn)渲染流水線(或者作為渲染流水線的軟件程序)中進(jìn)行渲染,而將所述刪除了所述部分模型數(shù)據(jù)的保密類型模型數(shù)據(jù)發(fā)送到客戶端的標(biāo)準(zhǔn)渲染流水線進(jìn)行渲染并最后對(duì)這兩部分渲染后的模型數(shù)據(jù)進(jìn)行組合。這樣可以進(jìn)一步地大大減少了服務(wù)器的渲染負(fù)擔(dān)和增強(qiáng)了保密性。本發(fā)明還提供一種用于保護(hù)模型數(shù)據(jù)的系統(tǒng)800。所述系統(tǒng)800包括有獲取裝置 801,其用于獲取模型數(shù)據(jù);識(shí)別裝置803,用于識(shí)別模型數(shù)據(jù)的類型;第一發(fā)送裝置805,用于如果模型數(shù)據(jù)被識(shí)別為第一類型模型數(shù)據(jù),則發(fā)送識(shí)別的第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染,其中第一渲染流水線為保密的渲染流水線;第二發(fā)送裝置807,用于如果模型數(shù)據(jù)被識(shí)別為第二類型模型數(shù)據(jù),則發(fā)送識(shí)別的第二類型模型數(shù)據(jù)到第二渲染流水線以進(jìn)行渲染。系統(tǒng)800的上述裝置的相關(guān)實(shí)現(xiàn)方法在上面都進(jìn)行了詳細(xì)的闡述,因此在此不再贅述。優(yōu)選地,系統(tǒng)800還包括用于在被發(fā)送到第一渲染流水線之前,對(duì)第一類型模型數(shù)據(jù)基于客戶端的攝像機(jī)是否可見進(jìn)行剪裁的裝置。
優(yōu)選地,系統(tǒng)800還包括用于在被發(fā)送到第一渲染流水線之前,選取第一類型模型數(shù)據(jù)的部分模型數(shù)據(jù)的裝置;以及用于從所述第一類型模型數(shù)據(jù)中刪除所述部分模型數(shù)據(jù)的裝置。優(yōu)選地,其中所述第一發(fā)送裝置805包括用于發(fā)送所述部分模型數(shù)據(jù)到所述第一渲染流水線的裝置。優(yōu)選地,所述系統(tǒng)800還包括用于將刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)發(fā)送到第二渲染流水線以進(jìn)行渲染的裝置。優(yōu)選地,所述系統(tǒng)800還包括用于組合渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)以形成渲染后的第一類型模型數(shù)據(jù)的裝置;以及用于組合渲染后的第一、二類型模型數(shù)據(jù)的裝置。優(yōu)選地,所述用于組合渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)以形成渲染后的第一類型模型數(shù)據(jù)的裝置還包括用于根據(jù)所述部分模型數(shù)據(jù)與所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)之間對(duì)應(yīng)的原始位置關(guān)系,組合得到渲染后的第一類型模型數(shù)據(jù)的裝置。優(yōu)選地,其中第一渲染流水線部署在服務(wù)器端,第二渲染流水線部署在客戶端。優(yōu)選地,其中第一渲染流水線為軟件程序,第二渲染流水線為標(biāo)準(zhǔn)硬件渲染流水線。優(yōu)選地,其中通過(guò)模型數(shù)據(jù)文件中的標(biāo)志來(lái)標(biāo)示所述模型數(shù)據(jù)的類型。另外,根據(jù)本發(fā)明用于保護(hù)模型數(shù)據(jù)的方法還可以通過(guò)計(jì)算機(jī)程序產(chǎn)品來(lái)實(shí)施, 該計(jì)算機(jī)程序產(chǎn)品包括用于當(dāng)在計(jì)算機(jī)上運(yùn)行所述計(jì)算機(jī)程序產(chǎn)品時(shí)執(zhí)行以實(shí)施本發(fā)明的仿真方法的軟件代碼部分。還可以通過(guò)在計(jì)算機(jī)可讀記錄介質(zhì)中記錄一計(jì)算機(jī)程序來(lái)實(shí)施本發(fā)明,該計(jì)算機(jī)程序包括用于當(dāng)在計(jì)算機(jī)上運(yùn)行所述計(jì)算機(jī)程序時(shí)執(zhí)行以實(shí)施根據(jù)本發(fā)明的仿真方法的軟件代碼部分。即,根據(jù)本發(fā)明的仿真方法的過(guò)程能夠以計(jì)算機(jī)可讀介質(zhì)中的指令的形式和各種其它形式分發(fā),而不管實(shí)際用來(lái)執(zhí)行分發(fā)的信號(hào)承載介質(zhì)的特定類型。計(jì)算機(jī)可讀介質(zhì)的例子包括諸如EPROM、ROM、磁帶、紙、軟盤、硬盤驅(qū)動(dòng)器、RAM和CD-ROM的介質(zhì)以及諸如數(shù)字和模擬通信鏈路的傳輸型介質(zhì)。盡管參考本發(fā)明的優(yōu)選實(shí)施例具體展示和描述了本發(fā)明,但是本領(lǐng)域一般技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)上的各種修改。
權(quán)利要求
1.一種用于保護(hù)模型數(shù)據(jù)的方法,其中包括 獲取模型數(shù)據(jù);識(shí)別模型數(shù)據(jù)的類型;如果模型數(shù)據(jù)被識(shí)別為第一類型模型數(shù)據(jù),則發(fā)送第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染,其中第一渲染流水線為保密的渲染流水線;以及如果模型數(shù)據(jù)被識(shí)別為第二類型模型數(shù)據(jù),則發(fā)送第二類型模型數(shù)據(jù)到第二渲染流水線以進(jìn)行渲染。
2.如權(quán)利要求1所述的方法,還包括在第一類型模型數(shù)據(jù)的至少一部分被發(fā)送到第一渲染流水線之前,根據(jù)第一類型模型數(shù)據(jù)相對(duì)于客戶端的攝像機(jī)是否可見,剪裁第一類型模型數(shù)據(jù)。
3.如權(quán)利要求1或2所述的方法,還包括在第一類型模型數(shù)據(jù)的至少一部分被發(fā)送到第一渲染流水線之前,選取第一類型模型數(shù)據(jù)的部分模型數(shù)據(jù);從所述第一類型模型數(shù)據(jù)中刪除所述部分模型數(shù)據(jù),其中所述發(fā)送第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染包括 發(fā)送所述部分模型數(shù)據(jù)到所述第一渲染流水線。
4.如權(quán)利要求3所述的方法,還包括將刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)發(fā)送到第二渲染流水線以進(jìn)行渲染。
5.如權(quán)利要求4所述的方法,還包括組合渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)以形成渲染后的第一類型模型數(shù)據(jù);以及組合渲染后的第一、二類型模型數(shù)據(jù)。
6.如權(quán)利要求5所述的方法,所述組合渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)以形成渲染后的第一類型模型數(shù)據(jù)還包括根據(jù)所述部分模型數(shù)據(jù)與所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)之間對(duì)應(yīng)的原始位置關(guān)系,組合得到渲染后的第一類型模型數(shù)據(jù)。
7.如權(quán)利要求1所述的方法,其中第一渲染流水線部署在服務(wù)器端,第二渲染流水線部署在客戶端。
8.如權(quán)利要求1或4所述的方法,其中第一渲染流水線為軟件程序,第二渲染流水線為標(biāo)準(zhǔn)硬件渲染流水線。
9.如權(quán)利要求1所述的方法,其中通過(guò)模型數(shù)據(jù)文件中的標(biāo)志來(lái)標(biāo)示所述模型數(shù)據(jù)的類型。
10.如權(quán)利要求1所述的方法,其中第一渲染流水線和第二渲染流水線在渲染時(shí)使用相同的攝像機(jī)位置和攝像機(jī)角度。
11.一種用于保護(hù)模型數(shù)據(jù)的系統(tǒng),其中包括 獲取裝置,用于獲取模型數(shù)據(jù);識(shí)別裝置,用于識(shí)別模型數(shù)據(jù)的類型;第一發(fā)送裝置,用于如果模型數(shù)據(jù)被識(shí)別為第一類型模型數(shù)據(jù),則發(fā)送識(shí)別的第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染,其中第一渲染流水線為保密的渲染流水線;以及第二發(fā)送裝置,用于如果模型數(shù)據(jù)被識(shí)別為第二類型模型數(shù)據(jù),則發(fā)送識(shí)別的第二類型模型數(shù)據(jù)到第二渲染流水線以進(jìn)行渲染。
12.如權(quán)利要求11所述的系統(tǒng),還包括用于在第一類型模型數(shù)據(jù)的至少一部分被發(fā)送到第一渲染流水線之前,根據(jù)第一類型模型數(shù)據(jù)相對(duì)于客戶端的攝像機(jī)是否可見,剪裁第一類型模型數(shù)據(jù)的裝置。
13.如權(quán)利要求11或12所述的系統(tǒng),還包括用于在第一類型模型數(shù)據(jù)的至少一部分被發(fā)送到第一渲染流水線之前,選取第一類型模型數(shù)據(jù)的部分模型數(shù)據(jù)的裝置;用于從所述第一類型模型數(shù)據(jù)中刪除所述部分模型數(shù)據(jù)的裝置,其中所述第一發(fā)送裝置包括用于發(fā)送所述部分模型數(shù)據(jù)到所述第一渲染流水線的裝置。
14.如權(quán)利要求13所述的系統(tǒng),還包括用于將刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)發(fā)送到第二渲染流水線以進(jìn)行渲染的裝置。
15.如權(quán)利要求14所述的系統(tǒng),還包括用于組合渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)以形成渲染后的第一類型模型數(shù)據(jù)的裝置;以及用于組合渲染后的第一、二類型模型數(shù)據(jù)的裝置。
16.如權(quán)利要求15所述的系統(tǒng),所述用于組合渲染后的所述部分模型數(shù)據(jù)和渲染后的所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)以形成渲染后的第一類型模型數(shù)據(jù)的裝置還包括用于根據(jù)所述部分模型數(shù)據(jù)與所述刪除了所述部分模型數(shù)據(jù)的第一類型模型數(shù)據(jù)之間對(duì)應(yīng)的原始位置關(guān)系,組合得到渲染后的第一類型模型數(shù)據(jù)的裝置。
17.如權(quán)利要求11所述的系統(tǒng),其中第一渲染流水線部署在服務(wù)器端,第二渲染流水線部署在客戶端。
18.如權(quán)利要求11或14所述的系統(tǒng),其中第一渲染流水線為軟件程序,第二渲染流水線為標(biāo)準(zhǔn)硬件渲染流水線。
19.如權(quán)利要求11所述的系統(tǒng),其中通過(guò)模型數(shù)據(jù)文件中的標(biāo)志來(lái)標(biāo)示所述模型數(shù)據(jù)的類型。
全文摘要
本發(fā)明提供一種用于保護(hù)模型數(shù)據(jù)的方法和系統(tǒng)。其中所述方法包括獲取模型數(shù)據(jù);識(shí)別模型數(shù)據(jù)的類型;如果模型數(shù)據(jù)被識(shí)別為第一類型模型數(shù)據(jù),則發(fā)送第一類型模型數(shù)據(jù)的至少一部分到第一渲染流水線以進(jìn)行渲染,其中第一渲染流水線為保密的渲染流水線;以及如果模型數(shù)據(jù)被識(shí)別為第二類型模型數(shù)據(jù),則發(fā)送第二類型模型數(shù)據(jù)到第二渲染流水線以進(jìn)行渲染。采用本發(fā)明的方法或者系統(tǒng),可以對(duì)應(yīng)用/服務(wù)提供商的模型數(shù)據(jù)進(jìn)行保護(hù),并不會(huì)過(guò)分增加服務(wù)器的負(fù)擔(dān)。
文檔編號(hào)G06T1/00GK102385760SQ20101027053
公開日2012年3月21日 申請(qǐng)日期2010年8月27日 優(yōu)先權(quán)日2010年8月27日
發(fā)明者朱子玉, 李起成, 楊順祥, 王健, 王宜敏, 陳昊 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司