專利名稱:使用虛擬表面搖攝的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在三維環(huán)境中移動虛擬相機。
背景技術(shù):
存在用于導航通過三維環(huán)境來顯示三維數(shù)據(jù)的系統(tǒng)。三維環(huán)境包括虛擬相機。虛 擬相機具有定義向用戶顯示哪些三維數(shù)據(jù)的透視角(perspective)。用戶可以輸入搖攝 (pan)虛擬相機的數(shù)據(jù)。通過搖攝虛擬相機,用戶在三維環(huán)境中導航。一種類型的搖攝虛擬相機以在三維環(huán)境中導航的系統(tǒng)是地理信息系統(tǒng)。地理信息 系統(tǒng)是用于存儲、檢索、操縱以及顯示地球的三維模型的系統(tǒng)。三維模型可以包括映射到諸 如高山、山谷和峽谷的地形的衛(wèi)星圖像紋理。此外,三維模型可以包括建筑物和其它三維特 征。隨著虛擬相機的透視角變得與地球相切,搖攝變得越來越不穩(wěn)定。對用戶的輸入 的較小改變搖攝虛擬相機較大距離。這對于用戶而言會令人迷惑。需要用于在三維環(huán)境中更穩(wěn)定的搖攝的系統(tǒng)和方法。
發(fā)明內(nèi)容
本發(fā)明涉及在三維環(huán)境中搖攝。在本發(fā)明的一個實施例中,一種計算機實現(xiàn)的方 法在三維環(huán)境中搖攝虛擬相機。在該方法實施例中,確定在三維環(huán)境中的三維模型上的第 一點。根據(jù)第一點、三維模型和虛擬相機在三維環(huán)境中的位所,確定虛擬表面。確定在虛擬 表面上的第二點。最后,根據(jù)第一點和第二點來改變?nèi)S模型的位置。在第二實施例中,一個系統(tǒng)在三維環(huán)境中搖攝虛擬相機。該系統(tǒng)包括搖攝模塊,其 確定在三維環(huán)境中的三維模型上的第一點。搖攝模塊還確定虛擬表面上的第二點。虛擬表 面計算器模塊根據(jù)第一點、三維模型和虛擬相機在三維環(huán)境中的位所來確定虛擬表面。旋 轉(zhuǎn)器模塊根據(jù)第一和第二點來改變?nèi)S模型的位置。在第三實施例中,一種計算機實現(xiàn)的方法在包括地球的三維模型的三維環(huán)境中搖 攝虛擬相機。該方法包括在顯示區(qū)域顯示來自虛擬相機的透視角的三維模型,使用戶能夠 用光標在顯示區(qū)域上選擇第一點,以及根據(jù)第一點來確定第一屏幕射線。該方法進一步包 括使用戶能夠?qū)⒐鈽艘苿拥斤@示區(qū)域中的第二點,根據(jù)第二點來確定第二屏幕射線,以及 圍繞通過三維模型的旋轉(zhuǎn)點(例如,中心)的軸旋轉(zhuǎn)三維模型,來以搖攝速率定義的速度跟 隨光標。搖攝速率是三維模型的旋轉(zhuǎn)角度與在第一屏幕射線和第二屏幕射線之間的角度的 比率。搖攝速率不超過閾值。利用虛擬表面來在三維環(huán)境中搖攝在虛擬相機的透視角幾乎與三維模型相切時 減少了三維模型的移動。通過減少三維模型的移動,本發(fā)明的實施例使搖攝更穩(wěn)定。將在下面參考附圖詳細描述本發(fā)明的進一步實施例、特征和優(yōu)勢,以及本發(fā)明的 各種實施例的結(jié)構(gòu)和操作。
在此合并并且形成本說明書的一部分的附示了本發(fā)明,并且與描述一起進一 步用作解釋本發(fā)明的原理,而且使有關(guān)領(lǐng)域技術(shù)人員能夠制作并使用本發(fā)明。圖IA是圖示了在沒有虛擬表面的情況下?lián)u攝的圖。圖IB是圖示了根據(jù)本發(fā)明的一個實施例的在具有虛擬表面的情況下?lián)u攝的圖。圖2A是地理信息系統(tǒng)的用戶界面的截屏。圖2B是圖示了用于在具有虛擬表面的情況下?lián)u攝的顯示區(qū)域的各區(qū)的圖。圖3是根據(jù)本發(fā)明的一個實施例的使用虛擬表面來搖攝的地理信息系統(tǒng)客戶端 的體系結(jié)構(gòu)圖。圖4是用于使用虛擬表面來搖攝的方法的流程圖,該方法可以在操作圖3中的系 統(tǒng)時使用。圖5A是圖示了根據(jù)圖4中的方法中的一個步驟來確定替代射線的圖。圖5B是圖示了根據(jù)圖4中的方法中的一個步驟來確定命中(hit)點的圖。圖6是圖示了用于根據(jù)圖4中的方法中的一個步驟來構(gòu)建虛擬表面的計算的圖。圖7A-B是圖示了根據(jù)圖4中的方法來確定與虛擬表面的交點以及旋轉(zhuǎn)三維模型 的圖。元素在其中首次出現(xiàn)的附圖典型地由相應參考數(shù)字中的最左邊數(shù)字指示。在附圖 中,相同的參考數(shù)字可以指示同一或功能上相似的元素。
具體實施例方式本發(fā)明的實施例涉及使用虛擬表面來穩(wěn)定搖攝。在隨后的本發(fā)明的詳細描述中, 對“一個實施例”、“實施例”、“示例實施例”等的引用指示所描述的實施例可以包括特定特 征、結(jié)構(gòu)或特性,但是每個實施例可以不必包括該特定特征、結(jié)構(gòu)或特性。而且,這樣的短語 不一定是指同一實施例。此外,在與一個實施例有關(guān)地描述特定特征、結(jié)構(gòu)或特性時,所認 為的是,無論是否明確描述,與其它實施例結(jié)合地實現(xiàn)這樣的特征、結(jié)構(gòu)或特性在本領(lǐng)域技 術(shù)人員的知識范圍內(nèi)。如在此所使用的,術(shù)語“搖攝”虛擬相機是指關(guān)于通過諸如三維模型的中心的旋轉(zhuǎn) 點的軸旋轉(zhuǎn)三維模型。重要的是,應當注意,相對于相機移動三維模型等效于相對于三維模 型移動相機。圖IA示出了圖示了在沒有虛擬表面的情況下跟蹤球搖攝的圖100。圖100示出了 查看三維幾何102的虛擬相機106。三維幾何102包括地形116。如在下面詳細描述的,三 維幾何102例如可以是具有在點112處的中心源的地球的三維模型,以及虛擬相機106可 以定義在顯示區(qū)域上向用戶顯示三維模型的哪些部分。用戶可以在顯示區(qū)域上選擇第一點。結(jié)果,根據(jù)該點延伸射線114。在一個示例 中,射線114可以從虛擬相機的焦點延伸通過虛擬相機的視口上的與在顯示區(qū)域上選擇的 點相對應的點。將關(guān)于圖5B更詳細地描述可以如何確定射線114。一旦確定射線114,就 確定了在射線114與三維模型102之間的交點108。確定與點108和三維模型102相對應的搖攝球面104。搖攝球面104是用于控制 搖攝的三維表面。在一個示例中,搖攝球面104可以是具有在點112處的中心源,和等于在交點108與點112之間的距離的半徑的球面。一旦確定搖攝球面104,用戶就在顯示區(qū)域上選擇第二點,然后相應地旋轉(zhuǎn)三維模 型102。用戶可以例如通過將鼠標移動到新的位置來在顯示區(qū)域上選擇第二點。作為用戶 選擇的結(jié)果,確定對應于第二點的射線120。一旦確定射線120,就確定了在射線120與搖 攝球面104之間的交點110。線段118連接點112與交點108,以及線段122連接點112與 交點110。以在線段118與線段122之間的角度114旋轉(zhuǎn)三維模型102。以這種方式,通過 用例如鼠標在顯示區(qū)域上選擇點,并且移動鼠標,用戶旋轉(zhuǎn)模型以跟隨鼠標的移動。雖然標準跟蹤球搖攝具有優(yōu)勢,但是它可以是不穩(wěn)定的。隨著射線120逐漸變得 與三維模型102和搖攝球面104相切,對用戶的選擇的較小改變導致模型102的較大旋轉(zhuǎn)。 本發(fā)明的實施例通過引入如關(guān)于圖IB描述的虛擬表面使搖攝更穩(wěn)定。圖IB示出了圖示了根據(jù)本發(fā)明的一個實施例的在具有虛擬表面的情況下?lián)u攝的 圖150。如在圖100中,在圖150中,用戶在顯示區(qū)域上選擇第一和第二點,結(jié)果,模型旋轉(zhuǎn)。 然而,虛擬表面減少模型的旋轉(zhuǎn),因此增加了穩(wěn)定性。當用戶在顯示區(qū)域上選擇了第一點時,如關(guān)于圖100所描述的,確定射線114、交 點108和搖攝球面104。一旦確定搖攝球面104,就確定了虛擬表面152。虛擬表面152和 搖攝球面104—起形成連續(xù)、平滑的表面。虛擬表面152例如可以是與搖攝球面104的一 部分相對的凹面。在一個實施例中,虛擬表面152可以是搖攝球面104的一部分的鏡像。當用戶在顯示區(qū)域上選擇了第二點時,根據(jù)用戶選擇延伸射線120,并且旋轉(zhuǎn)三維 模型102。確定在射線120與虛擬表面152之間的交點154。線段158連接點112與交點 154。以在線段158與線段118之間的角度156旋轉(zhuǎn)模型102。因此,使用虛擬表面152,而 不是搖攝球面104來確定交點。以這種方式,在射線120變得與球面104相切時沒有以突 然方式發(fā)生模型102的旋轉(zhuǎn)。將在下面關(guān)于剩余附圖更詳細地描述本發(fā)明的實施例。具體地,圖2-3描述了使 用虛擬表面來搖攝的地理信息系統(tǒng)。圖4描述了可以在操作地理信息系統(tǒng)時使用的方法。 最后,圖5、6和7A-B包括詳細說明該方法的圖。圖2A是可以使用虛擬表面來搖攝的地理信息系統(tǒng)的用戶界面200的截屏。用戶 界面200包括用于顯示地理數(shù)據(jù)的顯示區(qū)域202。如前所述,在顯示區(qū)域202中顯示的數(shù)據(jù) 來自虛擬相機的透視角。在一個實施例中,所述透視角由平截頭體定義,所述平截頭體諸如 三維棱錐截去頂部??梢匀Q于在平截頭體內(nèi)的地理數(shù)據(jù)距虛擬相機的距離,以變化的細 節(jié)水平顯示該在平截頭體內(nèi)的地理數(shù)據(jù)。在顯示區(qū)域202中顯示的示例地理數(shù)據(jù)包括地球的圖像??梢詫⑦@些圖像渲染到 表示創(chuàng)建地球的三維模型的地球的地形的幾何上??梢燥@示的其它數(shù)據(jù)包括建筑物的三維 模型。用戶界面200包括用于改變虛擬相機的取向的控件204。例如,控件204使用戶能 夠改變虛擬相機的高度、緯度、經(jīng)度、斜度(pitch)、偏航(yaw)和滾動(roll)。在一個實施 例中,使用諸如鼠標的計算機指示設備來操縱控件204。隨著改變虛擬相機的取向,同時改 變虛擬相機的平截頭體和所顯示的地理數(shù)據(jù)。除控件204外,用戶還可以使用諸如計算機 鍵盤或操縱桿的其它計算機輸入設備來控制虛擬相機的取向。用戶界面200還可以使用戶能夠搖攝虛擬相機。用戶可以通過例如用計算機指示設備在顯示區(qū)域202上選擇第一點來搖攝虛擬相機。然后,用戶可以移動計算機指示設備 以在顯示區(qū)域202上選擇第二點。如下所述,地理信息系統(tǒng)根據(jù)用戶選擇的第一和第二點 來旋轉(zhuǎn)地球的模型。地理信息系統(tǒng)可以使用客戶端-服務器計算機體系結(jié)構(gòu)來操作。在這樣的配置 下,用戶界面200駐存于客戶端機器上??蛻舳藱C器可以是具有處理器、本地存儲器、顯示 以及諸如鍵盤、鼠標和/或操縱桿的一個或多個計算機輸入設備的通用計算機。替選地,客 戶端機器可以是專用計算設備,諸如移動手持設備??蛻舳藱C器通過諸如因特網(wǎng)的一個或 多個網(wǎng)絡與一個或多個服務器通信。類似于客戶端機器,可以使用能夠向客戶端派發(fā)數(shù)據(jù) 的任何通用計算機來實現(xiàn)服務器。將關(guān)于圖3更詳細地描述地理信息系統(tǒng)客戶端的體系結(jié) 構(gòu)。圖2B示出了圖示了用于在具有虛擬表面的情況下?lián)u攝的顯示區(qū)域沈0的各區(qū)的 圖250。如在前面關(guān)于圖2A中的顯示區(qū)域202所描述的,顯示區(qū)域260可以顯示來自虛擬 相機的透視角的地球的三維模型。用戶可以通過例如用諸如鼠標的計算機指示設備控制的 光標在顯示區(qū)域260上選擇第一點來搖攝虛擬相機。通過根據(jù)用戶選擇的點來延伸屏幕射 線,可以確定三維模型中的命中點。然后,用戶可以移動光標來在顯示區(qū)域260上選擇第二 點。地球的三維模型可以旋轉(zhuǎn)以跟隨第二點。顯示區(qū)域260包括區(qū)256、2M和252。模型 如何旋轉(zhuǎn)以跟隨第二點視哪個區(qū)包括第二點而變化。如果用戶移動光標來在區(qū)256中選擇第二點,則模型旋轉(zhuǎn),以使命中點處于光標 下面。以這種方式,模型旋轉(zhuǎn)以跟隨光標。返回參見圖1B,在區(qū)256中,根據(jù)光標位所來延 伸的屏幕射線將與搖攝球面104相交。隨著光標逐漸移動靠近區(qū)254,旋轉(zhuǎn)的速率增大。在 光標進入?yún)^(qū)254時,根據(jù)光標位所來延伸的屏幕射線將與虛擬表面152相交。在一個實施例中,可以構(gòu)建虛擬表面,使得旋轉(zhuǎn)的速率無論光標在區(qū)254中的位 所如何保持恒定。換句話說,對于光標以X像素的任何移動,模型以恒定Y度旋轉(zhuǎn)。此外, 該速率可以被設置為在點258處(例如,搖攝表面與虛擬表面相遇處)的旋轉(zhuǎn)速率,其中在 點258處區(qū)256與區(qū)2M連接。通過在搖攝表面與虛擬表面之間的交點處將在虛擬表面上 的旋轉(zhuǎn)速率設置為等于在搖攝球面上的速率,在這兩個表面之間存在平滑過渡。該平滑過 渡減少了用戶在搖攝時會體驗到顫動的可能性。最后,減少的顫動產(chǎn)生更平滑的搖攝體驗。在一個實施例中,可以構(gòu)建虛擬表面,使得搖攝是可逆的。模型在第一位置開始。 用戶在顯示區(qū)域260上選擇第一位所。然后,用戶將光標移動到顯示區(qū)域260上的第二位 所。相應地,模型旋轉(zhuǎn)到第二位置。如果用戶將光標移動回顯示區(qū)域260上的第一位所,則 模型旋轉(zhuǎn)回第一位置。以這種方式,可以構(gòu)建虛擬表面,使得搖攝是可逆的。最后,顯示區(qū)域260可以可選地具有區(qū)252,在此處少量旋轉(zhuǎn)或沒有旋轉(zhuǎn)發(fā)生。在 地理信息系統(tǒng)中,區(qū)252可以對應于天空或太空。如果用戶將光標移動入?yún)^(qū)252,則搖攝可 以停止。此外,根據(jù)區(qū)252中的光標位置來延伸的屏幕射線可以不與搖攝球面或虛擬表面 相交。圖3是根據(jù)本發(fā)明的一個實施例的GIS的示例性客戶端300的體系結(jié)構(gòu)圖。在一 個實施例中,客戶端300包括用戶交互模塊310、本地存儲器330、緩存節(jié)點管理器340、渲染 器模塊350、網(wǎng)絡加載器365以及顯示接口 380。如圖3中所示,用戶交互模塊310包括圖 形用戶界面(GUI) 312和運動模型318。本地存儲器330包括查看規(guī)范332和四元節(jié)點樹334。緩存節(jié)點管理器340包括檢索列表345。例如,在一個實施例中,可以將客戶端300的組件實現(xiàn)為運行于客戶端機器上的 軟件??蛻舳?00與GIS服務器(未示出)交互以將地球的圖像和其它地理空間數(shù)據(jù)帶到 客戶端300以供用戶查看。地球的圖像和其它地理空間數(shù)據(jù)一起形成在三維環(huán)境中的三維 模型。在一個實施例中,按照可以互相異步(例如,時間獨立)運行的功能來分組軟件對象??偟膩碚f,客戶端300操作如下。用戶交互模塊310接收有關(guān)用戶期望查看的位 置的用戶輸入,以及通過運動模型318構(gòu)建查看規(guī)范332。渲染器模塊350使用查看規(guī)范 332來決定待繪制哪些數(shù)據(jù),然后繪制數(shù)據(jù)。緩存節(jié)點管理器340在異步線程控制下運行, 以及通過用經(jīng)由網(wǎng)絡從遠程服務器檢索的四元節(jié)點填充四元節(jié)點樹334來構(gòu)造四元節(jié)點 樹 334。在用戶接口模塊310的一個實施例中,用戶使用⑶I 312來輸入位置信息。例如, 這導致查看規(guī)范332的生成。將查看規(guī)范332放置在本地存儲器330中,其中查看規(guī)范332 由渲染器模塊350使用。運動模型318使用經(jīng)由⑶I 312接收的位置信息來調(diào)整虛擬相機的位所或取向。 例如,相機用于查看地球的所顯示的三維模型。用戶在他或她的計算機監(jiān)視器上從虛擬相 機的角度看見所顯示的三維模型。在一個實施例中,運動模型318還基于虛擬相機的位所、 虛擬相機的取向以及虛擬相機的水平和垂直視場來確定查看規(guī)范332。查看規(guī)范332定義被稱為平截頭體的虛擬相機的在三維空間內(nèi)的可視量,以及平 截頭體例如關(guān)于三維地圖的位所和取向。在一個實施例中,平截頭體以截去頂端的棱錐的 形狀。平截頭體具有可以隨查看環(huán)境而改變的最小和最大的查看距離。隨著使用⑶I 312 來操縱用戶的對三維地圖的查看,平截頭體的取向和位所關(guān)于三維地圖改變。因此,隨著接 收到用戶輸入,查看規(guī)范332改變。將查看規(guī)范332放置在本地存儲器330中,其中查看規(guī) 范332由渲染器模塊350使用。將在下面更詳細地描述查看規(guī)范332和GIS客戶端300的 其它組件。運動模型318使用若干子模塊來控制使用虛擬表面的搖攝。子模塊包括搖攝模塊 390、虛擬表面計算器模塊392和旋轉(zhuǎn)器模塊394。運動模型318從⑶I 312接受用戶輸入。 如果用戶輸入是鼠標點擊,則運動模型318可以例如通過函數(shù)調(diào)用來激活搖攝模塊390。搖攝模塊390根據(jù)用戶輸入來延伸射線,然后確定在三維模型與該射線之間的交 點。搖攝模塊390還可以構(gòu)建搖攝球面。一旦構(gòu)建搖攝球面,虛擬表面計算器模塊392就 可以將虛擬表面適配到搖攝球面。運動模型318從⑶I 312接受第二用戶輸入。搖攝模塊390根據(jù)第二用戶輸入來 延伸另一條射線。搖攝模塊390還計算在虛擬表面與該射線之間的交點。最后,旋轉(zhuǎn)器模 塊394根據(jù)該交點來旋轉(zhuǎn)三維模型。將在下面關(guān)于圖4-6和7A-B更詳細地描述對搖攝模 塊390、虛擬表面計算器模塊392和旋轉(zhuǎn)器模塊394的操作。圖4是用于使用虛擬表面來搖攝的方法400的流程圖,該方法可以在操作圖3中 的運動模型318時使用。盡管關(guān)于運動模型318來描述方法400,但是這并不意味將方法 400限制在運動模型318。方法400以在步驟402接收用戶事件開始。如果用戶事件是點擊事件,則可以在 步驟418計算替代射線。然后,在步驟404通過使屏幕射線或替代射線與三維模型相交來計算命中點。在步驟406,將搖攝球面適配到命中點,以及在步驟408,將虛擬表面適配到搖 攝球面。如關(guān)于圖IB所描述,可以根據(jù)命中點來生成搖攝球面??梢愿鶕?jù)虛擬相機的位所 來生成虛擬表面。接收鼠標移動事件,然后方法400前進到步驟410。在步驟410,使屏幕 射線與搖攝表面和虛擬表面兩者相交。在步驟412選擇交點中的一個。如果所選擇的交點 在虛擬表面上,則在步驟414將該交點投影到搖攝球面上。最后,在步驟416,以由連接在 步驟404確定的命中點和在步驟416選擇的交點的線段所對(subtend)的角度旋轉(zhuǎn)三維模 型。將在下面關(guān)于圖3中的運動模型318和圖5A-B、6以及7A-B中的圖更詳細地描述每一 個步驟。在步驟402,⑶I 312可以接收兩個用戶事件一點擊事件或移動事件中的一個。 GUI 312可以響應于用戶在圖2中的顯示區(qū)域202中的一個位所處點擊鼠標或其它輸入設 備,接收點擊事件。GUI 312可以在用戶按住輸入設備(諸如鼠標),并且將輸入設備移動 到顯示區(qū)域202上的新位所時接收移動事件。這些事件可以導致⑶I 312對搖攝模塊390 進行回調(diào)函數(shù)調(diào)用。在函數(shù)調(diào)用期間,GUI 312可以將有關(guān)事件的位所信息傳遞給搖攝模 塊 390。如果用戶事件是點擊事件,則在步驟418搖攝模塊390可以確定替代屏幕射線,如 圖5A中所圖示。圖5A示出了具有焦點506的虛擬相機?;谠擖c擊事件,確定屏幕射線 510。將關(guān)于圖5B更詳細地描述確定屏幕射線。線段514連接中心源112和焦點506。在 線段514與屏幕射線510之間的角度516超過了閾值。由于角度516超過閾值,所以將角 度516校整到為角度518的閾值。最后,替代射線518關(guān)于線段514以角度518從焦點506 延伸。在步驟404,搖攝模塊390通過使屏幕射線或替代射線與三維模型相交來計算命 中點。將關(guān)于圖5B中的圖500詳細描述步驟404。圖500示出了地球的模型552。圖500 還示出了虛擬相機的焦點506。虛擬相機如關(guān)于圖2所描述的用于捕捉并顯示信息。虛擬 相機具有焦距558和視口 560。視口 560對應于圖2中的顯示區(qū)域202。用戶在顯示區(qū)域 202上選擇位所,以及該位所對應于視口 560上的點562。搖攝模塊通過從虛擬相機延伸屏幕射線來確定與模型的交點,來確定命中點。在 圖500中,射線564從焦點506延伸通過點562。在另一個實施例中,射線564可以是如關(guān) 于圖5A所描述的來計算的替代射線。射線564在位置M4處與模型552相交。因此,命中 點在位置5M處。射線564可以在建筑物或地形處與三維模型552相交。參見圖3和4,如果射線與建筑物或地形相交,則在步驟406搖攝模塊390可以創(chuàng) 建搖攝球面。搖攝球面的中心源可以位于三維模型的中心,以及搖攝球面的半徑可以是在 模型的中心與在步驟404確定的命中點之間的距離。一旦在步驟406確定搖攝表面,在步驟408虛擬表面計算器模塊392就計算虛擬 表面。將虛擬表面適配到搖攝表面,以使虛擬表面和搖攝表面一起形成連續(xù)表面。虛擬表 面可以是來自虛擬相機的透視角的凹面。在一個示例中,虛擬表面是搖攝表面的一部分的鏡像。圖6示出了圖示了根據(jù)本發(fā)明的一個實施例的如何計算虛擬表面的圖600。圖600 圖示了一種計算虛擬表面的方式,然而還有其它計算虛擬表面的方式。如上所述,還可以將 虛擬表面計算為凹面或地球的鏡像。圖600示出了查看具有中心源614的三維模型606的虛擬相機602。圖600還示出了搖攝球面604。搖攝速率是下述速度光標的移動以該速度旋轉(zhuǎn)三維模型606。在一個實施例中, 可以構(gòu)建虛擬表面,使得搖攝速率在搖攝表面與虛擬表面之間的交點處達到最大值,并且 跨虛擬表面保持恒定。以這種方式,存在從搖攝表面到虛擬表面的平滑過渡。為了確定虛擬表面,虛擬表面計算器模塊392首先確定點,在該點處搖攝表面與 虛擬表面連接。在圖600中,搖攝表面在點616處與虛擬表面連接。點616可以對應于在 使用虛擬表面之前相機必須相切到的程度的參數(shù)。在一個替選實施例中,點616可以是下 述點在該點處搖攝速率達到最大可容忍閾。使用點616,確定若干角度。標記為d θ的第一角度是在來自用戶的鼠標點擊的屏幕射線624與連接相機602 和點616的線段618之間的角度。線段622連接中心源614與來自用戶的鼠標點擊的屏幕 射線和搖攝模型的交點626。線段620連接中心源614與點616。標記為(1Φ的第二角度 是在線段622與線段620之間的角度。角度de和(1Φ可以是較小偏移。第一角度(1Φ與 第二角度d θ的比率(例如(ΙΦΜΘ)可以是搖攝速率。然后將在第一角度d θ與第二角度(1Φ之間的比率用于確定虛擬表面??梢詷?gòu)建 虛擬表面,使得搖攝速率(ΙΦ/d θ跨整個表面保持恒定。為了做到這一點,確定連接虛擬相 機602與中心源614的線段628。角度θ是在線段擬8與連接虛擬相機602和虛擬表面 上的可變點632的線段630之間的角度。角度Φ是在線段628與連接中心源614和虛擬 表面上的可變點632的線段634之間的角度。對于虛擬表面上的每一個可變點,角度θ和 Φ滿足以下等式
權(quán)利要求
1.一種用于在三維環(huán)境中搖攝虛擬相機的計算機實現(xiàn)的方法,包括(a)確定在所述三維環(huán)境中的三維模型上的第一點;(b)根據(jù)所述第一點、所述三維模型和所述虛擬相機在所述三維環(huán)境中的位所,確定虛 擬表面;(c)確定在所述虛擬表面上的第二點;以及(d)根據(jù)所述第一點和所述第二點來改變所述三維模型的位置。
2.如權(quán)利要求1所述的方法,其中步驟(d)的所述改變包括以在連接所述第一點和所述三維模型的中心的第一線段與連接所述第二點和所述三 維模型的所述中心的第二線段之間的角度來旋轉(zhuǎn)所述三維模型。
3.如權(quán)利要求2所述的方法,其中步驟(b)的所述確定包括(i)確定搖攝球面,其中所述搖攝球面的中心位于所述三維模型的所述中心處,以及其 中所述搖攝球面具有等于在所述三維模型的所述中心與所述第一點之間的距離的半徑;以 及( )確定適配到所述搖攝表面的所述虛擬表面,使得所述虛擬表面與所述搖攝表面一 起形成與所述搖攝球面光滑適配的連續(xù)表面。
4.如權(quán)利要求3所述的方法,其中所述三維模型包括地球模型。
5.如權(quán)利要求3所述的方法,其中步驟(ii)的所述確定包括確定所述虛擬表面,其 中所述虛擬表面是來自所述虛擬相機的透視角的凹面。
6.如權(quán)利要求5所述的方法,其中步驟(ii)的所述確定進一步包括確定所述虛擬表 面,其中所述虛擬表面是所述搖攝球面的一部分的鏡像。
7.如權(quán)利要求1所述的方法,其中步驟(a)的所述確定包括(i)從所述虛擬相機的焦點延伸第一射線通過所述虛擬相機的視口上的第三點,所述 第三點對應于第一用戶選擇;以及(ii)確定在所述第一射線與所述三維模型之間的交點處的所述第一點。
8.如權(quán)利要求7所述的方法,其中所述確定步驟(c)包括(i)從所述虛擬相機的所述焦點延伸第二射線通過所述虛擬相機的所述視口上的第四 點,所述第四點對應于第二用戶選擇;以及(ii)確定在所述第二射線與所述三維模型之間的交點處的所述第二點。
9.如權(quán)利要求7所述的方法,其中步驟(b)的所述確定包括(i)確定搖攝球面,其中所述搖攝球面的中心位于所述三維模型的中心處,以及其中所 述搖攝球面具有等于在所述三維模型的所述中心與所述第一點之間的距離的半徑;以及(ii)確定在連接點處連接到所述搖攝球面的虛擬表面,其中所述虛擬表面基本上滿足
10. 一種用于在三維環(huán)境中搖攝虛擬相機的系統(tǒng),包括搖攝模塊,所述搖攝模塊確定在所述三維環(huán)境中的三維模型上的第一點,以及確定在 虛擬表面上的第二點;虛擬表面計算器模塊,所述虛擬表面計算器模塊根據(jù)所述第一點、所述三維模型和所 述虛擬相機在所述三維環(huán)境中的位所,確定所述虛擬表面;以及旋轉(zhuǎn)器模塊,所述旋轉(zhuǎn)器模塊根據(jù)所述第一點和所述第二點來改變所述三維模型的位置。
11.如權(quán)利要求10所述的系統(tǒng),其中所述旋轉(zhuǎn)器模塊以在連接所述第一點和所述三維 模型的中心的第一線段與連接所述第二點和所述三維模型的所述中心的第二線段之間的 角度來旋轉(zhuǎn)所述三維模型。
12.如權(quán)利要求11所述的系統(tǒng),其中所述搖攝模塊確定搖攝球面,其中所述搖攝球面 的中心位于所述三維模型的所述中心處,以及其中所述搖攝球面具有等于在所述三維模型 的所述中心與所述第一點之間的距離的半徑,以及其中所述搖攝模塊確定適配到所述搖攝表面的所述虛擬表面,使得所述虛擬表面與所 述搖攝表面一起形成與所述搖攝球面光滑適配的連續(xù)表面。
13.如權(quán)利要求12所述的系統(tǒng),其中所述三維模型包括地球模型。
14.如權(quán)利要求12所述的系統(tǒng),其中所述虛擬表面是來自所述虛擬相機的透視角的凹
15.如權(quán)利要求14所述的系統(tǒng),其中所述虛擬表面是所述搖攝球面的一部分的鏡像。
16.如權(quán)利要求10所述的系統(tǒng),其中所述搖攝模塊從所述虛擬相機的焦點延伸第一射 線通過所述虛擬相機的視口上的第三點,所述第三點對應于第一用戶選擇,以及其中所述搖攝模塊確定在所述第一射線與所述三維模型之間的交點處的所述第一點。
17.如權(quán)利要求16所述的系統(tǒng),其中所述搖攝模塊從所述虛擬相機的所述焦點延伸第 二射線通過所述虛擬相機的所述視口上的第四點,所述第四點對應于第二用戶選擇,以及其中所述第二點在所述第二射線與所述三維模型之間的交點處。
18.如權(quán)利要求16所述的系統(tǒng),其中所述搖攝模塊確定搖攝球面,其中所述搖攝球面 的中心位于所述三維模型的中心處,以及其中所述搖攝球面具有等于在所述三維模型的所 述中心與所述第一點之間的距離的半徑,以及其中所述虛擬表面計算器模塊確定在連接點處連接到所述搖攝球面的虛擬表面,其中所述虛擬表面基本上滿足等式 其中θ ^是在所述第一射線與連接所述虛擬相機和所述三維模型的中心的線段之間的角度,其中Otl是在連接所述虛擬相機和所述三維模型的所述中心的所述第一線段與連接所 述三維模型的所述中心和所述第一點的第二線段之間的角度,其中(1Φ是在連接所述三維模型的所述中心和所述第一點的所述第二線段與連接所 述三維模型的所述中心和所述連接點的第三線段之間的角度,其中de是在所述第一射線與連接所述虛擬相機和所述連接點的第三線段之間的角度,其中θ是在連接所述虛擬相機和所述三維模型的所述中心的所述第二線段與連接所 述虛擬相機和所述虛擬表面上的可變點的第四線段之間的角度,以及其中φ是在連接所述虛擬相機和所述三維模型的所述中心的所述第二線段與連接所 述三維模型的所述中心和所述虛擬表面上的所述可變點的第五線段之間的角度。
19.一種用于在包括地球的三維模型的三維環(huán)境中搖攝虛擬相機的計算機實現(xiàn)的方 法,包括(a)在顯示區(qū)域顯示來自所述虛擬相機的透視角的所述三維模型;(b)使用戶能夠用光標在所述顯示區(qū)域上選擇第一點;(c)根據(jù)所述第一點來確定第一屏幕射線;(d)使所述用戶能夠?qū)⑺龉鈽艘苿拥剿鲲@示區(qū)域中的第二點;(e)根據(jù)所述第二點來確定第二屏幕射線;以及(f)圍繞通過所述三維模型的旋轉(zhuǎn)點的軸旋轉(zhuǎn)所述三維模型,來以搖攝速率限定的速 度跟隨所述光標,其中所述搖攝速率是所述三維模型的旋轉(zhuǎn)角度與在所述第一屏幕射線和所述第二屏 幕射線之間的角度的比率,以及 其中所述搖攝速率不超過閾值。
20.一種用于在三維環(huán)境中搖攝虛擬相機的系統(tǒng),包括 用于確定在所述三維環(huán)境中的三維模型上的第一點的裝置;用于根據(jù)所述第一點、所述三維模型和所述虛擬相機在所述三維環(huán)境中的位所,確定 虛擬表面的裝置;用于確定在所述虛擬表面上的第二點的裝置;以及 用于根據(jù)所述第一點和所述第二點來改變所述三維模型的位置的裝置。
21.一種其上存儲有計算機可執(zhí)行指令的有形計算機可讀介質(zhì),如果計算設備執(zhí)行所 述計算機可執(zhí)行指令,則促使所述計算設備執(zhí)行以下方法(a)確定在所述三維環(huán)境中的三維模型上的第一點;(b)根據(jù)所述第一點、所述三維模型和所述虛擬相機在所述三維環(huán)境中的位所,確定虛 擬表面;(c)確定在所述虛擬表面上的第二點;以及(d)根據(jù)所述第一點和所述第二點來改變所述三維模型的位置。
全文摘要
本發(fā)明涉及在三維環(huán)境中搖攝虛擬相機。在本發(fā)明的一個實施例中,一種計算機實現(xiàn)的方法在三維環(huán)境中搖攝虛擬相機。在該方法實施例中,確定在三維環(huán)境中的三維模型上的第一點。根據(jù)第一點、三維模型和虛擬相機在三維環(huán)境中的位所,確定虛擬表面。確定在虛擬表面上的第二點。最后,根據(jù)第一點和第二點來改變?nèi)S模型的位置。
文檔編號G06T15/20GK102067180SQ200980121632
公開日2011年5月18日 申請日期2009年4月14日 優(yōu)先權(quán)日2008年4月14日
發(fā)明者丹尼爾·巴爾凱, 戈克爾·瓦拉得汗 申請人:谷歌公司