發(fā)明領(lǐng)域
本發(fā)明的至少一個(gè)實(shí)施例涉及三維(3d)可視化系統(tǒng),并且更具體地,涉及用于輔助用戶在3d可視化系統(tǒng)中放置對(duì)象的技術(shù)。
背景技術(shù):
多個(gè)繪畫(huà)軟件應(yīng)用如今對(duì)于個(gè)人計(jì)算機(jī)以及其他處理設(shè)備(諸如智能電話、平板等)可用。那些應(yīng)用中的一些包括用于輔助用戶放置對(duì)象的工具或功能,諸如所謂的“咬合”和“粘合”功能。對(duì)于咬合功能,當(dāng)用戶將第一被顯示的對(duì)象移動(dòng)到非??拷诙伙@示的對(duì)象的位置時(shí),軟件自動(dòng)地進(jìn)一步移動(dòng)該第一對(duì)象使得第一對(duì)象與第二對(duì)象接觸。這一功能緩解了用戶非要精準(zhǔn)定位這兩個(gè)對(duì)象的乏味。粘合功能致使兩個(gè)對(duì)象粘在一起并且允許它們一旦彼此接觸就被一起移動(dòng)。這些功能一般可通過(guò)設(shè)置用戶偏好來(lái)啟用或禁用。
概述
此處介紹的技術(shù)提供了一種對(duì)象放置工具,用于輔助用戶在3d可視化環(huán)境中(特別是但不一定非得是在沉浸式ar/vr環(huán)境中)移動(dòng)和放置被顯示的全息對(duì)象。該工具可被實(shí)現(xiàn)為“虛擬磁鐵”,并因此有時(shí)在本文中被稱為“磁鐵工具”或簡(jiǎn)稱“磁鐵”。該工具輔助用戶拾取源對(duì)象(例如,通過(guò)虛擬磁鐵)并隨后將該源對(duì)象精準(zhǔn)地放置在目標(biāo)對(duì)象上。一旦源對(duì)象被拾取,該工具幫助用戶預(yù)先理解源對(duì)象將具體如何被取向、并且在用戶作出將源對(duì)象放置在目標(biāo)對(duì)象的動(dòng)作之前預(yù)先理解該源對(duì)象將被放置在何處以及該源對(duì)象將在目標(biāo)對(duì)象上具體如何被取向。
在某些實(shí)施例中,此處介紹的技術(shù)包括一種實(shí)現(xiàn)在可視化設(shè)備中的方法,該可視化設(shè)備可以是ar/vr可視化設(shè)備,諸如可佩戴(例如,頭戴式)可視化設(shè)備。該設(shè)備可被配備以跟蹤用戶的凝視方向、識(shí)別用戶的手勢(shì)和/或識(shí)別用戶的語(yǔ)音、以及將這些類(lèi)型的輸入中的任意一種用于該工具的操作。
在某些實(shí)施例中,方法包括在可視化設(shè)備的顯示區(qū)域上向可視化設(shè)備的用戶顯示疊放在3d物理空間的現(xiàn)實(shí)世界視圖之上的各個(gè)虛擬3d對(duì)象。方法可進(jìn)一步包括保持功能,其中各個(gè)虛擬3d對(duì)象的第一對(duì)象(源對(duì)象)被顯示在顯示區(qū)域上,使得第一對(duì)象看上去要響應(yīng)于來(lái)自用戶的輸入移動(dòng)通過(guò)3d物理空間。在某些實(shí)施例或?qū)嵗?,輸入僅僅是用戶的凝視方向的變化。方法可進(jìn)一步包括基于檢測(cè)到的用戶凝視將各個(gè)虛擬3d對(duì)象中的第二對(duì)象標(biāo)識(shí)為用于咬合功能的目標(biāo)對(duì)象。咬合功能是一種致使第一對(duì)象移動(dòng)到目標(biāo)對(duì)象的表面上的某一位置的操作。
在一些實(shí)施例中,咬合功能的目標(biāo)對(duì)象還基于以下來(lái)標(biāo)識(shí):第一對(duì)象和候選目標(biāo)對(duì)象之間大小上的相似度;第一對(duì)象和候選目標(biāo)對(duì)象之間總體形狀上的相似度;或者第一對(duì)象的表面和候選目標(biāo)對(duì)象的表面之間形狀上的相似度;或這類(lèi)輸入的任意組合。方法可基于例如以下來(lái)檢測(cè)用戶想要觸發(fā)咬合功能:用戶的手勢(shì)、口述命令、用戶的凝視或用戶的話語(yǔ)、或這類(lèi)輸入的任意組合。
在用戶用工具抓取第一對(duì)象之前,方法可基于檢測(cè)到的用戶凝視,以及在一些實(shí)施例或?qū)嵗袃H僅基于檢測(cè)到的用戶凝視,將該第一對(duì)象標(biāo)識(shí)為用于保持功能的候選對(duì)象(即,可能要被抓取的對(duì)象)。方法可顯示第一對(duì)象已被標(biāo)識(shí)為用于保持操作的候選的指示,諸如通過(guò)在第一對(duì)象周?chē)@示一個(gè)透明的或半透明的線框邊框。為了幫助用戶想像如果/當(dāng)該對(duì)象被拾取時(shí)該對(duì)象將如何被取向,方法可進(jìn)一步在邊框的表面上在基于檢測(cè)到的用戶的凝視矢量的一位置處顯示一個(gè)光標(biāo)。該光標(biāo)的位置可以是用于保持功能的潛在拾取(抓取)點(diǎn)。響應(yīng)于用戶的凝視矢量的變化,光標(biāo)可跨邊界框的各表面中的任意一個(gè)移動(dòng)。當(dāng)用戶(例如,通過(guò)語(yǔ)音命令或手勢(shì))觸發(fā)保持功能以抓取第一對(duì)象時(shí),第一對(duì)象隨后根據(jù)用戶觸發(fā)保持功能的時(shí)刻光標(biāo)在邊框體上的位置而被重新取向。
方法可進(jìn)一步包括響應(yīng)于標(biāo)識(shí)目標(biāo)對(duì)象,響應(yīng)于用戶的凝視方向的變化,致使第一對(duì)象看上去沿目標(biāo)對(duì)象的表面滑動(dòng),或者滑動(dòng)穿過(guò)目標(biāo)對(duì)象的兩個(gè)或更多個(gè)相鄰(非平行)表面。
根據(jù)附圖和詳細(xì)描述,該技術(shù)的其他方面將顯而易見(jiàn)。
提供本概述以便以簡(jiǎn)化的形式介紹以下在詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)主題的范圍。
附圖簡(jiǎn)述
在附圖中的各圖中作為示例而非限制解說(shuō)了本發(fā)明的一個(gè)或多個(gè)實(shí)施例,其中相同的標(biāo)記指示相似的元素。
圖1例示出了ar/vr頭戴式組件的示例。
圖2是ar/vr頭戴式組件的某些組件的高級(jí)框圖。
圖3a至3k示出了透過(guò)ar/vr頭戴式組件的用戶的視圖的各種示例。
圖4示出了可由可視化設(shè)備執(zhí)行的用于提供對(duì)象放置工具的總的過(guò)程的示例。
圖5例示了源對(duì)象候選標(biāo)識(shí)和選擇過(guò)程的示例。
圖6例示了目標(biāo)對(duì)象標(biāo)識(shí)和咬合點(diǎn)選擇過(guò)程的示例。
詳細(xì)描述
在該描述中,對(duì)“一實(shí)施例”、“一個(gè)實(shí)施例”等的引用意味著描述的特定特征、功能、結(jié)構(gòu)或特性被包括在本文中引入的技術(shù)的至少一個(gè)實(shí)施例中。這樣的短語(yǔ)在本說(shuō)明書(shū)中的出現(xiàn)不一定全部涉及同一實(shí)施例。另一方面,所涉及的各實(shí)施例也不一定是相互排斥的。
i.系統(tǒng)概覽
對(duì)于粗略地將3d對(duì)象放在一起,自由放置被顯示在3d可視化環(huán)境中的對(duì)象可能是非常有用的,然而自由放置承受放置精準(zhǔn)度和速度之間的權(quán)衡。在3d可視化環(huán)境中,軟件輔助的對(duì)象放置比在2d環(huán)境中要復(fù)雜得多。除了其它原因之外,在深度上可視化對(duì)象的位置是困難的。作為一個(gè)示例,有一種眾所周知的光學(xué)錯(cuò)覺(jué)效應(yīng),即當(dāng)保持靜止時(shí),近處的小的物體可能看上去就和遠(yuǎn)處的大的物體一樣。因此,擁有一種輔助用戶在3d中放置對(duì)象的工具是期望的,但是確定用戶的意圖隨著場(chǎng)景的復(fù)雜度的增加而變得越來(lái)越困難。因此,此處介紹了一種提供精準(zhǔn)和快速放置且既穩(wěn)定又可預(yù)測(cè)的對(duì)象放置工具。
在某些實(shí)施例中,工具像虛擬/全息磁鐵一樣工作,因此該工具可在本說(shuō)明書(shū)中的各處被可互換地稱為“磁鐵工具”、“磁鐵”、“對(duì)象放置工具”、“放置工具”、或“工具”。該工具可以被實(shí)現(xiàn)在例如可佩戴ar/vr頭戴式組件中,如本文以下所假設(shè)的,這僅僅為了方便描述。然而,需要注意,此處介紹的技術(shù)也可被應(yīng)用于其它類(lèi)型的可視化設(shè)備和上下文中,包括傳統(tǒng)個(gè)人計(jì)算機(jī)中的標(biāo)準(zhǔn)lcd顯示器、平板、智能電話等諸如此類(lèi),或者允許用戶在顯示器上在3d中移動(dòng)和定位對(duì)象的任何其它設(shè)備。
在某些實(shí)施例中,工具的操作具有四個(gè)階段:1)選擇和拾取源對(duì)象;2)移動(dòng)源對(duì)象(也稱“保持對(duì)象”)通過(guò)空間,同時(shí)定位和選擇目標(biāo)對(duì)象;以及3)將源對(duì)象放置并定向在目標(biāo)對(duì)象上(稱為“咬合”到目標(biāo)對(duì)象);以及4)在目標(biāo)對(duì)象上的想要的位置處釋放源對(duì)象以致使源對(duì)象被粘合到目標(biāo)對(duì)象上的該位置。
ii.工具操作的細(xì)節(jié)
a.源對(duì)象的選擇
在一些實(shí)施例中,用戶可通過(guò)語(yǔ)音命令(諸如“磁鐵”)或通過(guò)使用手勢(shì)從顯示的一組圖標(biāo)中選擇一個(gè)特定圖標(biāo)(例如,虛擬工具箱中的磁鐵圖標(biāo))來(lái)激活工具。一旦激活,光標(biāo)可用磁鐵圖像(例如,磁鐵形狀的表面網(wǎng)格)來(lái)替代或補(bǔ)充。如果當(dāng)工具被激活時(shí)用戶已經(jīng)(虛擬地)“保持”全息對(duì)象,則說(shuō)“磁鐵”或作出該手勢(shì)可致使已被保持的對(duì)象被選擇為源對(duì)象,并且用戶可隨后直接前進(jìn)至目標(biāo)對(duì)象的選擇,這將在以下被討論。
為了確定應(yīng)當(dāng)拾取哪個(gè)對(duì)象(源對(duì)象),在某些實(shí)施例中,實(shí)現(xiàn)工具的過(guò)程執(zhí)行兩步式光線投射。每一次光線投射包含從用戶處沿用戶的凝視矢量(如可視化系統(tǒng)中的眼睛跟蹤裝備所檢測(cè)的)向外持續(xù)地投射(虛擬)光線。用戶的凝視矢量可被定義為用戶的當(dāng)前查看方向。第一光線投射被用于確定哪個(gè)對(duì)象被標(biāo)識(shí)為最佳候選源對(duì)象。基于該確定,過(guò)程隨后執(zhí)行針對(duì)完整地包圍該對(duì)象的邊界體(諸如邊框)的第二光線投射。這一第二光線投射被用于對(duì)光標(biāo)進(jìn)行定位和取向使得光標(biāo)坐落在候選對(duì)象的邊界體的一個(gè)面上,從而給予用戶對(duì)于對(duì)象一旦被拾取(被選擇為源對(duì)象)后將如何被取向的預(yù)覽指示。這些光線投射被持續(xù)更新以反映用戶的凝視矢量的變化,直到用戶拾取對(duì)象,使其成為源對(duì)象(被保持的對(duì)象)。用戶可通過(guò)例如用手指執(zhí)行輕扣手勢(shì)或通過(guò)說(shuō)預(yù)定的命令(諸如“拾取”)來(lái)拾取對(duì)象。
b.目標(biāo)對(duì)象的選擇
一旦用戶用工具拾取對(duì)象,該對(duì)象看上去粘合到磁鐵圖像(如果磁鐵圖像被顯示的話,這并不是必需的),并且源對(duì)象(被保持的對(duì)象)和磁鐵圖像兩者都被移動(dòng)和取向,以便大致與用戶的凝視矢量一致,面向外進(jìn)入到場(chǎng)景中,位于距離用戶的舒服的觀看距離處(不迫使用戶瞇起眼睛來(lái)看是期望的),但是也不會(huì)過(guò)遠(yuǎn)而導(dǎo)致源對(duì)象碰到世界中的其它對(duì)象。例如,在用戶前方的約1米的視距可能是合適的。然而,源對(duì)象、光標(biāo)以及(如果顯示的)磁鐵圖像可被定位在稍稍低于用戶的凝視矢量以避免它們遮擋場(chǎng)景的其余部分,包括潛在的目標(biāo)對(duì)象。當(dāng)用戶的凝視矢量變化時(shí),源對(duì)象和磁鐵圖像被保持與用戶的凝視矢量(至少水平地)對(duì)齊。
在某些實(shí)施例中,光線被持續(xù)地從光標(biāo)投射到場(chǎng)景中以向用戶顯示基于用戶當(dāng)前的凝視矢量哪個(gè)對(duì)象當(dāng)前正被選擇為目標(biāo)對(duì)象,例如通過(guò)高亮光線擊中的任何一個(gè)對(duì)象(可能遵從某些選擇準(zhǔn)則,如以下將討論的)。這一光線投射可瞄準(zhǔn)可看到的目標(biāo)對(duì)象的實(shí)際形狀處,以促進(jìn)與如果使用更簡(jiǎn)單的邊框輪廓形狀相比更準(zhǔn)確的選擇。例如,在一些實(shí)施例中,光線投射僅使光線實(shí)際擊中的對(duì)象被高亮,而忽視任何粘合行為(即,當(dāng)兩個(gè)或多個(gè)對(duì)象被粘合在一起的情況)。
在一些實(shí)施例中,小于相對(duì)于用戶的觀看的某個(gè)視距大小(例如,在距離用戶1米的視距下最大2cm的尺寸)的ar對(duì)象不被允許成為該工具的目標(biāo)對(duì)象,但是可被拾取作為源對(duì)象。例如,全息鉚釘可被拾取并放置在全息火箭上,但是該工具不會(huì)將火箭上的其它鉚釘作為目標(biāo)。場(chǎng)景中未被定為目標(biāo)的對(duì)象可被變?yōu)橹辽俨糠滞该鞯?例如,以線框格式示出),使得目標(biāo)對(duì)象更清晰,同時(shí)保留周?chē)鷮?duì)象的上下文。深度“預(yù)過(guò)濾”可被應(yīng)用在渲染過(guò)程中以僅顯示透明或部分透明對(duì)象的前表面。
在某些實(shí)施例中,一旦目標(biāo)對(duì)象被選擇,則使源對(duì)象“粘”到目標(biāo)對(duì)象,但是源對(duì)象可以在目標(biāo)對(duì)象的表面上四處移動(dòng)。這可通過(guò)將目標(biāo)對(duì)象移動(dòng)到一個(gè)分開(kāi)的物理“層”而光線投射僅投射到該層來(lái)實(shí)現(xiàn)。此處的構(gòu)思是這一情形中的任何物理計(jì)算(例如光線投射)在修改源對(duì)象和目標(biāo)對(duì)象的相對(duì)取向時(shí)忽視其它對(duì)象。
c.咬合目標(biāo)對(duì)象
源對(duì)象在目標(biāo)對(duì)象上的優(yōu)選放置點(diǎn)(即“咬合位置”)可通過(guò)球體投影操作來(lái)確定。例如,放置點(diǎn)可被確定為從最小的球體投影沿仍然擦過(guò)該目標(biāo)對(duì)象的來(lái)自光標(biāo)的光線投影的接觸點(diǎn)。為了實(shí)現(xiàn)這點(diǎn),工具過(guò)程可執(zhí)行對(duì)球體半徑的二元搜索,從光線投射(零半徑的球體)開(kāi)始,然后是確保擊中目標(biāo)對(duì)象的最小半徑的球體。如果最初的光線投射擊中目標(biāo)對(duì)象,則放置過(guò)程可在那里結(jié)束;否則,過(guò)程往下繼續(xù)二元搜索至設(shè)定的深度,以尋找仍然擊中該目標(biāo)對(duì)象的最小球體。這一球體投射方法可能對(duì)于與具有復(fù)雜結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu)的表面重構(gòu)(sr)網(wǎng)格和對(duì)象交互特別有用。sr網(wǎng)格是表示現(xiàn)實(shí)世界邊沿和表面的輪廓的空間中的3d點(diǎn)的集合。這一搜索的效果是允許用戶仍然在目標(biāo)上四處滑動(dòng)保持的物體,即便用戶的視角不直接與目標(biāo)網(wǎng)格相交。
一旦源對(duì)象被合適地放置在目標(biāo)對(duì)象上,用戶就能夠輸入預(yù)定的輸入來(lái)釋放源對(duì)象,諸如通過(guò)再次執(zhí)行輕扣手勢(shì)或通過(guò)說(shuō)命令(例如“釋放”)。這一動(dòng)作致使源對(duì)象變?yōu)樵谒x擇的放置位置和取向上粘合到目標(biāo)對(duì)象。另外,這致使場(chǎng)景中的其它對(duì)象(這些對(duì)象在目標(biāo)對(duì)象選擇和放置期間可能已經(jīng)被變?yōu)橹辽俨糠滞该?被返回到它們正常水平的不透明度(通常是完全不透明)、移動(dòng)目標(biāo)對(duì)象回到標(biāo)準(zhǔn)物理層、以及重設(shè)工具狀態(tài)。
iii.可視化系統(tǒng)的示例
在至少一個(gè)實(shí)施例中,此處介紹的技術(shù)包括一種可佩戴可視化設(shè)備,該設(shè)備提供用于輔助用戶在ar/vr可視化系統(tǒng)中放置虛擬(例如全息)對(duì)象的放置工具。可視化設(shè)備可以是例如被配備以向用戶提供ar/vr體驗(yàn)的頭戴式組件、眼鏡或護(hù)目鏡。圖1示出能夠提供該工具的ar/vr頭戴式組件的一個(gè)示例。然而,需要注意,此處介紹的技術(shù)可被實(shí)現(xiàn)在允許用戶將3d對(duì)象放置在3d顯示器上的幾乎任意類(lèi)型的可視化設(shè)備中。所例示的頭戴式組件1包括頭帶2,可通過(guò)該頭帶2將頭戴式組件1可移除地安裝在用戶的頭上。頭戴式組件1可簡(jiǎn)單地通過(guò)頭帶2的剛度和/或通過(guò)圖1中未示出的緊固機(jī)制來(lái)被保持在適當(dāng)位置。頭帶2附接有一個(gè)或多個(gè)透明或半透明的透鏡3,該透鏡包括一個(gè)或多個(gè)透明或半透明的ar/vr顯示設(shè)備4,每個(gè)顯示設(shè)備可覆蓋用戶對(duì)他環(huán)境的單眼或雙眼視圖的圖像上。ar/vr顯示設(shè)備4的細(xì)節(jié)不與本文介紹的技術(shù)密切相關(guān);能夠在用戶環(huán)境的實(shí)時(shí)、現(xiàn)實(shí)世界的視圖上覆蓋機(jī)器生成的圖像的顯示設(shè)備是本領(lǐng)域已知的,并且具有此類(lèi)能力的任何已知的或方便的機(jī)制可被使用。
頭戴式組件1進(jìn)一步包括:用于輸入來(lái)自用戶的語(yǔ)音的麥克風(fēng)5(例如,用于識(shí)別語(yǔ)音命令);用于向用戶輸出聲音的一個(gè)或多個(gè)音頻揚(yáng)聲器6;用于跟蹤用戶頭部在現(xiàn)實(shí)世界空間中的位置和定向的一個(gè)或多個(gè)眼睛跟蹤相機(jī)7;由眼睛跟蹤相機(jī)7使用的一個(gè)或多個(gè)照明源8;用于檢測(cè)和測(cè)量距附近表面的距離的一個(gè)或多個(gè)深度相機(jī)9;用于捕獲用戶環(huán)境的標(biāo)準(zhǔn)視頻和/或確定用戶在該環(huán)境中的位置的一個(gè)或多個(gè)面向外瞄準(zhǔn)的可見(jiàn)光譜相機(jī)10;以及用于控制上述元件中的至少一些并執(zhí)行相關(guān)聯(lián)的數(shù)據(jù)處理功能的電路11。電路11可包括例如一個(gè)或多個(gè)處理器和一個(gè)或多個(gè)存儲(chǔ)器。注意,在其他實(shí)施例中,上述組件可位于頭戴式組件1上的不同位置處。附加地,一些實(shí)施例可省略一些上述組件和/或可包括上文未提及的附加組件。
圖2是根據(jù)本文所介紹的技術(shù)的一些實(shí)施例的ar/vr頭戴式組件20的某些組件的高級(jí)框圖。圖2中的頭戴式組件20和各組件可代表圖2中的頭戴式組件1。在圖2中,頭戴式組件20的功能部件包括以下中的每一者的一個(gè)或多個(gè)實(shí)例:處理器21、存儲(chǔ)器22、透明或半透明ar/vr顯示設(shè)備23、音頻揚(yáng)聲器24、深度相機(jī)25、眼睛跟蹤相機(jī)26、麥克風(fēng)27、以及通信設(shè)備28,并全部通過(guò)互連29被(直接地或間接地)耦合在一起。互連29可以是或可以包括一個(gè)或多個(gè)導(dǎo)電跡線、總線、點(diǎn)到點(diǎn)連接、控制器、適配器、無(wú)線鏈路和/或其他常規(guī)連接設(shè)備和/或媒體,其中至少一些可彼此獨(dú)立地操作。
處理器21單獨(dú)地和/或共同地控制頭戴式組件20的整體操作并執(zhí)行各種數(shù)據(jù)處理功能。附加地,處理器21可提供用于生成和顯示上述對(duì)象放置工具的計(jì)算和數(shù)據(jù)處理功能中的至少一些。例如,每個(gè)處理器21可以是或可以包括一個(gè)或多個(gè)通用可編程微處理器、數(shù)字信號(hào)處理器(dsp)、移動(dòng)應(yīng)用處理器、微控制器、專(zhuān)用集成電路(asic)、可編程門(mén)陣列(pga)等,或此類(lèi)設(shè)備的組合。
將處理器31配置成執(zhí)行本文介紹的技術(shù)方面的數(shù)據(jù)和指令(代碼)30可被存儲(chǔ)在一個(gè)或多個(gè)存儲(chǔ)器22中。每個(gè)存儲(chǔ)器22可以是或可以包括一個(gè)或多個(gè)物理存儲(chǔ)設(shè)備,其可以是以下形式:隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)(其可以是可擦除并可編程的)、閃存、微型硬盤(pán)驅(qū)動(dòng)器、或其他合適類(lèi)型的存儲(chǔ)設(shè)備、或這樣的設(shè)備的組合。
一個(gè)或多個(gè)通信設(shè)備28使得頭戴式組件20能夠從分開(kāi)的外部處理系統(tǒng)(諸如個(gè)人計(jì)算機(jī)或游戲控制臺(tái))接收數(shù)據(jù)和/或命令,并向該分開(kāi)的外部處理系統(tǒng)發(fā)送數(shù)據(jù)和/或命令。例如,每個(gè)通信設(shè)備28可以是或可以包括通用串行總線(usb)適配器、wi-fi收發(fā)器、藍(lán)牙或藍(lán)牙低能量(ble)收發(fā)器、以太網(wǎng)適配器、電纜調(diào)制解調(diào)器、dsl調(diào)制解調(diào)器、蜂窩收發(fā)器(例如,3g、lte/4g或5g)、基帶處理器等,或其組合。
例如,每個(gè)深度相機(jī)25可應(yīng)用飛行時(shí)間原理來(lái)確定距附近對(duì)象的距離。由深度相機(jī)25獲取的距離信息被用于(例如,被處理器21)構(gòu)建用戶環(huán)境中各表面的3d網(wǎng)格模型。例如,每個(gè)眼睛跟蹤相機(jī)26可以是近紅外相機(jī),該近紅外相機(jī)基于來(lái)自瞳孔和/或角膜閃光的由頭戴式組件上的一個(gè)或多個(gè)近ir源(諸如圖1中的照明源7)發(fā)射的近紅外光的鏡面反射來(lái)檢測(cè)注視方向。為了能夠檢測(cè)到此類(lèi)反射,頭戴式組件的透鏡(例如,圖1中的透鏡3)的內(nèi)表面可涂覆有反射ir光但對(duì)可見(jiàn)光透明的物質(zhì);此類(lèi)物質(zhì)是本領(lǐng)域已知的。此方法允許來(lái)自ir源的照明從透鏡的內(nèi)表面反彈到用戶的眼睛,其中它被反射回眼睛跟蹤相機(jī)(可能再次經(jīng)由透鏡的內(nèi)表面)。
注意,上述組件中的任何一種或全部可在它們的上述功能方面完全自包;然而,在一些實(shí)施例中,一個(gè)或多個(gè)處理器21提供與其他組件相關(guān)聯(lián)的處理功能中的至少一些。例如,與深度相機(jī)25相關(guān)聯(lián)的用于深度檢測(cè)的數(shù)據(jù)處理中的至少一些可由處理器21執(zhí)行。類(lèi)似地,與注視跟蹤相機(jī)26相關(guān)聯(lián)的用于注視跟蹤的數(shù)據(jù)處理中的至少一些可由處理器21執(zhí)行。類(lèi)似地,支持ar/vr顯示器23的圖像處理中的至少一些可由處理器21執(zhí)行;等等。
iv.工具操作的示例
現(xiàn)在將參考圖3a至3k描述ar/vr頭戴式組件可如何提供對(duì)象放置工具的示例。圖3a至3k示出了透過(guò)ar/vr頭戴式組件(例如,透過(guò)圖1中的透鏡3和顯示設(shè)備4)的用戶視圖的各種示例。具體地,圖3a示出了當(dāng)用戶穿戴頭戴式組件站在家的房間中時(shí),該頭戴式組件的用戶可能具有的視圖的中心部分(由于頁(yè)面大小限制,外圍視野在圖中被截除)。透過(guò)頭戴式組件的顯示區(qū)域,用戶可看到各種現(xiàn)實(shí)世界對(duì)象,諸如在咖啡桌33周?chē)纳嘲l(fā)31和椅子32。頭戴式組件還可顯示疊放在現(xiàn)實(shí)世界視圖之上的各種全息對(duì)象,諸如對(duì)象36a、36b、36c、36d以及36e。頭戴式組件還可將一個(gè)或多個(gè)全息圖標(biāo)35或其他用戶界面元件顯示在用戶的視野中,以允許用戶能夠使用頭戴式組件的各種功能。例如,用戶界面元素中的一個(gè)可以是用于選擇/啟動(dòng)磁鐵工具的操作的圖標(biāo)34(或其他等效元素)。
在頭戴式組件可操作的情況下,它使用其深度相機(jī)構(gòu)建用戶的附近(例如,幾米內(nèi))的所有表面或至少用戶視野內(nèi)的所有鄰近的表面的3d網(wǎng)格模型,該3d網(wǎng)格模型包括表面距用戶(即,距頭戴式組件)的距離。通過(guò)使用深度檢測(cè)(例如,飛行時(shí)間)來(lái)生成鄰近表面的3d網(wǎng)格模型的技術(shù)在本領(lǐng)域中是已知的,而不需要在本文中被描述。因此,圖3a的示例中的3d網(wǎng)格模型將至少對(duì)以下各項(xiàng)進(jìn)行建模:沙發(fā)31、椅子32和咖啡桌33的所有可見(jiàn)表面,以及房間的墻、地板和天花板、窗戶,以及諸如安裝在墻上的窗簾、藝術(shù)品(未顯示)之類(lèi)的潛在的甚至更小的特征等等。3d網(wǎng)格模型可被存儲(chǔ)在頭戴式組件上的存儲(chǔ)器中。通過(guò)使用3d網(wǎng)格模型和來(lái)自視覺(jué)跟蹤系統(tǒng)(例如,相機(jī)10)的圖像數(shù)據(jù),頭戴式組件中的電路(例如,處理器21)可隨時(shí)確定房間內(nèi)用戶的精確位置。3d網(wǎng)格模型可在頻繁的基礎(chǔ)上(諸如每秒幾次)被自動(dòng)更新。
通過(guò)使用頭戴式組件,并且通過(guò)使用手勢(shì)、語(yǔ)音命令和/或受控制的凝視,用戶可創(chuàng)建和操縱各種3d全息(ar)對(duì)象,諸如對(duì)象36a、36b、36c、36d以及36e。如所示出的,這些對(duì)象被疊放在用戶的現(xiàn)實(shí)世界視圖之上。在實(shí)際的實(shí)現(xiàn)中,用戶可能能夠創(chuàng)建和操縱比那些示出的顯著地復(fù)雜的全息對(duì)象。
現(xiàn)在假設(shè)頭戴式組件的用戶想要移動(dòng)對(duì)象36a并且將其粘合到對(duì)象36b的表面。相應(yīng)地,用戶可激活磁鐵工具來(lái)這樣做。例如,用戶可使用手勢(shì)來(lái)指向并輕扣在磁鐵圖標(biāo)35上,或者可簡(jiǎn)單地說(shuō)命令,諸如“磁鐵”。如在圖3b中示出的,在一些實(shí)施例中,頭戴式組件1可隨后顯示看上去漂浮在用戶的視野中的全息磁鐵圖像41,在用戶視野的靠下部分的中心,并且在用戶凝視的方向上指向。
用戶隨后用磁鐵選擇要拾取的對(duì)象,在這一示例中是對(duì)象36a。如上文提到的,在一些實(shí)施例中,頭戴式組件包括眼睛跟蹤傳感器和電路,用于持續(xù)地確定用戶的凝視矢量(在其它實(shí)施例中,頭戴式組件可使用不同的技術(shù)來(lái)確定用戶的凝視矢量,諸如確定3d空間中位于用戶兩只眼睛之間的點(diǎn)以及用戶在該世界中正面向的當(dāng)前的“前向”方向的頭部跟蹤技術(shù))。當(dāng)用戶的凝視指向全息對(duì)象(諸如對(duì)象36a)時(shí)(如通過(guò)例如從用戶的視角開(kāi)始的光線投射所確定的),該對(duì)象變?yōu)橛猛该鞯倪吔珞w(諸如圖3b中示出的邊框42)來(lái)高亮。(需要注意,為了簡(jiǎn)化解說(shuō),除了對(duì)象36a和對(duì)象36b以外的對(duì)象未被示出在圖3b到3j中。)另外,光標(biāo)(在這一示例中是圓)43出現(xiàn)在邊框42的任意一個(gè)當(dāng)前被來(lái)自用戶的視角的光線投射所擊中的表面上。邊框42和光標(biāo)43一起幫助用戶可視化如果以及當(dāng)用磁鐵工具拾取對(duì)象36a時(shí),對(duì)象36a將如何被取向。如圖3c中所示,如果用戶的凝視矢量改變使得投射光線擊中邊框42的一個(gè)不同表面,則光標(biāo)43的位置和外觀將相應(yīng)改變以出現(xiàn)在該表面上。例如,圖3c示出當(dāng)用戶的凝視矢量擊中邊框42的上表面時(shí)光標(biāo)43的外觀。此時(shí)及使用磁鐵工具的過(guò)程的整個(gè)剩余部分,磁鐵圖像41可仍然被顯示;然而,為了簡(jiǎn)化解說(shuō),磁鐵圖像未被示出在圖3c到3k中。
現(xiàn)在假設(shè)用戶輸入命令以拾取對(duì)象36a,同時(shí)將邊框42的上表面定為目標(biāo),如圖3c中所示。用戶可通過(guò)例如作出預(yù)定手勢(shì)或通過(guò)說(shuō)預(yù)定命令(諸如“拾取”)來(lái)這樣做。當(dāng)該輸入被頭戴式組件檢測(cè)到時(shí),該對(duì)象(其成為“源對(duì)象”或“保持對(duì)象”)被立即重新取向,使得邊框42的被定為目標(biāo)的面和光標(biāo)43現(xiàn)在面向用戶,如圖3d中所示。在其中全息磁鐵圖像41被顯示的實(shí)施例中(參見(jiàn)圖3b),邊框42的被定為目標(biāo)的面可在過(guò)程中的該時(shí)刻被顯示為粘合到磁鐵圖像。源對(duì)象36a、光標(biāo)43以及(如果顯示的)磁鐵圖像41可被定位在稍稍低于用戶的視角以避免它們遮擋潛在的目標(biāo)對(duì)象。當(dāng)用戶的凝視變化時(shí),源對(duì)象36a和磁鐵圖像41被保持與用戶的凝視矢量(至少沿水平軸)對(duì)齊,由此給予用戶該源對(duì)象正通過(guò)用戶的凝視而被用戶保持和搬運(yùn)的印象。
一旦源對(duì)象已被拾取,用戶隨后進(jìn)行標(biāo)識(shí)目標(biāo)對(duì)象。目標(biāo)對(duì)象可通過(guò)光線投射來(lái)確定,例如通過(guò)從光標(biāo)43的位置在用戶的凝視的方向上向外投射光線45,如圖3e中所示(然而,需要注意,光線45不一定非得對(duì)用戶可見(jiàn))。在一些實(shí)施例中,被從光標(biāo)43投射的光線擊中并且滿足特定準(zhǔn)則的任何對(duì)象被選擇為當(dāng)前目標(biāo)對(duì)象。場(chǎng)景中當(dāng)前未被定為目標(biāo)的對(duì)象可被變?yōu)橹辽俨糠滞该?,使得目?biāo)對(duì)象更清晰,同時(shí)保留對(duì)周?chē)鷮?duì)象的位置的某些視覺(jué)指示。深度“預(yù)過(guò)濾”可被包括在渲染過(guò)程中以僅顯示透明或部分透明對(duì)象的前表面。
如上文提到的,本示例假設(shè)用戶希望將(源)對(duì)象36a粘到對(duì)象36b上。因此,在拾取源對(duì)象36a之后,用戶看著對(duì)象36b并且將其定為目標(biāo)(即,使光線投射與對(duì)象36b相交),如圖3f中所示。當(dāng)從光標(biāo)投射的光線與滿足選擇準(zhǔn)則的潛在目標(biāo)對(duì)象(諸如對(duì)象36b)相交或進(jìn)入到它的預(yù)定距離/角度內(nèi)時(shí),源對(duì)象將看上去咬合到該對(duì)象的最近的表面,如圖3g中所示,從而使該對(duì)象變?yōu)楫?dāng)前目標(biāo)對(duì)象。在一些實(shí)施例中,如果從光標(biāo)投射的光線進(jìn)入到潛在目標(biāo)對(duì)象的特定閾值距離或角度內(nèi),則這一咬合操作將發(fā)生,即使光線沒(méi)有直接擊中該潛在目標(biāo)對(duì)象。出于這一操作的目的,所有對(duì)象被視為對(duì)于光線投射不透明,即投射光線將在其擊中的第一個(gè)對(duì)象處停止。
如上文描述的,源對(duì)象在目標(biāo)對(duì)象上的優(yōu)選放置點(diǎn)可通過(guò)球體投影操作來(lái)確定。用戶可簡(jiǎn)單地通過(guò)將其凝視移動(dòng)到目標(biāo)對(duì)象上的不同點(diǎn)(或甚至稍稍移離該目標(biāo)對(duì)象)來(lái)將對(duì)象在當(dāng)前目標(biāo)對(duì)象的表面(或多個(gè)表面)上四處移動(dòng)。這將導(dǎo)致源對(duì)象看上去跨目標(biāo)對(duì)象的一個(gè)或多個(gè)表面滑動(dòng)。例如,如圖3h中所示,用戶可通過(guò)向下和向右移動(dòng)他的凝視來(lái)致使源對(duì)象36a沿目標(biāo)對(duì)象36b的表面向下和向右移動(dòng)。類(lèi)似地,如圖3i中所示,用戶可通過(guò)向上和向坐移動(dòng)他的凝視來(lái)致使源對(duì)象36a沿目標(biāo)對(duì)象36b的表面向上和向左移動(dòng)。如果用戶將其凝視引導(dǎo)離開(kāi)目標(biāo)對(duì)象達(dá)大于某個(gè)閾值距離(或角度)和/或達(dá)到超過(guò)一閾值時(shí)間量,則該目標(biāo)對(duì)象可終止被指定為目標(biāo)。
假設(shè)現(xiàn)在用戶希望以圖3i中所示的相對(duì)位置將對(duì)象36a附連到對(duì)象36b。相應(yīng)地,當(dāng)對(duì)象被如所示地放置時(shí),用戶可輸入合適的輸入,諸如用手作出另一輕叩手勢(shì)或者通過(guò)說(shuō)出命令,諸如“釋放”。在這種情況下,源對(duì)象36a變?yōu)樵谄洚?dāng)前位置和取向粘合到目標(biāo)對(duì)象36b,并且源對(duì)象36a周?chē)倪吙蛳?,如圖3j中所示。另外,場(chǎng)景中的其它對(duì)象(這些對(duì)象在目標(biāo)對(duì)象選擇和放置期間可能已經(jīng)被變?yōu)橹辽俨糠滞该?被返回到它們正常水平的不透明度(通常是完全不透明),目標(biāo)對(duì)象36b被移動(dòng)回到標(biāo)準(zhǔn)物理層,并且重設(shè)磁鐵工具狀態(tài)(例如,工具變?yōu)榉羌せ?。因此,在本示例中,在目標(biāo)對(duì)象36b上釋放源對(duì)象36a之后,場(chǎng)景可能對(duì)用戶看上去如圖3k中所示的那樣。
v.示例過(guò)程流
現(xiàn)在結(jié)合圖4到6的說(shuō)明性過(guò)程來(lái)進(jìn)一步描述目標(biāo)放置工具的操作。圖4示出了可由可視化設(shè)備(諸如ar/vr頭戴式組件1)執(zhí)行的用于提供對(duì)象放置工具的總的過(guò)程的示例。最初,在步驟401,過(guò)程接收選擇放置工具的用戶輸入。該輸入可以是例如手勢(shì)或口述命令,或這些的某種組合。作為響應(yīng),在步驟402,過(guò)程顯示放置工具的圖像,諸如上文描述的磁鐵的圖像。需要注意,在一些實(shí)施例中,此處所描述的步驟402和某些其他步驟可被省略。過(guò)程隨后在步驟403確定對(duì)象是否已被用戶保持。如果當(dāng)前沒(méi)有對(duì)象被用戶保持,則過(guò)程分支到源對(duì)象候選標(biāo)識(shí)和選擇過(guò)程406,之后過(guò)程前進(jìn)至目標(biāo)對(duì)象標(biāo)識(shí)和咬合點(diǎn)選擇過(guò)程404。如果在步驟403沒(méi)有對(duì)象已被用戶保持,則過(guò)程直接從步驟403前進(jìn)至目標(biāo)對(duì)象標(biāo)識(shí)和咬合點(diǎn)選擇過(guò)程404。在過(guò)程404之后,咬合過(guò)程405被執(zhí)行,如以下進(jìn)一步描述的。
圖5例示了源對(duì)象候選標(biāo)識(shí)和選擇過(guò)程406的示例。最初,在步驟501,過(guò)程從用戶的視角沿用戶的凝視矢量向外投射光線。接著,在步驟502,過(guò)程確定光線是否與全息對(duì)象相交。如果光線不與任何全息對(duì)象相交,則過(guò)程循環(huán)返回步驟501并且從那里重復(fù)。
過(guò)程可使用各種準(zhǔn)則中的任意一種來(lái)確定什么類(lèi)型的對(duì)象是源對(duì)象候選(即可被拾取并粘合到另一對(duì)象),諸如對(duì)象的大小和/或形狀(例如,相對(duì)大的對(duì)象可被排除)、對(duì)象距離用戶的視距(例如,遠(yuǎn)于某個(gè)閾值距離的對(duì)象可被排除)等,或者這些的某種組合。相應(yīng)地,如果在步驟502,光線與全息對(duì)象相交,則過(guò)程前進(jìn)至步驟503,在此,過(guò)程指定光線相交的、滿足源對(duì)象候選準(zhǔn)則的最接近的全息對(duì)象作為候選源對(duì)象。在步驟504,過(guò)程隨后高亮該候選源對(duì)象并且在其周?chē)@示邊框(或其它類(lèi)型的邊界體)。接著,在步驟505,過(guò)程從用戶的視角沿用戶的凝視矢量向外投射光線。在步驟506,過(guò)程隨后在邊框的與光標(biāo)相交的面上放置光標(biāo)并為光標(biāo)確定取向。接著,在步驟507,過(guò)程檢查以確定是否已從用戶處接收到“拾取”命令(或等同的命令)。如果沒(méi)有接收到該命令,則過(guò)程循環(huán)返回步驟501并且從那里重復(fù)。如果已接收到“拾取”命令(或等同的命令),則過(guò)程前進(jìn)至步驟508,在此,過(guò)程基于接收到命令時(shí)光標(biāo)在邊框上的位置來(lái)計(jì)算候選源對(duì)象的新的“抓取”位置和取向。過(guò)程隨后將該候選源對(duì)象指定為源對(duì)象,根據(jù)計(jì)算的抓取位置對(duì)其重新定位和重新取向(如例如在圖3d中所示的),并且可選地將源對(duì)象顯示為粘合到工具的圖像。
圖6例示了目標(biāo)對(duì)象標(biāo)識(shí)和咬合點(diǎn)選擇過(guò)程404的示例。在所例示的實(shí)施例中,存在基本同時(shí)發(fā)生的兩個(gè)子過(guò)程(即,該附圖并不意圖指示精準(zhǔn)的定時(shí)關(guān)系)。第一子過(guò)程包括步驟601a和602a,而第二子過(guò)程包括步驟601b、602b和603到605。在步驟601a,第一子過(guò)程與用戶的凝視對(duì)齊的(帶有稍稍向下的垂直偏移)在光標(biāo)位置處、就在用戶的面前(例如,在用戶的面前約1米的視距處)持續(xù)顯示工具圖像(例如,磁鐵圖像)和源對(duì)象。接著,在步驟602a,第一子過(guò)程顯示經(jīng)修改的場(chǎng)景幾何結(jié)構(gòu)以降低視覺(jué)雜亂,例如通過(guò)將除了源對(duì)象和目標(biāo)對(duì)象之外的所有對(duì)象變?yōu)橥该鳌?/p>
在步驟601b,第二子過(guò)程從光標(biāo)位置沿用戶的凝視矢量向外投射光線。該光線被持續(xù)投射,至少到目標(biāo)對(duì)象被選擇為止。在步驟602b,第二子過(guò)程隨后確定光線是否與任何全息對(duì)象相交。如果光線不與任何全息對(duì)象相交,則第二子過(guò)程循環(huán)返回步驟601b并且從那里重復(fù)。
過(guò)程404可使用各種準(zhǔn)則中的任意一個(gè)來(lái)確定哪些對(duì)象可以是工具的功能的目標(biāo)對(duì)象(即,可讓其它對(duì)象粘合到它們),諸如:對(duì)象和源對(duì)象之間在大小方面的相似性程度;對(duì)象和源對(duì)象之間在整體形狀方面的相似性程度;或者對(duì)象的特定表面和源對(duì)象的特定表面之間在形狀方面的相似性程度;等等或者這些準(zhǔn)則的某種組合。另外,這些相同類(lèi)型的準(zhǔn)則可被用于從兩個(gè)或更多個(gè)候選目標(biāo)對(duì)象中選擇當(dāng)前目標(biāo)對(duì)象。
相應(yīng)地,在圖6的示例過(guò)程中,如果在步驟602b,光線與對(duì)象相交,則第二子過(guò)程前進(jìn)至步驟603,在此,過(guò)程指定光線相交的、滿足目標(biāo)對(duì)象候選準(zhǔn)則的最接近的對(duì)象作為目標(biāo)對(duì)象。接著,在步驟604,第二子過(guò)程高亮該目標(biāo)對(duì)象。
表面重構(gòu)(sr)可被作為用于選擇目標(biāo)對(duì)象的目的的特殊情形來(lái)處理。sr指的是使用網(wǎng)格來(lái)表示ar/vr顯示環(huán)境中的現(xiàn)實(shí)世界表面。雖然整個(gè)顯示環(huán)境的sr可由多個(gè)網(wǎng)格組成,但是網(wǎng)格可以在它們重疊處連續(xù)(類(lèi)似的法線/點(diǎn))。因此,重疊的網(wǎng)格可被當(dāng)作單個(gè)網(wǎng)格來(lái)處理。如果sr網(wǎng)格被放置工具操作的操作定為目標(biāo),它可被變?yōu)樵诠鈽?biāo)附近的局部區(qū)域(即并非整個(gè)網(wǎng)格)對(duì)用戶可見(jiàn)以避免視覺(jué)雜亂。
在高亮目標(biāo)對(duì)象之后,第二子過(guò)程在步驟605顯示可滑動(dòng)地粘合到目標(biāo)對(duì)象表面的源對(duì)象,一般粘合在投射自光標(biāo)的光線與目標(biāo)對(duì)象相交的位置。在任意給定時(shí)刻源對(duì)象被定位在目標(biāo)對(duì)象上的精準(zhǔn)位置(即“咬合點(diǎn)”)可通過(guò)使用球體投影來(lái)確定,如上文所描述的。
總得來(lái)說(shuō),源對(duì)象的最靠近目標(biāo)對(duì)象的表面(排除光標(biāo)位于其上的表面)被變?yōu)檎澈系侥繕?biāo)對(duì)象的表面上的咬合目標(biāo)位置。如果那兩個(gè)表面都是平坦的,則這些表面可被簡(jiǎn)單地粘合在一起并且變?yōu)楣裁娴?。然而,如果這兩個(gè)表面中的一個(gè)或兩個(gè)是曲面的,則它們可被粘合到彼此,使得它們的法線矢量在接觸的點(diǎn)處是共線的。
在步驟602a和步驟605之后,兩個(gè)并發(fā)的子過(guò)程在步驟606合并,在此,過(guò)程404確定是否從用戶處接收到釋放命令。釋放命令可以是例如用手作的輕扣手勢(shì)或者口述命令的形式。如果在步驟606處沒(méi)有接收到這類(lèi)命令,則過(guò)程循環(huán)返回步驟605并且從那里重復(fù)。如果已接收到了釋放命令,則在步驟607,過(guò)程調(diào)用粘合功能從而致使源對(duì)象變?yōu)檎澈系侥繕?biāo)對(duì)象(如果用戶通過(guò)合適的輸入指示撤消的意圖,則這一動(dòng)作可被撤消),終止工具圖像的顯示,并且終止可能已被提供的任何場(chǎng)景幾何形狀修改以減少視覺(jué)雜亂(例如,將周?chē)膶?duì)象呈現(xiàn)為透明)。
v.改進(jìn)
各種技術(shù)可被應(yīng)用以改進(jìn)以上介紹的技術(shù)。這些技術(shù)中的一些如下:
咬合在對(duì)象中心——這一技術(shù)可在一旦兩個(gè)對(duì)象面已咬合在一起后啟用。當(dāng)源對(duì)象的被投影的中心變得靠近潛在的目標(biāo)對(duì)象的被投影的中心時(shí),源對(duì)象跳轉(zhuǎn)成匹配。這允許用戶快速地創(chuàng)建對(duì)齊的對(duì)象群集。
與定制的樞軸/根點(diǎn)咬合——對(duì)象可具有用于控制與其它對(duì)象咬合的點(diǎn)的指定的定制樞軸或根位置。例如,考慮始終需要保持直立的恐龍全息影像。通過(guò)將定制樞軸/根點(diǎn)定位在恐龍的腳下,腳的底面將始終被用于與其它對(duì)象咬合,從而確??铸埲⒂跋袷冀K保持直立。定制樞軸點(diǎn)的指派可由內(nèi)容創(chuàng)作者來(lái)進(jìn)行,或者甚至由用戶通過(guò)例如使用“圖釘”工具來(lái)進(jìn)行。
與定制咬合目標(biāo)咬合——當(dāng)被自動(dòng)咬合時(shí),目標(biāo)對(duì)象可能包括一個(gè)或多個(gè)預(yù)定咬合目標(biāo)。例如,恐龍全息影像可具有存儲(chǔ)在其嘴中的預(yù)定咬合目標(biāo)位置和旋轉(zhuǎn)以使得對(duì)于用戶而言容易將食物對(duì)象咬合到恐龍的嘴。
組對(duì)象的咬合——當(dāng)對(duì)象被分組(“粘合”)到一起時(shí),質(zhì)量的中心可能改變。當(dāng)咬合到另一對(duì)象時(shí),對(duì)象中心可調(diào)整以使用該組的質(zhì)量中心。相反,當(dāng)被咬合時(shí),單獨(dú)的對(duì)象對(duì)對(duì)象測(cè)試可使用該組的中心、它們自己的中心、或優(yōu)選地使用兩者。支持兩者使用戶能夠容易地將源對(duì)象與目標(biāo)對(duì)象組或?qū)ο蠼M內(nèi)的某個(gè)目標(biāo)對(duì)象的中心對(duì)齊。
咬合到世界網(wǎng)格——對(duì)象位置或邊緣可被咬合到世界中的固定大小的網(wǎng)格。網(wǎng)格可以是可見(jiàn)的(例如,以線框形式)或不可見(jiàn)的。在不可見(jiàn)情況下,用戶可能知曉該網(wǎng)格,因?yàn)樗徇\(yùn)的對(duì)象將在網(wǎng)格的咬合點(diǎn)之間跳轉(zhuǎn)。固定網(wǎng)格大小對(duì)于用戶而言是受限的,因?yàn)樗鼈儾粚?duì)放置給予精細(xì)控制。因此,對(duì)于網(wǎng)格技術(shù)的一些擴(kuò)展包括:1)基于搬運(yùn)的對(duì)象大小的自適應(yīng)網(wǎng)格大小;2)基于世界中的附近對(duì)象改變網(wǎng)格大??;3)僅披露搬運(yùn)的對(duì)象附近的線框的部分可見(jiàn)網(wǎng)格(避免視覺(jué)雜亂);以及4)網(wǎng)格被啟用以輔助最初的粗略放置并且當(dāng)源對(duì)象變得靠近另一對(duì)象時(shí)被自動(dòng)禁用(以供更精準(zhǔn)的對(duì)象與對(duì)象對(duì)齊)。
引力阱——這一技術(shù)本質(zhì)上是每當(dāng)用戶的視線穩(wěn)定在某個(gè)東西上時(shí)就創(chuàng)建“世界”中的點(diǎn)。當(dāng)用戶的視線穩(wěn)定時(shí),用戶看著的第一對(duì)象上的點(diǎn)變得有粘性,使得每當(dāng)用戶的視線光標(biāo)再次經(jīng)過(guò)它時(shí),光標(biāo)將減速以使得對(duì)象的放置變得更容易。
頭部穩(wěn)定——這是以上提到的引力阱技術(shù)的基于用戶的頭部旋轉(zhuǎn)(例如,如通過(guò)跟蹤相機(jī)、陀螺儀或諸如此類(lèi)所測(cè)得的)的變體。該技術(shù)產(chǎn)生每當(dāng)用戶的頭部旋轉(zhuǎn)明顯放緩時(shí)穩(wěn)定基于頭部方向的光標(biāo)的類(lèi)似效果。
在執(zhí)行動(dòng)作之前要求隨時(shí)間的穩(wěn)定性——這一技術(shù)要求用戶在鎖定到某個(gè)決策之前隨時(shí)間示出該決策的證據(jù)。例如,該技術(shù)可使盯著兩個(gè)對(duì)象的中心的用戶避免看到在兩個(gè)對(duì)象之間快速切換的視像。這可通過(guò)要求用戶保持聚焦在對(duì)象上達(dá)至少預(yù)定的時(shí)間段(例如半秒鐘)、然后再允許該新對(duì)象被高亮、定為目標(biāo)或以其它方式接收聚焦來(lái)實(shí)現(xiàn)。
要求用戶在咬合后“擺脫引力”——一旦用戶已將兩個(gè)對(duì)象咬合到一起,可視化系統(tǒng)可使得它們稍稍更難以擺脫咬合。這可通過(guò)例如角度測(cè)試(例如,用戶是否已看向偏離其凝視矢量大于5度)或通過(guò)將投射到對(duì)象的表面中的用戶的視線與一個(gè)不可見(jiàn)環(huán)進(jìn)行評(píng)估來(lái)實(shí)現(xiàn)。
基于過(guò)去的咬合行為預(yù)測(cè)用戶意圖——例如,重復(fù)地咬合并且隨后立即嘗試擺脫引力的用戶可能正嘗試避免咬合行為。當(dāng)這類(lèi)行為被系統(tǒng)觀測(cè)到時(shí),系統(tǒng)可暫時(shí)減小咬合半徑或禁用該機(jī)制。
以上描述的機(jī)器實(shí)現(xiàn)的操作可由通過(guò)軟件和/或固件來(lái)編程/配置的可編程電路,或者完全由專(zhuān)用電路,或者由這樣的形式的組合來(lái)實(shí)現(xiàn)。這樣的專(zhuān)用電路(如果有的話)可采用例如一個(gè)或多個(gè)專(zhuān)用集成電路(asic)、可編程邏輯設(shè)備(pld)、現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)、片上系統(tǒng)(soc)等的形式。
用于實(shí)現(xiàn)本文中引入的技術(shù)的軟件或固件可被存儲(chǔ)在機(jī)器可讀存儲(chǔ)介質(zhì)上,并可由一個(gè)或多個(gè)通用或?qū)S每删幊涛⑻幚砥鱽?lái)執(zhí)行。如本文中所使用的術(shù)語(yǔ)“機(jī)器可讀介質(zhì)”包括可存儲(chǔ)機(jī)器(機(jī)器可以是例如計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、蜂窩電話、個(gè)人數(shù)字助理(pda)、制造工具、具有一個(gè)或多個(gè)處理器的任意設(shè)備等)可訪問(wèn)的形式的信息的任何機(jī)制。例如,機(jī)器可訪問(wèn)介質(zhì)包括可記錄/不可記錄介質(zhì)(例如,只讀存儲(chǔ)器(rom);隨機(jī)存取存儲(chǔ)器(ram);磁盤(pán)存儲(chǔ)介質(zhì)、光學(xué)存儲(chǔ)介質(zhì);閃存設(shè)備等)等。
如此處所使用的術(shù)語(yǔ)“邏輯”表示:a)專(zhuān)用硬接線電路,諸如一個(gè)或多個(gè)專(zhuān)用集成電路(asic)、可編程邏輯器件(pld)、場(chǎng)可編程門(mén)陣列(fpga)、或其它類(lèi)似器件;b)用軟件和/或固件編程的可編程電路,諸如一個(gè)或多個(gè)可編程通用微處理器、數(shù)字信號(hào)處理器(dsp)和/或微控制器、片上系統(tǒng)(soc)、或其它類(lèi)似器件;或c)在a)和b)中提到的形式的組合。
vi.某些實(shí)施例的示例
本文中引入的技術(shù)的某些實(shí)施例被概括在以下被編號(hào)的示例中:
1.一種操作可視化設(shè)備的方法,所述方法包括:在所述可視化設(shè)備的顯示區(qū)域上向所述可視化設(shè)備的用戶顯示疊放在三維(3d)物理空間的現(xiàn)實(shí)世界視圖之上的多個(gè)虛擬三維3d對(duì)象;執(zhí)行保持功能,所述保持功能包括將所述多個(gè)虛擬3d對(duì)象中的第一對(duì)象顯示在所述顯示區(qū)域上,使得所述第一對(duì)象看上去要響應(yīng)于來(lái)自所述用戶的第一輸入移動(dòng)通過(guò)所述3d物理空間;以及基于檢測(cè)到的所述用戶的凝視將所述多個(gè)虛擬3d對(duì)象中的第二對(duì)象標(biāo)識(shí)為咬合功能的目標(biāo)對(duì)象,所述咬合功能是致使所述第一對(duì)象移動(dòng)到所述目標(biāo)對(duì)象的表面上的一位置的操作。
2.一種如示例1所述的方法,其中所述第一輸入包括所述用戶的凝視方向的改變。
3.如示例1或示例2所述的方法,其中標(biāo)識(shí)所述目標(biāo)對(duì)象進(jìn)一步基于以下的至少之一:所述第一對(duì)象和候選目標(biāo)對(duì)象之間大小方面的相似性;所述第一對(duì)象和候選目標(biāo)對(duì)象之間總體形狀方面的相似性;所述第一對(duì)象的表面和候選目標(biāo)對(duì)象的表面之間形狀方面的相似性。
4.如示例1至3中任一項(xiàng)所述的方法,進(jìn)一步包括:基于以下的至少之一,檢測(cè)用戶想要觸發(fā)所述咬合操作:所述用戶的姿勢(shì)、所述用戶的凝視或所述用戶的話語(yǔ);以及通過(guò)在所述可視化設(shè)備的顯示區(qū)域上顯示所述第一對(duì)象使得所述第一對(duì)象看上去移動(dòng)到所述目標(biāo)對(duì)象的表面上的目標(biāo)位置來(lái)執(zhí)行所述咬合操作。
5.如示例1至4中任一項(xiàng)所述的方法,進(jìn)一步包括:通過(guò)執(zhí)行球體投射操作來(lái)為所述咬合功能確定所述目標(biāo)對(duì)象上的目標(biāo)位置。
6.如示例1至5中任一項(xiàng)所述的方法,進(jìn)一步包括:響應(yīng)于標(biāo)識(shí)所述目標(biāo)對(duì)象,響應(yīng)于所述用戶的凝視方向的變化,致使所述第一對(duì)象看上去沿所述目標(biāo)對(duì)象的表面滑動(dòng)。
7.如示例1至6中任一項(xiàng)所述的方法,進(jìn)一步包括:響應(yīng)于所述用戶的凝視方向的變化,致使所述第一對(duì)象看上去跨所述目標(biāo)對(duì)象的多個(gè)相鄰的、非平行表面滑動(dòng)。
8.如示例1至7中任一項(xiàng)所述的方法,進(jìn)一步包括,在執(zhí)行所述保持功能之前:基于所述用戶的凝視將所述第一對(duì)象標(biāo)識(shí)為所述保持功能的候選對(duì)象;以及向所述用戶顯示所述第一對(duì)象已被標(biāo)識(shí)為所述保持操作的候選對(duì)象的指示。
9.如示例1至8中任一項(xiàng)所述的方法,進(jìn)一步包括:向所述用戶顯示所述第一對(duì)象的邊界體,所述邊界體包圍所述第一對(duì)象并且具有多個(gè)透明或半透明的平坦表面;在所述邊界體的表面上在基于所述用戶的凝視方向的一位置處向所述用戶顯示光標(biāo),所述光標(biāo)的位置表示所述保持功能的潛在拾取點(diǎn);響應(yīng)于所述用戶的凝視方向的改變,致使所述光標(biāo)對(duì)于所述用戶看上去跨所述邊界體的兩個(gè)或更多個(gè)表面移動(dòng);以及響應(yīng)于用于觸發(fā)所述保持功能的用戶輸入,發(fā)起所述保持功能并根據(jù)所述光標(biāo)在所述邊界體上的當(dāng)前位置對(duì)所述第一對(duì)象重新取向。
10.一種可視化設(shè)備,包括:具有顯示區(qū)域的顯示設(shè)備;跟蹤所述用戶的凝視方向的眼睛跟蹤子系統(tǒng);以及操作地耦合到所述顯示設(shè)備和所述眼睛跟蹤子系統(tǒng)的處理器電路,并且被配置成致使所述可視化設(shè)備:致使所述顯示區(qū)域向所述用戶顯示增強(qiáng)現(xiàn)實(shí)環(huán)境,所述增強(qiáng)現(xiàn)實(shí)環(huán)境包括多個(gè)虛擬三維(3d)對(duì)象以及3d物理空間的現(xiàn)實(shí)世界視圖;從所述眼睛跟蹤子系統(tǒng)接收指示所述用戶的凝視方向的輸入;以及基于所述用戶的凝視方向確定用戶選擇所述虛擬3d對(duì)象中的一個(gè)作為咬合功能的目標(biāo)對(duì)象的期望,所述咬合功能是致使所述被保持對(duì)象移動(dòng)到所述目標(biāo)對(duì)象的表面上的一位置的操作。
11.如示例10所述的可視化設(shè)備,其中確定所述用戶將所述虛擬3d對(duì)象中的所述的那個(gè)定為咬合功能的目標(biāo)的期望進(jìn)一步基于以下的至少之一:所述被保持對(duì)象和候選目標(biāo)對(duì)象之間在大小方面的相似性;所述被保持對(duì)象和候選目標(biāo)對(duì)象之間總體形狀方面的相似性;或者所述被保持對(duì)象的表面和候選目標(biāo)對(duì)象的表面之間形狀方面的相似性。
12.如示例10或示例11所述的可視化設(shè)備,其中所述處理器電路被進(jìn)一步配置成執(zhí)行保持功能,所述保持功能包括顯示所述被保持的對(duì)象,使得所述被保持的對(duì)象對(duì)于所述用戶看上去響應(yīng)于來(lái)自所述用戶的第一輸入而被搬運(yùn)通過(guò)所述3d物理空間。
13.一種如示例10到12中的任一項(xiàng)所述的可視化設(shè)備,其中所述第一輸入包括所述用戶的凝視方向的改變。
14.一種如示例10到13中的任一項(xiàng)所述的可視化設(shè)備,其中所述處理器電路被進(jìn)一步配置成基于以下的至少之一來(lái)檢測(cè)用戶想要觸發(fā)所述咬合操作:所述用戶的姿勢(shì)、所述用戶的凝視或所述用戶的話語(yǔ)。
15.一種如示例10到14中的任一項(xiàng)所述的可視化設(shè)備,其中所述處理器電路被進(jìn)一步配置成通過(guò)執(zhí)行球體投影操作來(lái)為所述咬合功能確定所述目標(biāo)對(duì)象上的目標(biāo)位置。
16.一種如示例10到15中的任一項(xiàng)所述的可視化設(shè)備,其中所述處理器電路被進(jìn)一步配置成響應(yīng)于標(biāo)識(shí)所述目標(biāo)對(duì)象,響應(yīng)于所述用戶的凝視方向的變化,致使所述被保持對(duì)象看上去沿所述目標(biāo)對(duì)象的表面滑動(dòng)。
17.如示例10至16中任一項(xiàng)所述的可視化設(shè)備,其中所述處理器電路被進(jìn)一步配置成,在執(zhí)行所述保持功能之前:
基于所述用戶的凝視將所述多個(gè)虛擬3d對(duì)象中的第一對(duì)象標(biāo)識(shí)為所述保持功能的候選對(duì)象;
致使所述顯示設(shè)備向所述用戶顯示所述候選對(duì)象的邊界體,所述邊界體具有多個(gè)透明或半透明的平坦表面;
致使所述顯示設(shè)備在所述邊界體的表面上在基于所述用戶的凝視方向的一位置處向所述用戶顯示光標(biāo),所述光標(biāo)的位置表示候選對(duì)象上針對(duì)所述保持功能的潛在拾取點(diǎn);
響應(yīng)于所述用戶的凝視方向的改變,致使所述光標(biāo)對(duì)于所述用戶看上去跨所述邊界體的兩個(gè)或更多個(gè)表面移動(dòng);以及
響應(yīng)于用于觸發(fā)所述保持功能的用戶輸入,發(fā)起所述保持功能并根據(jù)所述光標(biāo)在所述邊界體上的當(dāng)前位置對(duì)所述候選對(duì)象重新取向,使得所述候選對(duì)象變成所述被保持對(duì)象。
18.一種頭戴式可視化設(shè)備,包括:頭部配件,所述可視化設(shè)備通過(guò)所述頭部配件安裝到用戶的頭部;耦合到所述頭部配件并且具有顯示區(qū)域的顯示設(shè)備;跟蹤所述用戶的凝視方向的眼睛跟蹤子系統(tǒng);以及操作地耦合到所述顯示設(shè)備和所述眼睛跟蹤子系統(tǒng)的處理器,并且被配置成致使所述可視化設(shè)備:
致使所述顯示設(shè)備在所述顯示區(qū)域上將多個(gè)虛擬三維(3d)對(duì)象疊放3d物理空間的現(xiàn)實(shí)世界實(shí)時(shí)視圖上;執(zhí)行保持功能,所述保持功能包括將所述多個(gè)虛擬3d對(duì)象中的第一對(duì)象顯示在所述顯示區(qū)域上,使得所述第一對(duì)象看上去要響應(yīng)于來(lái)自所述用戶的第一輸入被搬運(yùn)通過(guò)所述3d物理空間,其中所述第一輸入包括所述用戶的凝視方向的改變;以及基于檢測(cè)到的所述用戶的凝視被標(biāo)識(shí)為咬合功能的目標(biāo)對(duì)象的所述多個(gè)虛擬3d對(duì)象中的第二對(duì)象,所述咬合功能是致使所述第一對(duì)象移動(dòng)到所述目標(biāo)對(duì)象的表面上的一位置的操作。
19.一種如示例18所述的頭戴式可視化設(shè)備,其中標(biāo)識(shí)所述目標(biāo)對(duì)象進(jìn)一步基于以下的至少之一:所述第一對(duì)象和候選目標(biāo)對(duì)象之間大小方面的相似性;所述第一對(duì)象和候選目標(biāo)對(duì)象之間總體形狀方面的相似性;或者所述第一對(duì)象的表面和候選目標(biāo)對(duì)象的表面之間形狀方面的相似性。
20.如示例18或19所述的頭戴式可視化設(shè)備,其中所述處理器被進(jìn)一步配置成,在執(zhí)行所述保持功能之前:基于所述用戶的凝視將所述多個(gè)虛擬3d對(duì)象中的第一對(duì)象標(biāo)識(shí)為所述保持功能的候選對(duì)象;致使所述顯示設(shè)備向所述用戶顯示所述第一對(duì)象的邊界體,所述邊界體具有多個(gè)透明或半透明的平坦表面;致使所述顯示設(shè)備在所述邊界體的表面上在基于所述用戶的凝視方向的一位置處向所述用戶顯示光標(biāo),所述光標(biāo)的位置表示所述第一對(duì)象上用于所述保持功能的潛在拾取點(diǎn);響應(yīng)于所述用戶的凝視方向的改變,致使所述光標(biāo)對(duì)于所述用戶看上去跨所述邊界體的兩個(gè)或更多個(gè)表面移動(dòng);以及響應(yīng)于用于觸發(fā)所述保持功能的用戶輸入,發(fā)起所述保持功能并根據(jù)所述光標(biāo)在所述邊界體上的當(dāng)前位置對(duì)所述第一對(duì)象重新取向。
21.一種可視化設(shè)備,包括:用于在所述可視化設(shè)備的顯示區(qū)域上向所述可視化設(shè)備的用戶顯示疊放在三維(3d)物理空間的現(xiàn)實(shí)世界視圖之上的多個(gè)虛擬3d對(duì)象的裝置;用于執(zhí)行保持功能的裝置,所述保持功能包括將所述多個(gè)虛擬3d對(duì)象中的第一對(duì)象顯示在所述顯示區(qū)域上,使得所述第一對(duì)象看上去要響應(yīng)于來(lái)自所述用戶的第一輸入移動(dòng)通過(guò)所述3d物理空間;以及用于基于檢測(cè)到的所述用戶的凝視將所述多個(gè)虛擬3d對(duì)象中的第二對(duì)象標(biāo)識(shí)為咬合功能的目標(biāo)對(duì)象的裝置,所述咬合功能是致使所述第一對(duì)象移動(dòng)到所述目標(biāo)對(duì)象的表面上的一位置的操作。
2.如示例1所述的可視化設(shè)備,其中所述第一輸入包括所述用戶的凝視方向的改變。
3.如示例1或示例2所述的可視化設(shè)備,其中標(biāo)識(shí)所述目標(biāo)對(duì)象進(jìn)一步基于以下的至少之一:所述第一對(duì)象和候選目標(biāo)對(duì)象之間大小方面的相似性;所述第一對(duì)象和候選目標(biāo)對(duì)象之間總體形狀方面的相似性;所述第一對(duì)象的表面和候選目標(biāo)對(duì)象的表面之間形狀方面的相似性。
4.如示例1至3中任一項(xiàng)所述的可視化設(shè)備,進(jìn)一步包括:用于基于以下的至少之一,檢測(cè)用戶想要觸發(fā)所述咬合操作的裝置:所述用戶的姿勢(shì)、所述用戶的凝視或所述用戶的話語(yǔ);以及通過(guò)在所述可視化設(shè)備的顯示區(qū)域上顯示所述第一對(duì)象使得所述第一對(duì)象看上去移動(dòng)到所述目標(biāo)對(duì)象的表面上的目標(biāo)位置來(lái)執(zhí)行所述咬合操作。
5.如示例1至4中任一項(xiàng)所述的可視化設(shè)備,進(jìn)一步包括:用于通過(guò)執(zhí)行球體投射操作來(lái)為所述咬合功能確定所述目標(biāo)對(duì)象上的目標(biāo)位置的裝置。
6.如示例1至5中任一項(xiàng)所述的可視化設(shè)備,進(jìn)一步包括:用于響應(yīng)于標(biāo)識(shí)所述目標(biāo)對(duì)象,響應(yīng)于所述用戶的凝視方向的變化,致使所述第一對(duì)象看上去沿所述目標(biāo)對(duì)象的表面滑動(dòng)的裝置。
7.如示例1至6中任一項(xiàng)所述的可視化設(shè)備,進(jìn)一步包括:用于響應(yīng)于所述用戶的凝視方向的變化,致使所述第一對(duì)象看上去跨所述目標(biāo)對(duì)象的多個(gè)相鄰的、非平行表面滑動(dòng)的裝置。
8.如示例1至7中任一項(xiàng)所述的可視化設(shè)備,進(jìn)一步包括:用于在執(zhí)行所述保持功能之前基于所述用戶的凝視將所述第一對(duì)象標(biāo)識(shí)為所述保持功能的候選對(duì)象的裝置;以及用于向所述用戶顯示所述第一對(duì)象已被標(biāo)識(shí)為所述保持操作的候選對(duì)象的指示的裝置。
9.如示例1至8中任一項(xiàng)所述的可視化設(shè)備,進(jìn)一步包括:用于向所述用戶顯示所述第一對(duì)象的邊界體的裝置,所述邊界體包圍所述第一對(duì)象并且具有多個(gè)透明或半透明的平坦表面;用于在所述邊界體的表面上在基于所述用戶的凝視方向的一位置處向所述用戶顯示光標(biāo)的裝置,所述光標(biāo)的位置表示所述保持功能的潛在拾取點(diǎn);用于響應(yīng)于所述用戶的凝視方向的改變,致使所述光標(biāo)對(duì)于所述用戶看上去跨所述邊界體的兩個(gè)或更多個(gè)表面移動(dòng)的裝置;以及用于響應(yīng)于用于觸發(fā)所述保持功能的用戶輸入,發(fā)起所述保持功能并根據(jù)所述光標(biāo)在所述邊界體上的當(dāng)前位置對(duì)所述第一對(duì)象重新取向的裝置。
如本領(lǐng)域普通技術(shù)人員顯而意見(jiàn)的,以上描述的特征和功能中的任意或全部可彼此組合,除了被以其它方式在上文中言明或者任何這樣的實(shí)施例可能因?yàn)槠涔δ芑蚪Y(jié)構(gòu)而不兼容。除了與物理可能性相違背,設(shè)想了(1)本文描述的方法/步驟可以任意順序和/或以任意組合來(lái)執(zhí)行,并且(2)各個(gè)實(shí)施例的組件可以任意方式組合。
盡管用結(jié)構(gòu)特征和/或動(dòng)作專(zhuān)用的語(yǔ)言描述了本主題,但可以理解,所附權(quán)利要求書(shū)中定義的主題不必限于上述具體特征或動(dòng)作。相反,上述特定特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求書(shū)的示例而公開(kāi)的,并且其他等價(jià)特征和動(dòng)作旨在處于權(quán)利要求書(shū)的范圍內(nèi)。