亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

輕量級(jí)三維顯示的制作方法

文檔序號(hào):6593586閱讀:290來源:國(guó)知局
專利名稱:輕量級(jí)三維顯示的制作方法
技術(shù)領(lǐng)域
本文 檔涉及用于開發(fā)三維(3-D)模型的表示的系統(tǒng)和技術(shù),所述三維模型的表 示顯現(xiàn)為三維的但是可以在不使用專門三維技術(shù)的情況下顯示。
背景技術(shù)
如果圖片勝過千言,則三維模型可以勝過萬(wàn)語(yǔ)。在計(jì)算機(jī)輔助設(shè)計(jì)和開發(fā) (CADD)系統(tǒng)上開發(fā)的計(jì)算機(jī)模型用于各種行業(yè),以在不需要某人構(gòu)建被模型化的對(duì)象 的情況下幫助人們更好地理解并可視化該對(duì)象。例如,建筑師可以在建筑物被建造之前 生成對(duì)所述建筑物的虛擬漫游,以使客戶能夠可視化內(nèi)部空間,以及還可以了解建筑物 在其位所上可能看起來如何。工程師可以構(gòu)建整個(gè)系統(tǒng)以更好地了解各部分將如何組成 整體。以及生物學(xué)家和化學(xué)家可以構(gòu)建已經(jīng)存在但是太小而不易看見的對(duì)象,諸如分 子。然而,對(duì)三維模型的處理需要大量的計(jì)算能力。這是因?yàn)榭赡苄枰?jì)算對(duì)象上 的數(shù)量巨大的面(即,無(wú)論表面是否可見等),如此做是因?yàn)楣饩€與那些表面相互作用并 且從那些表面反射回來。而且,用戶可能需要安裝諸如VRML或Quicktime VR的特定軟 件來處理對(duì)三維模型的顯示。還可以將模型變成需要較少處理能力來顯示的影片,但是 在那種情況下,用戶可能失去與模型自由交互的能力。

發(fā)明內(nèi)容
本文檔描述了可以用于在不需要專門三維軟件的情況下為用戶生成三維體驗(yàn)的 系統(tǒng)和技術(shù)。例如,可以在不需要諸如Flash插件等的專門軟件的情況下允許用戶在web 瀏覽器中操縱空間中的模型??偟膩碚f,在此論述的技術(shù)以無(wú)縫系列形式(in a seamlessprocession)生成模型
的多個(gè)圖像,并且將那些圖像放置在定義的位置。所述技術(shù)然后生成產(chǎn)生用于在圖像之 中循環(huán)的控件以及還指向特定圖像的web瀏覽器代碼,諸如HTML代碼。然后可以(例 如,通過將瀏覽器指向用于該代碼的URL)從web瀏覽器訪問該代碼。在某些實(shí)施方式中,這樣的系統(tǒng)和技術(shù)可以提供一個(gè)或多個(gè)優(yōu)勢(shì)。例如,開發(fā) 者可以在不必?fù)?dān)憂用戶是否愿意擁有特定軟件程序或插件的情況下,開發(fā)用戶通過其可 以與表示為一系列二維圖的三維模型交互的頁(yè)面??梢允瓜M(fèi)者能夠在不需要用于完整 三維建模的計(jì)算馬力的情況下以及在不必安裝并維護(hù)特定軟件的情況下,在各種設(shè)備上 具有更豐富的交互式體驗(yàn)。結(jié)果,典型用戶可以在查看網(wǎng)頁(yè)時(shí)被提供有更豐富的體驗(yàn)。在一個(gè)實(shí)施方式中,公開了一種計(jì)算機(jī)實(shí)現(xiàn)的成像方法。該方法包括生成三維 模型的一系列(a progression of)圖像并且將所述圖像保存在確定的位置處,生成用于顯示 圖像操縱控件以及用于響應(yīng)于與圖像操縱控件的用戶交互允許顯示所述一系列圖像的標(biāo) 記代碼,以及提供所述圖像和標(biāo)記代碼以供第三方應(yīng)用使用。第三方應(yīng)用可以包括web 瀏覽器,以及該web瀏覽器可以允許以web瀏覽器的本原形式與圖像交互。
在一些方面中,生成無(wú)縫的一系列圖像包括指引三維建模應(yīng)用在圍繞三維模型的周界(perimeter)的環(huán)形上拍攝圖片。該方法還可以包括將圖像和標(biāo)記代碼封裝以傳送 給遠(yuǎn)程的第三方應(yīng)用。另外,該方法可以包括將用于標(biāo)記代碼的URL傳送給第三方應(yīng) 用。該方法可以進(jìn)一步涉及從用戶接收與待圍繞三維對(duì)象的外部生成的圖像數(shù)有關(guān)的指 示符,以及在圍繞三維對(duì)象的外部的大致平均間隔的位置處生成圖像。另外,該方法可 以進(jìn)一步包括將多個(gè)圖像中的每一個(gè)圖像存儲(chǔ)為單獨(dú)的圖像文件,以及生成用于引用圖 像文件的標(biāo)記代碼。在一些方面中,標(biāo)記代碼可以由本原web瀏覽器執(zhí)行而無(wú)需使用瀏覽器插件。 該方法還可以包括從用戶接收對(duì)圖像遍歷路徑的指示,并且沿著圖像遍歷路徑生成所述 一系列圖像。圖像遍歷路徑有時(shí)可以由在關(guān)于球體的多維上分布的點(diǎn)來定義。該方法還 可以包括在瀏覽器中生成與模型相關(guān)聯(lián)的顯示,接收識(shí)別確定的位置的用戶參數(shù),以及 將確定的位置通信到操作系統(tǒng)。在另一個(gè)實(shí)施方式中,公開了一種計(jì)算機(jī)實(shí)現(xiàn)的模型查看系統(tǒng)。該系統(tǒng)包括適 于生成三維模型的二維圖像的CAD程序,用于促使三維模型的多個(gè)二維圖像通過CAD程 序被創(chuàng)建的圖像生成模塊,以及用于創(chuàng)建在被執(zhí)行時(shí)促使一系列的所述二維圖像被顯示 以建立對(duì)三維模型的移動(dòng)的視覺印象的標(biāo)記代碼的代碼生成器。圖像生成模塊可以定義 關(guān)于三維模型的成像路徑,以及由CAD程序操作的虛擬照相機(jī)可操作來由圖像生成模塊 控制以從對(duì)應(yīng)于成像路徑的位置捕捉圖像。另外,該系統(tǒng)可以包括能夠以瀏覽器的本原 形式顯示所述一系列的所述二維圖像的web瀏覽器。該系統(tǒng)還可以包括用于將對(duì)用于二 維圖像的存儲(chǔ)位置的用戶選擇從基于web的應(yīng)用通信到計(jì)算機(jī)操作系統(tǒng)的裝置。 在某些方面中,圖像生成模塊被編程為捕捉并保存具有預(yù)定命名結(jié)構(gòu)的數(shù)字圖 像,以使可以按照名稱順次訪問圖像。在又其它方面中,代碼生成器使用代碼模板來創(chuàng) 建代碼并且提供特定于模型的信息以與代碼模板一起使用。在又另一個(gè)實(shí)施方式中,公開了一種計(jì)算機(jī)實(shí)現(xiàn)的模型查看系統(tǒng),其包括配置 為接收關(guān)于使三維模型成像為多個(gè)圖像的用戶輸入的接口,用于與顯示三維模型的應(yīng)用 通信、以促使該應(yīng)用生成三維模型的多個(gè)圖像的插件應(yīng)用,以及用于生成用于相繼顯示 多個(gè)圖像的標(biāo)記代碼的裝置。該系統(tǒng)可以進(jìn)一步包括用于在基于瀏覽器的應(yīng)用與操作系 統(tǒng)文件系統(tǒng)之間通信來識(shí)別用于保存多個(gè)圖像的位置的裝置。在附圖和下面的描述中闡述了一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)。其它特征和優(yōu)勢(shì)從描 述和附圖、以及從權(quán)利要求將是顯而易見的。


圖1是用于捕捉用于顯示為一系列2-D圖像的3-D模型的過程的概念圖。圖2是說明性圖像捕捉系統(tǒng)的框圖。圖3是用于捕捉3-D模型的圖像的示例過程的流程圖。圖4是示出了用于使用一系列2-D圖像來顯示3-D模型的過程的泳道圖。圖5是用于捕捉3-D模型的圖像并且使用管道應(yīng)用來保存圖像的示例過程的流程 圖。圖6是示出了用于使用一系列2-D圖像以及管道應(yīng)用的幫助來生成并顯示3-D模型的過程的泳道圖。圖7示出了使用2-D圖像來顯示3-D模型的移動(dòng)設(shè)備。圖8A-8F示出了用于捕捉并使用3-D模型的2-D圖像的過程的截屏。圖8G-8J示出了用于管理對(duì)模型的圖像捕捉的對(duì)話框的截屏。圖9示出了可以用于實(shí)現(xiàn)在此描述的技術(shù)的計(jì)算機(jī)設(shè)備和移動(dòng)計(jì)算機(jī)設(shè)備的示例。在各個(gè)附圖中相同的參考符號(hào)指示相同的元素。
具體實(shí)施例方式本部分描述了用于生成3-D模型的表示的各種系統(tǒng)和技術(shù),其中表示可以以與 模型自身的顯示非常相似的方式顯示,但是沒有與操縱真實(shí)3-D模型相關(guān)聯(lián)的計(jì)算上的 開銷。在此論述的示例中,用于3-DCADD系統(tǒng)或相似應(yīng)用的插件促使系統(tǒng)在捕捉模型 的圖像時(shí)環(huán)繞(orbiting)模型,以從圍繞模型的大致均勻間隔的有利點(diǎn)創(chuàng)建多個(gè)圖像。插 件然后可以自動(dòng)生成允許從web瀏覽器對(duì)2-D圖像進(jìn)行容易操縱的標(biāo)記代碼,使得圖像 可以被顯示,以提供正由用戶實(shí)時(shí)圍繞旋轉(zhuǎn)的3-D對(duì)象的效果。在某些情況下,插件可以通過打開操作者可以在設(shè)置用于創(chuàng)建模型的圖像的參 數(shù)時(shí)使用的瀏覽器窗口來操作。作為一個(gè)示例,操作者可以選擇與成像過程相關(guān)聯(lián)的文 件待被放置入、使得可以稍后訪問所述文件以供查看的文件夾或其它位置。由于通常網(wǎng) 頁(yè)不能訪問計(jì)算機(jī)上的文件系統(tǒng),或訪問取決于頁(yè)面正在其上顯示的計(jì)算機(jī)的類型,所 以這樣的方法不是無(wú)關(guān)緊要的。然而,在下面描述的技術(shù)中,諸如JavaScript代碼的網(wǎng)頁(yè) 代碼可以與加載在計(jì)算機(jī)系統(tǒng)上并且用作為用于網(wǎng)頁(yè)程序的管道的本原應(yīng)用通信。網(wǎng)頁(yè) 代碼可以促使本原應(yīng)用與計(jì)算機(jī)上的文件管理系統(tǒng)交互,使得網(wǎng)頁(yè)代碼可以間接地訪問 計(jì)算機(jī)上的文件。圖1是用于捕捉用于顯示為一系列2-D圖像的3-D模型的過程100的概念圖。 在該表示中,從上面示出了在此為蘭博基尼的汽車的模型102。然而,應(yīng)當(dāng)將該模型理 解為可以在CADD系統(tǒng)中呈現(xiàn)并且可以從多個(gè)角度查看的3-D模型。在該模型周圍示出 了多個(gè)照相機(jī)104以描繪從各個(gè)角度生成該模型的圖像。照相機(jī)104被定位在圍繞模型 102的周界的大致平均分隔處、并且在使得將在照相機(jī)104拍攝模型102的任何虛擬圖片 中成像整個(gè)模型的位置處。照相機(jī)相對(duì)于該模型的高度可以被設(shè)置,或者可以由用戶選 擇,并且在模型102周圍的不同照相機(jī)104可以彼此處于不同的高度??梢灾T如由用戶選擇照相機(jī)104的數(shù)目來提供3-D模型102的多個(gè)二維圖像,使 得從一個(gè)圖像翻轉(zhuǎn)到下一圖像將提供對(duì)模型的相對(duì)平滑的呈現(xiàn)。具體地,用戶可以通過 相鄰照相機(jī)以漸進(jìn)的方式拍攝的圖像選擇性地循環(huán),以創(chuàng)建模型的虛擬動(dòng)畫。在以白色 或不可視背景放置模型用于成像的情況下,從圖像到圖像的這樣的翻轉(zhuǎn)將使得對(duì)查看者 顯現(xiàn)為如同模型在空間中隨意旋轉(zhuǎn)一樣。結(jié)果,對(duì)于查看者而言的視覺效果有點(diǎn)類似于 由舊式翻轉(zhuǎn)圖書或由受歡迎的電影The Matrix所提供的效果,只是顯現(xiàn)為模型在空間中旋 轉(zhuǎn),而不是顯現(xiàn)為照相機(jī)關(guān)于模型移動(dòng)。在模型102下面概念性地示出了網(wǎng)頁(yè)106。從概念上,網(wǎng)頁(yè)106被示出來表示在 發(fā)生成像操作后可以向web瀏覽器的用戶顯示模型102的圖像的方式。
網(wǎng)頁(yè)106包括顯示區(qū)域108,其中可以向web瀏覽器的查看者顯示模型102的圖 像。諸如圖像Iio的其它相鄰圖像在圖中緊接圖像108示出。實(shí)際上,其它圖像在正顯 示圖像108時(shí)對(duì)用戶而言是不可查看的。相反,在此以幻燈片的形式概念性地示出其它 圖像,以指示在用戶操縱圖像108下的控件時(shí),將按次序顯示其它圖像。作為對(duì)圖像的 這樣的漸進(jìn)顯示的結(jié)果,用戶可以僅通過促使各個(gè)相鄰圖像以適當(dāng)?shù)拇涡蝻@示,來生成 在為圖像108示出的區(qū)域內(nèi)的空間中旋轉(zhuǎn)模型的視覺效果。在某些示例中,用戶可以在 圖像間快速來回翻轉(zhuǎn),因此對(duì) 象在用戶的面前顯現(xiàn)為抓取并且旋轉(zhuǎn)。然而,實(shí)際上,用 戶僅在其瀏覽器上的公共區(qū)域中順次查看單個(gè)圖像。由于網(wǎng)頁(yè)106顯示靜態(tài)圖像,而不是實(shí)際三維模型或諸如基于flash的動(dòng)畫的復(fù) 雜動(dòng)畫,所以在某些情況下,用戶可以在不需要任何特定的web瀏覽器插件的情況下查 看網(wǎng)頁(yè)106。例如,在此論述的技術(shù)可以允許用戶在不需要Flash的情況下獲取Flash效 果。而且,用戶可以能夠在輕量級(jí)客戶端上實(shí)現(xiàn)這樣的似乎真實(shí)的三維控制,所述輕量 級(jí)客戶端諸如具有有限的計(jì)算能力的移動(dòng)設(shè)備或其它計(jì)算設(shè)備。圖2是說明性圖像捕捉系統(tǒng)200的框圖。系統(tǒng)200通常包括計(jì)算機(jī)系統(tǒng)中的適 于生成文件集合的多個(gè)組件,所述文件集合包括3-D模型的圖像和用于生成對(duì)那些圖像 的查看、以及用于運(yùn)行代碼并顯示圖像的代碼。盡管在這個(gè)示例中示出為單個(gè)計(jì)算機(jī), 但是各種組件可以駐存于一個(gè)或多個(gè)計(jì)算機(jī)上,并且可以由不同的實(shí)體管理。例如,用 于生成圖像的程序和用于查看圖像的代碼可以由第一實(shí)體操作,而用于運(yùn)行代碼和查看 圖像的程序可以由不同的實(shí)體操作。系統(tǒng)200包括包含例如3-D建模器208的成像計(jì)算機(jī)202。3-D建模器208可以 包括允許構(gòu)造3-D對(duì)象以及查看這樣的對(duì)象的多種計(jì)算機(jī)輔助設(shè)計(jì)程序中的任何程序。 另外,在某些實(shí)施方式中,3-D建模器208可以包括生成由系統(tǒng)呈現(xiàn)的模型的圖像的功 能。這樣的功能通??梢园ㄔ试S用戶置放虛擬照相機(jī)的視點(diǎn)和視角、以及還可以諸如 通過選擇用于照相機(jī)的虛擬鏡頭來允許定義視場(chǎng)的接口。控制這樣的虛擬照相機(jī)和生成3-D模型的2-D圖像可以利用2_D呈現(xiàn)器206發(fā) 生。2-D呈現(xiàn)器206可以響應(yīng)于從特定角度的特定點(diǎn)提供模型的圖像的命令,創(chuàng)建諸如 JPEG文件的標(biāo)準(zhǔn)圖像文件。2-D呈現(xiàn)器206還可以接受命令,諸如通過應(yīng)用編程接口 (API)接收的命令。例如,另一個(gè)程序可以根據(jù)API操作來控制3-D建模器208對(duì)虛擬 照相機(jī)的置放,以及2-D呈現(xiàn)器206對(duì)圖像的生成??梢詫⒂糜?-D建模器208的模型存儲(chǔ)在模型數(shù)據(jù)庫(kù)210中。數(shù)據(jù)庫(kù)210可以 采用各種形式,并且可以將每一個(gè)模型存儲(chǔ)在分立文件中??梢灾T如通過為每一個(gè)模型 提供特定基點(diǎn),并且將多個(gè)模型打開入單個(gè)模型空間中,來將各個(gè)模型組合成一個(gè)公共 模型。在靠近彼此打開這樣的多個(gè)模型時(shí),可以使用2-D呈現(xiàn)器206來發(fā)生對(duì)多個(gè)模型 的成像。數(shù)據(jù)庫(kù)210可以例如如同GOOGLE SKETCHUP的模型庫(kù)組件一樣來實(shí)現(xiàn)。圖像生成模塊204可以諸如通過如上所述的API操作來促使通過3-D建模器208 由2-D呈現(xiàn)器206自動(dòng)呈現(xiàn)圖像。圖像生成模塊204可以被編程為例如在識(shí)別模型周圍 的用于放置虛擬照相機(jī)的位置、以及模型的待捕捉的不同的圖像的數(shù)目時(shí)與用戶或應(yīng)用 交互。圖像生成模塊204可以是已安裝在計(jì)算機(jī)202上、并且與計(jì)算機(jī)202上的其它程 序獨(dú)立地運(yùn)行的本原程序。在一個(gè)示例中,圖像生成模塊可以以諸如Ruby的語(yǔ)言編寫。
在一個(gè)實(shí)施方式中,圖像生成模塊204可以促使生成對(duì)話框以與用戶交互。對(duì) 話框可以采用各種形式,以及在一個(gè)示例中,可以采用無(wú)邊框web瀏覽器212的形式。 Web瀏覽器212可以以如多個(gè)常見瀏覽器中的一個(gè)的熟悉方式來操作,所述瀏覽器諸如微 軟INTERNETEXPLORER、FOXFIRE瀏覽器或APPLE SAFARI瀏覽器。在適當(dāng)?shù)那闆r 下,瀏覽器可以根據(jù)在本文檔中描述的技術(shù)、在不需要額外插件或其它組件的情況下來 操作。由于作為web瀏覽器的一部分的安全限制,所以web瀏覽器212內(nèi)的頁(yè)面可能 對(duì)訪問計(jì)算機(jī)203上的數(shù)據(jù)存在困難。結(jié)果,可以在計(jì)算機(jī)202上提供文件系統(tǒng)解釋器 213。在一個(gè)示例中,文件系統(tǒng)解釋器213是圖像生成模塊204的一部分或與圖像生成模 塊204相關(guān)聯(lián),以及可以是諸如運(yùn)行于計(jì)算機(jī)202上以Ruby編寫的應(yīng)用的本原 應(yīng)用的一 部分。文件系統(tǒng)解釋器213被配置為與運(yùn)行于web瀏覽器212上的程序通信,所述程序 諸如運(yùn)行于web瀏覽器212上的JavaScript代碼。JavaScript和Ruby程序可以根據(jù)預(yù)先安 排的通信協(xié)議來通信。使用這樣的協(xié)議,運(yùn)行于web瀏覽器212上的JavaScript可以向文 件系統(tǒng)解釋器213發(fā)出請(qǐng)求,所述請(qǐng)求可以由文件系統(tǒng)解釋器213解釋。例如,運(yùn)行于 web瀏覽器212上的JavaScript代碼或其它相似代碼可以請(qǐng)求關(guān)于計(jì)算機(jī)202上的文件的信 息。這樣的請(qǐng)求可以包括用來確定計(jì)算機(jī)202上的文件夾結(jié)構(gòu)的請(qǐng)求。文件系統(tǒng)解釋器 213可以通過發(fā)出對(duì)用于文件系統(tǒng)對(duì)話框的數(shù)據(jù)的標(biāo)準(zhǔn)操作系統(tǒng)請(qǐng)求來對(duì)這樣的請(qǐng)求作出 響應(yīng)。在接收與對(duì)話框相關(guān)聯(lián)的數(shù)據(jù)后,文件系統(tǒng)解釋器213可以解析這樣的數(shù)據(jù)以確 定計(jì)算機(jī)202上的文件結(jié)構(gòu),并且可以將這樣的信息返回給運(yùn)行于web瀏覽器212上的應(yīng) 用。例如,文件系統(tǒng)解釋器213可以將特定目錄中的文件夾列表遞送給運(yùn)行于web瀏覽 器212上的應(yīng)用。運(yùn)行于web瀏覽器212上的應(yīng)用可以獲取這樣的信息,并且以好像運(yùn)行于web 瀏覽器212上的程序訪問了實(shí)際文件系統(tǒng)一樣地向用戶顯現(xiàn)的方式顯示這樣的信息。例 如,程序可以生成具有文件對(duì)話框的外觀的無(wú)邊框網(wǎng)頁(yè),并且可以訪問多個(gè)已存儲(chǔ)的圖 像以示出諸如文件夾和文件系統(tǒng)的其它相似組織的圖標(biāo)。程序還可以與圖標(biāo)一起顯示對(duì) 文件夾的文本描述,以使為用戶展現(xiàn)看起來如同文件系統(tǒng)對(duì)話框的網(wǎng)頁(yè)。如下更詳細(xì)地描述的,與網(wǎng)頁(yè)的用戶交互可以包括來自用戶的命令,諸如將文 件保存在特定文件夾中的請(qǐng)求、創(chuàng)建新的文件夾的請(qǐng)求或在文件夾層級(jí)中上下移動(dòng)的請(qǐng) 求。這樣的請(qǐng)求可以由運(yùn)行于web瀏覽器212上的程序解釋,并且根據(jù)商定的協(xié)議被遞 送給文件系統(tǒng)解釋器213。文件系統(tǒng)解釋器213可以翻譯這樣的請(qǐng)求,并且進(jìn)而作出某些 對(duì)計(jì)算機(jī)202的操作系統(tǒng)上的文件系統(tǒng)的調(diào)用。例如,文件系統(tǒng)解釋器213可以響應(yīng)于 用戶選擇在文件夾集中向下鉆探,并且可以向運(yùn)行于web瀏覽器212上的程序遞送回新的 子文件夾列表或其它適當(dāng)?shù)男畔ⅰ?偟膩碚f,每次用戶與看起來如同文件系統(tǒng)對(duì)話框的 網(wǎng)頁(yè)交互時(shí),運(yùn)行于web瀏覽器212上的程序可以向文件系統(tǒng)解釋器213發(fā)出請(qǐng)求,文件 系統(tǒng)解釋器213可以進(jìn)而訪問存儲(chǔ)在計(jì)算機(jī)202上的信息。文件系統(tǒng)解釋器213然后可 以分析這樣的返回信息,并且以可以由運(yùn)行于web瀏覽器212上的程序使用的方式將所述 返回信息遞送回這樣的程序。文件系統(tǒng)解釋器213最終向運(yùn)行于web瀏覽器212上的程序提供對(duì)web數(shù)據(jù)存儲(chǔ)214中的數(shù)據(jù)的查看。Web數(shù)據(jù)存儲(chǔ)214可以包括多個(gè)基于因特網(wǎng)的文件,諸如HTML文件、圖像文件、樣式表文件和其它相似文件。另外,文件系統(tǒng)解釋器213可以響應(yīng)于 用戶命令,促使2-D呈現(xiàn)器206生成的某些文件被保存在web數(shù)據(jù)存儲(chǔ)214中的特定文 件夾中。具體地,web數(shù)據(jù)存儲(chǔ)214可以包括計(jì)算機(jī)202上的標(biāo)準(zhǔn)盤或閃存結(jié)構(gòu)的一部 分。當(dāng)然,可以跨多個(gè)計(jì)算機(jī)和/或存儲(chǔ)設(shè)備散布在此描述的這樣的存儲(chǔ)和對(duì)程序的操 作。文件系統(tǒng)解釋器213通常可以是運(yùn)行于計(jì)算機(jī)202上的本原應(yīng)用,以使其能夠訪 問來自計(jì)算機(jī)的操作系統(tǒng)的全范圍服務(wù),包括文件管理服務(wù)和對(duì)話。以這種方式,文件 系統(tǒng)解釋器213可以允許運(yùn)行于web瀏覽器212上的程序訪問計(jì)算機(jī)202上的文件,否則 所述程序無(wú)法訪問這些文件。系統(tǒng)200可以響應(yīng)于與系統(tǒng)200的用戶交互,生成各種輸出。例如,web瀏覽 器212可以顯示各種網(wǎng)頁(yè)216a,諸如在捕捉和保存3-D模型的圖像時(shí)與用戶交互所需要 的對(duì)話框。另外,網(wǎng)頁(yè)216a可以包括用于顯示圖像和與圖像交互的網(wǎng)頁(yè)。Web瀏覽器 212還可以顯示各種動(dòng)畫,諸如如上關(guān)于圖1所論述的從圖像到圖像翻轉(zhuǎn)的交互式動(dòng)畫、 或網(wǎng)頁(yè)的用戶的其它這樣的移動(dòng)和交互式特征。在提供這樣的數(shù)據(jù)和交互時(shí),計(jì)算機(jī)202可以生成多個(gè)文件以允許與模擬三維 模型的多個(gè)圖像的交互。例如,可以自動(dòng)生成HTML文件218a,諸如用于展現(xiàn)以下網(wǎng)頁(yè) 的文件向用戶示出圖像并且允許用戶與圖像交互以在彼此后顯示各種不同的圖像,以 創(chuàng)建類似于與3-D模型的充分交互的體驗(yàn)。另外,計(jì)算機(jī)202可以生成多個(gè)圖像文件, 諸如JPEG、GIF、TIFF和其它相似的文件格式圖像文件。計(jì)算機(jī)202還可以生成可以 額外地定義待由系統(tǒng)200生成的網(wǎng)頁(yè)的特定布局和外觀的層疊樣式表(CSS)文件218c。 最后,計(jì)算機(jī)202可以生成JavaScript代碼218d以及另外可以使用這樣的JavaScript代碼 218d。例如,這樣的代碼可以用于生成用于捕捉2-D圖像的對(duì)話框,以及還可以用于稍 后在允許用戶與圖像的交互的網(wǎng)頁(yè)上顯示這樣的圖像。圖3是用于捕捉3-D模型的圖像的示例過程300的流程圖??偟膩碚f,過程300 涉及識(shí)別3-D模型、通過以虛擬成像裝置圍繞模型來捕捉多個(gè)2-D圖像、生成代碼以供 稍后以便利和交互式方式查看這樣的圖像、以及稍后運(yùn)行這樣的代碼并且接收用戶的交互。在框302,過程300首先接收對(duì)用于成像的模型的選擇。例如,用戶可以最初在 CAD程序中打開模型,然后可以選擇該程序內(nèi)的諸如圖標(biāo)的控件以開始對(duì)模型成像的過 程。用戶選擇的控件可以例如表示提供有CAD程序的用于對(duì)模型的這樣的成像的插件。在框304,過程300識(shí)別與模型相關(guān)聯(lián)的成像位置。在一個(gè)典型的示例中,位置 可以在沿著圍繞在對(duì)象周圍的路徑的圓形、橢圓形或其它幾何形狀的點(diǎn)處。每一個(gè)視圖 相對(duì)于下一視圖的位置可以通過用戶指定角度來提供,例如,如果用戶指定十度,則每 一個(gè)視圖將相距十度,并且將有36個(gè)圖像。替選地,用戶可以指定圖像的數(shù)目。然而, 不需要均勻分隔成像位置。在一個(gè)示例中,用戶諸如通過以在模型周圍自動(dòng)放置的均勻 間隔的照相機(jī)的圖標(biāo)開始,然后調(diào)整那些圖標(biāo),可以將成像位置人工拖放到某處。用戶 可以(以如下所述的方式)生成模型周圍的結(jié)果動(dòng)畫的預(yù)覽,然后可以調(diào)整照相機(jī)圖標(biāo)直 到它們實(shí)現(xiàn)其期望的效果。
在一些情況下,可以通過計(jì)算模型中的最小X、Y和Z點(diǎn)以及最大的這樣的點(diǎn), 來計(jì)算用于成像的特定位置。可以生成包含這兩個(gè)點(diǎn)的虛擬球體,并且可以將其認(rèn)為是 對(duì)模型進(jìn)行界定。然后可以選擇足夠遠(yuǎn)離球體外部的單個(gè)圓形或其它路徑,給定利用程 序提供的虛擬照相機(jī)的參數(shù)(例如,位置和視場(chǎng)),照相機(jī)在朝內(nèi)瞄準(zhǔn)球體時(shí)可以捕捉其 視場(chǎng)內(nèi)的球體的所有部分。照相機(jī)的實(shí)際路徑可以具有各種形式。在一個(gè)簡(jiǎn)單示例中,路徑可以是圓形或 橢圓形,照相機(jī)在相對(duì)于模型的單一高度處。在更復(fù)雜的示例中,路徑可以是正弦曲 線,因此在多維變化,使得隨著路徑在模型周圍移動(dòng),照相機(jī)也上下移動(dòng)。這樣的圓形 和正弦曲線路徑可以提供在模型的頂部和底部附近的交替視圖。例如,這樣的路徑可以 允許汽車的圖像在適當(dāng)?shù)那闆r下示出汽車的頂和車下方(underbelly)兩者。在又一個(gè)示例 中,圍繞模型的路徑可以采用球體的形式,用于虛擬照相機(jī)的位置被選擇在球體周圍的 近似等距處。使用這樣的路徑或點(diǎn)的集合可以使用戶能夠與圖像交互以圍繞多個(gè)軸轉(zhuǎn)動(dòng) 模型、或至少顯現(xiàn)為轉(zhuǎn)動(dòng)模型。 用戶還可以指定待被輸出的圖像的大小??梢詫⑦@樣的大小指定為例如在X和 Y維的像素?cái)?shù)。這樣的縮放在待將圖像合并入網(wǎng)頁(yè)的情況下可以尤其便利,其中許多元 素根據(jù)像素尺寸來表示。在框306,過程300開始以下重復(fù)過程將照相機(jī)定位在圍繞路徑中的特定點(diǎn)處 以及如框308處所示生成2-D圖像。使用如通過來自諸如圖2的圖像生成模塊204的另 一個(gè)應(yīng)用的API導(dǎo)入控制的特定CAD包,這樣的活動(dòng)可以自動(dòng)發(fā)生。隨著獲得每一個(gè)圖 像,過程300可以對(duì)圖像執(zhí)行特定功能。例如,可以從圖像去除背景項(xiàng),如可以是諸如 來自建模程序的軸的假想線或其它線。而且,對(duì)于成像過程可以引用某些樣式。例如,用戶諸如通過定位在3-D空間 中的照明源并且指定用于照明源的參數(shù)(例如,顏色和亮度),可以為其模型設(shè)置優(yōu)選照 明方案。用戶還可以指定用于模型或用于圖像中的其它項(xiàng)的紋理和材料。而且,在大部分情況下,可以在圓形或橢圓形上平均分隔沿著圍繞路徑的位 置。但是也可以使用其它安排。例如,可以從模型周圍-諸如在圍繞模型的球體上-的 多個(gè)位置分析圖像,以及可以計(jì)算在各個(gè)圖像之間的差異程度??梢允褂枚喾N已知技術(shù) 來執(zhí)行這樣的差異程度,諸如通過比較不同圖像中的公共像素之間的距離以及圖像中的 各個(gè)像素的改變程度。然后可以自動(dòng)選擇模型周圍的位置以提供在大體相等的視覺量上 彼此不同的圖像。例如,成像位置可以更靠近包含重要細(xì)節(jié)的模型的區(qū)域附近,而可以 更遠(yuǎn)離模型的較少細(xì)節(jié)部分。以這種方式,可以諸如以如下所述的方式選擇為稍后查看 這樣的圖像的用戶提供更平滑體驗(yàn)的位置。圖像還可以拍攝自真實(shí)對(duì)象。例如,希望將其汽車作為在線拍賣的一部分列出 的個(gè)人可以在汽車周圍的常見間隔(例如,在每一次拍照之間采用兩側(cè)步)處的常見高度 (其視平線)處拍攝汽車的多個(gè)數(shù)字照片。他們?nèi)缓罂梢詫D像保存到單個(gè)文件夾,以及 如同在此論述的那些應(yīng)用的應(yīng)用可以如下所述識(shí)別圖像文件、(如果照相機(jī)順序地命名圖 像)通過標(biāo)題數(shù)字地安排圖像文件、以及生成查看具有3-D效果的汽車所需的代碼。一旦為每一個(gè)所計(jì)算的成像位置生成圖像,并且圖像已被保存到確定的位置, 方法300就可以在框310生成并保存用于支持圖像的代碼。例如,這樣的代碼可以采用用于以適當(dāng)?shù)南盗泻痛涡蝻@示圖像、指向各個(gè)圖像的HTML和CSS代碼的形式。具體 地,代碼可以生成向前和向后掃描圖像的控件,以及可以隨用戶操縱該控件依次調(diào)用每 一個(gè)圖像用于顯示??梢詮膶⒂糜诖徊榭吹奶囟▓D像的數(shù)據(jù)添加到其中的模板生成特 定代碼。例如,從一個(gè)例示到下一例示,特定圖的名稱和圖的編號(hào)可以改變,但是代碼 的其它方面可以保持不變。因此,模板可以被編寫為在圖像陣列上操作,以及代碼生 成過程可以僅將特定文件名添加到陣列。代碼還可以保留為模板代碼,以及諸如通過 從JavaScript代碼等引用用于模型的成像的數(shù)據(jù)文件,該代碼可以引用用于特定圖像的參 數(shù)。 在框312,過程的第二階段,即以使圖像看起來如同它們?nèi)匀皇?-D模型的一 部分的方式查看圖像開始。在這個(gè)示例中,可以通過將瀏覽器指向在框310中生成的代 碼,來發(fā)生這樣的查看??梢酝ㄟ^過程300促使瀏覽器啟用并指向這樣的代碼,來發(fā)生 這樣的行為。對(duì)指向代碼的瀏覽器的啟用可以促使瀏覽器執(zhí)行代碼,所述代碼可以進(jìn)而 促使生成用于查看3-D模型的圖像的控件,并且可以在框314初始顯示基礎(chǔ)圖像?;A(chǔ) 圖像可以是生成的圖像中的任何圖像,而且可以典型地是模型的在過程300中拍攝的第 一圖像,諸如模型的正視圖。在框316,用戶與已利用瀏覽器由代碼生成的網(wǎng)頁(yè)交互,這可以促使所捕捉的圖 像中的各種不同的圖像被顯示。例如,用戶可以在圖像自身上點(diǎn)擊,并且向左或向右拉 動(dòng)以指示他們意欲使代碼取得模型的不同圖像。這樣的行為然后可以促使其它圖像順次 顯示。如果適當(dāng)整合,則這樣的活動(dòng)可以向用戶顯現(xiàn)為涉及向左和向右拉動(dòng)三模型以從 各種角度查看模型,與可以在更重量級(jí)實(shí)施方式中與VRML模型一起發(fā)生的那樣非常相 像。圖4是示出了用于使用一系列2-D圖像來顯示3-D模型的過程的泳道圖??偟?來說,該過程400類似于圖3中示出的過程300,但是指示了系統(tǒng)內(nèi)的可以執(zhí)行該過程中 的各種步驟的特定示例性組件。在這個(gè)示例中,組件包括建模應(yīng)用,其可以是計(jì)算機(jī)上 的被配置為促使生成作為3-D模型的代表的2-D圖像的本原應(yīng)用。另一個(gè)組件是CAD 程序,其可以是制作來運(yùn)許以便利方式生成3-D模型以及對(duì)這樣的模型成像的一般商用 設(shè)計(jì)程序。第三個(gè)組件是標(biāo)準(zhǔn)web瀏覽器,在這個(gè)示例中其不需要提供有諸如VRML或 FLASH插件的特定插件。過程在框402開始,其中建模應(yīng)用接收成像命令并且請(qǐng)求模型名稱。在那時(shí), CAD程序可以已經(jīng)在用戶面前顯示模型。這樣的命令可以來自于對(duì)展現(xiàn)為CAD程序的 一部分的圖標(biāo)的用戶選擇,其中建模應(yīng)用操作為用于CAD程序的插件。在框404,CAD 程序返回模型的名稱,以使建模應(yīng)用可以將這樣的名稱用作為諸如圖像的待與模型相關(guān) 聯(lián)地生成的文件集合的默認(rèn)名稱。另外,CAD程序可以遞送識(shí)別默認(rèn)文件夾的字符串, 其中與模型相關(guān)聯(lián)的文件被存儲(chǔ)在所述默認(rèn)文件夾中。此時(shí),建模應(yīng)用諸如通過在CAD程序的顯示上生成網(wǎng)頁(yè),可以促使對(duì)話框顯 示。對(duì)話框可以允許系統(tǒng)的用戶識(shí)別用于存儲(chǔ)文件的不同于默認(rèn)位置的位置,以及還輸 入在生成模型的圖像時(shí)用于照相機(jī)位置的參數(shù)。例如,用戶可以在水平或垂直圍繞模型 的路徑之間選擇、可以選擇路徑的形狀、以及還可以選擇沿著路徑待被捕捉的圖像的數(shù) 目。替選地,用戶可以選擇使圖像從自球體朝內(nèi)指向模型的所有方向獲得。建模應(yīng)用然后可以與CAD程序交互來計(jì)算照相機(jī)參數(shù),諸如照相機(jī)在模型空間中的基礎(chǔ)位置和照相機(jī)的每一次拍照的方向。在框408和410,建模應(yīng)用然后逐步通過用于每一個(gè)成像位置的位置信息,并且 促使CAD程序從特定位置生成模型的2-D圖像,并且將圖像(例如,作為JPEG文件) 保存到用戶選擇的文件夾或目錄。圖像名稱可以由程序諸如通過為圖像名稱提供作為前 綴的模型名稱,以及作為后綴的連續(xù)索引號(hào),例如car01.jpg、car02.jpg、car03.jpg等,來確定。在獲得所有的圖像后,建模應(yīng)用促使生成支持圖像的各種文件。具體地,生 成HTML代碼,其中該代碼促使響應(yīng)于來自用戶的交互,顯示相繼取得各個(gè)2-D圖像 的網(wǎng)頁(yè),以及促使圖像被展示以提供正操縱實(shí)際模型的印象。還可以生成諸如CSS和 JavaScript文件的其它這樣的文件。還可以將那些文件保存到用戶選擇的文件夾或目錄??梢酝ㄟ^建模應(yīng)用發(fā)送所生成的HTML代碼的URL(框414),將用戶或另一個(gè) 用戶容易地定向到圖。這樣的傳送可以以多種方式發(fā)生(框416),包括通過將web瀏 覽器重定向到URL,以使代碼由web瀏覽器執(zhí)行,以及顯示來自圖像的初始圖像(框 418)。用戶然后可以以多種方式與所顯示的網(wǎng)頁(yè)交互以使各種圖像按順序顯示,以提供 與模型自身共事的效果。并且通常,圖像在沒有接縫的情況下圍繞模型全程覆蓋,以 使經(jīng)由2-D圖像顯示模型沒有包括任何實(shí)質(zhì)的視覺障礙,即圖像將從模型周圍的連續(xù)路 徑獲得,以使用戶可以在不知道第一和最后的圖像在何處拍攝的情況下圍繞模型全程旋 轉(zhuǎn)。圖5是用于捕捉3-D模型的圖像并且使用管道應(yīng)用來保存圖像的示例過程500的 流程圖。該過程具有與上述那些的相似之處,但是更關(guān)注不能直接訪問某些操作系統(tǒng)服 務(wù)的非本原應(yīng)用與能夠進(jìn)行這樣的訪問以及用作為非本原應(yīng)用到這樣的服務(wù)的管道的本 原應(yīng)用的交互??偟膩碚f,該過程涉及經(jīng)由程序與用戶交互,所述程序諸如運(yùn)行于網(wǎng)頁(yè) 上(例如,以JavaScript)的、由于其在之中操作的應(yīng)用放置在程序上的限制而不能開放訪 問文件系統(tǒng)的程序。程序通過與第一應(yīng)用外的第二應(yīng)用通信來實(shí)現(xiàn)這樣的訪問,其中第 二應(yīng)用安裝在計(jì)算機(jī)上并且可以獨(dú)立運(yùn)行以及與操作系統(tǒng)直接交互,因此可以被認(rèn)為是 本原應(yīng)用。例如,這樣的過程可以通過如在上面和下面的示例中所描述的構(gòu)建類似于實(shí) 際框的文件管理器對(duì)話框,在接收關(guān)于保存某些文件的位置的用戶輸入時(shí)發(fā)生。大多數(shù) 情況下,從運(yùn)行于網(wǎng)頁(yè)上的生成用于用戶的界面的程序的觀點(diǎn)描述在此的過程500。起始于框502,初始顯示用戶界面。界面可以放置在諸如CAD應(yīng)用的應(yīng)用上, 并且可以允許用戶指定用于保存CAD應(yīng)用的圖像的位置。界面可以包括用于與顯示界面 的計(jì)算機(jī)上的文件系統(tǒng)交互的各種元素。例如,界面可以形成為模擬文件系統(tǒng)對(duì)話框的 外觀的無(wú)邊框網(wǎng)頁(yè)。對(duì)話框可以包括例如用于輸入文件名的區(qū)域以及示出計(jì)算機(jī)存儲(chǔ)系 統(tǒng)的層級(jí)文件夾結(jié)構(gòu)的更大區(qū)域。如在這個(gè)示例中,界面的初始顯示可以缺少關(guān)于文件系統(tǒng)的特定信息,或與另 一個(gè)程序的通信可以初始發(fā)生來產(chǎn)生對(duì)文件系統(tǒng)信息的開始顯示。例如,可以存儲(chǔ)對(duì)默 認(rèn)文件夾的識(shí)別,以及過程可以訪問定義默認(rèn)文件夾的數(shù)據(jù),以使其被初始顯示。替選 地,可以顯示特定存儲(chǔ)驅(qū)動(dòng)的根文件夾。對(duì)默認(rèn)文件夾的這樣的顯示可以如下所述需要 在生成界面的程序與計(jì)算機(jī)上的本原應(yīng)用之間的通信。
在框504,接收文件相關(guān)命令。例如,用戶可以選擇保存文件、在對(duì)話框中顯示 文件或文件夾相關(guān)信息、打開文件、在文件系統(tǒng)中創(chuàng)建新的文件夾、刪除文件夾或在系 統(tǒng)中執(zhí)行其它相似功能。在框506,打開本原應(yīng)用。該應(yīng)用單獨(dú)存儲(chǔ)在系統(tǒng)上,并且可 以直接訪問操作系統(tǒng)特征,因此可以在訪問操作系統(tǒng)文件系統(tǒng)時(shí)用作為打開界面的初始 應(yīng)用的管道。對(duì)本原應(yīng)用的打開可以以多種方式發(fā)生,諸如通過生成用戶界面的程序進(jìn) 行對(duì)這樣的本原應(yīng)用的調(diào)用。在框508,從本原應(yīng)用發(fā)出對(duì)目錄列表的請(qǐng)求。例如,生成界面的程序可以響 應(yīng)于來自用戶的請(qǐng)求需要顯示多個(gè)目錄。該程序因此可以識(shí)別目錄相關(guān)信息并且諸如通 過應(yīng)用編程接口(API)以確定的方式將其遞送給本原應(yīng)用。本原應(yīng)用可以進(jìn)而被編程 為接收、識(shí)別并且解釋這樣的請(qǐng)求。例如,本原應(yīng)用可以解析從生成界面的程序接收的 消息,并且創(chuàng)建以適合于與計(jì)算機(jī)上的操作系統(tǒng)相關(guān)聯(lián)的文件系統(tǒng)的方式格式化的其自 身的請(qǐng)求。來自生成用戶界面的程序的請(qǐng)求可以是異步請(qǐng)求,諸如使用AJAX方法的請(qǐng) 求,以使這樣的程序可以在等待信息從本原應(yīng)用返回時(shí)繼續(xù)操作。在框510,程序從本原應(yīng)用接收目錄或文件夾列表并且顯示該列表。目錄列表可 以由本原應(yīng)用通過格式化對(duì)操作系統(tǒng)的文件管理組件的請(qǐng)求并且接收對(duì)該請(qǐng)求的響應(yīng)來 創(chuàng)建。本原應(yīng)用然后可以從響應(yīng)提取信息并且重新格式化該信息以傳送到生成用戶界面 的程序。例如,本原應(yīng)用可以發(fā)送以特定方式格式化的字符串列表,其中字符串表示在 特定目錄下的文件夾名或子目錄名。在從本原應(yīng)用接收這樣的名稱后,程序可以顯示這樣的文件夾列表。這樣做, 程序可以訪問示出操作系統(tǒng)中的文件夾的圖標(biāo)代表的圖像文件,并且可以以列表顯示那 些圖標(biāo)以及關(guān)于從本原應(yīng)用接收的文件夾的文本信息。這樣的顯示可以在用戶界面上對(duì) 應(yīng)于文件管理器界面中的典型文件夾或目錄顯示區(qū)域的框中發(fā)生。結(jié)果,可以向用戶展 示使之看起來如同原始程序正直接而不是間接地實(shí)際訪問操作系統(tǒng)的文件管理特征的顯 示。在圖8B中示出了這樣的示例顯示。在框512,接收用戶命令。例如,用戶命令可以是用戶在所顯示的列表中的特定 文件夾圖標(biāo)上的點(diǎn)擊,指示用戶意欲查看在所選擇的文件夾下的子文件夾。生成界面的 程序可以解釋這樣的選擇,并且根據(jù)API將指示本原應(yīng)用應(yīng)當(dāng)從操作系統(tǒng)收集子文件夾 列表的數(shù)據(jù)提供給本原應(yīng)用(框514)。本原應(yīng)用因此可以進(jìn)而向操作系統(tǒng)發(fā)送對(duì)子文件夾列表或指示對(duì)子文件夾進(jìn)行 識(shí)別的其它數(shù)據(jù)的請(qǐng)求。這樣的請(qǐng)求可以在生成界面的程序在等待響應(yīng)時(shí)繼續(xù)其它操作 (即,異步操作)期間發(fā)生。隨著上述交互,本原應(yīng)用可以從操作系統(tǒng)接收信息、可以 適當(dāng)?shù)刂匦赂袷交畔⒉⑶铱梢詫⑿碌男畔⑦f送給生成界面的程序。該程序然后可以更 新在顯示中示出的字符串和文件夾圖標(biāo),以對(duì)用戶而言使其看起來如同它們?cè)谀夸浗Y(jié)構(gòu) 中實(shí)際向下鉆探(框516)。這樣的更新可以例如通過以熟悉的方式編輯與顯示相關(guān)聯(lián)的 DOM樹來發(fā)生。直到終止文件操作(框518),過程500繼續(xù)等待和接受關(guān)于文件系統(tǒng)的用戶命 令。一旦終止文件操作,過程諸如通過保存或打開用戶選擇的文件來繼續(xù)(框520)。在一個(gè)示例中,文件訪問過程可以采取四種不同的狀態(tài)。處于第一種狀態(tài)時(shí), 目標(biāo)目錄為未選擇和關(guān)閉的。在目標(biāo)目錄上點(diǎn)擊(例如,通過加亮目標(biāo)目錄并更新其標(biāo)題欄)選擇目標(biāo)目錄并且打開目標(biāo)目錄。JavaScript代碼或其它這樣的代碼然后為子目錄 對(duì)諸如Ruby應(yīng)用的本原應(yīng)用進(jìn)行調(diào)用,以及本原應(yīng)用以異步方式報(bào)告回孩子或錯(cuò)誤(例 如,沒有找到目錄)。JavaScript然后修改HTML DOM以將目錄示出為被選擇,將目錄的 圖標(biāo)示出為打開的文件夾、以及將子目錄示出為帶有關(guān)閉的圖標(biāo)的從目錄稍微縮進(jìn)。還 可以響 應(yīng)于選擇改變所選擇的目錄標(biāo)簽。處于第二種狀態(tài)時(shí),目標(biāo)目錄為未選擇和打開的(而不是關(guān)閉的)。在目錄上點(diǎn) 擊在界面中加亮目錄并且更新指示哪個(gè)目錄被選擇的標(biāo)簽。處于第三種狀態(tài)時(shí),目標(biāo)目錄為已選擇和關(guān)閉的。在目錄上點(diǎn)擊促使JavaScript 向本原應(yīng)用發(fā)出對(duì)子目錄的請(qǐng)求,然后JavaScript以異步方式接收結(jié)果并且將子目錄展示 為目錄的子節(jié)點(diǎn)(稍微縮進(jìn)并且?guī)в嘘P(guān)閉的文件夾圖標(biāo))。JavaScript還以打開的文件夾 圖標(biāo)交換所選擇的目錄。處于第四種狀態(tài)時(shí),目標(biāo)目錄為已選擇和打開的。在目錄上點(diǎn)擊促使JavaScript 編輯DOM以將目錄示出為關(guān)閉的(但是仍然為已選擇的),并且隱藏子目錄。如果用戶 在對(duì)話中的“OK”按鈕上點(diǎn)擊,則將所選擇的目錄遞送給調(diào)用應(yīng)用并且關(guān)閉對(duì)話。在其它情況下,用戶可以選擇控件來創(chuàng)建新的目錄,與他們?cè)诔R娢募芾韺?duì) 話中的行為非常相像。這樣的選擇將帶出另一個(gè)對(duì)話框,其將完全遮蔽原始對(duì)話框。用 戶可以輸入用于子目錄的新的目錄名,JavaScript會(huì)將該名稱遞送給本原應(yīng)用,本原應(yīng)用 將進(jìn)而以異步方式促使該子目錄被創(chuàng)建并且將操作成功的指示符遞送回程序。JavaScript 可以通過將新的子目錄指示符添加到DOM以及通過將其作為所選擇的子目錄打開來對(duì)成 功的消息作出響應(yīng)。圖6是示出了用于使用一系列2-D圖像以及管道應(yīng)用的幫助來生成并顯示3-D 模型的過程600的泳道圖。總的來說,過程600類似于圖5中的過程500,但是除示出了 在這個(gè)示例中可以用于執(zhí)行過程中的某些行為的特定組件外,示出了其它操作和額外細(xì) 節(jié)。這些組件包括負(fù)責(zé)在從CAD程序捕捉圖像時(shí)與用戶交互的成像應(yīng)用,其中在這個(gè)示 例中成像應(yīng)用至少部分使用JavaScript編寫。組件還包括其它組件訪問以獲取已存儲(chǔ)的信 息以及保存額外信息的文件系統(tǒng)。最后,組件包括在此以Ruby編寫的管道應(yīng)用,其為與 成像應(yīng)用在其中運(yùn)行的任何應(yīng)用分離的應(yīng)用并且與操作系統(tǒng)組件直接通信以能夠用作為 用于成像應(yīng)用的管道。在框602,在CAD程序中初始接收模型選擇。這樣的選擇可以采用熟悉的形 式,諸如通過用戶選擇數(shù)據(jù)文件“打開”圖標(biāo)并且從多個(gè)文件的列表選擇文件。選擇還 可以以因GOOGLE SKETCHUP 3-D庫(kù)而聞名的方式發(fā)生。文件系統(tǒng)通過將模型數(shù)據(jù)派 發(fā)給CAD程序(604)來作出響應(yīng),以及CAD程序在框606以典型方式顯示模型。CAD程序可以被提供有對(duì)應(yīng)于成像應(yīng)用的插件程序,并且用于該程序的圖標(biāo)可 以在CAD程序的顯示上示出。用戶對(duì)該圖標(biāo)的選擇可以啟用成像應(yīng)用,其可以被編程為 以以下方式捕捉CAD程序中的模型的多個(gè)連續(xù)圖像,并且保存圖像和生成的標(biāo)記代碼 網(wǎng)頁(yè)可以顯示圖像來產(chǎn)生查看者實(shí)際操縱模型而不僅是一系列圖像的印象。在接收成像選擇后,CAD程序可以促使成像應(yīng)用啟用(框608)。在打開后,在 框610,成像應(yīng)用可以顯示成像窗口。該窗口可以是例如格式化為類似于文件訪問對(duì)話 框的無(wú)邊框?yàn)g覽器窗口(例如,參見圖8A)。對(duì)話框可以初始示出數(shù)個(gè)默認(rèn)值,諸如與從CAD程序獲取的模型的名稱相匹配的待與圖像相關(guān)聯(lián)的名稱、模型的待獲取的圖像數(shù) 目以及用于保存基于圖像的文件的位置。在框612,過程接收用于這樣的值的各種輸入, 以及還從用戶接收對(duì)查看成像應(yīng)用和管道應(yīng)用運(yùn)行于其上、以及文件系統(tǒng)在其上操作的 計(jì)算機(jī)系統(tǒng)上的文件結(jié)構(gòu)的請(qǐng)求。成像應(yīng)用響應(yīng)于用戶請(qǐng)求將請(qǐng)求發(fā)送給用戶先前已安 裝在計(jì)算機(jī)上用于允許成像應(yīng)用與文件系統(tǒng)間接交互的管道應(yīng)用。
在接收請(qǐng)求后,管道應(yīng)用翻譯請(qǐng)求并且將相應(yīng)請(qǐng)求發(fā)送給文件系統(tǒng)以檢查文件 結(jié)構(gòu)(框614),諸如以獲取文件系統(tǒng)的根目錄中的文件文件夾列表。在框616,文件系 統(tǒng)以熟悉的格式將特定操作系統(tǒng)的文件結(jié)構(gòu)返回給管道應(yīng)用。管道應(yīng)用然后在框616生 成用于修改DOM以反映界面中的示出從文件系統(tǒng)獲取的文件結(jié)構(gòu)的更新的代碼。在框 620,成像應(yīng)用更新顯示。替選地,成像應(yīng)用而不是管道應(yīng)用可以生成用于修改DOM的 適當(dāng)代碼。然后可以向用戶展示示出了可以被選擇的多個(gè)子目錄的對(duì)話框,以及在框622, 用戶選擇子目錄,并且因此請(qǐng)求查看在該子目錄內(nèi)的文件結(jié)構(gòu)。再次,成像應(yīng)用將請(qǐng)求 發(fā)送給管道應(yīng)用,管道應(yīng)用翻譯該請(qǐng)求并且從文件系統(tǒng)檢查文件結(jié)構(gòu)(框624),文件系 統(tǒng)返回文件結(jié)構(gòu)(框626),以及管道應(yīng)用(單獨(dú)或與成像應(yīng)用合作)再次生成用于修改 顯示的DOM結(jié)構(gòu)以反映目錄中的變化的代碼,例如,以將所選擇的目錄的圖標(biāo)從關(guān)閉圖 像轉(zhuǎn)變?yōu)榇蜷_圖像,以及添加從主目錄縮進(jìn)的子目錄列表(具有關(guān)閉的文件夾圖像)(框 628)。用戶然后可以通過在特定控件上點(diǎn)擊來選擇用于保存文件的特定目錄,因此促 使文件夾的路徑被保存以及文件對(duì)話框消失。在以這種方式更新顯示后,用戶可以提供 對(duì)下一顯示的選擇,其可以是用戶可以通過其來建立用于模型的成像的某些參數(shù)的另一 個(gè)對(duì)話框(框630)。例如,在框632,用戶可以提供關(guān)于用于查看模型的照相機(jī)的信息, 諸如照相機(jī)待創(chuàng)建的圖像數(shù)目。在某些實(shí)施方式中,成像應(yīng)用可以將這樣的數(shù)據(jù)遞送給 管道應(yīng)用,其然后可以通過與CAD程序來回交互來控制對(duì)照相機(jī)相對(duì)于模型的置放(框 636),來控制通過CAD程序的對(duì)圖像的創(chuàng)建(框634)。在獲得每一個(gè)圖像后,CAD程 序可以將圖像保存在文件系統(tǒng)中(框638),以及可以從管道應(yīng)用獲取關(guān)于在其中待保存 文件的子目錄的信息。一旦管道應(yīng)用和CAD程序逐步通過成像過程并且保存所有必需的圖像,管道應(yīng) 用可以生成代碼以允許用戶以便利的方式查看圖像。例如,在框640,管道應(yīng)用生成用于 網(wǎng)頁(yè)的HTML代碼來以如同用戶操縱圖像的無(wú)縫方式顯示圖像以建立在空間中旋轉(zhuǎn)模型 的印象。如上所述,可以從模板生成代碼,其中模板定義某些控件元素和顯示元素,并 且可以在創(chuàng)建代碼期間添加諸如圖像數(shù)目和圖像文件的名稱的特定值。在創(chuàng)建必需的代碼并且將其放置在特定位置后,管道應(yīng)用然后可以將用于代碼 的URL遞送給成像應(yīng)用(框642)或另一個(gè)適當(dāng)?shù)幕跒g覽器的應(yīng)用或其它應(yīng)用。在框 644,該URL促使瀏覽器被定向到代碼、加載代碼、執(zhí)行代碼,以及因此為用戶生成圖 像中的一個(gè)的視覺顯示以及用于操縱該圖像的控件。在框646,用戶選擇旋轉(zhuǎn)該圖像以能 夠觀看圖像表示的模型的各面,以及從文件系統(tǒng)取得這樣的圖像(框648)。圖7示出了使用2-D圖像來顯示3-D模型的移動(dòng)設(shè)備。在這個(gè)示例中,移動(dòng)設(shè) 備意在表示沒有添加到其的特定三維成像插件或?yàn)槠涮峁┑钠渌ㄓ?-D成像的設(shè)備。替選地,設(shè)備可以具有這樣的能力,但是可以顯示網(wǎng)頁(yè),所述網(wǎng)頁(yè)的作者不確信許多消 費(fèi)者會(huì)有這樣的能力,因此沒有將這樣的能力編碼入頁(yè)面。在設(shè)備700的顯示710上所 示為從特定角度汽車的3-D模型的圖像。設(shè)備700可以具有觸摸屏,以及用于生成顯示 710的HTML代碼可以通過取得從汽車的模型生成的漸進(jìn)相鄰圖像,對(duì)在顯示720的區(qū)域 中跨觸摸屏的橫向拖動(dòng)運(yùn)動(dòng)作出響應(yīng)。在圖像中掃描還可以由位于設(shè)備的中右部處的跟 蹤球控制。以這種方式,顯示710可以為用戶提供通常以更復(fù)雜的方式提供并且涉及諸 如Flash動(dòng)畫系統(tǒng)的系統(tǒng)的交互性。圖8A-8F示出了用于捕捉并使用3-D模型的2_D圖像的過程的截屏??偟膩?說,在一個(gè)特定示例中,圖示出了用戶初始捕捉模型的圖像,然后操縱那些圖像來使用 2-D圖像實(shí)現(xiàn)3-D般的體驗(yàn)。圖8A示出了設(shè)計(jì)或CAD應(yīng)用802-在此為GOOGLE SKETCHUP應(yīng)用-的顯示
800以及在應(yīng)用上覆蓋的成像對(duì)話804。用于生成覆蓋的程序由用于應(yīng)用的插件調(diào)用,其 中該插件生成用戶可選擇的圖標(biāo)806。在此,用戶剛選擇了該圖標(biāo),促使對(duì)話804在應(yīng)用 之上生成。在這個(gè)特定示例中,將對(duì)話生成為具有格式化為看起來如同由典型應(yīng)用生成 的對(duì)話框的顯示內(nèi)容的無(wú)邊框網(wǎng)頁(yè)。對(duì)話框804向用戶提供指示以及輸入用于成像過程的三個(gè)不同參數(shù)的能力。首 先,在名稱框808中自動(dòng)輸入用于成像的默認(rèn)名稱,以及用戶可以改變?cè)撁Q。由用戶 選擇的名稱可以影響給予圖像文件和稍后在用于顯示圖像的自動(dòng)生成的網(wǎng)頁(yè)上顯示的信 息的名稱。在這個(gè)示例中,成像參數(shù)輸入框812允許用戶選擇待為模型拍攝的圖像數(shù) 目。更高的圖像數(shù)目將允許未來更平滑地操縱對(duì)象,但是會(huì)占用更多空間以存儲(chǔ)額外的 圖像。在此,待在模型周圍以十度間隔生成36個(gè)圖像。在其它界面中,可以為用戶提供替選或額外的成像選擇。例如,可以允許用戶 選擇軸,其中在創(chuàng)建模型的圖像時(shí)虛擬照相機(jī)將圍繞該軸旋轉(zhuǎn)。用戶還可以識(shí)別用于照 相機(jī)的路徑或路徑形狀(例如,圓形、橢圓形等)。例如,如果用戶選擇橢圓形路徑,則 在用戶操縱模型的圖像來在空間中旋轉(zhuǎn)模型時(shí),模型將顯現(xiàn)為朝向用戶以及遠(yuǎn)離用戶移 動(dòng)。而且,可以給予用戶選項(xiàng)以從圍繞模型的球體或其它3-D對(duì)象上的點(diǎn)獲得圖像。在附錄D中附上用于生成圖8A中所示的對(duì)話的示例JavaScript代碼。在附錄E 中附上由該代碼訪問的常用功能。圖8B示出了圖8A的應(yīng)用802以及在對(duì)話框804之上以燈箱形式生成的文件管 理器814。文件管理器示出了默認(rèn)目錄路徑并且提供多個(gè)控件,所述多個(gè)控件允許用戶選 擇顯示的目錄或子目錄、創(chuàng)建新的目錄、取消操作、或(利用“OK”按鈕)確認(rèn)操作, 因此將當(dāng)前選擇的目錄設(shè)置為待將文件保存入其中的目錄??梢酝ㄟ^用戶選擇圖8A中的 “改變”按鈕來調(diào)用圖8B的顯示。在附錄A和G中附上用于生成圖8B中所示的對(duì)話的示例JavaScript代碼。在附 錄B和H中附上用于該對(duì)話的示例CSS代碼。在附錄I中附上(用于生成房屋的模型的 圖像的)示例HTML代碼。圖8C示出了在用戶選擇了待將文件保存入其中的文件夾并且 還選擇了模型的待 捕捉的圖像數(shù)目后的對(duì)話框804。在該圖中,36個(gè)圖像的第十個(gè)正處于被捕捉的過程。 對(duì)話804可以將每一個(gè)圖像示出為其被捕捉并保存。在完成捕捉后,可以向查看者示出表達(dá)該意思的消息。在附錄D中附上用于促使圖像被捕捉的示例JavaScript代碼。 圖8D僅是由圖8C中所描繪的過程保存的文件的文件管理器視圖。如所示, 文件被保存在 c:\program files\Google\Google SketchUp6\Plugins\orbitalimages\Lamborghini sub-directory中。文件包括汽車模型的36個(gè)圖像文件(標(biāo)記為“image00.jpg”至
“image.35.jpg” )以及名為“index.html”的HTML文件。其后將論述HTML文件的內(nèi) 容。圖8E和8F示出了由剛才論述的過程創(chuàng)建的網(wǎng)頁(yè)的顯示,其中每一個(gè)圖示出了已 捕捉的圖像中的一個(gè)。還可以在每一個(gè)圖像的上方附近看見以雙箭頭形式的控件。該控 件在用戶將其指針懸停在圖像上時(shí)出現(xiàn)。如果用戶然后向下點(diǎn)擊并且向左或向右拖動(dòng), 則這樣的行為將促使模型顯現(xiàn)為逆時(shí)針或順時(shí)針方向旋轉(zhuǎn),即通過取得模型的各種保存 的圖。在附錄F中附上用于生成對(duì)話的HTML模板代碼。在一個(gè)示例中,用于顯示圖 8E和8F的HTML代碼(其可以從模板代碼形成)可以采用下述形式<HTML><HEAD><TITLE>SketchUp Orbital Imaging</TITLE><STYLE>#title{text-align:center ; font:bold 1.4em arial ; margin-bottom:3em ; }#date{margin_top:3px ; font:normal 0.5em arial ; }#sketchUpObj{text_align:center ; width:400px ; z_index:2 ; border:solid
lpx#676767 ; }#sheet{position:absolute ; z-index:3 ; background-color:#FF00FF ; cursor:w-resize ; }</STYLE><SCRIPT>//列出圖像文件名var imageFileNameArray = new Array ( ' image0.jpg ' , ' image l.jpg ‘, ' image2.jpg ' , ' image3.jpg ' , ' image4.jpg ' , ' image5. jpg',' image6.jpg' , ' image7.jpg' , ' image8.jpg' , ' image9.jpg' , ' imagelO. jpg ‘, ' imagell.jpg ‘, ‘ imagel2.jpg ‘ , ‘ imagel3.jpg ‘ , ‘ image 14. jpg ‘, ‘ imagel5.jpg ‘ , ‘ imagel6.jpg ‘ , ‘ imagel7.jpg ‘ , ‘ imagel8. jpg ‘, ‘ imagel9.jpg ‘ , ‘ image20.jpg ‘ , ‘ image21.jpg ‘ , ‘ image22. jpg ‘, ‘ image23.jpg ‘ , ‘ image24.jpg ‘ , ‘ image25.jpg ‘ , ‘ image26. jpg ‘, ‘ image27.jpg ‘ , ‘ image28.jpg ‘ , ‘ image29.jpg ‘ , ‘ image30. jpg ‘, ‘ image31.jpg ‘ , ‘ image32.jpg ‘ , ‘ image33.jpg ‘ , ‘ image34. jpg', ‘ image35.jpg' , ‘ image35.jpg');//列出html圖像元素var sketchUpImageArray = new Array 0 ; var currentPos = 0 ;var addToPos = 0 ; var imageCount = 0 ; var sketchUpObj = null ;varmouseXOrig ; var mouseX = O ; var mouseY = O ; var mousellsDown = false ; var title =null ;function init () { title = document.getElementByld (r title');sketchUpObj = document.getElementByld (' sketchUpObj');imageCount = imageFileNameArray.length ;Il 力口載具有 sketchUp images 的 imageArrayfor(i = 0 ; i < imageCount ; i++) {sketchUplmageArray[i] = new Image O ;sketchUpImageArray[i]. src = imageFileNameArray[i];sketchUpImageArray [i] .className =' sketchUpImage ‘;hide (sketchUpImageArray[i]);sketchUpObj.appendChild (sketchUpImageArray[i]);}//在圖像上創(chuàng)建透明片材使得鼠標(biāo)事件定位var sheet = document.createElement (“ DIV “);document.body.appendChild (sheet);sheet.id = " sheet";sheet.style.left = sketchUpObj.offsetLeft+" px";sheet.style.top = sketchUpObj.offsetTop+" px";sheet.style.width = sketchUpObj.offsetWidth+/r px";sheet, style.height = sketchUp ImageArray
.height+" px";sheet.onmousemove = handleRotate ;sheet.onmousedown = handleMouseDown ;sheet.onmouseup = handleMouseUp ;sheet.onmouseout = handleMouseUp ;setOpacity (sheet,0.0);show (sketchUpImageArray
);}/***當(dāng)鼠標(biāo)向下時(shí),幵始旋轉(zhuǎn)圖像*參數(shù){Event}鼠標(biāo)向下事件*/function handleMouseDown (e) {if( ! e) {e = window.event ; }getMouseXY (e);mouseXOrig = mouseX ;addToPos = 0 ;
mouselsDown = true ;}/***當(dāng)鼠標(biāo)向上時(shí),停止旋轉(zhuǎn)圖像
*參數(shù){Event}鼠標(biāo)向上事件*/function handleMouseUp (e) {mouselsDown = false ;currentPos+ = addToPos ;}/***將html對(duì)象的寬度除以圖像的數(shù)目*隨著鼠標(biāo)在html上移動(dòng),示出適當(dāng)?shù)膱D像*給出用戶旋轉(zhuǎn)對(duì)象的圖示*參數(shù){Event}鼠標(biāo)移動(dòng)事件*/function handleRotate (e) {if( ! e) {e = window.event ; }if( ! mouselsDown) {return ;}getMouseXY (e);//STEP是多少像素等于圖像交換varSTEP=10;var width = sketchUpObj.offsetWidth ;var delta = mouseX-mouseXOrig ;addToPos = Math.floor(delta/STEP);//title.innerHTML = mouseX ;//handle wrap aroundvar wrap = (currentPos+addToPos) % imageCount ;var newPos = (wrap < O) ? imageCount+wrap:Math.abs (wrap);H隱藏除了我們正在之上的圖像之外的每一個(gè)圖像for (var i = 0 ; i < imageCount ; i++) {hide (sketchUpImageArray[i]);}show (sketchUplmageArray[newPos]);
return false ;}/**
*從事件e獲得鼠標(biāo)位置參數(shù){Event}e鼠標(biāo)移動(dòng)事件*/function getMouseXY (e) {if (e.pageX) {mouseX = e.pageX ;mouseY = e.pageY ;}else{mouseX = event.clientX+document.body. scrollLeft ;mouseY = event clientY+document.body.scrollTop ;}if (mouseX < 0) {mouseX = 0 ; }if (mouseY < 0) {mouseY 二 0 ; }}
/***獲得元素的左坐標(biāo)*/function getLeft (element) {varx = 0 ;while (element) {χ+ = element. offsetLeft ;element = element. offsetParent ;}return χ ;};function setOpacity (element, opacity) {element.style.filter = 〃 alpha (opacity = " +Math.round (opacity* 100) + 〃)〃 ;element.style.opacity = opacity ;}/***隱藏html元素參數(shù)元素HTMLEIement我們隱藏的元素*/function hide (element) {
element.style.display =' none';}/***示出HTML元素參數(shù)元素HTMLEIement我們想看到的元素*/function show (element) { element.style.display =' block';}</SCRIPT></HEAD><BODY onload = init () ><DIV id = ' title ' >Lamborghinii<DIV id = date>Generated at 01:59PMWednesday, 28November, 2007</DIV></DIV><CENTER><DIV id = ' sketchUpObj' ></DIV></CENTER></BODY></HTML>還可以利用用于允許用戶與已保存的圖像中的各種圖像交互以及顯示已保存的 圖像中的各種圖像的其它各種技術(shù)。圖8G-8J示出了用于管理對(duì)模型的圖像捕捉的對(duì)話框的截屏。這些截屏類似于 剛才論述的那些,但是示出了用于與這樣的系統(tǒng)的用戶交互的替選機(jī)制。圖8G示出了對(duì) 話框,該對(duì)話框類似于在圖8A中所示的。具體地,該對(duì)話框示出了正成像的模型的示例 第一圖像,并且允許用戶輸入與這樣的成像相關(guān)聯(lián)的三個(gè)參數(shù)。第一個(gè)參數(shù)為在圍繞正 成像的模型的圓形上的每一個(gè)圖像之間的度數(shù)。第二個(gè)參數(shù)為就在X和Y方向上的像素 而言的待生成的圖像的大小。第三個(gè)參數(shù)為待將圖像和其它關(guān)聯(lián)文件放置入其中的文件 夾,以及用戶可以選擇來改變?cè)撐募A的按鈕控件。例如,系統(tǒng)可以初始示出默認(rèn)文件 夾,諸如用于微軟WINDOWS計(jì)算機(jī)的常見的我的文檔文件夾,以及用戶可以改變?yōu)椴?同的文件夾。圖8H示出了用戶通過其導(dǎo)航計(jì)算機(jī)上的文件夾結(jié)構(gòu)的對(duì)話框,并且該對(duì)話框類 似于圖8B??梢匀缟纤鲆灾谱鞯每雌饋砣缤募芾砥鲗?duì)話框的web瀏覽器窗口形式 生成該對(duì)話框,其中生成瀏覽器窗口的代碼與給予其對(duì)文件系統(tǒng)信息的訪問權(quán)的管道應(yīng) 用通信。圖81示出了用于導(dǎo)出查看模擬3-D模型的動(dòng)畫所需的文件的對(duì)話框。該對(duì)話框 示出了模型的一個(gè)圖像,以及允許用戶將光標(biāo)放置在圖像上并且向左和向右拖動(dòng)以促使 其它圖像順次顯示。以這樣的方式,用戶可以似乎是繞四周拉動(dòng)模型以便以看似3-D狀 態(tài)方式觀看模型。圖8J示出了用于創(chuàng)建用于保存與模型有關(guān)的文件的新的子目錄的對(duì)話框。這樣 的對(duì)話框在圖8H的對(duì)話框之上示出,并且可以在用戶選擇圖8H中的對(duì)話框的“創(chuàng)建新 的目錄”控件時(shí)生成。對(duì)新目錄的這樣的創(chuàng)建可以由圖8J的對(duì)話框來模擬,并且可以通過將對(duì)話框作為web瀏覽器的一部分生成的程序與管道應(yīng)用諸如以上述方式進(jìn)行通信, 來實(shí)際實(shí)現(xiàn)。圖9示出了可以與在此描述的技術(shù)一起使用的通用計(jì)算機(jī)設(shè)備900和通用移動(dòng)計(jì) 算機(jī)設(shè)備950的示例。計(jì)算設(shè)備900意在表示各種形式的數(shù)字計(jì)算機(jī),諸如膝上型機(jī)、臺(tái) 式機(jī)、工作站、個(gè)人數(shù)字助理、服務(wù)器、刀片服務(wù)器、大型機(jī)以及其它適當(dāng)?shù)挠?jì)算機(jī)。 計(jì)算設(shè)備950意在表示各種形式的移動(dòng)設(shè)備,諸如個(gè)人數(shù)字助理、蜂窩電話、智能手機(jī) 以及其它相似的計(jì)算設(shè)備。在此示出的組件、其連接和關(guān)系以及其功能意在只是示例性 的,并且并不意在限制在本文檔中描述和/或主張的本發(fā)明的實(shí)施方式。計(jì)算設(shè)備900包括處理器902、存儲(chǔ)器904、存儲(chǔ)設(shè)備906、連接到存儲(chǔ)器904 和高速擴(kuò)展端口 910的高速接口 908以及連接到低速總線914和存儲(chǔ)設(shè)備906的低速接口 912。組件902、904、906、908、910和912中的每一個(gè)使用各種總線互連,并且可以視 情況被安裝在公共主板上或以其它方式安裝。處理器902可以處理用于在計(jì)算設(shè)備900內(nèi) 執(zhí)行的指令,包括存儲(chǔ)在存儲(chǔ)器904中或存儲(chǔ)設(shè)備906上用來在諸如耦接到高速接口 908 的顯示916的外部輸入/輸出設(shè)備上顯示GUI的圖形信息的指令。在其它實(shí)施方式中, 可以視情況使用多個(gè)處理器和/或多個(gè)總線以及多個(gè)存儲(chǔ)器和存儲(chǔ)器類型。并且,可以 連接多個(gè)計(jì)算設(shè)備900,其中每一個(gè)設(shè)備提供部分必需操作(例如,作為服務(wù)器簇、刀片 服務(wù)器組或多處理器系統(tǒng))。存儲(chǔ)器904存儲(chǔ)在計(jì)算設(shè)備900內(nèi)的信息。在一個(gè)實(shí)施方式中,存儲(chǔ)器904是 易失性存儲(chǔ) 器單元。在另一個(gè)實(shí)施方式中,存儲(chǔ)器904是非易失性存儲(chǔ)器單元。存儲(chǔ)器 904還可以是另一種形式的計(jì)算機(jī)可讀介質(zhì),諸如磁或光盤。存儲(chǔ)設(shè)備906能夠?yàn)橛?jì)算設(shè)備900提供海量存儲(chǔ)。在一個(gè)實(shí)施方式中,存儲(chǔ)設(shè) 備906可以是或包含計(jì)算機(jī)可讀介質(zhì),諸如軟盤設(shè)備、硬盤設(shè)備、光盤設(shè)備或帶設(shè)備、 閃存或其它相似的固態(tài)存儲(chǔ)器設(shè)備、或設(shè)備陣列,包括在存儲(chǔ)區(qū)域網(wǎng)絡(luò)或其它配置中的 設(shè)備。計(jì)算機(jī)程序產(chǎn)品可以被有形地包含在信息載體中。計(jì)算機(jī)程序產(chǎn)品還可以包含在 被執(zhí)行時(shí)執(zhí)行諸如上述那些方法的一個(gè)或多個(gè)方法的指令。信息載體是計(jì)算機(jī)或機(jī)器可 讀介質(zhì),諸如存儲(chǔ)器904、存儲(chǔ)設(shè)備906、在處理器902上的存儲(chǔ)器或傳播信號(hào)。高速控制器908管理關(guān)于計(jì)算設(shè)備900的帶寬密集型操作,而低速控制器912管 理較低帶寬密集型操作。職責(zé)的這樣的分配只是示例性的。在一個(gè)實(shí)施方式中,高速控 制器908 (例如通過圖形處理器或加速器)耦接到存儲(chǔ)器904、顯示916,以及耦接到可以 接受各種擴(kuò)展卡(未示出)的高速擴(kuò)展端口 910。在該實(shí)施方式中,低速控制器912耦接 到存儲(chǔ)設(shè)備906和低速擴(kuò)展端口 914??梢园ǜ鞣N通信端口(例如USB、藍(lán)牙、以太 網(wǎng)、無(wú)線以太網(wǎng))的低速擴(kuò)展端口可以耦接到諸如鍵盤、指示設(shè)備、掃描儀的一個(gè)或多 個(gè)輸入/輸出設(shè)備,或例如通過網(wǎng)絡(luò)適配器耦接到諸如交換機(jī)或路由器的聯(lián)網(wǎng)設(shè)備。計(jì)算設(shè)備900可以如圖中所示以多種不同的形式實(shí)現(xiàn)。例如,計(jì)算設(shè)備900可以 被實(shí)現(xiàn)為標(biāo)準(zhǔn)服務(wù)器920或更多時(shí)間被實(shí)現(xiàn)在一組這樣的服務(wù)器中。計(jì)算設(shè)備900還可 以被實(shí)現(xiàn)為機(jī)架服務(wù)器系統(tǒng)924的一部分。另外,計(jì)算設(shè)備900可以在諸如膝上型計(jì)算 機(jī)922的個(gè)人計(jì)算機(jī)中實(shí)現(xiàn)。替選地,來自計(jì)算設(shè)備900的組件可以與諸如設(shè)備950的移 動(dòng)設(shè)備(未示出)中的其它組件相結(jié)合。這樣的設(shè)備中的每一個(gè)可以包含計(jì)算設(shè)備900、 950中的一個(gè)或多個(gè),以及整個(gè)系統(tǒng)可以由相互通信的多個(gè)計(jì)算設(shè)備900、950組成。
除其它組件外,計(jì)算設(shè)備950包括處理器952、存儲(chǔ)器964、諸如顯示954的輸 入/輸出設(shè)備、通信接口 966以及收發(fā)器968。設(shè)備950還可以提供有諸如微驅(qū)動(dòng)或其它 設(shè)備的存儲(chǔ)設(shè)備以提 供額外的存儲(chǔ)。組件950、952、964、954、966和968中的每一個(gè) 使用各種總線互連,以及組件中的數(shù)個(gè)可以視情況被安裝在公共主板上或以其它方式安裝。處理器952可以執(zhí)行在計(jì)算設(shè)備950內(nèi)的指令,包括存儲(chǔ)在存儲(chǔ)器964中的指 令。處理器可以被實(shí)現(xiàn)為包括獨(dú)立和多個(gè)模擬和數(shù)字處理器的芯片的芯片集。處理器可 以提供例如對(duì)設(shè)備950的其它組件的協(xié)調(diào),諸如對(duì)用戶接口、由設(shè)備950運(yùn)行的應(yīng)用以及 經(jīng)由設(shè)備950的無(wú)線通信的控制。處理器952可以通過耦接到顯示954的控制接口 958和顯示接口 956與用戶通 信。顯示954可以是例如TFT LCD (薄膜晶體管液晶顯示)或OLED (有機(jī)發(fā)光二極管) 顯示或其它適當(dāng)?shù)娘@示技術(shù)。顯示接口 956可以包括用于驅(qū)動(dòng)顯示954向用戶呈現(xiàn)圖形和 其它信息的適當(dāng)?shù)碾娐???刂平涌?958可以從用戶接收命令并且將命令進(jìn)行轉(zhuǎn)換以提交 給處理器952。另外,可以提供與處理器952通信的外部接口 962,以使得設(shè)備950能夠 與其它設(shè)備進(jìn)行近區(qū)域通信。外部接口 962可以例如在一些實(shí)施方式中提供有線通信, 或在其它實(shí)施方式中提供無(wú)線通信,以及還可以使用多個(gè)接口。存儲(chǔ)器964存儲(chǔ)在計(jì)算設(shè)備950內(nèi)的信息。存儲(chǔ)器964可以被實(shí)現(xiàn)為計(jì)算機(jī)可 讀介質(zhì)、易失性存儲(chǔ)器單元或非易失性存儲(chǔ)器單元中的一個(gè)或多個(gè)。還可以提供擴(kuò)展存 儲(chǔ)器974并且通過可以包括例如SIMM(單列直插內(nèi)存模塊)卡接口的擴(kuò)展接口 972將其 連接到設(shè)備950。這樣的擴(kuò)展存儲(chǔ)器974可以為設(shè)備950提供額外的存儲(chǔ)空間,或還可以 存儲(chǔ)用于設(shè)備950的應(yīng)用或其它信息。具體地,擴(kuò)展存儲(chǔ)器974可以包括指令來實(shí)現(xiàn)或 補(bǔ)充上述過程,以及還可以包括安全信息。因此,擴(kuò)展存儲(chǔ)器974可以例如作為用于設(shè) 備950的安全模塊提供,以及可以被編程有允許安全使用設(shè)備950的指令。另外,安全 應(yīng)用以及額外的信息可以經(jīng)由SIMM卡提供,諸如以不可非法侵入的方式將標(biāo)識(shí)信息放 置在SIMM卡上。存儲(chǔ)器可以如下所述包括例如閃存和/或NVRAM存儲(chǔ)器。在一個(gè)實(shí)施方式中, 將計(jì)算機(jī)程序產(chǎn)品有形地包含在信息載體中。計(jì)算機(jī)程序產(chǎn)品包含在被執(zhí)行時(shí)執(zhí)行諸如 上述那些方法的一個(gè)或多個(gè)方法的指令。信息載體是計(jì)算機(jī)或機(jī)器可讀介質(zhì),諸如存儲(chǔ) 器964、擴(kuò)展存儲(chǔ)器974、在處理器952上的存儲(chǔ)器或可以例如通過收發(fā)器968或外部接 口 962接收的傳播信號(hào)。設(shè)備950可以在需要的情況下通過可以包括數(shù)字信號(hào)處理電路的通信接口 966無(wú) 線地通信。通信接口 966可以提供在各種模式或協(xié)議下的通信,諸如GSM語(yǔ)音通話、 SMS> EMS 或 MMS 消息、CDMA、TDMA、PDC> WCDMA> CDMA2000 或 GPRS
等??梢岳缤ㄟ^射頻收發(fā)器968來發(fā)生這樣的通信。另外,諸如使用藍(lán)牙、WiFi或 其它這樣的收發(fā)器(未示出),可以發(fā)生短程通信。另外,GPS (全球定位系統(tǒng))接收器 模塊970可以向設(shè)備950提供可以由運(yùn)行在設(shè)備950上的應(yīng)用視情況使用的額外的導(dǎo)航和 位置相關(guān)的無(wú)線數(shù)據(jù)。設(shè)備950還可以使用音頻編解碼器960可聽見地通信,音頻編解碼器960可以從 用戶接收口語(yǔ)信息并且將其轉(zhuǎn)換為可使用的數(shù)字信息。同樣,音頻編解碼器960可以諸如通過例如在設(shè)備950的送受話器中的揚(yáng)聲器,為用戶生成可聽見的聲音。這樣的聲音 可以包括來自語(yǔ)音電話呼叫的聲音,可以包括已記錄的聲音(例如,語(yǔ)音消息、音樂文 件等)以及還可以包括由在設(shè)備950上操作的應(yīng)用生成的聲音。 計(jì)算設(shè)備950可以如圖中所示以多種不同的形式實(shí)現(xiàn)。例如,計(jì)算設(shè)備950可 以被實(shí)現(xiàn)為蜂窩電話980。計(jì)算設(shè)備950還可以被實(shí)現(xiàn)為智能電話982、個(gè)人數(shù)字助理或 其它相似的移動(dòng)設(shè)備的部分??梢栽跀?shù)字電子電路、集成電路、專門設(shè)計(jì)的ASIC(專用集成電路)、計(jì)算機(jī)硬 件、固件、軟件和/或以上的組合中實(shí)現(xiàn)在此描述的系統(tǒng)和技術(shù)的各種實(shí)施方式。這些 各種實(shí)施方式可以包括在可編程系統(tǒng)上可執(zhí)行和/或可解釋的一個(gè)或多個(gè)計(jì)算機(jī)程序中 的實(shí)施方式,所述可編程系統(tǒng)包括至少一個(gè)可編程處理器,其可以是專用或通用的,被 耦接以從存儲(chǔ)系統(tǒng)、至少一個(gè)輸入設(shè)備和至少一個(gè)輸出設(shè)備接收數(shù)據(jù)和指令以及向存儲(chǔ) 系統(tǒng)、至少一個(gè)輸入設(shè)備和至少一個(gè)輸出設(shè)備傳送數(shù)據(jù)和指令。這些計(jì)算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用或代碼)包括用于可編程處理 器的機(jī)器指令,并且可以以高級(jí)程序和/或面向?qū)ο蟮木幊陶Z(yǔ)言、和/或匯編/機(jī)器語(yǔ)言 來實(shí)現(xiàn)。如在此所使用的,術(shù)語(yǔ)“機(jī)器可讀介質(zhì)”、“計(jì)算機(jī)可讀介質(zhì)”是指用于向可 編程處理器提供機(jī)器指令和/或數(shù)據(jù)的任何計(jì)算機(jī)程序產(chǎn)品、裝置和/或設(shè)備(例如,磁 盤、光盤、存儲(chǔ)器、可編程邏輯設(shè)備(PLD)),包括接收作為機(jī)器可讀信號(hào)的機(jī)器指令的 機(jī)器可讀介質(zhì)。術(shù)語(yǔ)“機(jī)器可讀信號(hào)”是指用于向可編程處理器提供機(jī)器指令和/或數(shù) 據(jù)的任何信號(hào)。為了提供與用戶的交互,在此描述的系統(tǒng)和技術(shù)可以在具有下述的計(jì)算機(jī)上實(shí) 現(xiàn)用于向用戶顯示信息的顯示設(shè)備(例如,CRT (陰極射線管)或LCD (液晶顯示)監(jiān) 視器),以及用戶通過其可以向計(jì)算機(jī)提供輸入的鍵盤和指示設(shè)備(例如,鼠標(biāo)或跟蹤 球)。也可以使用其它類型的設(shè)備來提供與用戶的交互;例如,提供給用戶的反饋可以 是任何形式的感知反饋(例如,視覺反饋、聽覺反饋或觸覺反饋);以及可以以任何形 式,包括聲學(xué)的、話音的或觸覺的輸入,接收來自用戶的輸入。在此描述的系統(tǒng)和技術(shù)可以在包括后端組件(例如作為數(shù)據(jù)服務(wù)器)、或包括 中間件組件(例如應(yīng)用服務(wù)器)、或包括前端組件(例如具有用戶通過其可以與在此描 述的系統(tǒng)和技術(shù)的實(shí)施方式交互的圖形用戶界面或Web瀏覽器的客戶端計(jì)算機(jī))、或者 這樣的后端、中間件或前端組件的任何組合的計(jì)算系統(tǒng)中實(shí)現(xiàn)。系統(tǒng)的組件可以通過 任何形式或介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信(例如通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng) (〃 LAN")、廣域網(wǎng)(〃 WAN")以及因特網(wǎng)。計(jì)算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器通常彼此遠(yuǎn)離并且典型地 通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系依靠在各個(gè)計(jì)算機(jī)上運(yùn)行并且彼此具有客戶 端_服務(wù)器關(guān)系的計(jì)算機(jī)程序產(chǎn)生。已描述了多個(gè)實(shí)施例。然而,應(yīng)當(dāng)理解的是,可以在不背離本發(fā)明的精神和范 圍的情況下進(jìn)行各種修改。例如,關(guān)于電視廣告描述了本文檔的大部分,但是還可以寄 送諸如廣播廣告和在線視頻廣告的其它形式的未來的、基于受眾的廣告。另外,圖中所描繪的邏輯流不需要所示的特定次序或相繼次序才能獲得期望的 結(jié)果。另外,可以提供其它步驟,或可以從所描述的流程除去步驟,以及可以將其它組件添加到所描述的系統(tǒng)或從所描述的系統(tǒng)移除組件。因此,其它實(shí)施例在權(quán)利要 求的范 圍內(nèi)。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的成像過程,包括生成三維模型的一系列圖像并且將所述圖像保存在確定的位置處; 生成用于顯示圖像操縱控件以及用于響應(yīng)于與所述圖像操縱控件的用戶交互而允許 顯示所述一系列圖像的標(biāo)記代碼;以及提供所述圖像和標(biāo)記代碼以供第三方應(yīng)用使用。
2.如權(quán)利要求1所述的方法,其中所述第三方應(yīng)用包括web瀏覽器。
3.如權(quán)利要求2所述的方法,其中所述web瀏覽器允許以所述web瀏覽器的本原形 式與所述圖像交互。
4.如權(quán)利要求1所述的方法,其中生成無(wú)縫的所述一系列圖像包括指引三維建模應(yīng)用 在圍繞所述三維模型的周界的環(huán)形上拍攝圖片。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括將所述圖像和標(biāo)記代碼打包以傳送給遠(yuǎn)程的第三方應(yīng)用。
6.如權(quán)利要求1所述的方法,進(jìn)一步包括將用于所述標(biāo)記代碼的URL傳送給所述第三方應(yīng)用。
7.如權(quán)利要求1所述的方法,進(jìn)一步包括從用戶接收與待圍繞所述三維對(duì)象的外 部生成的圖像的數(shù)目有關(guān)的指示符,以及在圍繞所述三維對(duì)象的所述外部的大致平均間 隔的位置處生成所述圖像。
8.如權(quán)利要求1所述的方法,進(jìn)一步包括將所述多個(gè)圖像中的每一個(gè)圖像存儲(chǔ)為 分立的圖像文件,以及生成用于引用所述圖像文件的所述標(biāo)記代碼。
9.如權(quán)利要求1所述的方法,其中所述標(biāo)記代碼能夠由本原web瀏覽器在沒有使用瀏 覽器插件的情況下執(zhí)行。
10.如權(quán)利要求1所述的方法,進(jìn)一步包括從用戶接收對(duì)圖像遍歷路徑的指示,并 且沿著所述圖像遍歷路徑生成所述一系列圖像。
11.如權(quán)利要求10所述的方法,其中所述圖像遍歷路徑由在關(guān)于球體的多維上分布的 點(diǎn)來定義。
12.如權(quán)利要求1所述的方法,進(jìn)一步包括在瀏覽器中生成與所述模型相關(guān)聯(lián)的顯 示,接收識(shí)別所述確定的位置的用戶參數(shù),以及將所述確定的位置通信到操作系統(tǒng)。
13.一種計(jì)算機(jī)實(shí)現(xiàn)的模型查看系統(tǒng),包括CAD程序,所述CAD程序適于生成三維模型的二維圖像;圖像生成模塊,所述圖像生成模塊用于促使通過所述CAD程序創(chuàng)建所述三維模型的 多個(gè)二維圖像;以及代碼生成器,所述代碼生成器用于創(chuàng)建標(biāo)記代碼,所述標(biāo)記代碼在被執(zhí)行時(shí)促使一 系列的所述二維圖像被顯示,以創(chuàng)建對(duì)所述三維模型的移動(dòng)的視覺印象。
14.如權(quán)利要求13所述的系統(tǒng),其中所述圖像生成模塊定義關(guān)于所述三維模型的成像 路徑,以及由所述CAD程序操作的虛擬照相機(jī)可操作來由所述圖像生成模塊控制以從對(duì) 應(yīng)于所述成像路徑的位置捕捉圖像。
15.如權(quán)利要求13所述的系統(tǒng),進(jìn)一步包括web瀏覽器,所述web瀏覽器能夠以所 述瀏覽器的本原形式顯示所述一系列的所述二維圖像。
16.如權(quán)利要求13所述的系統(tǒng),進(jìn)一步包括裝置,所述裝置用于將對(duì)用于所述二維圖像的存儲(chǔ)位置的用戶選擇從基于web的應(yīng)用通信到計(jì)算機(jī)操作系統(tǒng)。
17.如權(quán)利要求13所述的系統(tǒng),其中所述圖像生成模塊被編程為捕捉和保存具有預(yù)定 命名結(jié)構(gòu)的數(shù)字圖像,以使可以按照名稱順次訪問所述圖像。
18.如權(quán)利要求13所述的系統(tǒng),其中所述代碼生成器使用代碼模板來創(chuàng)建所述代碼并 且提供特定于模型的信息以與所述代碼模板一起使用。
19.一種計(jì)算機(jī)實(shí)現(xiàn)的模型查看系統(tǒng),包括接口,所述接口被配置為接收關(guān)于使三維模型成像為多個(gè)圖像的用戶輸入; 插件應(yīng)用,所述插件應(yīng)用用于與顯示所述三維模型的應(yīng)用通信,以促使所述應(yīng)用生 成所述三維模型的多個(gè)圖像;以及裝置,所述裝置用于生成用于相繼顯示所述多個(gè)圖像的標(biāo)記代碼。
20.如權(quán)利要求19所述的系統(tǒng),進(jìn)一步包括裝置,所述裝置用于在基于瀏覽器的應(yīng)用 與操作系統(tǒng)文件系統(tǒng)之間通信來識(shí)別用于保存所述多個(gè)圖像的位置。
全文摘要
一種計(jì)算機(jī)實(shí)現(xiàn)的成像過程方法包括生成三維模型的一系列圖像并且將所述圖像保存在確定的位置處,生成用于顯示圖像操縱控件以及用于響應(yīng)于與圖像操縱控件的用戶交互允許顯示所述一系列圖像的標(biāo)記代碼,以及提供所述圖像和標(biāo)記代碼以供第三方應(yīng)用使用。
文檔編號(hào)G06T17/00GK102027504SQ200980117744
公開日2011年4月20日 申請(qǐng)日期2009年3月20日 優(yōu)先權(quán)日2008年3月21日
發(fā)明者布雷恩·E·布魯英頓, 理查德·C·戈斯魏勒三世, 馬修·W·勞里, 馬克·A·林博爾 申請(qǐng)人:谷歌公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1