進入F0V時再次被顯示。
[0096] 可能的是HUD460位于頭戴式顯示設備2的F0V內(nèi),但設備2能夠確定用戶并沒 有關注HUD460。設備2可確定HUD460位于F0V的外圍,或者眼睛跟蹤組件134可指示 出用戶正在看與HUD460不同的方向。因此,在另外的實施例中,即使HUD460處于該F0V 內(nèi),如果用戶沒有關注HUD460達超過所述預定時間段(在一些實施例中具有預定的一段 時間),則HUD460可被取下且可從其世界鎖定位置切換到其身體鎖定位置。
[0097] 使用本技術的實施例,當用戶對HUD460不感興趣時,用戶能夠自由地與混合現(xiàn) 實環(huán)境交互而沒有來自HUD460的干擾。然而,HUD460保持對用戶可訪問,且可通過用戶 看向預定位置來被訪問,該預定位置相對于用戶的身體位置保持相同。
[0098] 圖12是中樞計算系統(tǒng)12、處理單元4和頭戴式顯示設備2在離散時間段(諸如為 了生成、渲染和向每個用戶顯示單幀圖像數(shù)據(jù)所花費的時間)期間的操作和交互性的高級 流程圖。在一些實施例中,數(shù)據(jù)可以以60Hz的速率刷新,但是在另外的實施例中可以以更 高或更低的頻度刷新。
[0099] -般而言,該系統(tǒng)生成具有環(huán)境和該環(huán)境中的諸如用戶、現(xiàn)實世界物體和虛擬物 體之類的物體的x、y、z坐標的場景圖。如上所述,諸如HUD460之類的虛擬物體可以例如 由在中樞計算系統(tǒng)12上運行的應用或由用戶18虛擬地置于環(huán)境中。該系統(tǒng)還跟蹤每個用 戶的F0V。盡管所有用戶或許可能在查看該場景的相同方面,然而他們正在從不同視角來查 看它們。因此,該系統(tǒng)生成每個人對場景的F0V以針對虛擬或現(xiàn)實世界物體的視差和遮擋 進行調(diào)整,這對于每個用戶而言再一次可能是不同的??赡艿氖堑谝挥脩舻腍UD可能或可 能不對其他用戶可見(例如基于第一用戶的隱私設置)。
[0100] 對于給定的圖像數(shù)據(jù)幀,用戶的視圖可以包括一個或多個現(xiàn)實和/或虛擬物體。 當用戶轉動他或她的頭部時(例如從左向右或上下),該用戶的F0V中的現(xiàn)實世界物體的相 對位置固有地在該用戶的F0V內(nèi)移動。例如,圖1中的植物23可最初出現(xiàn)在用戶的F0V的 右側。但是如果隨后用戶向右轉動他的/她的頭部,則植物23可最終停在用戶的F0V的左 側。
[0101] 然而,隨著用戶移動其頭部向用戶顯示虛擬物體是更困難的問題。在用戶正在看 向其F0V內(nèi)的一虛擬物體的示例中,如果用戶向左移動他的頭部以向左移動F0V,則該虛擬 物體的顯示需要向右偏移該用戶的F0V的偏移量,使得凈效果是該虛擬物體在F0V內(nèi)保持 固定。用于正確地顯示世界鎖定的和身體鎖定的虛擬物體的系統(tǒng)在下文參考圖12- ??的 流程圖來闡述。
[0102] 可以在步驟600配置用于將混合現(xiàn)實呈現(xiàn)給一個或多個用戶18的系統(tǒng)。例如,用 戶18或系統(tǒng)的操作者可指定要被呈現(xiàn)的虛擬物體,包括例如HUD460。用戶也可配置HUD460的內(nèi)容,以及它要如何、何時以及在何處被呈現(xiàn)。盡管已描述了一些實施例包括單個 HUD460,但是可理解具有不同內(nèi)容的兩個或更多個HUD可被生成并安置在場景中。每個這 樣的HUD460可以是如本文所述的混合HUD460。
[0103] 在步驟604和630,中樞12和處理單元4從場景收集數(shù)據(jù)。對于中樞12,這可以 是由捕捉設備20的深度相機426和RGB相機428感測到的圖像和音頻數(shù)據(jù)。對于處理單 元4,這可以是由頭戴式顯示設備2在步驟656感測到的圖像數(shù)據(jù),且具體而言,是由相機 112、眼睛跟蹤組件134和頂U132感測到的圖像數(shù)據(jù)。在步驟656,由頭戴式顯示設備2收 集的數(shù)據(jù)被發(fā)送給處理單元4。處理單元4在步驟630中處理這一數(shù)據(jù),以及將它發(fā)送給中 樞12〇
[0104] 在步驟608,中樞12執(zhí)行各種設置操作,這些設置操作允許中樞12協(xié)調(diào)其捕捉設 備20和一個或多個處理單元4的圖像數(shù)據(jù)。具體而言,即使捕捉設備20相對于場景的位置 是已知的(情況可能不一定如此),頭戴式顯示設備2上的相機也在場景中四處移動。因此, 在一些實施例中,成像相機中的每一個的位置和時間捕捉需要被校準到該場景、彼此校準、 以及校準到中樞12。步驟608的進一步細節(jié)在2012年5月3日公開的題為"Low-Latency FusingofVirtualAndRealContent"(虛擬和現(xiàn)實內(nèi)容的低等待時間融合)的美國專 利公開號2012/0105473中被描述。
[0105] -旦在步驟608校準了該系統(tǒng),則可以在步驟610發(fā)展場景圖,該場景圖標識出該 場景的幾何形狀以及該場景內(nèi)的物體的幾何形狀和位置。在一些實施例中,在給定幀中生 成的場景圖可包括該場景中所有用戶、現(xiàn)實世界物體和虛擬物體的X、y和z位置。該信息 可在圖像數(shù)據(jù)收集步驟604、630和656期間獲得,并且在步驟608被一起校準。
[0106] 至少捕捉設備20包括用于確定場景的深度(直到可能以墻壁等等為界限的程度) 以及場景內(nèi)的物體的深度位置的深度相機。如下文所闡述的,場景圖被用來將虛擬物體定 位在場景內(nèi),以及顯示帶有正確遮擋的虛擬三維物體(虛擬三維物體可被現(xiàn)實世界物體或 另一虛擬三維物體遮擋,或虛擬三維物體可遮擋現(xiàn)實世界物體或另一虛擬三維物體)。
[0107]系統(tǒng)10可包括多個深度圖像相機以獲得來自場景的所有深度圖像,或包括單個 深度圖像相機,諸如舉例來說捕捉設備20的深度圖像相機426可能足以捕捉來自場景的 所有深度圖像。一種用于確定未知環(huán)境內(nèi)的場景圖的類似方法被稱為同時定位和映射 (SLAM)。SLAM的一個不例在 2010 年 8 月 10 日頒布的題為"SystemsandMethodsfor LandmarkGenerationforVisualSimultaneousLocalizationandMapping',(用于可 視同時定位和映射的地標生成的系統(tǒng)和方法)的美國專利號7, 774, 158中被揭示。
[0108] 在步驟612,該系統(tǒng)可檢測和跟蹤諸如在房間中移動的人之類的移動物體,并且基 于移動物體的位置來更新場景圖。這包括使用場景內(nèi)的用戶的骨架模型,如上所述。
[0109] 在步驟614,中樞確定頭戴式顯示設備2的X、y和z位置、定向以及F0V。現(xiàn)在參 考附圖13的流程圖描述步驟614的進一步細節(jié)。下文參考單個用戶描述圖13的步驟。然 而,圖13的步驟可針對場景內(nèi)的每一用戶來執(zhí)行。
[0110] 在步驟700,在中樞處分析場景的經(jīng)校準的圖像數(shù)據(jù)以確定用戶頭部位置、以及從 用戶的面部向外直視的面部單位向量二者。頭部位置在骨架模型中被標識??赏ㄟ^根據(jù)骨 架模型定義用戶的面部的平面并取垂直于該平面的向量來確定面部單位向量。這一平面可 通過確定用戶的眼睛、鼻子、嘴、耳朵、或其他面部特征的位置來被標識。面部單位向量可被 用來定義用戶的頭部定向,且在一些示例中可被認為是用戶的F0V的中心。也可或替代地 根據(jù)從頭戴式顯示設備2上的相機112返回的相機圖像數(shù)據(jù)來標識面部單位向量。具體而 言,基于頭戴式顯示設備2上的相機112所看到的,相關聯(lián)的處理單元4和/或中樞12能 夠確定表示用戶的頭部定向的面部單位向量。
[0111] 在步驟704,用戶的頭部的位置和定向還可或替代地通過如下方式來被確定:分 析來自較早時間(要么在幀中較早,要么來自前一幀)的用戶的頭部的位置和定向,以及然 后使用來自頂U132的慣性信息來更新用戶的頭部的位置和定向。來自頂U132的信息可 以提供用戶的頭部的精確運動學數(shù)據(jù),但是IMU典型地不提供關于用戶的頭部的絕對位置 信息。也被稱為"地面真值"的該絕對位置信息可以從獲得自捕捉設備20、主體用戶的頭戴 式顯示設備2上的相機和/或其他用戶的(一個或多個)頭戴式顯示設備2的圖像數(shù)據(jù)來 提供。
[0112] 在一些實施例中,用戶的頭部的位置和定向可以通過聯(lián)合作用的步驟700和704 來確定。在又一些實施例中,步驟700和704中的一者或另一者可被用來確定用戶的頭部 的頭部位置和定向。
[0113]可能發(fā)生的是,用戶未向前看。因此,除了標識出用戶頭部位置和定向以外,中樞 可進一步考慮用戶的眼睛在其頭部中的位置。該信息可由上述眼睛跟蹤組件134提供。眼 睛跟蹤組件能夠標識出用戶的眼睛的位置,該位置可以被表示成眼睛單位向量,該眼睛單 位向量示出了與用戶的眼睛聚焦所在且向前看的位置的向左、向右、向上和/或向下的偏 離(即面部單位向量)。面部單位向量可以被調(diào)整為定義用戶正在看向何處的眼睛單位向 量。
[0114] 在步驟710,接著可以確定用戶的F0V。頭戴式顯示設備2的用戶的視圖范圍可以 基于假想用戶的向上、向下、向左和向右的邊界視力(peripheralvision)來預定義。為了 確保針對給定用戶計算得到的F0V包括特定用戶或許能夠在該F0V的范圍內(nèi)看到的物體, 這一假想用戶可不被當作具有最大可能邊界視力的人。在一些實施例中,某一預定的額外 F0V可被添加于此以確保對給定用戶捕捉足夠的數(shù)據(jù)。
[0115] 然后,可以通過取得視圖范圍并且將其中心定在調(diào)整了眼睛單位向量的任何偏離 的面部單位向量周圍來計算該用戶在給定時刻的F0V。除了定義用戶在給定時刻正在看什 么之外,用戶的F0V的這一確定還有用于確定用戶不能看到什么。如下文解釋的,將對虛擬 物體的處理限制到特定用戶可看到的那些區(qū)域提高了處理速度并降低了延遲。
[0116] 在上述實施例中,中樞12計算該場景中的一個或多個用戶的F0V。在又一些實施 例中,用于某一用戶的處理單元4可在這一任務中共享。例如,一旦用戶頭部位置和眼睛定 向被估計,該信息就可被發(fā)送給處理單元,處理單元可基于與頭部位置(來自頂U132)和 眼睛位置(來自眼睛跟蹤組件134)有關的更新近的數(shù)據(jù)來更新位置、定向等。
[0117] 現(xiàn)在返回圖12,在步驟618,中樞12可確定用戶移動以及包括HUD460的虛擬物 體的位置。例如,中樞12可確定用戶已看向某一方向多長時間(包括朝向或背離HUD460), 而中樞可相應地定位HUD460。在圖14的流程圖中闡述了步驟618的進一步細節(jié)。
[0118] 在步驟714,中樞可確定用戶是否看向HUD所位于的預定位置達預定時間段,該預 定時間段在一些實施例中可以是1秒與5秒之間,例如是3秒,但是在另外的實施例中它也 可以比此更短或更長。如果用戶沒有在HUD460的方向中看了該預定時間段,則HUD460 可如上所述在步驟716保持身體鎖定。
[0119] 另一方面,如果用戶在HUD460的方向中看了該預定時間段,則HUD460可在步驟 720在其三維空間中的當前位置處切換為世界鎖定的虛擬物體。如上所述,用戶可此后到處 移動并從不同視角查看HUD460。
[0120] 在步驟724,中樞12確定用戶是否將目光從HUD464移開達預定時間段。在一些 實施例中,該預定時間段可以是1秒與5秒之間,例如是3秒,但是在另外的實施例中它也 可以比此更短或更長。如果用戶沒有將目光從HUD460移開達該預定時間段,則HUD460 可如上所述在步驟720保持世界鎖定。
[0121] 另一方面,如果用戶將目光從HUD460移開達該預定時間段,則在步驟730HUD 4