專利名稱:俯沖導(dǎo)航的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及三維環(huán)境中的導(dǎo)航。
背景技術(shù):
存在用于導(dǎo)航通過(guò)三維環(huán)境以顯示三維數(shù)據(jù)的系統(tǒng)。所述三維環(huán)境包括定義顯示 什么三維數(shù)據(jù)的虛擬相機(jī)。所述虛擬相機(jī)具有根據(jù)其位置和方位的透視角(perspective)。 通過(guò)改變虛擬相機(jī)的透視角,用戶能夠?qū)Ш酵ㄟ^(guò)三維環(huán)境。地理信息系統(tǒng)是一種使用虛擬相機(jī)導(dǎo)航通過(guò)三維環(huán)境的系統(tǒng)。地理信息系統(tǒng)是用 于存儲(chǔ)、檢索、操縱和顯示基本球狀的地球三維模型的系統(tǒng)。所述三維模型可以包括映射到 諸如山脈、流域和峽谷之類的地形的衛(wèi)星圖像紋理。此外,所述三維模型可以包括建筑物和 其它三維特征。所述地理信息系統(tǒng)中的虛擬相機(jī)可以從不同透視角查看地球的球形三維模型。地 球模型的空中透視角可以示出衛(wèi)星圖像,但是難以看到地形和建筑物。另一方面,所述模型 的地面水平透視角可以詳細(xì)示出地形和建筑物。在當(dāng)前的系統(tǒng)中,難以從空中透視角導(dǎo)航 到地面水平透視角并且對(duì)用戶造成混亂。需要從空中透視角導(dǎo)航到地面水平透視角而不會(huì)對(duì)用戶造成混亂的方法和系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明涉及三維環(huán)境中的導(dǎo)航。在本發(fā)明的一個(gè)實(shí)施例中,一種計(jì)算機(jī)實(shí)現(xiàn)的方 法在三維環(huán)境中對(duì)虛擬相機(jī)進(jìn)行導(dǎo)航。所述方法包括確定三維環(huán)境中的目標(biāo)。所述方法進(jìn) 一步包括確定虛擬相機(jī)的第一位置和所述三維環(huán)境中的目標(biāo)之間的距離,確定減少后的距 離,并且根據(jù)所述減少后的距離確定斜度。最后,所述方法包括根據(jù)所述斜度、減少后的距 離和目標(biāo)將所述虛擬相機(jī)定位在第二位置的步驟。在第二實(shí)施例中,一種系統(tǒng)在三維環(huán)境中對(duì)虛擬相機(jī)進(jìn)行導(dǎo)航。所述系統(tǒng)包括確 定三維環(huán)境中的目標(biāo)的目標(biāo)模塊。當(dāng)被激活時(shí),斜度計(jì)算器模塊確定虛擬相機(jī)的第一位置 和所述三維環(huán)境中的目標(biāo)之間的距離,確定減少后的距離,并且作為所述減少后的距離的 函數(shù)確定斜度。而且在被激活時(shí),定位器模塊將所述虛擬相機(jī)定位在根據(jù)所述斜度、減少后 的距離和目標(biāo)所確定的第二位置。最后,所述系統(tǒng)包括控制器模塊,其重復(fù)地激活所述斜度 計(jì)算器和定位器模塊,直至虛擬相機(jī)和目標(biāo)之間的距離低于閾值。在第三實(shí)施例中,一種計(jì)算機(jī)實(shí)現(xiàn)的方法在三維環(huán)境中對(duì)虛擬相機(jī)進(jìn)行導(dǎo)航。所 述方法包括確定三維環(huán)境中的目標(biāo);更新虛擬相機(jī)的俯沖參數(shù);并且將所述虛擬相機(jī)定 位在通過(guò)所述俯沖參數(shù)所確定的新位置。所述俯沖參數(shù)包括相對(duì)于從所述目標(biāo)向上指向的 矢量的斜度值,相對(duì)于所述矢量的方位角值,以及目標(biāo)和虛擬相機(jī)之間的距離值。通過(guò)傾斜虛擬相機(jī)并減少所述虛擬相機(jī)和目標(biāo)之間的距離,所述虛擬相機(jī)向目標(biāo) 俯沖。以這種方式,本發(fā)明的實(shí)施例以不會(huì)對(duì)用戶造成混亂的方式將虛擬相機(jī)從空中透視 角導(dǎo)航到地面水平透視角。
以下將參考附圖對(duì)本發(fā)明的其它實(shí)施例、特征和優(yōu)勢(shì)以及本發(fā)明各個(gè)實(shí)施例的結(jié) 構(gòu)和操作進(jìn)行詳細(xì)描述。
結(jié)合于此并作為說(shuō)明書一部分的附圖對(duì)本發(fā)明進(jìn)行了圖示,而且連同描述一起進(jìn) 一步對(duì)本發(fā)明的原理進(jìn)行解釋,并且使得本領(lǐng)域技術(shù)人員能夠制造和使用本發(fā)明。圖IA-D是圖示本發(fā)明實(shí)施例中若干種俯沖軌道的示圖。圖2是地理信息系統(tǒng)的示例性用戶界面的截屏。圖3A-B是圖示根據(jù)本發(fā)明實(shí)施例的用于俯沖導(dǎo)航的方法的流程圖。圖4-5是圖示用于確定目標(biāo)的方法的示圖,其可以在圖3A-B的方法中使用。圖6是圖示在圖3A-B的方法示例中利用初始斜度進(jìn)行俯沖導(dǎo)航的示圖。圖7A-C是圖示用于確定減少后的距離和相機(jī)斜度的方法的流程圖,其可以在圖 3A-B的方法中使用。圖8A是圖示用于根據(jù)距離確定斜度的函數(shù)的圖形。圖8B是示出使用圖8A中的函數(shù)的示例性俯沖軌道的示圖。圖9是圖示用于減少滾動(dòng)的方法的示圖,其可以在圖3A-B的方法中使用。圖10是圖示用于恢復(fù)目標(biāo)的屏幕空間投影的方法的示圖,其可以在圖3A-B的方 法中使用。圖IlA-B示出了用于調(diào)整流線型地形的俯沖軌道的方法,其可以在圖3A-B的方法 中使用。圖12是示出根據(jù)本發(fā)明實(shí)施例的用于俯沖導(dǎo)航的地理信息系統(tǒng)的構(gòu)造圖。其中元素首次出現(xiàn)的圖通常以相應(yīng)的附圖標(biāo)記最左數(shù)字來(lái)指示。在圖中,相同的 附圖標(biāo)記可以指示相同或功能類似的元素。
具體實(shí)施例方式本發(fā)明的實(shí)施例涉及沿俯沖軌道在三維環(huán)境中對(duì)虛擬相機(jī)進(jìn)行導(dǎo)航。在本發(fā)明的 以下詳細(xì)描述中,對(duì)“一個(gè)實(shí)施例”、“實(shí)施例”、“示例性實(shí)施例”等的引用指示所描述的實(shí)施 例可以包括特定的特征、結(jié)構(gòu)或特性,但是每個(gè)實(shí)施例可以不必包括所述特定特征、結(jié)構(gòu)或 特性。此外,這樣的短語(yǔ)不必指代相同的實(shí)施例。而且,當(dāng)結(jié)合實(shí)施例對(duì)特定特征、結(jié)構(gòu)或 特性進(jìn)行描述時(shí),無(wú)論是否明確描述,都認(rèn)為結(jié)合其它實(shí)施例影響這樣的特征、結(jié)構(gòu)或特性 處于本領(lǐng)域技術(shù)人員的知識(shí)范圍內(nèi)。根據(jù)本發(fā)明的實(shí)施例,俯沖導(dǎo)航移動(dòng)相機(jī)以到達(dá)相對(duì)于目標(biāo)的期望位置和方位。 俯沖參數(shù)相對(duì)于所述目標(biāo)對(duì)相機(jī)的位置和方位進(jìn)行編碼。俯沖參數(shù)可以包括(1)到目標(biāo) 的距離,(2)相對(duì)于目標(biāo)處垂直線的斜度,(3)方位角,以及可選地(4)滾動(dòng)。在一個(gè)示例 中,方位角可以是相機(jī)的主方向。以下對(duì)每個(gè)參數(shù)及其在實(shí)踐中的操作進(jìn)行描述。俯沖導(dǎo)航可以類似于手柄相機(jī)(camera-on-a-stick)。在此模擬中,虛擬相機(jī)通 過(guò)手柄連接到目標(biāo)點(diǎn)。矢量點(diǎn)從目標(biāo)點(diǎn)向上。例如,向上矢量可以與三維模型的表面垂直。 如果所述三維模型是球形(諸如地球的三維模型),則矢量可以通過(guò)目標(biāo)從三維模型的中 心延伸。在該模擬中,隨著相機(jī)傾斜,手柄成角度遠(yuǎn)離所述矢量。在一個(gè)實(shí)施例中,手柄也可以通過(guò)改變相機(jī)相對(duì)于目標(biāo)點(diǎn)的方位角而繞所述矢量進(jìn)行旋轉(zhuǎn)。圖IA示出了圖示本發(fā)明實(shí)施例中的簡(jiǎn)單俯沖軌道的示圖100。示圖100示出在位 置102的虛擬相機(jī)。在位置102,虛擬相機(jī)具有空中透視角。在所示示例中,用戶希望從空 中透視角導(dǎo)航到建筑物108的地面水平透視角。在位置102,虛擬相機(jī)被定向?yàn)樨Q直向下, 因此其斜度為零,并且虛擬相機(jī)距目標(biāo)110的距離為116。為了確定俯沖軌道上的下一個(gè)位置,距離116被減少以確定新的距離118。在所示 示例中,虛擬相機(jī)和目標(biāo)之間的距離被減少。還確定斜度112。斜度112是從目標(biāo)110向上 指向的矢量和連接位置104和目標(biāo)112的線段之間的角度。斜度112可以根據(jù)減少后的距 離118來(lái)確定。所述相機(jī)在俯沖軌道上的下一個(gè)位置對(duì)應(yīng)于斜度112和減少后的距離118。 所述相機(jī)被重新定位到位置104。位置104距目標(biāo)的距離為118。最后,相機(jī)以斜度112旋 轉(zhuǎn)以面向目標(biāo)110。所述過(guò)程重復(fù)直至虛擬相機(jī)到達(dá)目標(biāo)110。當(dāng)虛擬相機(jī)到達(dá)目標(biāo)110時(shí),斜度為 90度,并且虛擬相機(jī)面向建筑物108。以這種方式,本發(fā)明的實(shí)施例容易地從位置102處的 空中透視角導(dǎo)航到建筑物108的地面透視角。以下對(duì)有關(guān)俯沖導(dǎo)航、其變化形式和其它實(shí) 施例的操作的更多細(xì)節(jié)進(jìn)行描述。圖100中的俯沖軌道也可以在俯沖參數(shù)和以上所提到的手柄模擬方面進(jìn)行描述。 在圖100中的俯沖軌道期間,斜度值增加到90度,距離值減小到零,并且方位角值保持恒 定。在手柄模擬的環(huán)境下,矢量點(diǎn)從目標(biāo)110向上。在圖100中的俯沖軌道期間,手柄的長(zhǎng) 度減小且手柄角度遠(yuǎn)離所述矢量。圖100中的俯沖軌道僅僅是本發(fā)明的一個(gè)實(shí)施例。俯沖 參數(shù)可以以其它方式進(jìn)行更新以形成其它軌道。圖IB示出了圖示本發(fā)明實(shí)施例中的另一軌道的示圖140。圖140中的軌道示出了 圍繞目標(biāo)110盤旋(helicoptering)的虛擬相機(jī)。圖140示出了虛擬相機(jī)開始在位置148。 沿軌道行進(jìn),所述虛擬相機(jī)保持與目標(biāo)等距離。在俯沖參數(shù)方面,距離保持恒定,但是斜度 和方位角值可以隨著相機(jī)沿軌道移動(dòng)而變化。在手柄模擬方面,手柄的長(zhǎng)度保持恒定,但是 手柄圍繞目標(biāo)轉(zhuǎn)動(dòng)。以這種方式,相機(jī)沿以目標(biāo)為原點(diǎn)的球體的表面移動(dòng)。圖140中所示的軌道例如可以被用于從不同透視角查看目標(biāo)點(diǎn)。然而,圖140中 的軌道并不必將用戶從空中轉(zhuǎn)換到地面水平透視角。而且,圖IB示出了目標(biāo)110無(wú)需從虛擬相機(jī)的中心投影(project)出來(lái)。這將參 照?qǐng)D4和5進(jìn)行更為詳細(xì)的描述。圖IC示出了圖示俯沖軌道的示圖170,所述俯沖軌道從不同透視角示出目標(biāo)以及 從空中到地面水平透視角的轉(zhuǎn)換。虛擬相機(jī)在位置174開始圖170中的俯沖軌道。隨著虛 擬相機(jī)從位置174移動(dòng)到位置176,虛擬相機(jī)接近目標(biāo),并且如圖100中的俯沖軌道那樣相 對(duì)于目標(biāo)發(fā)生傾斜。但是,虛擬相機(jī)還如圖140中的軌道那樣圍繞目標(biāo)進(jìn)行盤旋。圖170 中所示的俯沖軌道繼續(xù)直至虛擬相機(jī)到達(dá)目標(biāo)110。在俯沖參數(shù)方面,斜度值增加到90度, 距離值減小為零,并且方位角值變化。在手柄模擬方面,手柄的長(zhǎng)度減小,并且手柄傾斜遠(yuǎn) 離從目標(biāo)110向上指引的矢量并且圍繞所述矢量旋轉(zhuǎn)。圖ID示出了圖示俯沖軌道可以如何被用于導(dǎo)航通過(guò)三維空間的示圖180。所述 三維空間包括兩個(gè)建筑物182和184。在建筑物182的頂部,虛擬相機(jī)位于位置186。目標(biāo) 110處于建筑物184的頂部。如以下關(guān)于圖4和5所描述的,目標(biāo)110可以響應(yīng)于用戶輸入進(jìn)行選擇。虛擬相機(jī)從建筑物182處的位置186沿俯沖軌道188移動(dòng)到建筑物184處的目 標(biāo)110。換句話說(shuō),所述虛擬相機(jī)從建筑物182俯沖到建筑物184。以這種方式,俯沖軌道 可以被用來(lái)導(dǎo)航通過(guò)三維空間。在另一實(shí)施例中,目標(biāo)位置可以處于移動(dòng)當(dāng)中。在該實(shí)施例中,俯沖導(dǎo)航可以被用 來(lái)跟隨移動(dòng)目標(biāo)。以下詳細(xì)描述利用移動(dòng)目標(biāo)計(jì)算俯沖軌道的示例性實(shí)施例。俯沖導(dǎo)航可以被地理信息系統(tǒng)用來(lái)在包括地球三維模型的三維環(huán)境中進(jìn)行導(dǎo)航。 圖2是地理信息系統(tǒng)的用戶界面200的截屏。用戶界面200包括用于顯示地理信息/數(shù)據(jù) 的顯示區(qū)域202。如以上所提到的,在顯示區(qū)域202中顯示的數(shù)據(jù)來(lái)自于虛擬相機(jī)的透視 角。在一個(gè)實(shí)施例中,所述透視角由例如去掉頂部的三維錐形的平截頭體限定。根據(jù)其距 虛擬相機(jī)的距離,所述平截頭體內(nèi)的地理數(shù)據(jù)可以以變化的細(xì)節(jié)水平進(jìn)行顯示。在顯示區(qū)域202中所顯示的示例性地理數(shù)據(jù)包括地球的圖像。這些圖像可以呈現(xiàn) 于幾何圖形上,所述幾何圖形表示創(chuàng)建地球的三維模型的地球地形。其它可以顯示的數(shù)據(jù) 包括建筑物的三維模型。用戶界面200包括用于改變虛擬相機(jī)方位的控件204??丶?04使得用戶能夠改 變例如虛擬相機(jī)的高度、緯度、經(jīng)度、傾斜度(pitch)、偏航角和滾動(dòng)。在一個(gè)實(shí)施例中,使用 諸如鼠標(biāo)的計(jì)算機(jī)指示設(shè)備操縱控件204。隨著虛擬相機(jī)的方位變化,虛擬相機(jī)的平截頭體 和所顯示的地理信息/數(shù)據(jù)也發(fā)生變化。除了控件204之外,用戶還可以使用例如計(jì)算機(jī) 鍵盤或操作桿的其它計(jì)算機(jī)輸入設(shè)備來(lái)控制虛擬相機(jī)的方位。在所示示例中,虛擬相機(jī)具有地球的空中透視角。在一個(gè)實(shí)施例中,用戶可以通過(guò) 選擇顯示區(qū)域200上的位置來(lái)選擇目標(biāo)。接著,相機(jī)可以使用關(guān)于圖1所描述的俯沖軌道 向下俯沖到目標(biāo)的地面透視角。本發(fā)明的地理信息系統(tǒng)可以使用客戶端-服務(wù)器計(jì)算機(jī)體系進(jìn)行操作。在這樣的 配置中,用戶界面200存在于客戶端機(jī)器上。所述客戶端機(jī)器可以是具有處理器、本地存儲(chǔ) 器、顯示器以及一個(gè)或多個(gè)計(jì)算機(jī)輸入設(shè)備的通用計(jì)算機(jī),所述計(jì)算機(jī)輸入設(shè)備諸如鍵盤、 鼠標(biāo)和/或操縱桿。替選地,所述客戶端機(jī)器可以是例如移動(dòng)手持設(shè)備的專門的計(jì)算設(shè)備。 所述客戶端機(jī)器通過(guò)諸如互聯(lián)網(wǎng)的一個(gè)或多個(gè)網(wǎng)絡(luò)與一個(gè)或多個(gè)服務(wù)器進(jìn)行通信。與客戶 端機(jī)器類似,所述服務(wù)器可以使用能夠?yàn)榭蛻舳颂峁?shù)據(jù)的任意通用計(jì)算機(jī)來(lái)實(shí)現(xiàn)。所述 地理信息系統(tǒng)客戶端的體系結(jié)構(gòu)將參照?qǐng)D12更為詳細(xì)地描述。圖3是圖示根據(jù)本發(fā)明實(shí)施例的用于俯沖導(dǎo)航的方法300的流程圖。方法300以 在步驟302確定目標(biāo)開始。所述目標(biāo)可以根據(jù)圖2中顯示區(qū)域202上的用戶選擇來(lái)確定。 將參照?qǐng)D4和5更為詳細(xì)地描述如何確定目標(biāo)。在步驟304,可以確定新的俯沖參數(shù)并且重新定位虛擬相機(jī)。新的俯沖參數(shù)可以包 括斜度、方位角以及虛擬相機(jī)和目標(biāo)之間的距離。在實(shí)施例中,虛擬相機(jī)和目標(biāo)之間的距離 可以對(duì)數(shù)地減少。傾斜角度可以根據(jù)減少后的距離來(lái)確定。在一個(gè)實(shí)施例中,可以通過(guò)向 目標(biāo)平移,以斜度對(duì)虛擬相機(jī)設(shè)置角度以及以新的距離平移遠(yuǎn)離目標(biāo)來(lái)對(duì)虛擬相機(jī)進(jìn)行重 新定位。參照?qǐng)D3B更為詳細(xì)地描述步驟304。此外,一種計(jì)算俯沖參數(shù)的可能方式參照?qǐng)D 7A-C和圖8A-B進(jìn)行詳細(xì)討論。當(dāng)對(duì)相機(jī)進(jìn)行重新定位時(shí),地球的曲率可能引入滾動(dòng)。滾動(dòng)可能對(duì)用戶造成混亂。 為了減少滾動(dòng),在步驟306對(duì)虛擬相機(jī)進(jìn)行旋轉(zhuǎn)以補(bǔ)償?shù)厍虻那?。旋轉(zhuǎn)相機(jī)以減少滾動(dòng)將參照?qǐng)D9更為詳細(xì)地討論。在重新定位和旋轉(zhuǎn)相機(jī)時(shí),目標(biāo)可能出現(xiàn)在圖2的顯示區(qū)域202上的不同位置。目 標(biāo)在顯示區(qū)域202上的位置改變可能對(duì)用戶造成混亂。在步驟308,可以通過(guò)旋轉(zhuǎn)地球模型 來(lái)恢復(fù)目標(biāo)在顯示區(qū)域上的投影?;謴?fù)顯示區(qū)域投影參照?qǐng)D10進(jìn)行更為詳細(xì)的討論。當(dāng)重新定位相機(jī)和旋轉(zhuǎn)模型時(shí),與地球相關(guān)的更為詳細(xì)的信息可以被流送到GIS 客戶端。例如,GIS客戶端可以接收與地形或建筑物相關(guān)的更為詳細(xì)的信息。在另一示例 中,俯沖軌道可能與地形或建筑物相沖突。結(jié)果,可以在步驟310對(duì)虛擬相機(jī)或目標(biāo)的位置 進(jìn)行調(diào)整。由于流線型地形數(shù)據(jù)所導(dǎo)致的調(diào)整將參照?qǐng)DIlA-B進(jìn)行更為詳細(xì)的描述。最終,重復(fù)步驟304至310直至在決策框312虛擬相機(jī)接近目標(biāo)。在一個(gè)實(shí)施例 中,可以重復(fù)該過(guò)程直至虛擬相機(jī)處于目標(biāo)的位置。在另一個(gè)實(shí)施例中,可以重復(fù)所述過(guò)程 直至虛擬相機(jī)和目標(biāo)之間的距離低于閾值。以這種方式,虛擬相機(jī)捕捉目標(biāo)的特寫場(chǎng)景而 不會(huì)過(guò)于接近使得目標(biāo)失真。在一個(gè)實(shí)施例中,方法300還可以朝著移動(dòng)目標(biāo)導(dǎo)航虛擬相機(jī)。如果距離在步驟 302中根據(jù)目標(biāo)速度減少,則方法300可以使得虛擬相機(jī)以指定速度跟隨目標(biāo)。圖;3B更為詳細(xì)地示出了圖3A中方法300的步驟304。如以上所提到的,步驟304 包括更新俯沖參數(shù)并且根據(jù)所述俯沖參數(shù)重新定位虛擬相機(jī)。俯沖參數(shù)可以包括斜度、方 位角以及虛擬相機(jī)和目標(biāo)之間的距離。在步驟314,傾斜虛擬相機(jī)。換句話說(shuō),連接目標(biāo)和 虛擬相機(jī)的線段和從所述目標(biāo)向上指向的矢量之間的角度增大。在步驟316,改變虛擬相機(jī) 的方位角。根據(jù)所述方位角,所述相機(jī)圍繞從目標(biāo)向上指向的矢量旋轉(zhuǎn)。最終,定位所述相 機(jī)以使得其處于距目標(biāo)新的距離。將參照?qǐng)D7A-C和圖8A-B討論一種計(jì)算新的斜度、方位 角和距離值的方式。圖4-6、7A-C、8A-B、9-10和11A-B詳細(xì)描述了圖3A-B中的方法300。它們提供了 方法300的各種替選實(shí)施例。然而,它們并非意味著對(duì)方法300進(jìn)行限制。圖4和5示出了圖示可以在圖3的步驟302中使用的用于確定目標(biāo)的方法的示圖。 圖4示出了示圖400。示圖400示出了地球模型402。示圖400還示出了虛擬相機(jī)的焦點(diǎn) 406。如參照?qǐng)D2所描述的,所述虛擬相機(jī)被用來(lái)捕捉和顯示信息。所述虛擬相機(jī)具有焦距 408和視口 410。視口 410對(duì)應(yīng)于圖2中的顯示區(qū)域202。用戶選擇顯示區(qū)域202上的位 置,并且該位置對(duì)應(yīng)于視口 410上的點(diǎn)412。通過(guò)延伸來(lái)自虛擬相機(jī)的射線確定與模型的交點(diǎn)來(lái)確定所述目標(biāo)。在示圖400 中,射線414從焦點(diǎn)406延伸通過(guò)點(diǎn)412。射線414在位置404與模型402相交。因此,所 述目標(biāo)是模型402在位置404處的部分。在替選實(shí)施例中,射線可以從焦點(diǎn)406延伸通過(guò) 視口 410的中心。圖5圖示了根據(jù)可選特征對(duì)圖4中所確定的目標(biāo)位置進(jìn)行調(diào)整。圖5示出了示圖 500。示圖500示出了位于位置506的虛擬相機(jī)以及三維模型中的建筑物502。射線從位置 506延伸到建筑物502以確定交點(diǎn)510。然而,相機(jī)的目標(biāo)位置可能不是建筑物502本身。 所述目標(biāo)位置可以是提供建筑物502的視圖的從建筑物502偏移的位置。所以,目標(biāo)被設(shè) 置為位置508。虛擬相機(jī)從位置506沿軌道504俯沖到位置508。以這種方式,虛擬相機(jī)從 垂直的空中透視角轉(zhuǎn)移到建筑物502的水平的地面透視角。虛擬相機(jī)的開始位置無(wú)需是垂直的。圖6示出了示圖602,其圖示了具有初始的非零斜度的俯沖導(dǎo)航。示圖602示出了虛擬相機(jī)在位置602處具有初始斜度。所述虛擬相機(jī) 沿軌道606從位置602俯沖到目標(biāo)位置604。如以上參照?qǐng)D3所討論的,當(dāng)確定了目標(biāo)位置時(shí),可以在步驟306中進(jìn)行幾個(gè)計(jì)算 來(lái)確定虛擬相機(jī)在俯沖軌道中的下一個(gè)位置。特別地,確定虛擬相機(jī)新的斜度以及虛擬相 機(jī)與目標(biāo)之間新的減少后的距離。圖7A-C和圖8A-B圖示了如何確定減少后的距離和斜度。 圖7A是圖示用于確定斜度和減少后的距離的方法700的流程圖。方法700以在步驟702確定對(duì)數(shù)地減少的距離作為開始。在高的空中距離不存在 用戶感興趣的很多數(shù)據(jù)。然而,隨著相機(jī)接近地面,存在用戶感興趣的更多數(shù)據(jù)。由于對(duì)數(shù) 函數(shù)將虛擬相機(jī)快速移動(dòng)通過(guò)俯沖軌道高的空中部分,所以其是有用的。然而,隨著虛擬相 機(jī)接近地面,對(duì)數(shù)函數(shù)使其移動(dòng)更慢。在使用對(duì)數(shù)函數(shù)的一個(gè)實(shí)施例中,距離可以被轉(zhuǎn)換為 對(duì)數(shù)等級(jí)。對(duì)數(shù)等級(jí)可以通過(guò)改變參數(shù)而增加。接著,使用指數(shù)函數(shù)將對(duì)數(shù)等級(jí)轉(zhuǎn)換回距 離。等式序列可以如下L = -Iog2 (C*0. 1) +4. 0,L' = L+Δ ,R = 10*2(4 CHL'),其中Δ是變化參數(shù),L是對(duì)數(shù)等級(jí),C是當(dāng)前距離,而R是減少后的距離。當(dāng)在步驟702中確定了減少后的距離時(shí),根據(jù)該距離確定斜度。方法700圖示了 用于確定斜度的兩種替選步驟。在步驟710,通過(guò)應(yīng)用絕對(duì)斜度函數(shù)來(lái)確定斜度。在步驟 720,通過(guò)應(yīng)用增量斜度函數(shù)來(lái)確定斜度。圖7Β更為詳細(xì)地圖示了步驟710的絕對(duì)斜度函數(shù)。所述絕對(duì)斜度函數(shù)限定了每 個(gè)距離的斜度。這具有創(chuàng)建預(yù)定義的俯沖軌道的效果。在步驟712,三個(gè)距離值被轉(zhuǎn)換為對(duì) 數(shù)等級(jí)。被轉(zhuǎn)換為對(duì)數(shù)等級(jí)的三個(gè)距離值為(1)步驟702中計(jì)算的到目標(biāo)的減少后距離, ⑵在俯沖軌道開始處到目標(biāo)的距離,以及⑶如圖3中步驟312所描述的結(jié)束俯沖軌道的 閾值距離。用來(lái)將所述距離轉(zhuǎn)換為對(duì)數(shù)等級(jí)的等式可以如下Ls = -Iog2 (S*0. 1) +4. 0,Lt = -Iog2 (Τ*0· 1) +4. 0,Le = -Iog2 (R*0. 1) +4. 0,其中S是開始距離,T是閾值距離,R是減少后的距離,Ls是開始的對(duì)數(shù)等級(jí),Lt是 閾值對(duì)數(shù)等級(jí),Le是減少后距離的對(duì)數(shù)等級(jí)。在步驟714,基于對(duì)數(shù)等級(jí)(Ls,LT, Le)、開始斜度值和結(jié)束斜度值對(duì)斜度值進(jìn)行插 值。非零的開始斜度值參照?qǐng)D6進(jìn)行描述。結(jié)束斜度值通常將為90度,其可以與地面平 行。在示例中,插值函數(shù)可以是線性的、二次的、指數(shù)的、對(duì)數(shù)的或者本領(lǐng)域技術(shù)人員顯而易 見(jiàn)的其它函數(shù)。示例性線性插值函數(shù)為
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的用于在三維環(huán)境中導(dǎo)航虛擬相機(jī)的方法,包括(A)確定所述三維環(huán)境中的目標(biāo);(B)確定所述三維環(huán)境中在虛擬相機(jī)的第一位置和所述目標(biāo)之間的距離;(C)確定減少后的距離;(D)根據(jù)所述減少后的距離確定斜度;以及(E)將所述虛擬相機(jī)定位在根據(jù)所述斜度、所述減少后的距離和所述目標(biāo)所確定的第 二位置處,其中所述虛擬相機(jī)的位置由一組參數(shù)限定。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括(F)重復(fù)步驟⑶至(E)直至所述虛擬相機(jī)和所述目標(biāo)之間的距離低于閾值。
3.如權(quán)利要求2所述的方法,其中步驟(D)的確定包括將所述斜度確定為所述減少后 的距離的函數(shù),其中所述函數(shù)被定義為使得所述斜度隨著所述減少后的距離接近于零而接 近90度。
4.如權(quán)利要求3所述的方法,其中步驟(D)的確定進(jìn)一步包括使用所述減少后的距離 的所述函數(shù)來(lái)確定所述斜度,其中所述函數(shù)被定義為使得所述斜度隨著所述距離減少而更 快地接近90度。
5.如權(quán)利要求3所述的方法,其中步驟(E)的定位包括(1)將所述虛擬相機(jī)平移到所述目標(biāo)中;(2)轉(zhuǎn)變所述虛擬相機(jī)的角度以與所述斜度相匹配;和(3)以所述減少后的距離將所述虛擬相機(jī)平移到所述目標(biāo)之外。
6.如權(quán)利要求3所述的方法,其中步驟(A)的確定包括(1)將來(lái)自所述虛擬相機(jī)的焦點(diǎn)的射線延伸通過(guò)用戶所選擇的點(diǎn);(2)確定所述射線與所述三維環(huán)境中的三維模型之間的交點(diǎn);和(3)確定在所述交點(diǎn)處的所述三維模型中的目標(biāo)。
7.如權(quán)利要求6所述的方法,其中步驟(E)的定位包括旋轉(zhuǎn)所述相機(jī)以減少或消除滾動(dòng)。
8.如權(quán)利要求7所述的方法,其中所述旋轉(zhuǎn)包括將所述相機(jī)旋轉(zhuǎn)連接所述第一位置和 所述三維模型中的地球模型的中心的第一線段以及連接所述第二位置和所述地球模型的 中心的第二線段之間的角度。
9.如權(quán)利要求1所述的方法,進(jìn)一步包括(F)旋轉(zhuǎn)所述三維環(huán)境中的地球模型以使得所述目標(biāo)在所述虛擬相機(jī)處于所述第一位 置和所述第二位置時(shí)投影到所述虛擬相機(jī)的視口上的相同點(diǎn)上;和(G)重復(fù)步驟⑶至(F)直至所述虛擬相機(jī)和所述目標(biāo)之間的距離低于閾值。
10.如權(quán)利要求9所述的方法,其中步驟(F)的旋轉(zhuǎn)包括在所述斜度的方向上將所述地 球模型旋轉(zhuǎn)連接所述第一位置和所述三維模型中的地球模型的中心的第一線段和連接所 述第二位置和所述地球模型的中心的第二線段之間的角度。
11.如權(quán)利要求1所述的方法,進(jìn)一步包括(F)重新定位所述虛擬相機(jī)以使得所述虛擬相機(jī)的位置處于所述三維環(huán)境的三維模型 中的地形之上;和(G)重復(fù)步驟⑶至(F)直至所述虛擬相機(jī)和所述目標(biāo)之間的距離低于閾值。
12.如權(quán)利要求1所述的方法,其中步驟(A)的確定包括(F)重新定位所述目標(biāo)以使得所述目標(biāo)的位置處于所述三維環(huán)境的三維模型中的地形 之上;和(G)重復(fù)步驟⑶至(F)直至所述虛擬相機(jī)和所述目標(biāo)之間的距離低于閾值。
13.如權(quán)利要求1所述的方法,其中步驟(C)的確定包括對(duì)數(shù)地減少所述距離。
14.一種用于在三維環(huán)境中導(dǎo)航虛擬相機(jī)的系統(tǒng),包括目標(biāo)模塊,其確定所述三維環(huán)境中的目標(biāo);斜度計(jì)算器模塊,當(dāng)被激活時(shí),其確定虛擬相機(jī)的第一位置和所述三維環(huán)境中的所述 目標(biāo)之間的距離,確定減少后的距離并且將斜度確定為所述減少后的距離的函數(shù);和定位器模塊,當(dāng)被激活時(shí),其將所述虛擬相機(jī)定位在根據(jù)所述斜度、所述減少后的距離 和所述目標(biāo)所確定的第二位置處,其中所述虛擬相機(jī)的位置由一組參數(shù)定義;和控制器模塊,其重復(fù)地激活所述斜度計(jì)算器和所述定位器模塊直至所述虛擬相機(jī)和所 述目標(biāo)之間的距離低于閾值。
15.如權(quán)利要求14所述的系統(tǒng),其中所述斜度計(jì)算器用來(lái)確定所述斜度的函數(shù)被定義 為使得所述斜度隨著所述減少后的距離接近于零而接近90度。
16.如權(quán)利要求15所述的系統(tǒng),其中所述斜度計(jì)算器用來(lái)確定所述斜度的函數(shù)被定義 為使得所述斜度隨著所述距離減少而更快地接近90度。
17.如權(quán)利要求16所述的系統(tǒng),其中所述定位器模塊將所述虛擬相機(jī)平移到所述目標(biāo) 中,轉(zhuǎn)變所述虛擬相機(jī)的角度以匹配所述斜度,并且以所述減少后的距離將所述虛擬相機(jī) 平移到所述目標(biāo)之外。
18.如權(quán)利要求17所述的系統(tǒng),其中所述目標(biāo)模塊將來(lái)自所述虛擬相機(jī)的焦點(diǎn)的射線 延伸通過(guò)用戶所選擇的點(diǎn),確定所述射線與所述三維環(huán)境中的三維模型之間的交點(diǎn),并且 確定在所述交點(diǎn)處的所述三維模型中的目標(biāo)。
19.如權(quán)利要求18所述的系統(tǒng),進(jìn)一步包括滾動(dòng)補(bǔ)償器模塊,其旋轉(zhuǎn)所述相機(jī)以減少 或消除滾動(dòng),其中所述控制器模塊重復(fù)地激活所述滾動(dòng)補(bǔ)償器模塊直至所述虛擬相機(jī)和所述目標(biāo) 之間的距離低于閾值。
20.如權(quán)利要求19所述的系統(tǒng),其中所述滾動(dòng)補(bǔ)償器模塊將所述相機(jī)旋轉(zhuǎn)連接所述第 一位置和所述三維模型中的地球模型的中心的第一線段和連接所述第二位置和所述地球 模型的中心的第二線段之間的角度。
21.如權(quán)利要求18所述的系統(tǒng),進(jìn)一步包括屏幕空間模塊,當(dāng)被激活時(shí),其旋轉(zhuǎn)所述三 維環(huán)境中的地球模型以使得所述目標(biāo)在所述虛擬相機(jī)處于所述第一位置和所述第二位置 時(shí)投影到所述虛擬相機(jī)的視口上的相同點(diǎn)上,其中所述控制器模塊重復(fù)地激活所述模型模塊直至所述虛擬相機(jī)和所述目標(biāo)之間的 距離低于閾值。
22.如權(quán)利要求21所述的系統(tǒng),其中所述屏幕空間模塊在所述斜度的方向上將所述地 球模型旋轉(zhuǎn)連接所述第一位置和所述三維模型中的地球模型的中心的第一線段和連接所 述第二位置和所述地球模型的中心的第二線段之間的角度。
23.如權(quán)利要求14所述的系統(tǒng),進(jìn)一步包括地形調(diào)節(jié)器模塊,當(dāng)被激活時(shí),其重新定位所述虛擬相機(jī)以使得所述虛擬相機(jī)的位置處于所述三維環(huán)境的三維模型中的地形之上,其中所述控制器模塊重復(fù)地激活所述地形調(diào)節(jié)器模塊直至所述虛擬相機(jī)和所述目標(biāo) 之間的距離低于閾值。
24.如權(quán)利要求14所述的系統(tǒng),進(jìn)一步包括地形調(diào)節(jié)器模塊,當(dāng)被激活時(shí),其重新定位 所述目標(biāo)以使得所述目標(biāo)的位置處于所述三維環(huán)境的三維模型中的地形之上,其中所述控制器模塊重復(fù)地激活所述地形調(diào)節(jié)器模塊直至所述虛擬相機(jī)和所述目標(biāo) 之間的距離低于閾值。
25.如權(quán)利要求14所述的系統(tǒng),其中所述斜度計(jì)算器模塊對(duì)數(shù)地減少所述距離。
26.一種計(jì)算機(jī)實(shí)現(xiàn)的用于在三維環(huán)境中導(dǎo)航虛擬相機(jī)的方法,包括(A)確定所述三維環(huán)境中的目標(biāo);(B)更新所述虛擬相機(jī)的俯沖參數(shù),所述俯沖參數(shù)包括相對(duì)于從所述目標(biāo)向上指向的 矢量的斜度值、相對(duì)于所述矢量的方位角值、以及所述目標(biāo)和所述虛擬相機(jī)之間的距離;并 且(C)將所述虛擬相機(jī)定位在由所述俯沖參數(shù)限定的新位置。
27.如權(quán)利要求沈所述的方法,進(jìn)一步包括(D)旋轉(zhuǎn)所述三維環(huán)境中的地球模型以使得所述目標(biāo)在所述虛擬相機(jī)處于所述新位置 時(shí)投影到所述虛擬相機(jī)的視口上的相同點(diǎn)上。
28.如權(quán)利要求沈所述的方法,其中步驟(A)的確定包括(1)將來(lái)自所述虛擬相機(jī)的焦點(diǎn)的射線延伸通過(guò)用戶所選擇的點(diǎn);(2)確定所述射線與所述三維環(huán)境中的三維模型之間的交點(diǎn);和(3)確定在所述交點(diǎn)處的所述三維模型中的目標(biāo)。
29.如權(quán)利要求沈所述的方法,其中步驟(C)的定位包括旋轉(zhuǎn)所述虛擬相機(jī)以減少或 消除滾動(dòng)。
30.一種用于在三維環(huán)境中導(dǎo)航虛擬相機(jī)的系統(tǒng),包括 目標(biāo)模塊,其確定所述三維環(huán)境中的目標(biāo);斜度計(jì)算器模塊,其更新所述虛擬相機(jī)的俯沖參數(shù),所述俯沖參數(shù)包括相對(duì)于從所述 目標(biāo)向上指向的矢量的斜度值、相對(duì)于所述矢量的方位角值、以及所述目標(biāo)和所述虛擬相 機(jī)之間的距離;和定位器模塊,其將所述虛擬相機(jī)定位在由所述俯沖參數(shù)限定的新位置。
31.一種用于在三維環(huán)境中導(dǎo)航虛擬相機(jī)的系統(tǒng),包括 用于確定所述三維環(huán)境中的目標(biāo)的裝置;用于確定虛擬相機(jī)的第一位置和所述三維環(huán)境中的所述目標(biāo)之間的距離的裝置; 用于確定減少后的距離的裝置; 用于根據(jù)所述減少后的距離確定斜度的裝置;和用于將所述虛擬相機(jī)定位在根據(jù)所述斜度、所述減少后的距離和所述目標(biāo)所確定的第 二位置處的裝置,其中所述虛擬相機(jī)的位置由一組參數(shù)限定。
32.一種用于在三維環(huán)境中導(dǎo)航虛擬相機(jī)的系統(tǒng),包括 用于確定所述三維環(huán)境中的目標(biāo)的裝置;用于確定虛擬相機(jī)的第一位置和所述三維環(huán)境中的所述目標(biāo)之間的距離的裝置;用于確定減少后的距離的裝置; 用于根據(jù)所述減少后的距離確定斜度的裝置;和用于將所述虛擬相機(jī)定位在根據(jù)所述斜度、所述減少后的距離和所述目標(biāo)所確定的第 二位置處的裝置,其中所述虛擬相機(jī)的位置由一組參數(shù)限定。
33. 一種在其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的有形的計(jì)算機(jī)可讀介質(zhì),如果被計(jì)算設(shè)備 執(zhí)行,所述指令使得所述計(jì)算設(shè)備執(zhí)行方法(A)確定所述三維環(huán)境中的目標(biāo);(B)確定虛擬相機(jī)的第一位置和所述三維環(huán)境中的所述目標(biāo)之間的距離;(C)確定減少后的距離;(D)根據(jù)所述減少后的距離確定斜度;以及(E)將所述虛擬相機(jī)定位在根據(jù)所述斜度、所述減少后的距離和所述目標(biāo)所確定的第 二位置處,其中所述虛擬相機(jī)的位置由一組參數(shù)限定。
全文摘要
本發(fā)明涉及三維環(huán)境中的導(dǎo)航。在一個(gè)實(shí)施例中,在虛擬相機(jī)處于第一位置時(shí)選擇所述三維環(huán)境中的目標(biāo)。確定所述虛擬相機(jī)和目標(biāo)之間的距離。減少所述距離,并且作為減少后的距離的函數(shù)確定斜度。根據(jù)所述斜度、減少后的距離和目標(biāo)位置確定所述虛擬相機(jī)的第二位置。最后,將相機(jī)定位為面對(duì)所述目標(biāo),在一個(gè)示例中,該過(guò)程重復(fù)直至虛擬相機(jī)被定位為與地面平行,并且所述距離接近所述目標(biāo)。在另一個(gè)示例中,所述目標(biāo)的位置移動(dòng)。
文檔編號(hào)G06T15/50GK102067179SQ200980121381
公開日2011年5月18日 申請(qǐng)日期2009年4月14日 優(yōu)先權(quán)日2008年4月14日
發(fā)明者丹尼爾·巴爾凱, 戈克爾·瓦拉得汗 申請(qǐng)人:谷歌公司