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