本申請要求2014年3月14日提交的題為“PROCESSING AND/OR TRANSMITTING 3D DATA”的美國非臨時(shí)專利申請序列號(hào)14/213,531的優(yōu)先權(quán),該專利申請的全部內(nèi)容通過引用并入本文。
技術(shù)領(lǐng)域
本公開總體涉及三維(3D)建模,并且更具體地,涉及處理和/或傳輸3D數(shù)據(jù)。
背景技術(shù):
數(shù)字三維(3D)模型可以基于建筑空間(例如,房屋、建筑工地、辦公空間等)的掃描來生成。通常,基于建筑空間的掃描所生成的3D模型包括大量的數(shù)據(jù)(例如,數(shù)據(jù)點(diǎn)、多邊形、紋理等)。因此,向遠(yuǎn)端客戶端設(shè)備流傳輸3D模型(例如,以在遠(yuǎn)端客戶端設(shè)備上顯示3D模型)往往很慢,因?yàn)橄鄬τ?D模型的大小,數(shù)據(jù)帶寬是有限的。此外,一旦3D模型的數(shù)據(jù)被遞送到遠(yuǎn)端客戶端設(shè)備,渲染(render)3D模型或部分3D模型進(jìn)行顯示需要額外的時(shí)間。此外,一旦3D模型的數(shù)據(jù)被遞送到遠(yuǎn)端客戶端設(shè)備,用于渲染3D模型或部分3D模型的計(jì)算資源(例如,紋理存儲(chǔ)器、可以以一定的幀速率來渲染的多邊形數(shù)量等)會(huì)是有限的。因此,在采用當(dāng)前技術(shù)將3D模型流傳輸?shù)竭h(yuǎn)端客戶端設(shè)備時(shí),用戶體驗(yàn)往往受到妨礙和/或計(jì)算資源往往受到限制。因此,可以改進(jìn)用于向遠(yuǎn)程客戶端設(shè)備流傳輸3D模型的當(dāng)前技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
下面陳述本說明書的簡化發(fā)明內(nèi)容,以便提供本說明書的一些方面的基本理解。本發(fā)明內(nèi)容不是本說明書的廣泛綜述。其既不旨在識(shí)別本說明書的關(guān)鍵特征或關(guān)鍵元件,也不旨在描繪本說明書的特定具體實(shí)施的任何范圍或權(quán)利要求的任何范圍。其唯一目的是作為后面陳述的具體實(shí)施方式的前奏,以簡化方式陳述本說明書的一些概念。
根據(jù)實(shí)現(xiàn)方式,系統(tǒng)包括分割組件、數(shù)據(jù)組件和輸出組件。分割組件接收采集的與內(nèi)部環(huán)境的三維(3D)模型關(guān)聯(lián)的3D數(shù)據(jù),并將采集的3D數(shù)據(jù)分割為與至少第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊。數(shù)據(jù)組件存儲(chǔ)包含至少一個(gè)數(shù)據(jù)區(qū)塊的至少第一細(xì)節(jié)層次和第二細(xì)節(jié)層次的3D數(shù)據(jù)。輸出組件基于與第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的信息,向遠(yuǎn)端客戶端設(shè)備傳輸至少一個(gè)數(shù)據(jù)區(qū)塊的與第一細(xì)節(jié)層次或第二細(xì)節(jié)層次關(guān)聯(lián)的一部分?jǐn)?shù)據(jù)。在一方面,分割組件基于識(shí)別出的3D模型的建筑元素來將采集的3D數(shù)據(jù)分割為至少一個(gè)數(shù)據(jù)區(qū)塊。
另外,非限制性實(shí)現(xiàn)方式提供用于:接收采集的與室內(nèi)環(huán)境的三維(3D)模型關(guān)聯(lián)的采集3D數(shù)據(jù),將采集的3D數(shù)據(jù)分割為與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)段,在數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)包含與至少一個(gè)數(shù)據(jù)段關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次的3D數(shù)據(jù),并基于根據(jù)與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的幾何形狀數(shù)據(jù)或紋理數(shù)據(jù)確定的順序,向遠(yuǎn)端設(shè)備傳輸至少一個(gè)數(shù)據(jù)段的多個(gè)細(xì)節(jié)層次。
根據(jù)另一實(shí)現(xiàn)方式,系統(tǒng)包括服務(wù)器。服務(wù)器將與內(nèi)部環(huán)境的三維(3D)模型關(guān)聯(lián)的3D數(shù)據(jù)分割為與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊,在數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次,并基于根據(jù)與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的數(shù)據(jù)確定的傳輸順序,向遠(yuǎn)端設(shè)備傳輸與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次。
根據(jù)另一實(shí)現(xiàn)方式,系統(tǒng)包括分割組件、數(shù)據(jù)組件和輸出組件。分割組件接收采集的與內(nèi)部環(huán)境的三維(3D)模型關(guān)聯(lián)的3D數(shù)據(jù),并將采集的3D數(shù)據(jù)分割為與細(xì)節(jié)層次關(guān)聯(lián)的數(shù)據(jù)區(qū)塊和與其它細(xì)節(jié)層次關(guān)聯(lián)的多個(gè)其它數(shù)據(jù)區(qū)塊。數(shù)據(jù)組件存儲(chǔ)至少包含數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次和多個(gè)其它數(shù)據(jù)區(qū)塊的其它細(xì)節(jié)層次的3D數(shù)據(jù)。輸出組件向遠(yuǎn)端設(shè)備初始傳輸數(shù)據(jù)區(qū)塊,并隨后基于與其它細(xì)節(jié)層次關(guān)聯(lián)的信息,向該遠(yuǎn)端設(shè)備傳輸多個(gè)其它數(shù)據(jù)區(qū)塊的一部分?jǐn)?shù)據(jù)。
下面的具體實(shí)施方式和附圖闡述本說明書的某些例示性方面。然而,這些方面表示本說明書的原理可采用的各種方式中的一些方式。通過下面的結(jié)合附圖描述的本說明書的具體實(shí)施方式,本發(fā)明的其它優(yōu)點(diǎn)和新穎特征將變得顯而易見。
附圖說明
在考慮到下面的結(jié)合附圖的具體實(shí)施方式,本發(fā)明的很多方面、具體實(shí)施、目標(biāo)和優(yōu)點(diǎn)將是顯而易見的,其中,附圖標(biāo)號(hào)指的是整個(gè)附圖的相同組件,并且其中:
圖1示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于處理和/或傳輸三維(3D)數(shù)據(jù)的示例處理組件的高層次框圖;
圖2示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于處理和/或傳輸3D數(shù)據(jù)的系統(tǒng)的高層次框圖;
圖3示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于處理和/或傳輸3D數(shù)據(jù)的另一系統(tǒng)的高層次框圖;
圖4示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的與3D模型相關(guān)聯(lián)的子區(qū)間的示意圖;
圖5示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于處理和/或傳輸三維(3D)數(shù)據(jù)的示例方法的流程圖;
圖6示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于處理和/或傳輸三維(3D)數(shù)據(jù)的另一示例方法的流程圖;
圖7示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于處理和/或傳輸三維(3D)數(shù)據(jù)的又一示例方法的流程圖;
圖8示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于處理和/或傳輸三維(3D)數(shù)據(jù)的又一示例方法的流程圖;
圖9示出根據(jù)本文所述的各種方面和實(shí)現(xiàn)方式的用于基于觀察位置從服務(wù)器向遠(yuǎn)端客戶端設(shè)備發(fā)送數(shù)據(jù)區(qū)塊的示例方法的流程圖;
圖10為示出合適的運(yùn)行環(huán)境的示意性框圖;以及
圖11為示例計(jì)算環(huán)境的示意性框圖。
具體實(shí)施方式
現(xiàn)在參考附圖描述本公開的各個(gè)方面,其中,相同附圖標(biāo)號(hào)被用于指示所有附圖的相同元件。在下面的具體實(shí)施方式中,為了解釋目的,闡述很多具體細(xì)節(jié)以提供對一個(gè)或多個(gè)方面的透徹理解。然而,應(yīng)理解,本公開的某些方面可在沒有這些具體細(xì)節(jié)或通過其它方法、組件、材料等來實(shí)施。在其它實(shí)例中,熟知的結(jié)構(gòu)和設(shè)備以框圖的形式示出以有利于描述一個(gè)或多個(gè)方面。
數(shù)字三維(3D)模型可以基于建筑空間(例如,房屋、建筑工地、辦公空間等)的掃描來生成。通常,基于建筑空間的掃描所生成的3D模型包括大量的數(shù)據(jù)(例如,數(shù)據(jù)點(diǎn)、多邊形、紋理等)。因此,向遠(yuǎn)端客戶端設(shè)備流傳輸3D模型(例如,以在遠(yuǎn)端客戶端設(shè)備上顯示3D模型)往往很慢,因?yàn)橄鄬τ?D模型的大小,數(shù)據(jù)帶寬是有限的。此外,一旦3D模型的數(shù)據(jù)被遞送到遠(yuǎn)端客戶端設(shè)備,渲染3D模型或部分3D模型進(jìn)行顯示需要額外的時(shí)間。此外,一旦3D模型的數(shù)據(jù)被遞送到遠(yuǎn)端客戶端設(shè)備,渲染3D模型或部分3D模型的資源(例如,紋理存儲(chǔ)器、可以以一定的幀速率來渲染的多邊形數(shù)量等)會(huì)是有限的。因此,在采用當(dāng)前技術(shù)將3D模型流傳輸?shù)竭h(yuǎn)端客戶端設(shè)備時(shí),用戶體驗(yàn)往往受到妨礙和/或計(jì)算資源往往受到限制。因此,可以改進(jìn)用于向遠(yuǎn)程客戶端設(shè)備流傳輸3D模型的當(dāng)前技術(shù)。
為此,提出了用于處理和/或傳輸3D數(shù)據(jù)(例如,3D重構(gòu)數(shù)據(jù))的技術(shù)。例如,3D數(shù)據(jù)(例如,3D重構(gòu)數(shù)據(jù))可以基于3D重構(gòu)系統(tǒng)來生成,該3D重構(gòu)系統(tǒng)允許自動(dòng)和/或半自動(dòng)形成真實(shí)世界位置(例如,房屋、公寓、建筑工地、辦公空間、商業(yè)空間、其它生活空間、其它工作空間等)的3D模型。在一個(gè)示例中,3D重構(gòu)系統(tǒng)可以采用從3D傳感器(例如,激光掃描儀、結(jié)構(gòu)化光系統(tǒng)、時(shí)間飛行系統(tǒng)等)采集的2D圖像數(shù)據(jù)和/或深度數(shù)據(jù)來生成3D數(shù)據(jù)(例如,3D重構(gòu)數(shù)據(jù))。在一方面,3D數(shù)據(jù)(例如,3D重構(gòu)數(shù)據(jù))可以被劃分(例如,自動(dòng)劃分)為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊(data chunk)。數(shù)據(jù)區(qū)塊可以是3D模型或3D模型的特定區(qū)域的區(qū)塊。一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊可以基于與3D數(shù)據(jù)關(guān)聯(lián)的建筑元素(例如,墻壁、地板、房間、對象等)來確定。例如,與3D數(shù)據(jù)關(guān)聯(lián)的建筑元素可以被識(shí)別(例如,自動(dòng)識(shí)別)、分段(例如,自動(dòng)分段)和/或與數(shù)據(jù)區(qū)塊關(guān)聯(lián)。每個(gè)數(shù)據(jù)區(qū)塊可以與一個(gè)或多個(gè)細(xì)節(jié)層次(level of detail)關(guān)聯(lián)。例如,每個(gè)數(shù)據(jù)區(qū)塊可以與幾何形狀的一個(gè)或多個(gè)細(xì)節(jié)層次和/或紋理(例如,視覺紋理)的一個(gè)或多個(gè)細(xì)節(jié)層次關(guān)聯(lián)。在另一方面,可以確定(例如,自動(dòng)確定)傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或與每個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的細(xì)節(jié)層次的順序。例如,可以確定向遠(yuǎn)端設(shè)備(例如,遠(yuǎn)端客戶端設(shè)備)流傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或與每個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的細(xì)節(jié)層次的順序。因此,可以提高用于渲染被流傳輸?shù)竭h(yuǎn)程設(shè)備的3D數(shù)據(jù)(例如,3D模型)的加載時(shí)間。此外,可以改善在采用遠(yuǎn)端客戶端設(shè)備來觀看3D數(shù)據(jù)(例如,通過3D模型觀察器來觀看3D模型)時(shí)的用戶體驗(yàn)。
初始參考圖1,其示出根據(jù)主題公開的方面的可以有利于處理和/或傳輸3D數(shù)據(jù)(例如,3D重構(gòu)數(shù)據(jù))的系統(tǒng)100。在一個(gè)示例中,系統(tǒng)100可以在與3D數(shù)據(jù)(例如,3D重構(gòu)數(shù)據(jù))關(guān)聯(lián)的至少一個(gè)服務(wù)器上實(shí)現(xiàn)或結(jié)合該至少一個(gè)服務(wù)器。系統(tǒng)100可以被各種系統(tǒng),諸如但不限于3D建模系統(tǒng)、3D重構(gòu)系統(tǒng)、服務(wù)器系統(tǒng)、基于云的系統(tǒng)等采用。
具體地,系統(tǒng)100可以提供處理組件102,其具有可以被用在例如3D建模應(yīng)用(例如,3D重構(gòu)應(yīng)用)中的分割特征(例如,分割組件104)、數(shù)據(jù)特征(例如,數(shù)據(jù)組件105)、選擇特征(例如,選擇組件106)和/或輸出特征(例如,輸出組件108)。分割特征可以接收所采集的與內(nèi)部環(huán)境的3D模型關(guān)聯(lián)的3D數(shù)據(jù)。例如,3D模型可以包括3D網(wǎng)格(例如,三角形網(wǎng)格、四邊形網(wǎng)格、參數(shù)化網(wǎng)格等)、點(diǎn)云、表面元素(例如,曲面元素)和/或通過采用一個(gè)或多個(gè)3D傳感器所采集的其它數(shù)據(jù)。此外,分割特征可以將采集的3D數(shù)據(jù)分割為與至少第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊。數(shù)據(jù)特征可以存儲(chǔ)包含該至少一個(gè)數(shù)據(jù)區(qū)塊的至少第一細(xì)節(jié)層次和第二細(xì)節(jié)層次的3D數(shù)據(jù)。輸出特征可以基于與第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的信息(例如,元數(shù)據(jù))向遠(yuǎn)端客戶端設(shè)備傳輸與第一細(xì)節(jié)層次或第二細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊的一部分?jǐn)?shù)據(jù)。選擇特征可以基于與第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的信息來選擇與第一細(xì)節(jié)層次或第二細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊的一部分?jǐn)?shù)據(jù)。在實(shí)施例中,系統(tǒng)100可以包括選擇特征(例如,選擇特征可以在服務(wù)器上實(shí)現(xiàn))。在另一實(shí)施例中,選擇特征可以與系統(tǒng)100分開實(shí)現(xiàn)(例如,選擇特征可以在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn))。
特別地,系統(tǒng)100可以包括處理組件102。在圖1中,處理組件102包括分割組件104、數(shù)據(jù)組件105、選擇組件106和/或輸出組件108。在本公開中解釋的系統(tǒng)、設(shè)備或過程的各方面可以構(gòu)成嵌入在機(jī)器內(nèi)的例如嵌入在與一個(gè)或多個(gè)機(jī)器相關(guān)聯(lián)的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(或媒介)中的機(jī)器可執(zhí)行組件。在由一個(gè)或多個(gè)機(jī)器,例如計(jì)算機(jī)、計(jì)算設(shè)備、虛擬機(jī)器等執(zhí)行時(shí),此類組件可以使該機(jī)器執(zhí)行所描述的操作。系統(tǒng)100可以包括用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行組件和指令的存儲(chǔ)器112。系統(tǒng)100可以還包括有助于系統(tǒng)100運(yùn)行指令(例如,計(jì)算機(jī)可執(zhí)行組件和指令)的處理器110。
處理組件102(例如,具有分割組件104)可以接收采集的3D數(shù)據(jù)(例如,在圖1中示出的采集的3D數(shù)據(jù))。采集的3D數(shù)據(jù)可以是采集的3D重構(gòu)數(shù)據(jù)。在一個(gè)示例中,采集的3D數(shù)據(jù)可以是原始3D重構(gòu)數(shù)據(jù)。在另一示例中,采集的3D數(shù)據(jù)可以是處理后和/或分段后的3D重構(gòu)數(shù)據(jù)。在一方面,采集的3D數(shù)據(jù)可以通過至少一個(gè)3D重構(gòu)系統(tǒng)來生成(例如,采集)。例如,至少一個(gè)3D重構(gòu)系統(tǒng)可以采用從一個(gè)或多個(gè)3D傳感器(例如,激光掃描儀、結(jié)構(gòu)化光系統(tǒng)、時(shí)間飛行系統(tǒng)等)采集的二維(2D)圖像數(shù)據(jù)和/或深度數(shù)據(jù)來自動(dòng)化和/或半自動(dòng)地生成內(nèi)部環(huán)境(例如,建筑空間、建筑結(jié)構(gòu)、物理對象、...)的3D模型。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)3D傳感器可以在攝像機(jī)上實(shí)現(xiàn)以采集(例如,同時(shí)采集)與內(nèi)部環(huán)境關(guān)聯(lián)的紋理數(shù)據(jù)和幾何形狀數(shù)據(jù)。在另一實(shí)施例中,一個(gè)或多個(gè)3D傳感器可以在移動(dòng)設(shè)備(例如,智能電話等)上實(shí)現(xiàn)以采集與內(nèi)部環(huán)境關(guān)聯(lián)的紋理數(shù)據(jù)和幾何形狀數(shù)據(jù)。
內(nèi)部環(huán)境的3D模型(例如,采集的3D數(shù)據(jù))可以包括幾何形狀數(shù)據(jù)和/或紋理數(shù)據(jù)。幾何形狀數(shù)據(jù)可以包括幾何形狀的數(shù)據(jù)點(diǎn),除此之外還包括與幾何形狀的數(shù)據(jù)點(diǎn)關(guān)聯(lián)的紋理坐標(biāo)(例如,指示紋理數(shù)據(jù)如何應(yīng)用于幾何形狀數(shù)據(jù)的紋理坐標(biāo))。例如,內(nèi)部環(huán)境的3D模型(例如,采集的3D數(shù)據(jù))可以包括網(wǎng)格數(shù)據(jù)(例如,三角形網(wǎng)格、四邊形網(wǎng)格、參數(shù)網(wǎng)格等)、一個(gè)或多個(gè)紋理映射網(wǎng)格(例如,一個(gè)或多個(gè)紋理映射多邊形網(wǎng)格等)、點(diǎn)云、點(diǎn)云集、曲面元素和/或通過采用一個(gè)或多個(gè)3D傳感器所構(gòu)造的其它數(shù)據(jù)。在一個(gè)示例中,采集的3D數(shù)據(jù)可以以三角形網(wǎng)格的格式、四邊形網(wǎng)格的格式、曲面元素的格式、參數(shù)化實(shí)心格式、幾何形狀基元格式和/或另外類型的格式來配置。例如,在紋理映射網(wǎng)格中的多邊形的每個(gè)頂點(diǎn)可以包含給定紋理(例如,2D紋理)中的點(diǎn)的UV坐標(biāo)(例如,2D紋理),其中U和V是給定紋理的軸線。在三角形網(wǎng)格的非限制性示例中,三角形的每個(gè)頂點(diǎn)包含給定紋理中的點(diǎn)的UV坐標(biāo)。由三角形的三個(gè)點(diǎn)在紋理中形成的三角形(例如,一組三個(gè)UV坐標(biāo))可以被映射到網(wǎng)格三角形上以用于渲染目的。在一方面,采集的3D數(shù)據(jù)可以是未分段的采集的3D數(shù)據(jù)。例如,采集的3D數(shù)據(jù)可以是在被一個(gè)或多個(gè)3D傳感器(例如,至少一個(gè)3D重構(gòu)系統(tǒng))采集之后未被分割和/或處理的3D數(shù)據(jù)。
內(nèi)部環(huán)境(例如,室內(nèi)環(huán)境)可以包括但不限于一個(gè)或多個(gè)房間、一個(gè)或多個(gè)房屋、一個(gè)或多個(gè)公寓、一個(gè)或多個(gè)辦公空間、一個(gè)或多個(gè)建筑工地、一個(gè)或多個(gè)商業(yè)空間、其它生活空間、其它工作空間、其它環(huán)境空間、建筑物的內(nèi)部、交通工具、船舶、航空器、地鐵、隧道、爬行空間、設(shè)備區(qū)、閣樓、空洞等。此外,內(nèi)部環(huán)境可以包括包含在一個(gè)或多個(gè)房間、一個(gè)或多個(gè)房屋、一個(gè)或多個(gè)公寓、一個(gè)或多個(gè)辦公空間、一個(gè)或多個(gè)建筑工地、一個(gè)或多個(gè)商業(yè)空間、其它生活空間、其它工作空間、其它環(huán)境空間中的物理對象。
分割組件104可以分割采集的3D數(shù)據(jù)。例如,分割組件104可以將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊(例如,一個(gè)或多個(gè)數(shù)據(jù)分區(qū)、一個(gè)或多個(gè)數(shù)據(jù)段等)。數(shù)據(jù)區(qū)塊可以是3D模型或3D模型的特定區(qū)域(例如,子區(qū)間)的區(qū)塊。一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊中的每一者可以包括幾何形狀的一個(gè)或多個(gè)細(xì)節(jié)層次和/或紋理(例如,視覺紋理)的一個(gè)或多個(gè)細(xì)節(jié)層次。在一個(gè)示例中,一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊中的每一者可以包括幾何形狀的多個(gè)細(xì)節(jié)層次和/或紋理的多個(gè)細(xì)節(jié)層次。因此,數(shù)據(jù)區(qū)塊可以包括分層結(jié)構(gòu)(例如,與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的分層結(jié)構(gòu))。在另一示例中,分割組件104可以生成3D模型的單個(gè)數(shù)據(jù)區(qū)塊。3D模型的單個(gè)數(shù)據(jù)區(qū)塊可以與多個(gè)子區(qū)塊關(guān)聯(lián)。多個(gè)子區(qū)塊中的每一者可以是比3D模型的單個(gè)數(shù)據(jù)區(qū)塊更高的分辨率。在一方面,分割組件104可以將采集的3D數(shù)據(jù)分割為與至少第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊。一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次可以在向遠(yuǎn)端客戶端設(shè)備傳輸3D數(shù)據(jù)時(shí)(例如,在遠(yuǎn)端客戶端設(shè)備上渲染和/或加載3D模型時(shí))提供更大的靈活性。在一方面,分割組件104可以向一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊中的每一者分配標(biāo)識(shí)符(例如,標(biāo)識(shí)符值、標(biāo)記等)(例如,以識(shí)別和/或描述每個(gè)數(shù)據(jù)區(qū)塊)。
分割組件104可以識(shí)別(例如,自動(dòng)識(shí)別)與采集的3D數(shù)據(jù)(例如,3D模型)關(guān)聯(lián)的建筑元素。建筑元素可以包括但不限于包含在3D模型中的墻壁、地板、房間、物理對象等。分割組件104可以基于3D模型的建筑元素(例如,所識(shí)別的建筑元素)來將采集的3D數(shù)據(jù)分割為至少一個(gè)數(shù)據(jù)區(qū)塊。例如,一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊可以對應(yīng)于3D模型(例如,采集的3D數(shù)據(jù)等)的一個(gè)或多個(gè)子區(qū)間(例如,一個(gè)或多個(gè)建筑子區(qū)間、一個(gè)或多個(gè)建筑元素等)。在一方面,數(shù)據(jù)區(qū)塊可以包括平面結(jié)構(gòu),其中,3D模型的每個(gè)部分(例如,在網(wǎng)格中的三角形、在3D模型中的空間區(qū)域、3D模型的子段等)與單個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)。例如,分割組件104可以將建筑結(jié)構(gòu)(例如,房屋等)的3D模型劃分為“房間”,其中,每個(gè)“房間”與單個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)。因此,分割組件104可以使至少一個(gè)數(shù)據(jù)區(qū)塊與包含在內(nèi)部空間的3D模型中的房間關(guān)聯(lián)(例如,數(shù)據(jù)區(qū)塊可以是房屋中的房間的數(shù)據(jù)區(qū)塊)。
在另一方面,一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊中的每一者可以包括分層數(shù)據(jù)結(jié)構(gòu)。例如,數(shù)據(jù)區(qū)塊可以包括與細(xì)節(jié)層次關(guān)聯(lián)的樹狀數(shù)據(jù)結(jié)構(gòu)。在另一方面,特定數(shù)據(jù)庫可以部分地包括、完全包括或替代例如在樹狀數(shù)據(jù)結(jié)構(gòu)中的其它數(shù)據(jù)區(qū)塊。在一個(gè)示例中,一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊可以與分層數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián)。在另一示例中,八叉樹數(shù)據(jù)結(jié)構(gòu)可以被實(shí)現(xiàn)以將采集的3D數(shù)據(jù)(例如,3D模型)分層地劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊(例如,形成樹狀數(shù)據(jù)結(jié)構(gòu))。例如,分割組件104可以基于樹狀數(shù)據(jù)結(jié)構(gòu)(例如,八叉樹數(shù)據(jù)結(jié)構(gòu))將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。在八叉樹數(shù)據(jù)結(jié)構(gòu)中,特定數(shù)據(jù)區(qū)塊如果不是葉節(jié)點(diǎn),則可以包括高達(dá)八個(gè)孩節(jié)點(diǎn)(例如,八個(gè)關(guān)聯(lián)的數(shù)據(jù)區(qū)塊、八個(gè)子區(qū)塊等),它們一起可以覆蓋特定數(shù)據(jù)區(qū)塊中的相同空間區(qū)域。在一個(gè)示例中,八個(gè)孩節(jié)點(diǎn)可以對應(yīng)于八個(gè)數(shù)據(jù)塊(data block),這八個(gè)數(shù)據(jù)塊是通過經(jīng)由與三個(gè)軸線對準(zhǔn)并其中心居于數(shù)據(jù)區(qū)塊的中心的平面進(jìn)一步細(xì)分?jǐn)?shù)據(jù)區(qū)塊來形成的。在另一示例中,多個(gè)數(shù)據(jù)區(qū)塊可以共享相同的紋理數(shù)據(jù)的圖像。例如,基于分層數(shù)據(jù)結(jié)構(gòu)被確定為相關(guān)的一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊可以與相同的紋理數(shù)據(jù)關(guān)聯(lián)。
在一方面,選擇組件106可以將最低分辨率的數(shù)據(jù)區(qū)塊選擇為初始的數(shù)據(jù)區(qū)塊。在一個(gè)示例中,選定的最低分辨率數(shù)據(jù)區(qū)塊可以包括與其它數(shù)據(jù)區(qū)塊不同的數(shù)據(jù)結(jié)構(gòu)。在另一示例中,選定的最低分辨率數(shù)據(jù)區(qū)塊可以包括最低網(wǎng)格復(fù)雜性和/或最低紋理分辨率。在又一示例中,選定的最低分辨率數(shù)據(jù)區(qū)塊可以包括與位置數(shù)據(jù)關(guān)聯(lián)的平面圖像。選擇組件106可以將能夠被加載到遠(yuǎn)端客戶端設(shè)備上的最低細(xì)節(jié)數(shù)據(jù)區(qū)塊(例如,唯一的最低細(xì)節(jié)數(shù)據(jù)區(qū)塊)選擇為3D模型的初始數(shù)據(jù)區(qū)塊。
在一個(gè)實(shí)施例中,初始數(shù)據(jù)區(qū)塊可以是包括特定數(shù)量的平面的(例如,最少數(shù)量的平面)3D模型。一個(gè)或多個(gè)平面可以對應(yīng)于3D模型中的每個(gè)墻壁、每個(gè)地板和/或每個(gè)天花板。此外,通過選擇在每個(gè)房間的中部或接近墻壁的視點(diǎn),每個(gè)平面可以被紋理化。從選定視點(diǎn)看到的場景可以被投影到使用3D模型(例如,全分辨率3D模型)表示墻壁、地板或天花板的平面上。因此,3D模型可以以較少的多邊形計(jì)數(shù)和/或最少數(shù)量的紋理來處理(例如,可以減少3D模型的多邊形計(jì)數(shù)和/或紋理)。在一方面,通過應(yīng)用紋理壓縮、選擇每個(gè)平面的單個(gè)平均顏色或其它技術(shù),可以進(jìn)一步減少紋理大小。在另一方面,平面可以被擴(kuò)展以在邊緣和/或拐角重疊(例如,以可視地指示3D模型的低分辨率版本,從而允許在傳輸和/或加載與家具等關(guān)聯(lián)的3D數(shù)據(jù)之前,以較少數(shù)量的缺失數(shù)據(jù)來觀看房間)。
在另一實(shí)施例中,初始的數(shù)據(jù)區(qū)塊可以是將在3D模型的地平面上渲染的單個(gè)紋理。例如,初始的數(shù)據(jù)區(qū)塊可以對應(yīng)于單個(gè)網(wǎng)格對象(例如,被單個(gè)矩形紋理紋理化的單個(gè)矩形網(wǎng)格對象)。在一方面,單個(gè)網(wǎng)格對象的紋理可以是建筑結(jié)構(gòu)(例如,房屋)的鳥瞰圖或建筑結(jié)構(gòu)(例如,房屋)的內(nèi)部空間的鳥瞰圖。例如,鳥瞰圖可以是3D模型在地平面上的正投影。在一個(gè)示例中,背面剔除(back-face culling)可以應(yīng)用于單個(gè)網(wǎng)格對象,使得建筑結(jié)構(gòu)中的房間的地板和/或其它朝上的表面(例如,桌面、柜臺(tái)等)在3D模型的投影圖像中不包括該房間的天花板的情況下出現(xiàn)。
在一方面,初始的區(qū)塊可以被劃分為一起包括3D模型的一組數(shù)據(jù)區(qū)塊。例如,數(shù)據(jù)區(qū)塊可以包括匹配或近似匹配3D模型的更高分辨率數(shù)據(jù)區(qū)塊或一組更高分辨率數(shù)據(jù)區(qū)塊的邊界的物理邊界。因此,由于更高分辨率數(shù)據(jù)區(qū)塊被選擇組件106選擇和/或被輸出組件108傳輸,因此一旦對應(yīng)于3D模型的相同部分的所有更高分辨率的區(qū)塊也被選擇組件106選擇和/或被輸出組件108傳輸,數(shù)據(jù)區(qū)塊就可以從遠(yuǎn)端客戶端設(shè)備的顯示器移除。
應(yīng)明白,分割組件104可以以各種方式分割3D數(shù)據(jù)(例如,生成一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊)。還應(yīng)明白,分割組件104可以用其它分割技術(shù)來組合和/或嵌套特定分割技術(shù)。此外,應(yīng)明白,分割組件104可以基于3D模型的組成向不同的3D模型應(yīng)用不同的分割技術(shù)。
在一方面,分割組件104可以將采集的3D數(shù)據(jù)(例如,3D模型)劃分為具有固定高度和/或固定寬度的多個(gè)規(guī)則間隔的數(shù)據(jù)塊。例如,數(shù)據(jù)塊可以包括對應(yīng)于寬度、長度和高度的(X,Y,Z)維度。此外,數(shù)據(jù)塊可以被配置為空間填充的圖案,使得數(shù)據(jù)塊的中心可以包括坐標(biāo)(a*寬度、b*長度、c*高度),其中,a、b和c為整數(shù)。因此,X坐標(biāo)可以是寬度的倍數(shù),Y坐標(biāo)可以是長度的倍數(shù),Z坐標(biāo)可以是高度的倍數(shù)。此外,每個(gè)數(shù)據(jù)塊可以對應(yīng)于數(shù)據(jù)區(qū)塊。被包含在數(shù)據(jù)塊中(例如,完全包含在內(nèi))的多邊形(例如,三角形、其它幾何形狀等)可被包含在對應(yīng)的數(shù)據(jù)區(qū)塊中。此外,被包含在不止一個(gè)數(shù)據(jù)塊中的多邊形(例如,三角形、其它幾何形狀等)可以被分配給特定對應(yīng)的數(shù)據(jù)區(qū)塊。在一方面,不包含幾何形狀的數(shù)據(jù)區(qū)塊可以被丟棄和/或在數(shù)據(jù)樹結(jié)構(gòu)中指定為空。在另一方面,被包含在不止一個(gè)數(shù)據(jù)塊中的幾何形狀(例如,從一個(gè)數(shù)據(jù)塊跨到另一數(shù)據(jù)塊)可以被細(xì)分。例如,三角形可以被細(xì)分,使得三角形的每個(gè)成分被包含(例如,完全包含)在一個(gè)數(shù)據(jù)塊內(nèi)。因此,子幾何形狀可以被分配給與完全包含子幾何形狀的數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)區(qū)塊。
在另一方面,分割組件104可以基于Quad+Z樹數(shù)據(jù)結(jié)構(gòu)將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。例如,與3D模型關(guān)聯(lián)的采集的3D數(shù)據(jù)可以包括建筑結(jié)構(gòu)(例如,建筑物等)的一個(gè)或多個(gè)地板。因此,通過在X-Y平面(例如,水平面)中采用2D柵格,3D模型可以被分割。因此,被數(shù)據(jù)區(qū)塊涵蓋的體積可以是無限高度的矩形棱柱、對應(yīng)于單個(gè)地板的高度的矩形棱柱等。因此,在水平面中的給定正方形或矩形的上方或下方的3D模型的整個(gè)部分可以被包含在特定數(shù)據(jù)區(qū)塊中。在一方面,平面可以被劃分為2D塊。因此,幾何形狀可以被分配給與平面的每個(gè)數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)區(qū)塊。此外,可以按分層數(shù)據(jù)結(jié)構(gòu)細(xì)分?jǐn)?shù)據(jù)塊。
分割組件104可以基于采集的3D數(shù)據(jù)的子區(qū)間(例如,房間、單元等)將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。例如,在3D模型中的基于內(nèi)部空間的掃描(例如,通過采用一個(gè)或多個(gè)3D傳感器)所生成的子區(qū)間(例如,房間、單元等)可以被識(shí)別(例如,自動(dòng)識(shí)別)為和/或用作(例如,自動(dòng)用作)3D模型的數(shù)據(jù)區(qū)塊。在一方面,子區(qū)間(例如,房間、單元等)可以基于單元入口方法(cell and portal method)(例如,體積式單元入口方法、入口剔除等)來識(shí)別。例如,3D模型的體積式表示可以被用于有助于識(shí)別在3D模型中的子區(qū)間(例如,房間、單元等)。3D模型中待分開的對象可以對應(yīng)于3D模型中的單元,隔板可以對應(yīng)于入口。
一旦子區(qū)間(例如,房間、單元等)被識(shí)別,分割組件104可以劃分3D模型,使得被包含在每個(gè)子區(qū)間中或鄰接每個(gè)子區(qū)間的幾何形狀集對應(yīng)于數(shù)據(jù)區(qū)塊。分割組件104可以繼續(xù)細(xì)分3D模型,直到達(dá)到用于附加劃分的特定閾值分?jǐn)?shù)(例如,閾值)。一旦達(dá)到用于附加劃分的特定閾值分?jǐn)?shù),每個(gè)細(xì)分的區(qū)間可以對應(yīng)于唯一的數(shù)據(jù)區(qū)塊。在圖4中示出與自上而下視圖的3D模型400關(guān)聯(lián)的分解過程的非限制性示例。例如,3D模型400包括子區(qū)間(例如,房間、單元等)401、子區(qū)間(例如,房間、單元等)402和子區(qū)間(例如,房間、單元等)403。3D模型400還包括入口(例如,劃分線(division))404和入門(例如,劃分線)405。例如,入口可以是子區(qū)間之間(例如,在房間之間、在單元之間等)的劃分線。在一方面,子區(qū)間401、子區(qū)間402和/或子區(qū)間403可以基于一種或多種分割技術(shù)進(jìn)一步細(xì)分為數(shù)據(jù)區(qū)塊和/或分層子數(shù)據(jù)區(qū)塊集。3D模型400可以對應(yīng)于分割后的(例如,處理后的)3D數(shù)據(jù)。
物理對象可以被包括在每個(gè)子區(qū)間(例如,在子區(qū)間401、子區(qū)間402和/或子區(qū)間403)內(nèi)。例如,物理對象406可以被識(shí)別(例如,自動(dòng)識(shí)別)和/或分開(例如,自動(dòng)分開)為在子區(qū)間402內(nèi)的唯一數(shù)據(jù)區(qū)塊。物理對象可以包括但不限于家具、其它移動(dòng)對象等。在一方面,物理對象可以被連接到特定子區(qū)間(例如,與其關(guān)聯(lián))作為連接組件。應(yīng)明白,3D模型400可以包括不止一個(gè)物理對象。另外,分割組件104可以將墻壁和/或地板識(shí)別為3D模型400中的主要平面(prominent plane)。在分割組件104將墻壁和/或地板識(shí)別為3D模型400中的主要平面和/或使這些主要平面(例如,被識(shí)別的墻壁和/或地板)關(guān)聯(lián)為各個(gè)數(shù)據(jù)區(qū)塊之后,分割組件104可以從待分配給數(shù)據(jù)區(qū)塊的幾何形狀(例如,采集的3D數(shù)據(jù))中移除所識(shí)別的墻壁和/或地板。3D模型400中剩余的連接組件可以是物理對象(例如,沙發(fā)、桌子、臺(tái)燈辦公桌、其它家具等)。因此,每個(gè)連接組件可以被分配給唯一的數(shù)據(jù)區(qū)塊。另外或替換地,可以應(yīng)用其它技術(shù)(例如,最小切割的圖形理論的概念等)來進(jìn)一步細(xì)分3D模型400的剩余部分。
分割組件104可以基于內(nèi)容類型將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。例如,采集的3D數(shù)據(jù)(例如,3D模型)的理解和/或分段可以被實(shí)現(xiàn)為分割采集的3D數(shù)據(jù)(例如,3D模型)的基礎(chǔ)。在一個(gè)示例中,分割組件104可以基于體積式圖形切割、最小表面、有效3D場景分段、3D場景的虛擬探測等將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。然而,應(yīng)當(dāng)理解,分割組件104可以基于不同的技術(shù)將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。在一方面,通過識(shí)別網(wǎng)格內(nèi)的平面,分割組件104可以識(shí)別采集的3D數(shù)據(jù)中的墻壁、地板和/或天花板。例如,包括特定大小和/或特定角度(例如,對應(yīng)于墻壁、地板或天花板的角度)的平面可以被識(shí)別為墻壁、地板和/或天花板(例如,主要平面)。在一個(gè)示例中,分割組件104可以基于迭代方法例如隨機(jī)抽樣一致性(RANSAC)識(shí)別采集的3D數(shù)據(jù)中的墻壁、地板和/或天花板。例如,分割組件104可以選擇與公共平面關(guān)聯(lián)的某個(gè)表面區(qū)域和/或某個(gè)數(shù)量的邊緣、頂點(diǎn)或三角形。此外,分割組件104可以識(shí)別也與該公共平面關(guān)聯(lián)的其它點(diǎn)、頂點(diǎn)或三角形。因此,分割組件104可以響應(yīng)于確定某個(gè)表面區(qū)域和/或某個(gè)數(shù)量的邊緣、頂點(diǎn)或三角形與公共平面關(guān)聯(lián)而確定該公共平面為主要平面(例如,墻壁、地板或天花板)。此外,分割組件104可以移除與公共平面關(guān)聯(lián)的幾何形狀。此外,分割組件104可以重復(fù)這個(gè)識(shí)別采集的3D數(shù)據(jù)中的其它平面(例如,其它墻壁、地板或天花板)的過程。
在一個(gè)示例中,當(dāng)分割組件104識(shí)別并移除采集的3D數(shù)據(jù)的每個(gè)平面時(shí),采集的3D數(shù)據(jù)中剩下的連接組件可以包括物理對象,例如但不限于桌子、椅子、沙發(fā)、辦公桌、其它家具等。因此,分割組件104可以將采集的3D數(shù)據(jù)的每個(gè)連接組件(例如,每個(gè)物理對象)分配給唯一的數(shù)據(jù)區(qū)塊。另外或替換地,分割組件104可以對與采集的3D數(shù)據(jù)關(guān)聯(lián)的連接組件(例如,物理對象)進(jìn)行分組。例如,連接組件(例如,物理對象)可以按子區(qū)間(例如,房間)來分組。在另一示例中,連接組件(例如,物理對象)可以被分組為單個(gè)“房間內(nèi)容”數(shù)據(jù)區(qū)塊。包含在單個(gè)“房間內(nèi)容”數(shù)據(jù)區(qū)塊中的連接組件(例如,物理對象)中的每一者可以與一組子區(qū)塊(例如,數(shù)據(jù)區(qū)塊分層)關(guān)聯(lián)。例如,在一組子區(qū)塊中的每個(gè)子區(qū)塊可以與不同的分辨率程度(例如,不同的細(xì)節(jié)層次)關(guān)聯(lián)。在一方面,分割組件104可以將所識(shí)別的平面分開為數(shù)據(jù)區(qū)塊,每個(gè)所識(shí)別平面的每個(gè)連接組件形成唯一數(shù)據(jù)區(qū)塊。另外或替換地,分割組件104可以將所識(shí)別的平面和/或連接組件(例如,物理對象)合并為數(shù)量更少的數(shù)據(jù)區(qū)塊。在另一方面,可以在子區(qū)間邊界(例如,房間邊界)或者在采集的3D數(shù)據(jù)中的通過采用子區(qū)間識(shí)別技術(shù)(例如,單元入口方法等)識(shí)別的其它位置處細(xì)分平面。
在如圖4所示的非限制性示例中,在識(shí)別每個(gè)子區(qū)間(例如,每個(gè)房間)之間的分隔線(separation)之后,子區(qū)間402(例如,與房間關(guān)聯(lián)的墻壁和地板)的平面可以被組合在一起成為單個(gè)數(shù)據(jù)區(qū)塊。此外,子區(qū)間402的體積內(nèi)的剩余幾何形狀可以包括物理對象406(例如,連接組件,例如桌子)。因此,物理對象406(例如,采集的3D數(shù)據(jù)中剩余的幾何形狀)可以形成單個(gè)連接組件。此外,物理對象406可以被分配唯一數(shù)據(jù)區(qū)塊。
在一個(gè)示例中,可以實(shí)施一種或多種孔填充技術(shù)以填充與采集的3D數(shù)據(jù)關(guān)聯(lián)的缺失數(shù)據(jù)。例如,當(dāng)墻壁、地板或其它表面被物體遮擋時(shí),遮擋區(qū)域的幾何形狀數(shù)據(jù)和/或紋理數(shù)據(jù)會(huì)丟失。因此,可以實(shí)施一種或多種孔填充技術(shù)以生成遮擋區(qū)域的幾何形狀數(shù)據(jù)和/或紋理數(shù)據(jù)。在一個(gè)示例中,可以通過沿著孔邊界分兩步重復(fù)連接頂點(diǎn)對以形成三角形,直到整個(gè)孔被分成三角形,來幾何填充與在一定平面距離內(nèi)的孔邊界關(guān)聯(lián)的孔。然后,來自3D重構(gòu)系統(tǒng)的可視數(shù)據(jù)可以沿著與所確定的對孔的平面(例如,最佳擬合平面)垂直的軸線被映射到兩個(gè)維度。替換地,孔周圍區(qū)域的紋理數(shù)據(jù)可以根據(jù)基于距離的加權(quán)平均被混合以提供該孔的可視數(shù)據(jù)(例如,包含在孔中的缺失數(shù)據(jù))。替換地,孔周圍區(qū)域的紋理可以被提供作為紋理合成算法的輸入以填充與該孔關(guān)聯(lián)的缺失數(shù)據(jù)。
在一方面,分割組件104可以基于采集的3D數(shù)據(jù)的子區(qū)間(例如,房間、單元等)和內(nèi)容類型將采集的3D數(shù)據(jù)劃分為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。例如,分割組件104可以將3D模型劃分為一個(gè)或多個(gè)子區(qū)間(例如,房間)。此外,分割組件104可以將每個(gè)子區(qū)間(例如,每個(gè)房間)進(jìn)一步劃分為一組建筑結(jié)構(gòu)(例如,墻壁、地板、天花板等)并劃分為每個(gè)子區(qū)間(例如,每個(gè)房間)內(nèi)的一組物理對象(例如,家具等)。在一個(gè)示例中,在每個(gè)子區(qū)間中的對象集合可以與單個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)。在另一示例中,在每個(gè)子區(qū)間中的對象集合可以被細(xì)分為多個(gè)數(shù)據(jù)區(qū)塊。例如,在子區(qū)間中的每個(gè)物理對象可以包括唯一的數(shù)據(jù)區(qū)塊。此外,子區(qū)間的墻壁、地板和/或天花板可以包括另一數(shù)據(jù)區(qū)塊。在一個(gè)示例中,墻壁、地板和/或天花板可以包括唯一的數(shù)據(jù)區(qū)塊。在另一示例中,墻壁、地板和/或天花板可以被細(xì)分為多個(gè)數(shù)據(jù)區(qū)塊。
數(shù)據(jù)組件105可以存儲(chǔ)由分割組件104處理的3D數(shù)據(jù)。例如,數(shù)據(jù)組件105可以存儲(chǔ)由分割組件104所生成的分段3D數(shù)據(jù)。數(shù)據(jù)組件105可以被實(shí)施為和/或與用于存儲(chǔ)一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián)。在一個(gè)示例中,數(shù)據(jù)組件105可以是3D數(shù)據(jù)組件。數(shù)據(jù)組件105可以存儲(chǔ)3D數(shù)據(jù),包括由分割組件104所生成的每個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。在一方面,數(shù)據(jù)組件105可以存儲(chǔ)分層的數(shù)據(jù)區(qū)塊。例如,數(shù)據(jù)組件105可以存儲(chǔ)每個(gè)數(shù)據(jù)區(qū)塊的多個(gè)細(xì)節(jié)層次。
選擇組件106可以從數(shù)據(jù)組件105選擇數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。在一方面,選擇組件106可以從與至少第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊選擇數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)的一部分。例如,選擇組件106可以確定發(fā)送一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或與每個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的細(xì)節(jié)層次的順序(例如,輸出組件108向遠(yuǎn)端客戶端設(shè)備傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或與每個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的細(xì)節(jié)層次的順序)。在一方面,選擇組件106可以基于與一組數(shù)據(jù)區(qū)塊中的每個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的信息(例如,幾何形狀數(shù)據(jù)、紋理數(shù)據(jù)、細(xì)節(jié)層次數(shù)據(jù)、分辨率數(shù)據(jù)等)從該組數(shù)據(jù)區(qū)塊中選擇數(shù)據(jù)區(qū)塊。在另一方面,選擇組件106可以基于與第一細(xì)節(jié)層次和第二細(xì)節(jié)層次關(guān)聯(lián)的信息(例如,幾何形狀數(shù)據(jù)、紋理數(shù)據(jù)、采樣數(shù)據(jù)點(diǎn)的數(shù)量、分辨率數(shù)據(jù)、網(wǎng)格復(fù)雜性、紋理分辨率等)從與第一細(xì)節(jié)層次或第二細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊中選擇一部分?jǐn)?shù)據(jù)。與該組數(shù)據(jù)區(qū)塊中的每個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的信息可以是元數(shù)據(jù)。
在一個(gè)實(shí)施例中,分割組件104可以接收與內(nèi)部環(huán)境的三維(3D)模型關(guān)聯(lián)的采集的3D數(shù)據(jù),并將采集的3D數(shù)據(jù)分割為與細(xì)節(jié)層次(例如,低分辨率數(shù)據(jù)區(qū)塊)關(guān)聯(lián)的數(shù)據(jù)區(qū)塊和與其它細(xì)節(jié)層次關(guān)聯(lián)的多個(gè)其它數(shù)據(jù)區(qū)塊(例如,多個(gè)更高分辨率的子區(qū)塊)。數(shù)據(jù)組件105可以存儲(chǔ)至少包含該數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次和多個(gè)其它數(shù)據(jù)區(qū)塊的其它細(xì)節(jié)層次的3D數(shù)據(jù)。輸出組件108可以向遠(yuǎn)端設(shè)備初始傳輸該數(shù)據(jù)區(qū)塊,并隨后基于與其它細(xì)節(jié)層次關(guān)聯(lián)的信息向該遠(yuǎn)端設(shè)備傳輸多個(gè)其它數(shù)據(jù)區(qū)塊的一部分?jǐn)?shù)據(jù)。因此,由選擇組件106選擇的第一數(shù)據(jù)區(qū)塊可以是用于3D模型的低分辨率數(shù)據(jù)區(qū)塊(例如,與整個(gè)3D模型關(guān)聯(lián)的低分辨率數(shù)據(jù)區(qū)塊)。在選擇組件106選擇第一數(shù)據(jù)區(qū)塊之后,選擇組件106可以選擇用于3D模型的多個(gè)更高分辨率子區(qū)塊中的一個(gè)或多個(gè)。例如,用于3D模型的每個(gè)更高分辨率子區(qū)塊可以與3D模型的子區(qū)間關(guān)聯(lián)。用于3D模型的多個(gè)更高分辨率子區(qū)塊中的一個(gè)或多個(gè)可以被疊加在第一數(shù)據(jù)區(qū)塊(例如,用于3D模型的低分辨率數(shù)據(jù)區(qū)塊)上。在一方面,分割組件104可以基于所識(shí)別的3D模型的建筑元素將采集的3D數(shù)據(jù)分割為多個(gè)其它數(shù)據(jù)區(qū)塊。在另一方面,數(shù)據(jù)組件105可以以比該數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次更大的細(xì)節(jié)層次(例如,更高分辨率)存儲(chǔ)多個(gè)數(shù)據(jù)區(qū)塊的其它細(xì)節(jié)層次。
在一方面,選擇組件106可以采用自適應(yīng)順序來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次。例如,選擇組件106可以基于反饋數(shù)據(jù)(例如,在圖1中示出的反饋數(shù)據(jù))從一組數(shù)據(jù)區(qū)塊和/或與數(shù)據(jù)區(qū)塊關(guān)聯(lián)的細(xì)節(jié)層次選擇數(shù)據(jù)區(qū)塊。反饋數(shù)據(jù)可以包括但不限于與在遠(yuǎn)程客戶端設(shè)備上渲染3D模型關(guān)聯(lián)的位置數(shù)據(jù)、在遠(yuǎn)程客戶端設(shè)備上渲染3D模型關(guān)聯(lián)的取向數(shù)據(jù)等。在遠(yuǎn)端客戶端設(shè)備上的3D模型觀察器可以顯示3D模型的渲染。反饋數(shù)據(jù)可以從遠(yuǎn)端客戶端設(shè)備(例如,渲染3D模型的遠(yuǎn)端客戶端設(shè)備、采用3D模型觀察器顯示3D模型的遠(yuǎn)端客戶端設(shè)備等)接收。在一個(gè)示例中,自適應(yīng)順序可以基于在遠(yuǎn)端客戶端設(shè)備中的渲染視圖的位置。在數(shù)據(jù)區(qū)塊與多個(gè)離散細(xì)節(jié)層次關(guān)聯(lián)的非限制性示例中,選擇組件106可以初始選擇和/或以某個(gè)固定順序或某個(gè)可變順序傳輸最低細(xì)節(jié)的每個(gè)數(shù)據(jù)區(qū)塊,接著選擇和/或傳輸下一最詳細(xì)層次的每個(gè)數(shù)據(jù)區(qū)塊等,直到最高層次的數(shù)據(jù)區(qū)塊被選擇和/或傳輸。
選擇組件106可以基于與在遠(yuǎn)端客戶端設(shè)備上的渲染視圖關(guān)聯(lián)的位置數(shù)據(jù)選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次(例如,遠(yuǎn)端客戶端設(shè)備被配置用于接收一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或通過3D觀察器顯示3D模型)。例如,選擇組件106可以選擇和/或傳輸最接近與在遠(yuǎn)端客戶端設(shè)備上渲染3D模型關(guān)聯(lián)的攝像機(jī)位置和/或攝像機(jī)取向(例如,視角)的特定數(shù)據(jù)區(qū)塊。在一個(gè)示例中,選擇組件106可以從最低細(xì)節(jié)層次到最高細(xì)節(jié)層次選擇和/或傳輸特定數(shù)據(jù)區(qū)塊,接著從最低細(xì)節(jié)層次到最高細(xì)節(jié)層次選擇和/或傳輸下一最接近的數(shù)據(jù)區(qū)塊等。最接近的數(shù)據(jù)區(qū)塊可以是包含最接近與遠(yuǎn)端客戶端設(shè)備關(guān)聯(lián)的視點(diǎn)(例如,與在遠(yuǎn)端客戶端設(shè)備上渲染3D模型關(guān)聯(lián)的視點(diǎn))的三角形、曲面元素或點(diǎn)的數(shù)據(jù)區(qū)塊。替換地,最接近的數(shù)據(jù)區(qū)塊可以是與關(guān)聯(lián)于該數(shù)據(jù)區(qū)塊的所有三角形、曲面元素或點(diǎn)相對于與遠(yuǎn)端客戶端設(shè)備關(guān)聯(lián)的視點(diǎn)(例如,與在遠(yuǎn)端客戶端設(shè)備上渲染3D模型關(guān)聯(lián)的視點(diǎn))的最小平均距離關(guān)聯(lián)的數(shù)據(jù)區(qū)塊。在另一方面,選擇組件106可以根據(jù)基于可見度的剔除技術(shù)來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次?;诳梢姸鹊奶蕹夹g(shù)可以包括但不限于視見平截頭體剔除、遮擋剔除、背面剔除、細(xì)節(jié)剔除等。然而,應(yīng)明白,選擇組件106可以實(shí)施類似的技術(shù)來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次。
選擇組件106可以基于先前選定的細(xì)節(jié)層次來選擇和/或傳輸與細(xì)節(jié)層次關(guān)聯(lián)的一部分?jǐn)?shù)據(jù)。在非限制性示例中,選擇組件106可以選擇和/或傳輸具有與網(wǎng)格數(shù)據(jù)和/或紋理數(shù)據(jù)關(guān)聯(lián)的兩個(gè)細(xì)節(jié)層次的單個(gè)區(qū)塊。例如,3D模型可以包括在多個(gè)細(xì)節(jié)層次的單個(gè)區(qū)塊。因此,選擇組件106可以初始選擇和/或傳輸3D模型的低分辨率版本。例如,3D模型的低分辨率版本可以包括具有少量的三角形(例如,20k)和低分辨率紋理(例如,在最高分辨率紋理的每個(gè)維度中的像素分辨率的l/8,在512x512像素圖像的每個(gè)維度中的像素分辨率的1/8等)的網(wǎng)格(例如,多邊形網(wǎng)格)。在一個(gè)示例中,紋理可以以高壓縮來編碼(例如,JPEG編碼)以進(jìn)一步降低大小。在選擇組件106選擇和/或傳輸3D模型的低分辨率版本(例如,先前選定的3D模型的版本)之后,選擇組件106可以選擇和/或傳輸3D模型的高分辨率版本和/或3D模型的全分辨率版本。更高分辨率版本的3D模型可以對應(yīng)于更大的網(wǎng)格復(fù)雜性和/或更大的紋理分辨率。例如,高分辨率版本的3D模型可以包括具有大量的三角形(例如,500k)和/或基本沒有或完全沒有壓縮的全分辨率紋理的網(wǎng)格(例如,多邊形網(wǎng)格)。
在另一非限制性示例中,選擇組件106可以選擇和/或傳輸具有不同紋理的細(xì)節(jié)層次和/或不同的網(wǎng)格細(xì)節(jié)層次的單個(gè)區(qū)塊。例如,3D模型可以包括在多個(gè)細(xì)節(jié)層次的單個(gè)區(qū)塊。因此,選擇組件106可以初始選擇和/或傳輸3D模型的低分辨率版本。例如,低分辨率版本的3D模型可以包括具有一定數(shù)量的三角形(例如,與其它版本的3D模型相比為少量的三角形)和/或與一定量的壓縮(例如,與其它版本的3D模型相比為更大的壓縮)關(guān)聯(lián)的低分辨率紋理的網(wǎng)格(例如,多邊形網(wǎng)格)。接下來,選擇組件106可以選擇和/或傳輸高分辨率版本的3D模型,其包括采用與3D模型的低分辨率版本關(guān)聯(lián)的低分辨率紋理的網(wǎng)格(例如,多邊形網(wǎng)格)。接下來,選擇組件106可以選擇和/或傳輸可以被映射到高分辨率網(wǎng)格上的高分辨率紋理。例如,高分辨率紋理可以包括與其它版本的3D模型相比為最高的分辨率(例如,為先前選定和/或傳輸?shù)募y理的每個(gè)維度的像素的八倍,為2048x2048像素圖像的每個(gè)維度的像素的八倍等)。此外,為了更好的最終圖像質(zhì)量,高分辨率紋理可以包括與其它版本的3D模型相比更少的壓縮(例如,高分辨率紋理可以以無損的格式編碼等)。應(yīng)明白,這些技術(shù)可以被擴(kuò)展到不止兩個(gè)細(xì)節(jié)層次(例如,以允許選擇組件106逐漸選擇和/或傳輸更高的分辨率網(wǎng)格和/或紋理)。應(yīng)明白,可以改變選擇組件106所采用的選擇和/或傳輸網(wǎng)格和/或紋理的細(xì)節(jié)層次的順序。例如,選擇組件106可以選擇和/或傳輸在更高分辨率網(wǎng)格之前選擇和/或傳輸高分辨率紋理等。在一方面,紋理優(yōu)先或網(wǎng)格優(yōu)先的優(yōu)先級可以取決于用戶正在觀看3D模型的位置(例如,遠(yuǎn)端客戶端設(shè)備的位置)。例如,如果用戶正在通過遠(yuǎn)端客戶端設(shè)備上的3D模型觀察器更詳細(xì)(例如,近距離、放大等)觀看3D模型時(shí),則紋理可以是優(yōu)先的。
在一方面,選擇組件106選擇和/或傳輸?shù)母叻直媛拾姹镜臄?shù)據(jù)區(qū)塊可以替換3D數(shù)據(jù)列表中待顯示(例如,在遠(yuǎn)端客戶端設(shè)備上顯示)的較低分辨率版本的數(shù)據(jù)區(qū)塊。在另一方面,響應(yīng)于確定多個(gè)子區(qū)塊中的每一者被選擇組件106選擇和/或傳輸(例如,響應(yīng)于確定多個(gè)子子區(qū)塊中的每一者已被傳輸?shù)竭h(yuǎn)端客戶端設(shè)備),與多個(gè)子區(qū)塊(例如,相對于分層數(shù)據(jù)結(jié)構(gòu)的多個(gè)孩節(jié)點(diǎn)數(shù)據(jù)區(qū)塊)關(guān)聯(lián)的數(shù)據(jù)區(qū)塊可以用也與多個(gè)子區(qū)塊關(guān)聯(lián)的一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊(例如,與多個(gè)孩節(jié)點(diǎn)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊)替換。因此,一旦與數(shù)據(jù)區(qū)塊關(guān)聯(lián)的所有子區(qū)塊被加載,數(shù)據(jù)區(qū)塊就可以在遠(yuǎn)端客戶端設(shè)備的顯示器中用更高細(xì)節(jié)的子區(qū)塊來替換。
在一個(gè)實(shí)施例中,選擇組件106可以基于分辨率中深度優(yōu)先的技術(shù)來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。例如,選擇組件106可以初始選擇和/或傳輸3D模型中的每個(gè)數(shù)據(jù)區(qū)塊的最低分辨率版本。接著,選擇組件106可以選擇和/或傳輸每個(gè)數(shù)據(jù)區(qū)塊的下一最詳細(xì)層次,并依此類推,直到每個(gè)數(shù)據(jù)區(qū)塊的最高細(xì)節(jié)層次已被選擇組件106選擇和/或傳輸。在一方面,可以任意(例如,隨機(jī))確定每個(gè)細(xì)節(jié)層次內(nèi)的順序。在一個(gè)示例中,在每個(gè)細(xì)節(jié)層次內(nèi)的順序可以基于隨機(jī)數(shù)值生成器來確定。
在另一實(shí)施例中,選擇組件106可以基于僅最高分辨率技術(shù)來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。例如,選擇組件106可以選擇和/或傳輸每個(gè)數(shù)據(jù)區(qū)塊的最高細(xì)節(jié)層次版本,而不選擇和/或傳輸每個(gè)數(shù)據(jù)區(qū)塊的任何較低細(xì)節(jié)層次。在一方面,選擇組件106可以實(shí)施僅高分辨率技術(shù)連同其它方法來選擇和/或傳輸數(shù)據(jù)區(qū)塊(例如,僅高分辨率技術(shù)可以與其它方法組合來選擇數(shù)據(jù)區(qū)塊和/或確定傳輸數(shù)據(jù)區(qū)塊的順序)。
在又一實(shí)施例中,選擇組件106可以基于視見平截頭體技術(shù)來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。例如,選擇組件106可以基于與遠(yuǎn)端客戶端設(shè)備(例如,被配置用于接收一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次的遠(yuǎn)端客戶端設(shè)備)的視點(diǎn)關(guān)聯(lián)的位置數(shù)據(jù)和/或取向數(shù)據(jù)來計(jì)算視見平截頭體。選擇組件106可以基于視見平截頭體來確定(例如,計(jì)算)與平截頭體相交的數(shù)據(jù)區(qū)塊列表。
在一方面,選擇組件106可以基于相對于遠(yuǎn)端客戶端設(shè)備的視點(diǎn)的距離對與平截頭體相交的數(shù)據(jù)區(qū)塊(例如,可見的數(shù)據(jù)區(qū)塊)進(jìn)行分類和/或排序。例如,選擇組件106可以選擇和/或傳輸視見平截頭體中的還未以最高分辨率選擇和/或傳輸?shù)淖罱鼣?shù)據(jù)區(qū)塊。在一個(gè)示例中,當(dāng)視見平截頭體改變時(shí),選擇組件106可以更新和/或重新計(jì)算與平截頭體相交的數(shù)據(jù)區(qū)塊的排序。在示例中,選擇組件106可以基于搜索技術(shù)來確定最近的數(shù)據(jù)區(qū)塊和/或?qū)?shù)據(jù)區(qū)塊進(jìn)行排序。例如,通過采用八叉樹,選擇組件106可以確定最近的數(shù)據(jù)區(qū)塊和/或?qū)?shù)據(jù)區(qū)塊進(jìn)行排序。在一個(gè)示例中,選擇組件106可以確定與八叉樹數(shù)據(jù)結(jié)構(gòu)的特定部分(例如,體積)相交的數(shù)據(jù)區(qū)塊。數(shù)據(jù)區(qū)塊可以被存儲(chǔ)在八叉樹數(shù)據(jù)結(jié)構(gòu)中。因此,可以采用視見平截頭體的一部分(例如,體積)來查詢八叉樹數(shù)據(jù)結(jié)構(gòu)(例如,以識(shí)別相交的數(shù)據(jù)區(qū)塊)。此外,選擇組件106可以分析相交的數(shù)據(jù)區(qū)塊。
在另一方面,選擇組件106可以計(jì)算平截頭體內(nèi)的每個(gè)數(shù)據(jù)區(qū)塊的角大小(例如,表觀的角大小)。例如,選擇組件106可以將邊界區(qū)域(例如,與平截頭體相交的數(shù)據(jù)區(qū)塊的邊界立方體)投影到與遠(yuǎn)端客戶端設(shè)備關(guān)聯(lián)的視點(diǎn)。在一個(gè)示例中,選擇組件106可以接著基于角大小對與平截頭體相交的數(shù)據(jù)區(qū)塊的列表進(jìn)行排序。因此,由選擇組件106選擇和/或傳輸?shù)南乱粩?shù)據(jù)區(qū)塊為最高分辨率版本。
在又一實(shí)現(xiàn)方式中,選擇組件106可以基于數(shù)據(jù)區(qū)塊的分辨率和/或計(jì)算出的數(shù)據(jù)區(qū)塊的角大小來計(jì)算分?jǐn)?shù)。例如,分?jǐn)?shù)可以是在給定數(shù)據(jù)區(qū)塊的當(dāng)前細(xì)節(jié)層次和至與遠(yuǎn)端客戶端設(shè)備關(guān)聯(lián)的視點(diǎn)的距離的情況下,每球面度(例如,立體角的度量)的像素或頂點(diǎn)的數(shù)量。在另一示例中,分?jǐn)?shù)可以被計(jì)算為從與遠(yuǎn)端客戶端設(shè)備關(guān)聯(lián)的視點(diǎn)來看,數(shù)據(jù)區(qū)塊的大小(例如,數(shù)據(jù)區(qū)塊的字節(jié)的數(shù)量)相對于數(shù)據(jù)區(qū)塊的球面度的大小。在一方面,分割組件104可以選擇具有最低分?jǐn)?shù)的數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次,使得該數(shù)據(jù)區(qū)塊的分?jǐn)?shù)不再是最低分?jǐn)?shù)。選定的數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次可以被選擇用于進(jìn)行傳輸(例如,選定的數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次可以被接下來傳輸給遠(yuǎn)端客戶端設(shè)備)。在另一面,選擇組件106可以選擇具有最低分?jǐn)?shù)的數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次,使得該數(shù)據(jù)區(qū)塊的新分?jǐn)?shù)大于預(yù)定閾值。選定的數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次可以被選擇用于進(jìn)行傳輸(例如,選定的數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次可以被接下來傳輸給遠(yuǎn)端客戶端設(shè)備)。在一個(gè)示例中,響應(yīng)于確定所有數(shù)據(jù)區(qū)塊大于預(yù)定閾值,選擇組件106可以采用不同的方法來選擇和/或傳輸數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。在另一示例中,響應(yīng)于確定所有數(shù)據(jù)區(qū)塊大于預(yù)定閾值(例如,響應(yīng)于確定所有數(shù)據(jù)區(qū)塊滿足預(yù)定閾值),可以實(shí)現(xiàn)不同的閾值(例如,更高的閾值、更大的閾值等)來選擇和/或傳輸數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。
在又一實(shí)施例中,選擇組件106可以基于與3D模型觀察器(例如,在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn)的3D模型觀察器)關(guān)聯(lián)的信息來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。選擇組件106可以選擇和/或傳輸占用3D模型觀察器上的當(dāng)前視圖(例如,當(dāng)前渲染視域)的最大空間量的一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。例如,選擇組件106可以初始選擇和/或傳輸3D模型中的每個(gè)數(shù)據(jù)區(qū)塊的最低分辨率版本。接著,選擇組件106可以以統(tǒng)計(jì)方式采樣和/或確定從與3D模型的每個(gè)數(shù)據(jù)區(qū)塊(例如,作為與3D模型首次相交的3D模型的每個(gè)數(shù)據(jù)區(qū)塊)相交的3D模型的當(dāng)前渲染視域內(nèi)的虛擬攝像機(jī)(例如,與在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn)的3D模型關(guān)聯(lián)的虛擬攝像機(jī))發(fā)出的攝像機(jī)射線的數(shù)量。因此,選擇組件106可以基于與每個(gè)數(shù)據(jù)區(qū)塊相交的攝像機(jī)射線的數(shù)量來選擇和/或傳輸下一數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的下一細(xì)節(jié)層次。例如,待選擇和/或傳輸?shù)南乱粩?shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的下一細(xì)節(jié)層次可以是具有最高數(shù)量的攝像機(jī)射線的、未以最高分辨率加載的數(shù)據(jù)區(qū)塊的更高分辨率版本(例如,在遠(yuǎn)端客戶端設(shè)備上顯示的數(shù)據(jù)區(qū)塊的當(dāng)前分辨率版本之上的數(shù)據(jù)區(qū)塊的分辨率版本)。響應(yīng)于確定每個(gè)數(shù)據(jù)區(qū)塊包括多于兩個(gè)的分辨率水平,已與特定數(shù)據(jù)區(qū)塊相交的攝像機(jī)射線的數(shù)量可以與特定數(shù)據(jù)區(qū)塊的當(dāng)前細(xì)節(jié)層次組合以生成分?jǐn)?shù)。例如,可以采用該分?jǐn)?shù)來選擇和/或傳輸下一數(shù)據(jù)區(qū)塊和/或下一細(xì)節(jié)層次。在一個(gè)示例中,被選擇和/或傳輸?shù)奶囟〝?shù)據(jù)區(qū)塊的細(xì)節(jié)層次可以是比特定數(shù)據(jù)區(qū)塊的當(dāng)前細(xì)節(jié)層次更高的一個(gè)細(xì)節(jié)層次。在另一示例中,被選擇和/或傳輸?shù)奶囟〝?shù)據(jù)區(qū)塊的細(xì)節(jié)層次可以通過記分函數(shù)來確定。
如果特定數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次是數(shù)據(jù)區(qū)塊的先前細(xì)節(jié)層次在每個(gè)方向的細(xì)節(jié)的兩倍,則分?jǐn)?shù)可以基于與特定數(shù)據(jù)區(qū)塊相交的攝像機(jī)射線的數(shù)量和特定數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次來確定。在一個(gè)示例中,分?jǐn)?shù)可以對應(yīng)于RAYCOUNT/(4^LOD),其中,變量RAYCOUNT是與在3D模型上的特定數(shù)據(jù)區(qū)塊相交的攝像機(jī)射線的數(shù)量(例如,從3D模型渲染上的當(dāng)前用戶位置發(fā)出的攝像機(jī)射線的數(shù)量),變量LOD是特定數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。例如,變量RAYCOUNT可以是從數(shù)據(jù)區(qū)塊標(biāo)識(shí)符(例如,其中,每個(gè)數(shù)據(jù)區(qū)塊包括唯一的標(biāo)識(shí)符)至整數(shù)的映射。變量RAYCOUNT可以被初始化,使得每個(gè)數(shù)據(jù)區(qū)塊的標(biāo)識(shí)符映射到整數(shù)零。變量LOD可以是從數(shù)據(jù)區(qū)塊標(biāo)識(shí)符至整數(shù)的映射,其中,LOD[i]表示標(biāo)識(shí)符為i的特定數(shù)據(jù)區(qū)塊在遠(yuǎn)端客戶端設(shè)備中的當(dāng)前細(xì)節(jié)層次,其中,標(biāo)識(shí)符i為非負(fù)整數(shù)。例如,標(biāo)識(shí)符i為零值可以表示特定數(shù)據(jù)區(qū)塊在遠(yuǎn)端客戶端設(shè)備中沒有細(xì)節(jié),標(biāo)識(shí)符i為一的值可以表示特定數(shù)據(jù)區(qū)塊在遠(yuǎn)端客戶端設(shè)備中的第一細(xì)節(jié)層次,等。每次遠(yuǎn)端客戶端設(shè)備渲染幀時(shí),可以計(jì)算與每個(gè)數(shù)據(jù)區(qū)塊相交為與3D模型的首次相交的攝像機(jī)射線的數(shù)量。計(jì)算出的當(dāng)前幀的攝像機(jī)射線的數(shù)量可以被添加到由每個(gè)數(shù)據(jù)區(qū)塊的標(biāo)識(shí)符映射的整數(shù)。在一個(gè)示例中,映射可以由選擇組件106從遠(yuǎn)端客戶端設(shè)備接收。因此,選擇組件106可以確定要選擇和/或傳輸?shù)南乱粩?shù)據(jù)區(qū)塊。
替換地,遠(yuǎn)端客戶端設(shè)備可以基于遠(yuǎn)端客戶端設(shè)備當(dāng)前采用的數(shù)據(jù)區(qū)塊的細(xì)節(jié)大小和/或細(xì)節(jié)層次從數(shù)據(jù)組件105請求下一數(shù)據(jù)區(qū)塊。另外或替換地,遠(yuǎn)端客戶端設(shè)備可以基于數(shù)據(jù)區(qū)塊的列表和/或細(xì)節(jié)層次的列表從數(shù)據(jù)組件105請求下一數(shù)據(jù)區(qū)塊。在一方面,數(shù)據(jù)區(qū)塊i的分?jǐn)?shù)由RAYCOUNT[i]/4^LOD[i]給出。對于不與最高細(xì)節(jié)層次關(guān)聯(lián)的數(shù)據(jù)區(qū)塊,可以選擇和/或傳輸具有最高分?jǐn)?shù)的數(shù)據(jù)區(qū)塊的下一最精細(xì)的細(xì)節(jié)層次。在一個(gè)示例中,攝像機(jī)射線計(jì)數(shù)(例如,與每個(gè)數(shù)據(jù)區(qū)塊相交的攝像機(jī)射線的計(jì)數(shù))可以被統(tǒng)計(jì)采樣替換,在該統(tǒng)計(jì)采樣中,采用在遠(yuǎn)端客戶端設(shè)備上渲染3D模型的視場內(nèi)的少量的隨機(jī)取向的攝像機(jī)射線和/或記錄(tally)隨機(jī)取向的攝像機(jī)射線的最近數(shù)據(jù)區(qū)塊交集。因此,選擇組件106可以基于被用于確定與數(shù)據(jù)區(qū)塊關(guān)聯(lián)的數(shù)據(jù)的攝像機(jī)射線的總數(shù)來選擇數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次。替換地,與遠(yuǎn)端客戶端設(shè)備上的圖形組件(例如,顯卡)關(guān)聯(lián)的緩沖區(qū)(例如,Z緩沖區(qū))可以被用作投射線的替代。
在又一實(shí)施例中,選擇組件106可以基于當(dāng)用戶通過遠(yuǎn)端客戶端設(shè)備上的3D模型觀察器觀看3D模型時(shí)的用戶行為(例如,觀看3D模型的一個(gè)或多個(gè)用戶的過去行為、用戶歷史、位置數(shù)據(jù)和/或取向數(shù)據(jù)的歷史等)來選擇和/或傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次。例如,與渲染3D模型關(guān)聯(lián)的用戶的先前位置(例如,用戶的先前觀看位置)可以被用于推測用戶的將來位置(例如,用戶的可能將來觀看位置)。在示例中,先前觀看最多的數(shù)據(jù)區(qū)塊(例如,最多觀看的數(shù)據(jù)區(qū)塊)可以由選擇組件106首先選擇和/或傳輸。例如,與通過遠(yuǎn)端客戶端設(shè)備上的3D觀察器觀看3D模型的攝像機(jī)視野關(guān)聯(lián)的位置數(shù)據(jù)和/或取向數(shù)據(jù)可以被存儲(chǔ)(例如,以周期性間隔)。位置數(shù)據(jù)和/或取向數(shù)據(jù)集可以形成與3D模型的特定部分(例如,特定體積)關(guān)聯(lián)的一組數(shù)據(jù)點(diǎn)。該組數(shù)據(jù)點(diǎn)可以被處理(例如,平滑)以生成在3D模型的特定部分(例如,特定體積)上的用戶位置的平均分布。因此,與平均分布關(guān)聯(lián)的數(shù)據(jù)點(diǎn)的最高值可以被認(rèn)為是用戶的最有可能的觀看位置。此外,與平均分布關(guān)聯(lián)的數(shù)據(jù)點(diǎn)的最高值(例如,用戶的最有可能的觀看位置)可以被用于確定待選擇和/或傳輸?shù)某跏紨?shù)據(jù)區(qū)塊和/或初始細(xì)節(jié)層次。替換地,與平均分布關(guān)聯(lián)的數(shù)據(jù)點(diǎn)的最高值(例如,用戶的最有可能的觀看位置)可以被用于基于當(dāng)前用戶位置和/或當(dāng)前用戶取向來生成用于預(yù)測將來用戶位置和/或?qū)碛脩羧∠虻哪P?。在一個(gè)示例中,預(yù)測將來用戶位置和/或?qū)碛脩羧∠虻哪P涂梢曰陔[藏的Markov模型來生成。然而,應(yīng)明白,用于預(yù)測將來用戶位置和/或?qū)碛脩羧∠虻哪P涂梢曰诓煌募夹g(shù)來生成。在一方面,不久的將來用戶位置和/或不久的將來用戶取向的概率分布(例如,基于當(dāng)前用戶位置和/或當(dāng)前用戶取向所確定的)可以被用于選擇和/或傳輸下一數(shù)據(jù)區(qū)塊、對在一定時(shí)間段內(nèi)有可能接近用戶的數(shù)據(jù)區(qū)塊排優(yōu)先級、對在一定時(shí)間段內(nèi)有可能在遠(yuǎn)端客戶端設(shè)備上的3D模型觀察器的視場中的數(shù)據(jù)區(qū)塊排優(yōu)先級,等。
在一方面,響應(yīng)于確定3D模型被分割為建筑結(jié)構(gòu)(例如,墻壁等)和/或被包含在建筑框架內(nèi)的物理對象(例如,家具),物理對象的選擇和/或傳輸可以被去優(yōu)先級,除非該物理對象被包含在與用戶的當(dāng)前位置(例如,遠(yuǎn)端客戶端設(shè)備的當(dāng)前位置)相同的子區(qū)間(例如,相同房間)中。在非限制性示例中,如果3D模型被分割為每個(gè)子區(qū)間(例如,每個(gè)房間)的墻壁和地板的一個(gè)數(shù)據(jù)區(qū)塊以及該子區(qū)間的物理對象(例如,被包含在子區(qū)間中的內(nèi)容)的一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊,則選擇和/或傳輸優(yōu)先級可以如下:初始選擇和/或傳輸3D模型觀察器的攝像機(jī)視野目前所關(guān)聯(lián)于的子區(qū)間(例如,房間)的墻壁和地板,之后是當(dāng)前子區(qū)間的物理對象(例如,被包含在當(dāng)前房間中的內(nèi)容),接著是相鄰子區(qū)間(例如,相鄰房間)的墻壁和地板,接著是相鄰子區(qū)間段的物理對象(例如,被包含在相鄰房間中的內(nèi)容),接著是所有其它墻壁和地板,其次是所有其它物理對象(例如,被包含在3D模型中的所有其它內(nèi)容)。數(shù)據(jù)區(qū)塊可以由選擇組件106按優(yōu)先級順序來選擇和/或傳輸。在一方面,數(shù)據(jù)區(qū)塊的選擇和/或傳輸?shù)呐判蚩梢曰?D模型觀察器的攝像機(jī)視野的位置變化來周期性地更新。另外或替換地,對于包括多個(gè)細(xì)節(jié)層次的數(shù)據(jù)區(qū)塊,可以確定數(shù)據(jù)區(qū)塊在特定細(xì)節(jié)層次的優(yōu)先級排序。
應(yīng)明白,采集的3D數(shù)據(jù)可以在未被分割組件104分割的情況下,由選擇組件106和/或輸出組件108接收。例如,采集的3D數(shù)據(jù)可以在未被分割為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或一個(gè)或多個(gè)細(xì)節(jié)層次的情況下被傳輸至遠(yuǎn)端客戶端設(shè)備。
輸出組件108可以向遠(yuǎn)端客戶端設(shè)備傳輸處理后的3D數(shù)據(jù)(例如,在圖1中示出的處理后的3D數(shù)據(jù))。遠(yuǎn)程客戶端設(shè)備可以被配置成渲染和/或顯示與處理后的3D數(shù)據(jù)關(guān)聯(lián)的3D模型(例如,通過3D模型觀察器)。例如,輸出組件108可以基于由選擇組件106所確定的排序(例如,傳輸順序)來傳輸一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的一個(gè)或多個(gè)細(xì)節(jié)層次。在一個(gè)示例中,處理后的3D數(shù)據(jù)可以是處理后的3D重構(gòu)數(shù)據(jù)。
在一方面,輸出組件108可以為被傳輸至遠(yuǎn)端客戶端設(shè)備的數(shù)據(jù)區(qū)塊(例如,高分辨率數(shù)據(jù)區(qū)塊)和/或細(xì)節(jié)層次生成一個(gè)或多個(gè)視覺效果。在一個(gè)示例中,輸出組件108可以在平坦(flat)數(shù)據(jù)區(qū)塊或低分辨率數(shù)據(jù)區(qū)塊被遠(yuǎn)端客戶端設(shè)備渲染(例如,用于在3D模型觀察器上顯示)之后,生成高分辨率數(shù)據(jù)區(qū)塊的一個(gè)或多個(gè)更好視覺效果(例如,當(dāng)傳輸高分辨率數(shù)據(jù)區(qū)塊時(shí))。例如,當(dāng)從3D模型中的地板上升時(shí),當(dāng)從3D模型落下時(shí),當(dāng)從3D模型中的特定點(diǎn)展開時(shí),當(dāng)類似在3D模型中的最終位置穩(wěn)定之前的不穩(wěn)定狀態(tài)(例如,像果凍吹起來和搖擺等)時(shí)等,可以在遠(yuǎn)端客戶端設(shè)備上渲染與3D模型的子區(qū)間(例如,房間)關(guān)聯(lián)的高分辨率數(shù)據(jù)區(qū)塊。
在另一方面,輸出組件108生成特定數(shù)據(jù)區(qū)塊并非處于最高細(xì)節(jié)層次的視覺指示。例如,輸出組件108可以為遠(yuǎn)端客戶端設(shè)備(例如,在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn)的3D模型觀察器)生成3D模型的至少一部分并非處于最高可用分辨率的指示。此外,輸出組件108可以為遠(yuǎn)端客戶端設(shè)備生成最高分辨率版本將被提供給遠(yuǎn)端客戶端設(shè)備的指示。
在一個(gè)示例中,輸出組件108可以生成低分辨率紋理的水印和/或在與并非處于最高細(xì)節(jié)層次的數(shù)據(jù)區(qū)塊的至少一部分關(guān)聯(lián)的紋理上附加(例如,疊加)水印。在示例中,水印可以以規(guī)則圖案應(yīng)用于覆蓋一定大小的平坦表面的紋理。例如,與房間關(guān)聯(lián)的數(shù)據(jù)區(qū)塊的墻壁和/或地板可以包括水印,但是物理對象(例如,家具)可以不用水印來實(shí)現(xiàn)。在一方面,水印可以相對于時(shí)間是動(dòng)畫的。
在另一示例中,輸出組件108可以以降低的α水平來配置數(shù)據(jù)區(qū)塊,使得其它對象通過該數(shù)據(jù)區(qū)塊是可見的。例如,在中等細(xì)節(jié)層次的數(shù)據(jù)區(qū)塊可以包括70%的α水平(例如,數(shù)據(jù)區(qū)塊部分可看透,但是很類似實(shí)心(solid)的α水平),而在最高細(xì)節(jié)層次的任何數(shù)據(jù)區(qū)塊包括100%的α水平(例如,數(shù)據(jù)區(qū)塊為完全不透明的α水平)。
在又一示例中,輸出組件108可以將數(shù)據(jù)區(qū)塊配置為隨時(shí)間以循環(huán)方式盲化或平滑插值。例如,輸出組件108可以將數(shù)據(jù)區(qū)塊配置為在100%的完全α水平和小于100%的α水平之間改變。另外或替換地,輸出組件108可以將數(shù)據(jù)區(qū)塊顏色、亮度、色調(diào)和/或飽和度配置為以循環(huán)方式改變。在又一示例中,輸出組件108可以用不同的顏色、亮度、色調(diào)和/或飽和度來配置數(shù)據(jù)區(qū)塊的紋理。例如,輸出組件108可以將具有較低細(xì)節(jié)層的數(shù)據(jù)區(qū)塊的紋理配置為按灰度進(jìn)行顯示。在又一示例中,輸出組件108可以不用紋理(例如,沒有紋理)來配置數(shù)據(jù)區(qū)塊。在又一示例中,輸出組件108可以用柵格(例如,柵格可以被投影到數(shù)據(jù)區(qū)塊上)來配置數(shù)據(jù)區(qū)塊。在又一示例中,輸出組件108可以用疊加的垂直或水平移動(dòng)線來配置數(shù)據(jù)區(qū)塊(例如,待在遠(yuǎn)端客戶端設(shè)備上顯示的數(shù)據(jù)區(qū)塊)以暗示數(shù)據(jù)區(qū)塊的掃描操作在進(jìn)行中。在又一示例中,響應(yīng)于確定正在加載3D模型的一部分,輸出組件108可以生成消息(例如,加載消息)。另外或替換地,響應(yīng)于確定通過遠(yuǎn)端客戶端設(shè)備上的3D模型觀察器正在顯示的3D模型的一部分并非處于最高可能的細(xì)節(jié)層次,輸出組件108可以生成消息(例如,加載消息)。
在一方面,輸出組件108可以生成3D模型的一部分的投影(例如,3D場景),其中沒有為數(shù)據(jù)區(qū)塊提供細(xì)節(jié)層次。在示例中,輸出組件108可以確定顯示未加載數(shù)據(jù)區(qū)塊的投影點(diǎn)。例如,如果數(shù)據(jù)區(qū)塊是房間,則投影點(diǎn)可以被確定為剛好在該房間的門外面的點(diǎn)。在一個(gè)示例中,投影可以在位于3D模型中的平面上顯示。例如,投影可以在未加載子區(qū)間(例如,401、402、403)的入口(例如,404、405)處顯示。在另一示例中,投影可以被顯示為3D模型內(nèi)的天空盒(skybox)。
雖然圖1示出在系統(tǒng)100中的獨(dú)立組件,但是應(yīng)明白,該組件可在公共組件中實(shí)施。在一個(gè)示例中,分割組件104、數(shù)據(jù)組件105、選擇組件106和/或輸出組件108可以被包含在單個(gè)組件中。此外,應(yīng)明白,系統(tǒng)100的設(shè)計(jì)可以包含其它組件選擇、組件布局等以有助于處理和/或傳輸3D數(shù)據(jù)。
參考圖2,其示出根據(jù)本公開的各個(gè)方面和具體實(shí)施的系統(tǒng)200的非限制性實(shí)現(xiàn)方式。系統(tǒng)包括至少一個(gè)服務(wù)器202、網(wǎng)絡(luò)204和遠(yuǎn)端客戶端設(shè)備206。至少一個(gè)服務(wù)器202可以包括至少處理組件102。處理組件102可以包括分割組件104、數(shù)據(jù)組件105、選擇組件106和/或輸出組件108。
遠(yuǎn)端客戶端設(shè)備206可以被配置成接收要渲染和/或顯示3D模型的3D數(shù)據(jù)(例如,處理后的3D數(shù)據(jù)、處理后的3D重構(gòu)數(shù)據(jù)等)。3D模型可以通過3D模型觀察器在遠(yuǎn)端客戶端設(shè)備206上顯示。另外,遠(yuǎn)端客戶端設(shè)備206可以確定與在3D模型觀察器上渲染3D模型的視點(diǎn)和/或攝像機(jī)位置關(guān)聯(lián)的位置數(shù)據(jù)和/或取向數(shù)據(jù)(例如,反饋數(shù)據(jù))。遠(yuǎn)端客戶端設(shè)備206可以向至少一個(gè)服務(wù)器202傳輸位置數(shù)據(jù)和/或取向數(shù)據(jù)(例如,反饋數(shù)據(jù))。在一方面,至少一個(gè)服務(wù)器202可以與3D重構(gòu)系統(tǒng)關(guān)聯(lián)。在另一方面,遠(yuǎn)端客戶端設(shè)備206可以與用戶(例如,用戶身份等)關(guān)聯(lián)。遠(yuǎn)端客戶端設(shè)備206可以包括但不限于蜂窩電話(例如,智能電話)、平板計(jì)算機(jī)、個(gè)人計(jì)算機(jī)(PC)、臺(tái)式計(jì)算機(jī)、便攜式計(jì)算機(jī)、攝像機(jī)、3D采集系統(tǒng)、其它便攜式計(jì)算設(shè)備等。至少一個(gè)服務(wù)器202可以通過網(wǎng)絡(luò)204以通信方式耦合到遠(yuǎn)端客戶端設(shè)備206。網(wǎng)絡(luò)204可以包括一個(gè)或多個(gè)網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)204可以包含一個(gè)或多個(gè)無線網(wǎng)絡(luò)和/或一個(gè)或多個(gè)有線網(wǎng)絡(luò),其包含但不限于蜂窩網(wǎng)絡(luò)、廣域網(wǎng)(WAN,例如,互聯(lián)網(wǎng))、局域網(wǎng)(LAN)和/或個(gè)人局域網(wǎng)(PAN)。在示例中,至少一個(gè)服務(wù)器202(例如,處理組件102)可以通過網(wǎng)絡(luò)204向遠(yuǎn)端客戶端設(shè)備206傳輸處理后的3D數(shù)據(jù)。因此,遠(yuǎn)端客戶端設(shè)備206可以通過虛擬和期望的無線或有線技術(shù),包括例如蜂窩、WAN、無線保真等,來接收處理后的3D數(shù)據(jù)。
至少一個(gè)服務(wù)器202(例如,處理組件102)可以處理和/或傳輸3D數(shù)據(jù),如本文更完全公開的。例如,在一方面,至少一個(gè)服務(wù)器202(例如,處理組件102)可以將與3D模型關(guān)聯(lián)的3D數(shù)據(jù)分割為與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊。此外,至少一個(gè)服務(wù)器202(例如,處理組件102)可以基于與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的數(shù)據(jù)來確定與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次的傳輸順序。在一方面,至少一個(gè)服務(wù)器202(例如,處理組件102)可以還基于反饋數(shù)據(jù)(例如,位置數(shù)據(jù)和/或取向數(shù)據(jù))和/或與遠(yuǎn)端客戶端設(shè)備206關(guān)聯(lián)的數(shù)據(jù)區(qū)塊的傳輸順序來確定與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次的傳輸順序。在一個(gè)示例中,與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的數(shù)據(jù)可以包括幾何形狀數(shù)據(jù)和/或紋理數(shù)據(jù)。在另一方面,至少一個(gè)服務(wù)器202可以向遠(yuǎn)端客戶端設(shè)備206傳輸與數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次(例如,數(shù)據(jù)區(qū)塊的大小信息、數(shù)據(jù)區(qū)塊的分層信息等)關(guān)聯(lián)的信息。
遠(yuǎn)端客戶端設(shè)備206可以基于傳輸順序從至少一個(gè)服務(wù)器202(例如,處理組件102)接收與至少一個(gè)數(shù)據(jù)區(qū)塊和/或多個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次。在一方面,遠(yuǎn)端客戶端設(shè)備206可以接收從最低細(xì)節(jié)層次到最高細(xì)節(jié)層次的多個(gè)細(xì)節(jié)層次。此外,遠(yuǎn)端客戶端設(shè)備206可以基于與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次來渲染3D模型的至少一部分。
在示例中,至少一個(gè)服務(wù)器202(例如,處理組件102)可以接收和/或存儲(chǔ)采集的與3D模型關(guān)聯(lián)的3D數(shù)據(jù)。至少一個(gè)服務(wù)器202可以(例如,基于識(shí)別出的3D模型的建筑元素)將采集的3D數(shù)據(jù)分割為一個(gè)或多個(gè)數(shù)據(jù)區(qū)塊。此外,遠(yuǎn)端客戶端設(shè)備206可以接收由至少一個(gè)服務(wù)器202所生成的數(shù)據(jù)區(qū)塊和/或渲染從至少一個(gè)服務(wù)器202接收到的數(shù)據(jù)區(qū)塊。一旦遠(yuǎn)端客戶端設(shè)備206接收足以在3D模型觀察器上構(gòu)建渲染的3D模型的數(shù)據(jù)區(qū)塊,用戶就可以通過遠(yuǎn)端客戶端設(shè)備206上的3D模型觀察器觀看渲染的3D模型。隨著與3D模型觀察器上的渲染的3D模型關(guān)聯(lián)的攝像機(jī)視野改變,至少一個(gè)服務(wù)器202可以向遠(yuǎn)端客戶端設(shè)備206傳輸新的數(shù)據(jù)區(qū)塊。在一方面,至少一個(gè)服務(wù)器202可以基于與攝像機(jī)視野(例如,與3D模型觀察器上的渲染的3D模型關(guān)聯(lián)的攝像機(jī)視野)關(guān)聯(lián)的位置數(shù)據(jù)和/或取向數(shù)據(jù)向遠(yuǎn)端客戶端設(shè)備206傳輸新的數(shù)據(jù)區(qū)塊。應(yīng)明白,至少一個(gè)服務(wù)器202(例如,處理組件102)和/或遠(yuǎn)端客戶端設(shè)備206可以包括其它特征和/或與用于處理和/或傳輸3D數(shù)據(jù)的其它技術(shù)相關(guān)聯(lián),如本文更全面公開的。
參考圖3,其示出根據(jù)本公開的各個(gè)方面和具體實(shí)施的系統(tǒng)300的非限制性實(shí)現(xiàn)方式。系統(tǒng)包括至少一個(gè)服務(wù)器202、網(wǎng)絡(luò)204和遠(yuǎn)端客戶端設(shè)備206。至少一個(gè)服務(wù)器202可以包括至少分割組件104、數(shù)據(jù)組件105和/或輸出組件108。遠(yuǎn)端客戶端設(shè)備206可以包括至少選擇組件106。
在至少一個(gè)服務(wù)器202上實(shí)現(xiàn)的分割組件104、數(shù)據(jù)組件105和/或輸出組件108可以處理和/或傳輸3D數(shù)據(jù),如本文更全面公開的。在一方面,至少一個(gè)服務(wù)器202將與內(nèi)部環(huán)境的3D模型關(guān)聯(lián)的3D數(shù)據(jù)分割為與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊,在數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次,和/或基于根據(jù)與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的數(shù)據(jù)確定的傳輸順序向遠(yuǎn)端設(shè)備傳輸與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次。
遠(yuǎn)端客戶端設(shè)備206可以基于與細(xì)節(jié)層次關(guān)聯(lián)的數(shù)據(jù)來確定與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次的傳輸順序,基于該傳輸順序從服務(wù)器接收與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次,和/或基于與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次來渲染3D模型的至少一部分。在一方面,遠(yuǎn)端客戶端設(shè)備206可以基于所確定的傳輸順序來請求存儲(chǔ)在數(shù)據(jù)組件105中的數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的特定細(xì)節(jié)層次(例如,向至少一個(gè)服務(wù)器202發(fā)送包含關(guān)于特定數(shù)據(jù)區(qū)塊和/或數(shù)據(jù)區(qū)塊的特定細(xì)節(jié)層次的信息的請求)。遠(yuǎn)端客戶端設(shè)備206可以通過與遠(yuǎn)端客戶端設(shè)備206關(guān)聯(lián)的3D模型觀察器加載所請求的數(shù)據(jù)區(qū)塊和/或所請求的細(xì)節(jié)層次。
至少一個(gè)服務(wù)器202可以向遠(yuǎn)端客戶端設(shè)備206(例如,在遠(yuǎn)端客戶端設(shè)備206上實(shí)現(xiàn)的選擇組件106)傳輸與數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次關(guān)聯(lián)的信息以有助于選擇數(shù)據(jù)區(qū)塊和/或與數(shù)據(jù)區(qū)塊關(guān)聯(lián)的細(xì)節(jié)層次。該信息可以包括但不限于數(shù)據(jù)區(qū)塊的大小信息、數(shù)據(jù)區(qū)塊的位置信息、數(shù)據(jù)區(qū)塊的細(xì)節(jié)層次信息等。在一個(gè)示例中,至少一個(gè)服務(wù)器202可以向遠(yuǎn)端客戶端設(shè)備206傳輸與數(shù)據(jù)組件105關(guān)聯(lián)的分層索引。分層索引可以是存儲(chǔ)在數(shù)據(jù)組件105中的數(shù)據(jù)區(qū)塊和/或細(xì)節(jié)層次的索引。因此,遠(yuǎn)端客戶端設(shè)備206可以基于從至少一個(gè)服務(wù)器202接收到的信息和/或分層索引來確定傳輸順序。應(yīng)明白,在遠(yuǎn)端客戶端設(shè)備206上實(shí)現(xiàn)的選擇組件106可以另外或替換地實(shí)現(xiàn)其它特征和/或與用于選擇數(shù)據(jù)區(qū)塊和與數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的細(xì)節(jié)層次的其它技術(shù)相關(guān)聯(lián),如本文更全面公開的。
前述的系統(tǒng)和/或設(shè)備已關(guān)于在幾個(gè)組件之間的交互作用來描述。應(yīng)明白,此類系統(tǒng)和組件可以包括本文指定的這些組件和子組件、部分的指定組件或子組件和/或另外的組件。子組件也可以被實(shí)施為與其它組件通信耦合的組件而不是被包含在父組件內(nèi)。另外,一個(gè)或多個(gè)組件和/或子組件可被組合為提供聚集功能的單個(gè)組件。組件可與出于簡明的目的未在本文中具體描述,但是本領(lǐng)域的技術(shù)人員已知的一個(gè)或多個(gè)其它組件交互。
圖5-9示出根據(jù)所公開的主題的方法和/或流程圖。為了簡化解釋,該方法被描繪和描述為一系列行為。應(yīng)理解和明白,本主題創(chuàng)新不受所示的行為和/或行為的順序限制,例如各行為可以以各種順序和/或并行發(fā)生,并利用未在本文陳述和描述的其它行為。此外,未全部示出的行為可被要求實(shí)施根據(jù)所公開的主題的方法。此外,本領(lǐng)域的技術(shù)人員應(yīng)理解和明白,該方法可以通過狀態(tài)圖或事件被替換表示為一系列相關(guān)的狀態(tài)。替換地,還應(yīng)當(dāng)明白,在下文和整個(gè)說明書中所公開的方法能夠被存儲(chǔ)在有助于向計(jì)算機(jī)傳輸和傳遞此類方法的制品上。如本文所用,術(shù)語制品旨在涵蓋可從任何計(jì)算機(jī)可讀設(shè)備或存儲(chǔ)介質(zhì)訪問的計(jì)算機(jī)程序。
參考圖5,其示出根據(jù)主題創(chuàng)新的方面的用于處理和/或傳輸3D數(shù)據(jù)的方法500。例如,方法500可以被用在各種應(yīng)用中,諸如但不限于3D建模系統(tǒng)、3D重構(gòu)系統(tǒng)、服務(wù)器系統(tǒng)、基于云的系統(tǒng)等。在502,(例如,由至少一個(gè)服務(wù)器202)存儲(chǔ)與內(nèi)部環(huán)境的三維(3D)模型關(guān)聯(lián)的3D數(shù)據(jù)。在504,基于識(shí)別出的3D模型的建筑元素,(例如,由至少一個(gè)服務(wù)器202)將3D數(shù)據(jù)分割為至少一個(gè)數(shù)據(jù)區(qū)塊。在506,基于所確定的傳輸順序,(例如,由至少一個(gè)服務(wù)器202)將多個(gè)數(shù)據(jù)區(qū)塊發(fā)送至遠(yuǎn)端設(shè)備。另外或替換地,(例如,由至少一個(gè)服務(wù)器202)將與多個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的信息發(fā)送至遠(yuǎn)端設(shè)備。例如,與多個(gè)數(shù)據(jù)區(qū)塊相關(guān)聯(lián)的信息可以包括但不限于:多個(gè)數(shù)據(jù)區(qū)塊的大小信息、多個(gè)數(shù)據(jù)區(qū)塊的位置信息、多個(gè)數(shù)據(jù)區(qū)塊的分層信息(例如,細(xì)節(jié)層次信息)等。在508,基于與多個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的信息、與在遠(yuǎn)端設(shè)備上渲染3D模型關(guān)聯(lián)的其它信息和/或與在遠(yuǎn)端設(shè)備上渲染3D模型的攝像機(jī)位置關(guān)聯(lián)的其它信息,(例如,由至少一個(gè)服務(wù)器202)將一個(gè)或多個(gè)新數(shù)據(jù)區(qū)塊發(fā)送至遠(yuǎn)端設(shè)備。
參考圖6,其示出根據(jù)主題創(chuàng)新的另一方面的用于處理和/或傳輸3D數(shù)據(jù)的方法600。在602,(例如,由處理組件102和/或分割組件104)接收與環(huán)境的三維(3D)模型關(guān)聯(lián)的3D數(shù)據(jù)。在604,基于一種或多種數(shù)據(jù)分塊技術(shù),(例如,由分割組件104)將3D數(shù)據(jù)分割為至少一個(gè)數(shù)據(jù)區(qū)塊。在606,(例如,由選擇組件106)確定至少一個(gè)數(shù)據(jù)區(qū)塊的傳輸順序、與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的幾何形狀數(shù)據(jù)和/或與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的紋理數(shù)據(jù)。在608,基于傳輸順序,(例如,由輸出組件108)將至少一個(gè)數(shù)據(jù)區(qū)塊、與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的幾何形狀數(shù)據(jù)和/或與至少一個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的紋理數(shù)據(jù)發(fā)送至遠(yuǎn)端設(shè)備。
參考圖7,其示出根據(jù)主題創(chuàng)新的又一方面的用于處理和/或傳輸3D數(shù)據(jù)的方法700。在702,(例如,由處理組件102和/或分割組件104)接收采集的與內(nèi)部環(huán)境的三維(3D)模型關(guān)聯(lián)的3D數(shù)據(jù)。在704,(例如,使用分割組件104)將采集的3D數(shù)據(jù)分割為與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)段。在706,(例如,由數(shù)據(jù)組件105)將包含與至少一個(gè)數(shù)據(jù)段關(guān)聯(lián)的多個(gè)細(xì)節(jié)層次的3D數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中。在708,基于根據(jù)與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的幾何形狀數(shù)據(jù)和/或紋理數(shù)據(jù)確定的順序,(例如,由輸出組件108)將至少一個(gè)數(shù)據(jù)段的多個(gè)細(xì)節(jié)層次傳輸至遠(yuǎn)端設(shè)備。
參考圖8,其示出根據(jù)主題創(chuàng)新的又一方面的用于處理和/或傳輸3D數(shù)據(jù)的方法800。在802,(例如,由處理組件102和/或分割組件104)接收采集的與三維(3D)模型關(guān)聯(lián)的3D數(shù)據(jù)。在804,(例如,使用分割組件104)將采集的3D數(shù)據(jù)劃分為與多個(gè)細(xì)節(jié)層次關(guān)聯(lián)的至少一個(gè)數(shù)據(jù)區(qū)塊。在806,基于與在遠(yuǎn)端設(shè)備上渲染3D模型關(guān)聯(lián)的至少一個(gè)位置數(shù)據(jù)和/或取向數(shù)據(jù),(例如,使用選擇組件106)選擇傳輸至少一個(gè)數(shù)據(jù)區(qū)塊的多個(gè)細(xì)節(jié)層次的順序。在808,基于該順序,(例如,由輸出組件108)將至少一個(gè)數(shù)據(jù)區(qū)塊的多個(gè)細(xì)節(jié)層次發(fā)送至遠(yuǎn)端設(shè)備。
參考圖9,其示出根據(jù)本主題創(chuàng)新的方面的基于視野位置從服務(wù)器向遠(yuǎn)端客戶端設(shè)備發(fā)送數(shù)據(jù)區(qū)塊的示例方法900。例如,方法900示出在遠(yuǎn)端客戶端設(shè)備和服務(wù)器之間的用于基于來自遠(yuǎn)端客戶端設(shè)備的反饋(例如,與遠(yuǎn)端客戶端設(shè)備關(guān)聯(lián)的攝像機(jī)的位置)來選擇特定細(xì)節(jié)層次和/或特定數(shù)據(jù)區(qū)塊的示例通信流程。在902,客戶端從服務(wù)器請求網(wǎng)格。例如,遠(yuǎn)端客戶端設(shè)備可以從服務(wù)器請求3D數(shù)據(jù)。在一方面,遠(yuǎn)端客戶端設(shè)備可以發(fā)送在渲染3D模型時(shí)的用戶初始位置(例如,與在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn)的基于網(wǎng)頁的觀察器關(guān)聯(lián)的觀看位置)。因此,從服務(wù)器發(fā)送至客戶端的初始網(wǎng)格可以被選擇以更精確地對應(yīng)于與客戶端關(guān)聯(lián)的初始視點(diǎn)。在904,將低分辨率網(wǎng)格從服務(wù)器發(fā)送至客戶端。例如,服務(wù)器可以向遠(yuǎn)端客戶端設(shè)備發(fā)送關(guān)于網(wǎng)格的初始數(shù)據(jù)(例如,表示與3D數(shù)據(jù)關(guān)聯(lián)的網(wǎng)格/紋理的低分辨率版本的數(shù)據(jù)區(qū)塊或數(shù)據(jù)區(qū)塊的集合)(例如,以在遠(yuǎn)端客戶端設(shè)備上初始顯示)。在906,客戶端向服務(wù)器報(bào)告用戶位置。例如,遠(yuǎn)端客戶端設(shè)備可以報(bào)告在渲染3D模型時(shí)的用戶位置(例如,與在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn)的觀察器關(guān)聯(lián)的觀看位置、與在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn)的3D模型觀察器關(guān)聯(lián)的攝像機(jī)位置等)。在一個(gè)示例中,用戶位置可以由用戶位置在3D空間中的關(guān)于X、Y和Z坐標(biāo)的三個(gè)浮點(diǎn)數(shù)來表示。在另一示例中,除了用戶位置以外,表示與用戶在遠(yuǎn)端客戶端設(shè)備上渲染的3D模型中的位置關(guān)聯(lián)的虛擬攝像機(jī)或視見平截頭體的取向(例如,觀看方向)的數(shù)據(jù)(例如,四元數(shù))被報(bào)告給服務(wù)器。例如,四元數(shù)可以包括標(biāo)準(zhǔn)表示作為滿足特定關(guān)系的四個(gè)浮點(diǎn)數(shù),并且可以被減少到三個(gè)獨(dú)立浮點(diǎn)數(shù)。在一方面,客戶端向服務(wù)器報(bào)告更新的用戶位置。例如,遠(yuǎn)端客戶端設(shè)備可以報(bào)告在渲染3D模型時(shí)的更新的用戶位置(例如,與在遠(yuǎn)端客戶端設(shè)備上實(shí)現(xiàn)的觀察器關(guān)聯(lián)的更新的觀看位置)。在一個(gè)示例中,更新的用戶位置可以對應(yīng)于初始的用戶位置。在另一示例中,更新的用戶位置可以不同于初始的用戶位置。
在908,服務(wù)器確定任何數(shù)據(jù)區(qū)塊是否仍待發(fā)送至客戶端。例如,服務(wù)器可以確定是否存在可以被發(fā)送至遠(yuǎn)端客戶端設(shè)備的任何細(xì)節(jié)層次的任何剩余數(shù)據(jù)區(qū)塊。如果“否”,則方法900進(jìn)行到914。在914,完成網(wǎng)格加載。如果“是”,則方法900進(jìn)行到910。在910,服務(wù)器判斷哪個(gè)數(shù)據(jù)區(qū)塊接下來待發(fā)送至客戶端。例如,如果存在剩余的數(shù)據(jù)區(qū)塊,則服務(wù)器可以確定接下來發(fā)送哪個(gè)數(shù)據(jù)塊和/或哪個(gè)細(xì)節(jié)層次至客戶端。在一個(gè)示例中,服務(wù)器可以基于在906確定的位置數(shù)據(jù)和/或取向數(shù)據(jù),來確定接下來發(fā)送哪個(gè)數(shù)據(jù)區(qū)塊和/或哪個(gè)細(xì)節(jié)層次至客戶端。在912,服務(wù)器向客戶端發(fā)送下一個(gè)數(shù)據(jù)區(qū)塊。接下來,在906,客戶端向服務(wù)器報(bào)告新的用戶位置。在一個(gè)示例中,新的用戶位置可以與先前報(bào)告的用戶位置相同。在另一示例中,新的用戶位置可以不同于先前報(bào)告的用戶位置。因此,方法900可以繼續(xù),直到客戶端不再需要網(wǎng)格或直到服務(wù)器已確定網(wǎng)格加載已完成(例如,在914)。在替換實(shí)施例中,908和/或910可以在客戶端上實(shí)現(xiàn)。在一方面,服務(wù)器可以向客戶端傳輸與每個(gè)數(shù)據(jù)區(qū)塊關(guān)聯(lián)的信息和/或與數(shù)據(jù)區(qū)塊的每個(gè)細(xì)節(jié)層次關(guān)聯(lián)的信息,以有助于確定任何數(shù)據(jù)區(qū)塊是否仍待發(fā)送至客戶端和/或判斷接下來發(fā)送哪個(gè)數(shù)據(jù)區(qū)塊至客戶端。
為了提供本公開的主題的各個(gè)方面的上下文,圖10和11以及下面的論述旨在提供可實(shí)施本公開的主題的各個(gè)方面的合適環(huán)境的簡短的一般描述。
參考圖10,用于實(shí)施本公開的各個(gè)方面的合適環(huán)境1000包括計(jì)算機(jī)1012。計(jì)算機(jī)1012包括處理單元1014、系統(tǒng)存儲(chǔ)器1016和系統(tǒng)總線1018。系統(tǒng)總線1018耦合系統(tǒng)組件,其包含但不限于系統(tǒng)存儲(chǔ)器1016耦合至處理單元1014。處理單元1014可以為各種可用處理器。雙微處理器和其它多處理器架構(gòu)也可以被用作處理單元1014。
總線結(jié)構(gòu)1018可以是若干類型的總線結(jié)構(gòu)中的任一種,包含存儲(chǔ)器總線、存儲(chǔ)器控制器或外圍總線或外部總線和/或使用任何各種各樣的可用總線架構(gòu)的本地總線,任何各種各樣的可用總線架構(gòu)包含但不限于工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)、微通道架構(gòu)(MSA)、擴(kuò)展ISA(EISA)、智能驅(qū)動(dòng)電子(IDE)、VESA局部總線(VLB)、外圍組件互連(PCI)、卡總線、通用串行總線(USB)、高級圖形端口(AGP)、個(gè)人計(jì)算機(jī)存儲(chǔ)卡國際協(xié)會(huì)總線(PCMCIA)、火線(IEEE 1394)以及小型計(jì)算機(jī)系統(tǒng)接口(SCSI)。
系統(tǒng)存儲(chǔ)器1016包括易失性存儲(chǔ)器1020和非易失性存儲(chǔ)器1022。含有諸如在啟動(dòng)過程中在計(jì)算機(jī)1012內(nèi)的元件之間傳遞信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS)被存儲(chǔ)在非易失性存儲(chǔ)器1022中。借助于說明但不是限制,非易失性存儲(chǔ)器1022可以包括只讀存儲(chǔ)器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)、閃存或非易失性隨機(jī)存取存儲(chǔ)器(RAM)(例如,鐵電RAM(FeRAM)。易失性存儲(chǔ)器1020包括可以充當(dāng)外部高速緩存存儲(chǔ)器的隨機(jī)存取存儲(chǔ)器(RAM)。借助于說明但不是限制,RAM可用于許多形式,諸如靜態(tài)RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)率SDRAM(DDR SDRAM)、加強(qiáng)SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus動(dòng)態(tài)RAM(DRDRAM)和Rambus動(dòng)態(tài)RAM。
計(jì)算機(jī)1012也包括可移除/不可移除、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。圖10示出例如盤存儲(chǔ)1024。盤存儲(chǔ)1024包括但不限于磁盤驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、帶驅(qū)動(dòng)器、Jaz驅(qū)動(dòng)器、Zip驅(qū)動(dòng)器、LS-100驅(qū)動(dòng)器、閃存卡或存儲(chǔ)器棒的器件。盤存儲(chǔ)1024也可以包括獨(dú)立或與其它存儲(chǔ)介質(zhì)組合的存儲(chǔ)介質(zhì),包括但不限于光盤驅(qū)動(dòng)器,諸如緊湊盤ROM設(shè)備(CD-ROM)、CD可錄驅(qū)動(dòng)器(CD-R驅(qū)動(dòng)器)、CD可重寫驅(qū)動(dòng)器(CD-RW驅(qū)動(dòng)器)或數(shù)字多功能ROM驅(qū)動(dòng)器(DVD-ROM)。為了有助于盤存儲(chǔ)設(shè)備1024至系統(tǒng)總線1018的連接,通常使用可移除或不可移除接口,諸如接口1026。
圖10也示出充當(dāng)用戶和在合適的運(yùn)行環(huán)境1000中描述的基本計(jì)算機(jī)資源之間的中間體的軟件。此類軟件包括例如操作系統(tǒng)1028。可以被存儲(chǔ)在盤存儲(chǔ)1024中的操作系統(tǒng)1028用于控制和分配計(jì)算機(jī)系統(tǒng)1012的資源。系統(tǒng)應(yīng)用1030利用操作系統(tǒng)1028通過例如存儲(chǔ)在系統(tǒng)存儲(chǔ)器1016或盤存儲(chǔ)1024中的程序模塊1032和程序數(shù)據(jù)1034對資源進(jìn)行管理。應(yīng)明白,本公開可以用各種操作系統(tǒng)或操作系統(tǒng)的組合來實(shí)施。
用戶通過輸入設(shè)備1036將命令或信息輸入到計(jì)算機(jī)1012中。輸入設(shè)備1036包括但不限于定點(diǎn)設(shè)備,諸如鼠標(biāo)、軌跡球、手寫筆、觸摸板、鍵盤、麥克風(fēng)、搖桿、游戲墊、衛(wèi)星天線、掃描儀、電視調(diào)諧卡、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、網(wǎng)絡(luò)攝像機(jī)等。這些和其它輸入設(shè)備通過接口端口1038通過系統(tǒng)總線1018連接到處理單元1014。接口端口1038包括例如串行端口、并行端口、游戲端口和通用串行總線(USB)。輸出設(shè)備1040使用一些相同類型的端口用作輸入設(shè)備1036。因此,例如,USB端口可以被用于提供至計(jì)算機(jī)1012的輸入并從計(jì)算機(jī)1012向輸出設(shè)備1040輸出信息。提供輸出適配器1042是為了示出除了其它輸出設(shè)備1040之外,還存在一些輸出設(shè)備1040,像監(jiān)視器、揚(yáng)聲器和打印機(jī),它們需要特殊的適配器。借助于說明但不是限制,輸出適配器1042包括顯卡和聲卡,其提供在輸出設(shè)備1040和系統(tǒng)總線1018之間的連接的手段。應(yīng)指出,其它設(shè)備和/或設(shè)備系統(tǒng)均提供諸如遠(yuǎn)端計(jì)算機(jī)1044的輸入和輸出性能。
通過使用至一個(gè)或多個(gè)遠(yuǎn)端計(jì)算機(jī)諸如遠(yuǎn)端計(jì)算機(jī)1044的邏輯連接,計(jì)算機(jī)1012可以運(yùn)行在聯(lián)網(wǎng)環(huán)境中。遠(yuǎn)端計(jì)算機(jī)1044可以是個(gè)人計(jì)算機(jī)。服務(wù)器。路由器、網(wǎng)絡(luò)PC、工作站、基于應(yīng)用的微處理器、對等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn)等,并且通常包括關(guān)于計(jì)算機(jī)1012所述的許多或全部元件。為了簡明起見,僅示出遠(yuǎn)端計(jì)算機(jī)1044具有內(nèi)存存儲(chǔ)設(shè)備1046。遠(yuǎn)端計(jì)算機(jī)1044通過網(wǎng)絡(luò)接口1048被邏輯連接到計(jì)算機(jī)1012并接著通過通信連接1050物理連接。網(wǎng)絡(luò)接口1048涵蓋有線和/或無線通信網(wǎng)絡(luò),諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、蜂窩網(wǎng)絡(luò)等。LAN技術(shù)包括光纖分布式數(shù)據(jù)接口(FDDI)、銅線分布式數(shù)據(jù)接口(接口)、以太網(wǎng)、令牌環(huán)。WAN技術(shù)包括但不限于,點(diǎn)對點(diǎn)的鏈路、電路交換網(wǎng)絡(luò),像集成服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)和其變體,分組交換網(wǎng)和數(shù)字用戶線(DSL)。
通信連接1050指的是被用于將網(wǎng)絡(luò)接口1048連接至總線1018的硬件/軟件。雖然為了清楚起見,通信連接1050被示出在計(jì)算機(jī)1012中,但是它也可以在計(jì)算機(jī)1012的外部。僅出于示例性目的,至網(wǎng)絡(luò)接口1048的連接所需的硬件/軟件包含內(nèi)部和外部技術(shù),諸如調(diào)制解調(diào)器,包括常規(guī)的電話級調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和DSL調(diào)制解調(diào)器、ISDN適配器和以太網(wǎng)卡。
應(yīng)明白,計(jì)算機(jī)1012可以被用于實(shí)現(xiàn)結(jié)合圖1-9所示和所述的一個(gè)或多個(gè)系統(tǒng)、組件和/或方法的連接。根據(jù)各個(gè)方面和具體實(shí)施,計(jì)算機(jī)1012可以被用于有助于處理和/或傳輸3D數(shù)據(jù)。在某些示例性實(shí)施例中,計(jì)算機(jī)1012包括組件1006(例如,處理組件102),其可以包括例如分割組件、數(shù)據(jù)組件、選擇組件和/或輸出組件,它們中的每個(gè)可以分別起本文完全公開的作用。
圖11為本公開的主題可以與其交互的采樣計(jì)算環(huán)境1100的示意性框圖。系統(tǒng)1100包括一個(gè)或多個(gè)客戶端1110??蛻舳?110可以是硬件和/或軟件(例如,線程、進(jìn)程、計(jì)算設(shè)備)。系統(tǒng)1100也包括一個(gè)或多個(gè)服務(wù)器1130。因此,除了其它模型之外,系統(tǒng)1100可以對應(yīng)于兩層客戶端服務(wù)器模型或多層模型(例如,客戶端、中間層服務(wù)器、數(shù)據(jù)服務(wù)器)。服務(wù)器1130也可以是硬件和/或軟件(例如,線程、進(jìn)程、計(jì)算設(shè)備)。通過采用本公開,服務(wù)器1130可以容納線程以執(zhí)行例如轉(zhuǎn)換。在客戶端1110和服務(wù)器1130之間的一個(gè)可能通信可以是在兩個(gè)或多個(gè)計(jì)算機(jī)進(jìn)程之間傳輸?shù)臄?shù)據(jù)包的形式。
系統(tǒng)1100包括通信框架1150,其可以被用于有助于在客戶端1110和服務(wù)器1130之間的通信??蛻舳?110可操作連接到一個(gè)或多個(gè)客戶端數(shù)據(jù)存儲(chǔ)1120,其可以被用于存儲(chǔ)客戶端1110本地的信息。類似地,服務(wù)器1130可操作連接到一個(gè)或多個(gè)服務(wù)器數(shù)據(jù)存儲(chǔ)1140,其可以被用于存儲(chǔ)服務(wù)器1130本地的信息。
應(yīng)指出,本公開的各方面或特征可以被利用在任何無線通信或射頻技術(shù)中,例如Wi-Fi;藍(lán)牙;全球微波接入互操作性(WiMAX);增強(qiáng)通用分組無線業(yè)務(wù)(增強(qiáng)型GPRS);第三代合作伙伴計(jì)劃(3GPP)長期演進(jìn)(LTE);第三代合作伙伴計(jì)劃2(3GPP2)超移動(dòng)寬帶(UMB);3GPP通用移動(dòng)通信系統(tǒng)(UMTS);高速分組接入(HSPA);高速下行鏈路分組接入(HSDPA);高速上行鏈路分組接入(HSUPA);GSM(全球移動(dòng)通信系統(tǒng))EDGE(GSM演進(jìn)的增強(qiáng)數(shù)據(jù)速率)無線接入網(wǎng)絡(luò)(GERAN);UMTS陸地?zé)o線電接入網(wǎng)(UTRAN);高級LTE(LTE-A);等。此外,本文所述的一些或所有的方面可以在傳統(tǒng)的通信技術(shù),例如GSM中利用。此外,移動(dòng)以及非移動(dòng)網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)、數(shù)據(jù)服務(wù)網(wǎng)絡(luò),諸如互聯(lián)網(wǎng)協(xié)議電視(IPTV)等)可以利用本文所述的各方面或特征。
雖然本主題已在上面在計(jì)算機(jī)上運(yùn)行的計(jì)算機(jī)程序的計(jì)算機(jī)可執(zhí)行指令的一般語境下描述,但是本領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識(shí)到,本公開也可用其它程序模塊或可與其它程序模塊組合來實(shí)施。一般來說,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定任務(wù)和/或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員應(yīng)明白,本發(fā)明方法可用其它計(jì)算機(jī)系統(tǒng)配置,包含單處理器或多處理器計(jì)算機(jī)系統(tǒng)、迷你計(jì)算設(shè)備、大型計(jì)算機(jī)以及個(gè)人計(jì)算機(jī)、手持式計(jì)算設(shè)備(例如,PDA、電話)、基于微處理器或可編程消費(fèi)者或工業(yè)電子設(shè)備等來實(shí)施。所示的各方面也可在分布式計(jì)算環(huán)境中實(shí)施,其中,任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)端處理設(shè)備來執(zhí)行。然而,本公開的一些方面可以在獨(dú)立的計(jì)算機(jī)上實(shí)施,如果不是全部的話。在分布式計(jì)算環(huán)境中,程序模塊可以被定位在本地和遠(yuǎn)程內(nèi)存存儲(chǔ)設(shè)備中。
如在本申請中使用,術(shù)語“組件”、“系統(tǒng)”、“平臺(tái)”、“接口”等可以指的是和/或可以包含計(jì)算機(jī)相關(guān)的實(shí)體或使可操作機(jī)器與一個(gè)或多個(gè)具體功能相關(guān)的實(shí)體。本文所公開的實(shí)體可以為硬件、硬件和軟件的組合、軟件或在執(zhí)行的軟件。例如,組件可為但不限于在處理器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行文件、執(zhí)行線程、程序和/或計(jì)算機(jī)。借助于例證,在服務(wù)器上運(yùn)行的應(yīng)用和該服務(wù)器兩者均可以為組件。一個(gè)或多個(gè)組件可駐留在執(zhí)行進(jìn)程和/或線程內(nèi),以及組件可被定位在一個(gè)計(jì)算機(jī)上和/或分布在兩個(gè)或多個(gè)計(jì)算機(jī)之間。
在另一示例中,相應(yīng)的組件可以執(zhí)行具有存儲(chǔ)在其上面的各種數(shù)據(jù)結(jié)構(gòu)的各種計(jì)算機(jī)可讀介質(zhì)。組件可通過本地和/或遠(yuǎn)程進(jìn)程來通信,諸如根據(jù)具有一個(gè)或多個(gè)數(shù)據(jù)包的信號(hào)(例如,來自與本地系統(tǒng)、分布式系統(tǒng)中的另一組件交互的一個(gè)組件的數(shù)據(jù)和/或通過信號(hào)跨網(wǎng)絡(luò)諸如具有其它系統(tǒng)的互聯(lián)網(wǎng))。作為另一示例,組件可以為具有由電氣或電子電路操作的機(jī)械組件所提供的特定功能的設(shè)備,其由處理器執(zhí)行的軟件或固件應(yīng)用來操作。在此情況下,處理器可以在該設(shè)備的內(nèi)部或外部并且可以執(zhí)行軟件或固件應(yīng)用的至少一部分。作為又一示例,組件可以為通過電子組件提供指定功能而無需機(jī)械組件的設(shè)備,其中,電子組件可以包括處理器或執(zhí)行軟件或固件以賦予該電子組件的至少一部分功能的其它設(shè)備。在一方面,組件可以例如在云計(jì)算系統(tǒng)內(nèi)通過虛擬機(jī)器來模擬電子組件。
此外,術(shù)語“或”旨在表示包含“或”而不是排他性的“或”。即,除非另外指明或從上下文清楚指出,否則“X采用A或B”旨在表示自然包含排列中的任一種。即,如果X采用A;X采用B;或X采用A和B兩者,則在前述實(shí)例的任一情況下滿足“X采用A或B”。此外,用在本說明書和附圖中的冠詞“a”和“an”通常應(yīng)解釋為意指“一個(gè)或多個(gè)”,除非另外指明或從上下文清楚指出為單數(shù)形式。
如本文所用,所用的術(shù)語“示例”和/或“示例性”意指用作示例、實(shí)例或例證。為了避免疑問,本文所公開的主題不受此類示例限制。此外,本文被描述為“示例”和/或“示例性”的任何方面或設(shè)計(jì)不一定被解釋為比其它方面或設(shè)計(jì)優(yōu)選或有利的,也不一定意指排除本領(lǐng)域的普通技術(shù)人員已知的等同示例性結(jié)構(gòu)和技術(shù)。
本文所述的各個(gè)方面或特征可以被實(shí)施為使用標(biāo)準(zhǔn)編程或工程技術(shù)的方法、設(shè)備、系統(tǒng)或制品。此外,在本公開中公開的各個(gè)方面或特征可以通過實(shí)施本文公開的至少一種或多種方法的程序模塊來實(shí)現(xiàn),該程序模塊被存儲(chǔ)在存儲(chǔ)器中并由至少一個(gè)處理器來執(zhí)行。硬件和軟件或硬件和固件的其它組合可允許或?qū)嵤┍疚乃龅姆矫妫_的方法。如本文所用,術(shù)語“制品”可以涵蓋可從任何計(jì)算機(jī)可讀設(shè)備、載體或存儲(chǔ)介質(zhì)訪問的計(jì)算機(jī)程序。例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包含但不限于磁存儲(chǔ)設(shè)備(例如,硬盤、軟盤、磁帶...)、光盤(例如,光盤(CD)、數(shù)字多功能盤(DVD)、藍(lán)光盤(BD)...)、智能卡和閃存設(shè)備(例如,存儲(chǔ)卡、棒、密鑰驅(qū)動(dòng)器...)等。
如在本說明書中所用,術(shù)語“處理器”可以基本上指的是任何計(jì)算出來單元或設(shè)備,包括但不限于單核處理器;具有軟件多線程執(zhí)行能力的單處理器;多核處理器;具有軟件多線程執(zhí)行能力的多核處理器;具有硬件多線程技術(shù)的多核處理器;并行平臺(tái);和具有分布式共享存儲(chǔ)器的并行平臺(tái)。另外,處理器可以指的是集成電路、專用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、可編程邏輯控制器(PLC)、復(fù)雜可編程邏輯器件(CPLD)、分立門或晶體管邏輯、分立硬件組件或它們的任何組合以執(zhí)行本文所述的功能。此外,處理器可以利用納米尺度的架構(gòu),諸如但不限于,基于分子和量子點(diǎn)的晶體管、開關(guān)和門,以便優(yōu)化空間的使用或提高用戶設(shè)備的性能。處理器也可被實(shí)施為計(jì)算處理單元的組合。
在本公開中,術(shù)語諸如“存儲(chǔ)”、“數(shù)據(jù)存儲(chǔ)”、“數(shù)據(jù)庫”等基本上為關(guān)于組件的操作和功能的任何其它信息存儲(chǔ)組件,所使用的組件是指“存儲(chǔ)器組件”、“在存儲(chǔ)器中”實(shí)施的實(shí)體或包括存儲(chǔ)器的組件。應(yīng)明白,本文所述的存儲(chǔ)器和/或存儲(chǔ)器組件可以為易失性存儲(chǔ)器或非易失性存儲(chǔ)器,或可以包含易失性和非易失性存儲(chǔ)器。
借助于說明但不是限制,非易失性存儲(chǔ)器可以包含只讀存儲(chǔ)器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦ROM(EEPROM)、閃存或非易失性隨機(jī)存取存儲(chǔ)器(RAM)(例如,鐵電RAM(FeRAM)。易失性存儲(chǔ)器可以包含RAM,其可例如充當(dāng)外部高速緩存存儲(chǔ)器。借助于例證但不是限制,RAM可用于許多形式,諸如同步RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)率SDRAM(DDR SDRAM)、加強(qiáng)SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus動(dòng)態(tài)RAM(DRDRAM)和Rambus動(dòng)態(tài)RAM(RDRAM)。另外,本文所公開的系統(tǒng)或方法的存儲(chǔ)器組件旨在包含但不限于這些和任何其它合適類型的存儲(chǔ)器。
應(yīng)當(dāng)明白和理解,關(guān)于特定系統(tǒng)或方法所述的組件(例如,處理組件、分割組件、數(shù)據(jù)組件、選擇組件、輸出組件等)可以包含關(guān)于本文所公開的其它系統(tǒng)或方法所述的相應(yīng)組件(例如,相應(yīng)命名的組件或類似命名的組件)的相同或類似功能。
上面的描述包含提供本公開的優(yōu)點(diǎn)的系統(tǒng)和方法的實(shí)例。當(dāng)然,出于描述本公開的目的,描述每種想得到的組件和方法的組合是不可能的,但是本領(lǐng)域的普通技術(shù)人員應(yīng)明白,本公開的許多另外組合和置換是可能的。此外,至于術(shù)語“包含”、“具有”、“擁有”等在具體實(shí)施方式、權(quán)利要求和附圖中所使用的程度,此類術(shù)語旨在以類似于術(shù)語“包括”的方式被包含在內(nèi),在權(quán)利要求中使用術(shù)語“包括”時(shí),其被解釋為過渡詞。