專利名稱:復(fù)雜3d空間應(yīng)用中的2d軟件消費(fèi)品的編輯的制作方法
技術(shù)領(lǐng)域:
本公開涉及三維(3D)軟件應(yīng)用的開發(fā)和維護(hù),且具體地涉及一種使不具有特定于 3D軟件的任何技能的用戶能夠編輯3D內(nèi)容的系統(tǒng)和方法。
背景技術(shù):
現(xiàn)今,軟件應(yīng)用開發(fā)是軟件開發(fā)和圖稿(artwork)開發(fā)的組合。當(dāng)創(chuàng)建表示虛擬環(huán)境的應(yīng)用時(shí),通常使用3D繪圖工具創(chuàng)建圖稿,并且隨后將其保存為柵格化平面文件,其被用作應(yīng)用的背景圖像。問題在于應(yīng)用不了解圖像的3D投影矩陣,并且沒有進(jìn)一步的數(shù)據(jù),其僅能將用戶接口特征添加到平面2D屏幕。因此,難于在3D空間中組織2D內(nèi)容。此外,大多數(shù)軟件應(yīng)用使用2D坐標(biāo)表述所有其消費(fèi)品(consumable)的定位并且在該坐標(biāo)系統(tǒng)中,不清楚軟件開發(fā)者(“技術(shù)用戶”)如何能以未受過3D繪圖技術(shù)訓(xùn)練的人(“商業(yè)用戶 (business user)”)能夠組織消費(fèi)品的方式組織其在3D環(huán)境中的設(shè)置(placement)。例如, 未受過3D繪圖技術(shù)訓(xùn)練的人可能不理解如何將內(nèi)容設(shè)置到3D虛擬環(huán)境中的細(xì)節(jié)。對于能夠設(shè)置內(nèi)容的商業(yè)用戶,該商業(yè)用戶將需要學(xué)習(xí)投影矩陣如何工作以及3D坐標(biāo)系統(tǒng)如何工作,并且3D工具現(xiàn)今還需要用戶限定至少一個(gè)3D旋轉(zhuǎn)坐標(biāo),而這需要訓(xùn)練。期望提供一種允許商業(yè)用戶能夠在不必學(xué)習(xí)3D繪圖工具等的情況下在3D環(huán)境中設(shè)置內(nèi)容的系統(tǒng)和方法。為了創(chuàng)建3D空間應(yīng)用,需要在每個(gè)應(yīng)用的構(gòu)造中密切牽涉的極為勝任的工程師。 可替選地,可以訓(xùn)練商業(yè)用戶使用編程語言工具以自足,然而對于商業(yè)用戶而言學(xué)習(xí)完成該任務(wù)所需的編程語言的所有方面是難事。此外,當(dāng)指派技術(shù)用戶創(chuàng)建3D應(yīng)用時(shí),由于商業(yè)用戶通常需要向技術(shù)用戶解釋需求并且技術(shù)用戶必須隨后實(shí)現(xiàn)該需求,因此商業(yè)用戶和技術(shù)用戶之間的工作流程可能是困難的。這意味著商業(yè)用戶不是自足的并且當(dāng)與技術(shù)用戶談話時(shí)可能存在轉(zhuǎn)換上的細(xì)微損失。在現(xiàn)今的世界中,由于受過3D應(yīng)用設(shè)計(jì)和開發(fā)的專業(yè)技術(shù)訓(xùn)練的熟練專家的數(shù)量有限,因此需要為他們創(chuàng)建3D應(yīng)用的消費(fèi)者(“軟件客戶”)常常需要以比編程團(tuán)隊(duì)能夠構(gòu)建該3D應(yīng)用的速度快的速度來創(chuàng)建軟件。出于這些另外的原因,期望提供一種允許商業(yè)用戶不必學(xué)習(xí)3D繪圖工具等的情況下能夠在3D環(huán)境中設(shè)置內(nèi)容的系統(tǒng)和方法。為了進(jìn)一步使3D應(yīng)用的開發(fā)復(fù)雜,為了在空間中定位3D元素,存在6個(gè)重要變量。然而,最常見的輸入設(shè)備,即鼠標(biāo)每次僅能夠流暢地控制2個(gè)坐標(biāo)(χ和y),這使得3D 應(yīng)用的開發(fā)更加困難。過去,人們已通過使用3D編輯工具,排列內(nèi)容使得其與3D背景匹配,并且將內(nèi)容設(shè)置在3D背景上,來在3D空間中組織2D內(nèi)容。然而,3D編輯工具需要訓(xùn)練,使得典型的商業(yè)用戶不能使用這些典型的技術(shù)在3D空間中組織2D內(nèi)容。非技術(shù)商業(yè)用戶編輯3D內(nèi)容的最常見的方法是使編程者一旦創(chuàng)立3D內(nèi)容,則用戶能夠編輯其參數(shù)。然而,參數(shù)由編程者預(yù)先確定,因而這不是理想的解決方案。用于在空間中定位和旋轉(zhuǎn)3D元素的現(xiàn)有的解決方案是允許每次進(jìn)行2維的拖動(dòng),隨后使用戶旋轉(zhuǎn)相機(jī)以便于訪問第三維的部分。為了在空間中旋轉(zhuǎn)元素,典型地在正被定位的物體附近將3個(gè)圓形放在屏幕上,并且使用戶拖動(dòng)這些圓形中的每個(gè)。然而,這不能完全解決將內(nèi)容設(shè)置在3D環(huán)境中的問題,原因在于用戶必須旋轉(zhuǎn)周圍的世界以訪問所有空間維度并且其需要使用訓(xùn)練。用于在空間中旋轉(zhuǎn)3D元素的另一典型的技術(shù)是使用6軸輸入設(shè)備,其被稱為3D 鼠標(biāo)。這并未完全解決將內(nèi)容設(shè)置在3D環(huán)境中的問題,原因在于大多數(shù)人不具有該輸入設(shè)備,因此僅有專業(yè)人員能夠使用該設(shè)備。當(dāng)前,通過反復(fù)試驗(yàn)來定位單個(gè)3D消費(fèi)品并且用戶必須調(diào)節(jié)所添加的每個(gè)消費(fèi)品的定位。由于存在6個(gè)必須同時(shí)調(diào)整的變量(x、y、z、ΘΧ、0y和ΘΖ),因此這是困難的。 因此對于在短時(shí)段中創(chuàng)建大量內(nèi)容是不實(shí)際的。因此,期望提供一種用于將內(nèi)容設(shè)置在3D 環(huán)境中的系統(tǒng)和方法,其中用戶不需要密切熟悉3D工具,并且該系統(tǒng)和方法針對該目的。
發(fā)明內(nèi)容
本發(fā)明一方面涉及一種用于生成三維應(yīng)用的系統(tǒng),包括執(zhí)行構(gòu)造工具的計(jì)算機(jī)系統(tǒng),技術(shù)用戶和商業(yè)用戶使用所述構(gòu)造工具生成三維應(yīng)用;倉庫,與所述計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián),存儲(chǔ)與所述構(gòu)造工具和所述三維應(yīng)用相關(guān)聯(lián)的數(shù)據(jù);應(yīng)用運(yùn)行時(shí)平臺(tái),在運(yùn)行所述三維應(yīng)用的計(jì)算機(jī)系統(tǒng)上執(zhí)行;終端用戶應(yīng)用,包括所述三維應(yīng)用和所述應(yīng)用運(yùn)行時(shí)平臺(tái);以及其中所述構(gòu)造工具進(jìn)一步包括投影矩陣部件,該投影矩陣部件允許所述技術(shù)用戶調(diào)整投影矩陣以與三維圖像對準(zhǔn);以及創(chuàng)作部件,該創(chuàng)作部件允許商業(yè)用戶將一個(gè)或多個(gè)消費(fèi)品設(shè)置到所述三維圖像上以生成具有所述三維圖像和一個(gè)或多個(gè)消費(fèi)品的所述三維應(yīng)用, 其中所述一個(gè)或多個(gè)消費(fèi)品相對于所述三維圖像維持透視。本發(fā)明另一方面涉及一種生成三維應(yīng)用的方法,包括提供在計(jì)算機(jī)系統(tǒng)上執(zhí)行的構(gòu)造工具,技術(shù)用戶和商業(yè)用戶使用所述構(gòu)造工具生成三維應(yīng)用;在與所述計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián)的倉庫中存儲(chǔ)與所述構(gòu)造工具和所述三維應(yīng)用相關(guān)聯(lián)的數(shù)據(jù);技術(shù)用戶使用作為所述構(gòu)造工具的一部分的投影矩陣部件調(diào)整投影矩陣以與三維圖像對準(zhǔn);商業(yè)用戶使用作為所述構(gòu)造工具的一部分的創(chuàng)作部件將一個(gè)或多個(gè)消費(fèi)品設(shè)置到所述三維圖像上以生成具有所述三維圖像和一個(gè)或多個(gè)消費(fèi)品的所述三維應(yīng)用,其中所述一個(gè)或多個(gè)消費(fèi)品相對于所述三維圖像維持透視。
圖1圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的系統(tǒng)和方法的基于計(jì)算機(jī)的實(shí)現(xiàn)方案的示例;
圖2圖示了如圖1中所示的用于將內(nèi)容設(shè)置在3D環(huán)境中的工具的更多細(xì)節(jié); 圖3圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的方法的方法工作流程的示例; 圖4圖示了圖2中所示的方法的矩陣過程(matrix process)的用戶接口的示例; 圖5圖示了用于調(diào)整圖4中所示的投影網(wǎng)格的用戶接口的示例; 圖6圖示了用于創(chuàng)建、命名和定位圖4中示出的每個(gè)表面的用戶接口的示例; 圖7和8圖示了圖2中示出的方法的接口過程的示例; 圖9圖示了圖2中示出的方法的接口過程的彈出窗口 ;圖10和11圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的系統(tǒng)的對象模型;以及圖12圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的系統(tǒng)中的數(shù)據(jù)倉庫和用戶動(dòng)作的更多細(xì)節(jié)。
具體實(shí)施例方式該系統(tǒng)和方法特別適用于諸如0M4公司商業(yè)上提供的事件呈現(xiàn)系統(tǒng)并且將在該背景下描述該系統(tǒng)和方法。然而,將認(rèn)識到,該系統(tǒng)和方法具有較大的效用,因?yàn)樵撓到y(tǒng)和方法可以與其中期望能夠?qū)?nèi)容設(shè)置在3D環(huán)境中的任何系統(tǒng)一起使用,其中用戶不需要密切熟悉3D工具。除了作為該系統(tǒng)的實(shí)現(xiàn)方案而在下文描述的系統(tǒng)之外,該系統(tǒng)還可以結(jié)合如下系統(tǒng)使用1)工作流程系統(tǒng)(在允許系統(tǒng)的下一部分運(yùn)行之前需要完成特定數(shù)據(jù)點(diǎn)的系統(tǒng)), 其用于確保如圖3中所示的工作流程按所描述的順序進(jìn)行;2)許可系統(tǒng)(不允許用戶訪問該工具的對于他們的任務(wù)不是必需的部分的系統(tǒng)),其尤其用于將用戶限制于他們在圖3中所示的工作流程中的相應(yīng)的部分;3)源控制和“wiki型(wiki-like)”系統(tǒng)(簽入/簽出、還原變化、比較變化等),用于管理3D應(yīng)用和消費(fèi)品的開發(fā);4)協(xié)作工具,用于使多個(gè)用戶能夠在實(shí)時(shí)地編輯3D應(yīng)用項(xiàng)目的同時(shí)彼此交互;5)時(shí)間線和中間計(jì)算(tweening)系統(tǒng),以使得能夠預(yù)先限定幻燈片顯示,富媒體呈現(xiàn)和動(dòng)畫和/或使其與用戶交互組合。例如,軟件消費(fèi)品可以(但不限于)漸強(qiáng)、移入、或放大。再者例如,可以開發(fā)精密系統(tǒng),其限定由時(shí)間線上的特定時(shí)間標(biāo)記觸發(fā)的進(jìn)入和離開視域的許多消費(fèi)品的特定序列;以及6)軟件模塊加載, 用于使得在運(yùn)行時(shí)僅能夠加載使用中的消費(fèi)品。例如,如果軟件編程者已使得特定消費(fèi)品可用(圖3,過程52),并且商業(yè)用戶從未選擇添加該特定的消費(fèi)品(圖3,過程62),則所創(chuàng)建的運(yùn)行時(shí)應(yīng)用(圖3,過程68)將不加載由編程者限定的類(Class)(圖3,過程52),由此當(dāng)運(yùn)行時(shí)應(yīng)用執(zhí)行時(shí),使應(yīng)用的尺寸最小并且減少不必要的帶寬和加載時(shí)間。圖1圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的系統(tǒng)30和方法的基于計(jì)算機(jī)的實(shí)現(xiàn)方案的示例。系統(tǒng)30可以在任何基于處理單元的系統(tǒng)上實(shí)現(xiàn),該系統(tǒng)諸如例如,執(zhí)行多行計(jì)算機(jī)代碼的諸如圖1中所示的計(jì)算機(jī)系統(tǒng)。該系統(tǒng)也可以以硬件(基于集成電路的系統(tǒng))、 軟件(駐留在諸如DVD、CD、閃速存儲(chǔ)器等的存儲(chǔ)設(shè)備上的多行計(jì)算機(jī)代碼)的形式實(shí)現(xiàn)或者通過如圖1中所示的軟件和硬件的組合實(shí)現(xiàn)。該系統(tǒng)還可以在服務(wù)器計(jì)算機(jī)上或者以托管模型實(shí)現(xiàn),在其中系統(tǒng)的功能在諸如互聯(lián)網(wǎng)的鏈路上被遞送到用戶。圖1中所示的實(shí)現(xiàn)方案可以包括顯示設(shè)備32、機(jī)架34以及允許用戶與系統(tǒng)交互的一個(gè)或多個(gè)輸入/輸出設(shè)備36。例如,一個(gè)或多個(gè)輸入/輸出設(shè)備可以包括(圖1中示出的)鍵盤36a和鼠標(biāo)36b以及圖1中未示出的但是公知的其他輸入/輸出設(shè)備。機(jī)架34 (其可以是個(gè)人計(jì)算機(jī)或服務(wù)器計(jì)算機(jī)的機(jī)架,但是也可以是筆記型計(jì)算機(jī)的外殼)可以容納執(zhí)行計(jì)算機(jī)指令的處理單元38、存儲(chǔ)軟件或操作系統(tǒng)的持久存儲(chǔ)設(shè)備40 (諸如硬盤驅(qū)動(dòng)器、閃速存儲(chǔ)器、光盤驅(qū)動(dòng)器等)以及存儲(chǔ)正由處理單元執(zhí)行的多行計(jì)算機(jī)代碼的存儲(chǔ)器42 (諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器或者靜態(tài)隨機(jī)存取儲(chǔ)存器),這些設(shè)備均彼此電連接并且能夠彼此通信。當(dāng)基于處理單元的系統(tǒng)正在用于實(shí)現(xiàn)用于將內(nèi)容設(shè)置在3D環(huán)境中的系統(tǒng)和方法時(shí),存儲(chǔ)器42可以存儲(chǔ)操作系統(tǒng)44和工具46 (在一個(gè)實(shí)施例中其可以被稱為構(gòu)造應(yīng)用(construction application)),工具46包括多行計(jì)算機(jī)代碼,其實(shí)現(xiàn)用于將內(nèi)容設(shè)置在 3D環(huán)境中的系統(tǒng)和方法。圖2圖示了如圖1中所示的用于將內(nèi)容設(shè)置在3D環(huán)境中的工具46的更多細(xì)節(jié)。 工具46可以由技術(shù)用戶(其具有創(chuàng)建和/或編輯3D環(huán)境的技能)以及商業(yè)用戶(其可以將內(nèi)容設(shè)置到3D環(huán)境上)使用。在一個(gè)實(shí)施例中,內(nèi)容可以是軟件消費(fèi)品、諸如純文本或圖像的靜態(tài)內(nèi)容塊、或者諸如交互微件(widget)或者使用該工具構(gòu)建的軟件應(yīng)用的部件的動(dòng)態(tài)內(nèi)容塊。工具46可以包括投影矩陣部件46a,其允許按照需要識別和編輯投影矩陣(下文更詳細(xì)描述);表面編輯部件46b,其允許技術(shù)用戶添加、移動(dòng)、編輯和/或刪除3D環(huán)境的表面;以及關(guān)于內(nèi)容的創(chuàng)作(authoring)計(jì)算機(jī)46c,其允許商業(yè)用戶添加、移動(dòng)、編輯或刪除諸如軟件消費(fèi)品的內(nèi)容塊。現(xiàn)在,將更詳細(xì)地描述用于將內(nèi)容設(shè)置在3D環(huán)境中的方法。圖3圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的方法的方法工作流程50的示例。編程者(其不需要具有3D技能)可以創(chuàng)建普通2D軟件消費(fèi)品,它們隨后被輸入/存儲(chǔ)在參數(shù)定義倉庫(52)中。軟件消費(fèi)品可以是可由包括任何事物的終端用戶通過用戶接口消費(fèi)的軟件控制的任何事物,諸如Twitter微件、數(shù)據(jù)網(wǎng)格、聊天窗口、富文本或者待顯示圖像。軟件消費(fèi)品與“軟件模塊”、“用戶接口部件” “顯示對象”等同義。在該系統(tǒng)中,內(nèi)容或軟件消費(fèi)品可以依照任何語言并且該系統(tǒng)允許用戶將內(nèi)容或軟件消費(fèi)品設(shè)置到3D環(huán)境中而與內(nèi)容或軟件消費(fèi)品的語言無關(guān)。圖形藝術(shù)家隨后可以創(chuàng)建背景圖稿或者攝影師拍攝將用作背景圖像的照片(54)。技術(shù)用戶隨后可以使用工具46 (從例如圖形藝術(shù)家或攝影師)導(dǎo)入3D背景圖像并且進(jìn)入工具的“矩陣模式”(投影矩陣部件46a) (56)。技術(shù)用戶隨后可以調(diào)整投影矩陣,直至網(wǎng)格與背景圖像中的自然的平行和垂直線對齊(58),如圖4和5中所示并且下文更詳細(xì)描述的那樣。技術(shù)用戶隨后可以使用用戶接口添加表面并且調(diào)整表面的定位,諸如一個(gè)實(shí)現(xiàn)方案中的拖動(dòng)墊(Drag Pad),以及如圖6中所示和下文更詳細(xì)描述的數(shù)字輸入控制框(60)。一旦設(shè)定了投影矩陣和表面,在一個(gè)實(shí)現(xiàn)方案中商業(yè)用戶隨后可以使用用戶接口,諸如通過拖動(dòng)和放下圖標(biāo)來添加消費(fèi)品,和/或選擇先前添加的消費(fèi)品(62 ),如圖7和 8中所示和下文更詳細(xì)描述的那樣。商業(yè)用戶隨后可以輸入關(guān)于新的消費(fèi)品的參數(shù)(64)并且隨后重復(fù)添加消費(fèi)品并且按照需要輸入它們的參數(shù)以使消費(fèi)品落定(populate)。該系統(tǒng)隨后可以確定作為商業(yè)用戶的活動(dòng)結(jié)果是否需要任何表面變化(66)并且如果需要任何表面變化,則循環(huán)回到過程60。如果不需要表面變化,則具有消費(fèi)品的3D應(yīng)用準(zhǔn)備好運(yùn)送 (shipping) (68)。用于生成具有消費(fèi)品的3D應(yīng)用的工作流程已完成?,F(xiàn)在,更詳細(xì)描述每個(gè)上述過程。投影矩陣/矩陣配置樽式
投影矩陣是將三維點(diǎn)映射到二維平面的方法中使用的(如數(shù)學(xué)中定義的)方形矩陣。概念上有助于理解該投影的機(jī)制牽涉將二維(2D)投影視為被通過相機(jī)取景器觀看。相機(jī)的位置、取向和視場幫助限定各投影矩陣。投影矩陣允許將二維圖片描述為三維(3D)對象, 這樣允許其他系統(tǒng)或程序能夠與2D圖像交互,如同其是全3D的。系統(tǒng)使用投影矩陣獲得3D圖稿并且使用3D圖稿創(chuàng)建3D軟件。為此,該軟件必須校準(zhǔn)到與圖稿相同的投影矩陣。當(dāng)被適當(dāng)校準(zhǔn)時(shí),應(yīng)用中的平行線將完美地與背景圖像中的平行線重疊。
當(dāng)構(gòu)造應(yīng)用/工具46處于矩陣配置模式(使用投影矩陣部件46A)時(shí),技術(shù)用戶可以調(diào)整影響投影矩陣的參數(shù)。為了使技術(shù)用戶操縱清楚的、可理解的參數(shù),構(gòu)造應(yīng)用使用用于將簡化的數(shù)據(jù)點(diǎn)轉(zhuǎn)化成相對更復(fù)雜的投影矩陣(其最終包括如4X4矩陣網(wǎng)格的16個(gè)數(shù)值)的系統(tǒng)。在一個(gè)實(shí)施例中,由技術(shù)用戶控制的參數(shù)可以包括矩陣規(guī)模(Matrix Scale), 矩陣偏移X和矩陣偏移Y。這些參數(shù)借助于常見的數(shù)學(xué)變換被轉(zhuǎn)化為投影矩陣的數(shù)字值。 該變換不會(huì)保持或?qū)崿F(xiàn)投影矩陣中牽涉的所有數(shù)值的用戶控制,因此對于用于構(gòu)造投影矩陣和后繼的裁剪和縮放操作的一些數(shù)值,使用缺省值。投影矩陣得自相機(jī)的X、Y、Z位置, 相機(jī)的旋轉(zhuǎn)X、Y、Z位置以及觀看者相對于顯示表面的X、Y、Z位置。后繼的裁剪和縮放操作可以得自(但不限于)視場、近裁剪平面和遠(yuǎn)裁剪平面。例如,投影矩陣的標(biāo)準(zhǔn)的“近平面距離”和“遠(yuǎn)平面距離”分量被設(shè)定為合理的常數(shù)值。這些所述的簡化方法的目的在于使得 3D投影矩陣操縱技術(shù)不熟練的技術(shù)用戶可以極快速地理解和操縱使應(yīng)用中的平行線與背景圖像中的平行線校準(zhǔn)所需的控制。此外,當(dāng)構(gòu)造應(yīng)用處于矩陣配置模式時(shí),用戶可以調(diào)整“世界(world)”的偏移,即與調(diào)整相機(jī)的位置和旋轉(zhuǎn)相似的功能。這有效地向所有表面坐標(biāo)添加6個(gè)世界偏移數(shù)值 (x、y、z、ΘΧ、和ΘΖ)(直接由技術(shù)用戶控制)。此外,當(dāng)構(gòu)造應(yīng)用處于矩陣配置模式時(shí),技術(shù)用戶可以看到和操縱出于視覺參考的目的已重疊在場景(stage)上的網(wǎng)格和投影中心點(diǎn)。該網(wǎng)格存在的目的在于協(xié)助技術(shù)用戶使應(yīng)用中的平行線與背景圖像中的平行線對齊。用戶可以調(diào)整網(wǎng)格的位置和旋轉(zhuǎn)直至網(wǎng)格中的特定的線與背景圖像中的特定的線重疊。調(diào)整網(wǎng)格的位置不影響用于計(jì)算最終投影矩陣的任何數(shù)值;其僅是由投影矩陣變換的引導(dǎo)以向技術(shù)用戶顯示平行和垂直線,以確定其線是否與背景圖像中的線匹配。此外,當(dāng)構(gòu)造應(yīng)用處于矩陣配置模式時(shí),可以添加附加的參考形式以協(xié)助技術(shù)用戶觀看投影矩陣的效果。在屏幕上同時(shí)可以存在多個(gè)交叉網(wǎng)格以協(xié)助對齊背景圖像中的多個(gè)表面。還可以存在修改的鼠標(biāo)光標(biāo),其具有成90度相對角度的3條線(在x、y和ζ軸上), 從而用戶可以快速地停留在任意點(diǎn)以查看投影矩陣如何影響鼠標(biāo)光標(biāo)與背景圖像對齊的能力。存在技術(shù)用戶可以使用來執(zhí)行對準(zhǔn)的各種技術(shù)。例如,如果網(wǎng)格上的垂直角 (perpendicular angle)比背景圖像的垂直角更銳,則技術(shù)用戶應(yīng)增加矩陣規(guī)模屬性(使投影矩陣放大;使投影矩陣具有較小的視場;使以接近90度的角度投影垂直角)。此外,如果網(wǎng)格上的垂直角比背景圖像的垂直角更鈍,則技術(shù)用戶應(yīng)降低矩陣規(guī)模屬性(使投影矩陣縮??;使投影矩陣具有較寬的視場;使以更扭曲的角度投影垂直角)。作為另一示例,當(dāng)背景圖像具有在空間中形成90度角的2條自然線,并且這兩條線的投影是180度,并且θ y偏移被設(shè)定為0時(shí),則這些線的緯度表示投影中心的y分量。假設(shè)通過特定背景圖像的特定方面,許多其他技術(shù)將變得明顯,并且構(gòu)造應(yīng)用具體地實(shí)現(xiàn)這些技術(shù)的發(fā)現(xiàn),因?yàn)槠錅p少了技術(shù)用戶當(dāng)構(gòu)造投影矩陣時(shí)考慮的變量數(shù)目。在使網(wǎng)格與圖像對準(zhǔn)的過程期間,技術(shù)用戶具體地查看牽涉網(wǎng)格中的線以及匹配背景圖像中的線的3D鼠標(biāo)光標(biāo)的前述因素,并且智能地調(diào)整數(shù)值(使用展示(Exhibit)4和 5的左側(cè)上的拖動(dòng)墊和數(shù)字輸入控制)直至如展示5中所示網(wǎng)格匹配。這些是技術(shù)用戶在該過程期間可以應(yīng)用的特定技術(shù),諸如找到被投影為水平的圖像中的線,以及首先使投影中心與該線對齊,隨后調(diào)整縮放直至直角與圖像匹配。如圖示了圖2中所示的方法的矩陣過程的用戶接口的示例的圖4中所示,示出了具有網(wǎng)格72的3D圖片70,在該應(yīng)用創(chuàng)建階段期間(圖3,過程56)網(wǎng)格72重疊到3D圖片 70上。用戶接口還示出了投影中心點(diǎn)74。網(wǎng)格可以是彩色的(并且用戶可以選擇顏色),從而網(wǎng)格最佳地與背景圖片70對比。用戶接口還可以包括顯示用于調(diào)整投影矩陣的最常見的參數(shù)的部分76。在部分76中,每個(gè)參數(shù)可以具有與特定參數(shù)相關(guān)聯(lián)的拖動(dòng)墊78以及一個(gè)或多個(gè)數(shù)字輸入框80,其允許用戶調(diào)整投影矩陣的每個(gè)參數(shù)。如圖4中所示的“拖動(dòng)墊” 78通過使1或2個(gè)變量能夠由用戶同時(shí)拖動(dòng)而使用戶能夠控制變量的值,即便在這些變量不一定可按他們的性質(zhì)而被拖動(dòng)時(shí)。為了將拖動(dòng)墊安裝在應(yīng)用中,編程者將拖動(dòng)墊設(shè)置到應(yīng)用中,并且向特定的拖動(dòng)墊指派1或2個(gè)變量以允許用戶使用拖動(dòng)墊操縱1或2個(gè)變量。當(dāng)安裝了拖動(dòng)墊時(shí)(其中拖動(dòng)墊被示出為安裝在圖4 中),這些1或2個(gè)變量中的每個(gè)被指配給拖動(dòng)墊的χ分量或拖動(dòng)墊的y分量,意味著用戶使用拖動(dòng)墊的頂部和底部控制一個(gè)變量(y分量)并且使用拖動(dòng)墊的左側(cè)和右側(cè)控制另一變量(χ分量)。為了使用拖動(dòng)墊,用戶使光標(biāo)(其可以由例如鼠標(biāo)控制)停留在屏幕上的拖動(dòng)墊上。隨后,用戶按下鼠標(biāo)并且用戶移動(dòng)光標(biāo)以設(shè)定變量改變的速率。隨后,將光標(biāo)移動(dòng)到鼠標(biāo)被首先按下的點(diǎn)的左側(cè)將使指配給X坐標(biāo)的變量以與距起點(diǎn)的距離成比例的速率減少。 相似地,將鼠標(biāo)移動(dòng)到該點(diǎn)的右側(cè)將使指配給X坐標(biāo)的變量以與距起點(diǎn)的距離成比例的速率增加。左/右移可以被稱為第一變量/參數(shù)的第一控制軸。相似地,從起點(diǎn)向上和向下移動(dòng)光標(biāo)將執(zhí)行相同的操作,不同之處在于這將改變指配給y坐標(biāo)而非X坐標(biāo)的變量。在拖動(dòng)期間,墊自身將不移動(dòng);其將僅移動(dòng)附于指配給拖動(dòng)墊的χ和y分量的變量的元素的位置。上/下移可以被稱為第二變量/參數(shù)的第二控制軸。返回圖4,由于技術(shù)用戶仍未使網(wǎng)格與圖像對齊并且網(wǎng)格線不與圖像中的自然線平行,因此投影矩陣被示出處于缺省位置。例如,網(wǎng)格72a的遠(yuǎn)左側(cè)與圖像中的附近的自然黑線交叉(而非保持與其平行)。圖5圖示了用于調(diào)整圖4中所示的投影網(wǎng)格的用戶接口的示例,顯著不同之處在于技術(shù)用戶已使網(wǎng)格72與圖像70對齊(表示圖3,過程58的完成)。在該圖中,在部分76 中投影矩陣的參數(shù)值不同,反映了網(wǎng)格72已與圖像70對準(zhǔn),從而圖像中的平行線與網(wǎng)格中的平行線匹配并且圖像中的垂直線與網(wǎng)格中的垂直線匹配,保持90度角的投影角。此外, 如果網(wǎng)格將上升(通過調(diào)整其y坐標(biāo)),則網(wǎng)格線將繼續(xù)與圖片中的適當(dāng)?shù)淖匀痪€平行和垂直。在圖像左側(cè)附近的天花板水平上,將注意到包括3條不同的線的3D微件82,每條線表示特定的3D軸(χ、y和ζ)。在一個(gè)實(shí)施例中,這是當(dāng)光標(biāo)停留在圖片上時(shí)其呈現(xiàn)的樣子。 當(dāng)光標(biāo)(諸如通過正在移動(dòng)的諸如鼠標(biāo)的輸入設(shè)備)來回移動(dòng)時(shí),3條線將總是指向表示相對該點(diǎn)的投影角度的方向,由此使用戶能夠停留在背景圖像的特定物品上以進(jìn)一步確保對準(zhǔn)是適當(dāng)?shù)?。表?表面編輯
返回圖3,技術(shù)用戶添加/刪除/修改圖像表面并且使用如圖6中更詳細(xì)示出的諸如拖動(dòng)墊和數(shù)字輸入框控件的輸入設(shè)備來調(diào)整每個(gè)表面的定位。在該系統(tǒng)的一些實(shí)施例中,在系統(tǒng)中的商業(yè)用戶的任務(wù)之前技術(shù)用戶使用構(gòu)造應(yīng)用限定表面(圖3,過程60)。表面是商業(yè)用戶可以將消費(fèi)品拖動(dòng)到其上的目標(biāo)區(qū)域。當(dāng)構(gòu)造應(yīng)用/工具46處于表面配置模式(如圖6中所示,例如使用表面編輯部件46B)時(shí),技術(shù)用戶可以在應(yīng)用中添加、刪除、移動(dòng)和旋轉(zhuǎn)表面。在該系統(tǒng)中,表面以特定序列分層并且該序列確定表面彼此的前后順序(在計(jì)算機(jī)科學(xué)中還被稱為ζ順序)。在該系統(tǒng)中,表面可以是2D層并且由于特定的ζ順序,表面可以用于將掩蔽 (masking)層放在3D層前面。該掩蔽層可以是背景圖像的重疊,使得如果背景圖像包含前景特征,則前景特征將保持在商業(yè)用戶拖動(dòng)到其下面的軟件消費(fèi)品上面。此外,表面可以被限定為具有曲率而非是平坦的。曲線(curve)可以通過向每個(gè)表面添加屬性來限定,該屬性限定了 Bezier曲線、圓曲線、或者其他算法曲線以符合背景圖像中呈現(xiàn)的曲線表面。曲線可以在其Y軸、X軸或此兩者上限定。圖6圖示了用于創(chuàng)建、命名和定位圖4中示出的每個(gè)表面的用戶接口的示例。該用戶接口允許技術(shù)用戶創(chuàng)建每個(gè)表面、命名每個(gè)表面,并且定位每個(gè)表面,使得在將消費(fèi)品設(shè)置在其上時(shí),其將呈現(xiàn)為消費(fèi)品被直接設(shè)置到背景圖像中的表面上。用戶接口可以包括 3D圖像70和表面編輯部分84。表面編輯部分84可以進(jìn)一步包括表面命名和添加部分86 (其允許用戶添加/命名/選擇用于編輯的表面),以及表面參數(shù)部分88 (其具有如上文所述的相同的拖動(dòng)墊78和數(shù)字輸入框80),其允許用戶調(diào)整每個(gè)表面的一個(gè)或多個(gè)參數(shù)。如圖6中所示,當(dāng)用戶在表面命名和添加部分86中選擇/添加表面時(shí),其與3D圖像70同步,使得表面90的圖形表示(在該示例中諸如左墻)呈現(xiàn)在圖像70上面。此外,當(dāng)用戶點(diǎn)擊表面命名和添加部分86中的表面90或者表面的名稱時(shí),此兩者將被突出顯示。當(dāng)表面被選擇時(shí),該表面的細(xì)節(jié)(由于它們當(dāng)前存在)呈現(xiàn)在表面參數(shù)部分88中的標(biāo)志“編輯所選表面(Edit Selected Surface)”下方。在該狀態(tài)下,用戶可以使用與上文所述相同的拖動(dòng)墊78和數(shù)字輸入框80來編輯名稱和3D坐標(biāo)以對其進(jìn)行定位。如下文所述,商業(yè)用戶隨后使用每個(gè)表面來定位消費(fèi)品。然而,當(dāng)3D應(yīng)用完成時(shí),這些表面通常不可見并且在構(gòu)造應(yīng)用生成的最終應(yīng)用中將是不可見的。消費(fèi)品/編輯消費(fèi)品
返回圖3,商業(yè)用戶可以通過拖動(dòng)和放下來針對3D環(huán)境添加/刪除/編輯/移動(dòng)一個(gè)或多個(gè)消費(fèi)品或者商業(yè)用戶選擇先前添加的消費(fèi)品,如圖7和8中所示的那樣(62)。消費(fèi)品編輯部件的用戶接口 100可以包括3D圖像70 (其已與投影矩陣對準(zhǔn)并且具有技術(shù)用戶添加的表面)和消費(fèi)品部分102。消費(fèi)品部分102可以包括編輯表面部分104 (其允許用戶添加或編輯表面)和消費(fèi)品列表部分106,消費(fèi)品列表部分106列出編程者預(yù)先限定的軟件消費(fèi)品定義的集合(諸如一般文本消費(fèi)品、圖像消費(fèi)品、視頻彈出消費(fèi)品等)。在該系統(tǒng)中, 沒有針對可以被限定的消費(fèi)品的類別的限制并且系統(tǒng)不限于圖7中示出的消費(fèi)品。例如, 實(shí)現(xiàn)構(gòu)造應(yīng)用的系統(tǒng)的編程者可以創(chuàng)建,但不限于視頻顯示、網(wǎng)絡(luò)攝影顯示、交互對象、數(shù)據(jù)庫驅(qū)動(dòng)數(shù)據(jù)網(wǎng)格、可拖動(dòng)面板、聊天框、使用標(biāo)準(zhǔn)客戶端-服務(wù)器架構(gòu)的Q&A部件等。消費(fèi)品列表部分106具有拖放系統(tǒng),其使得商業(yè)用戶能夠通過將消費(fèi)品從列表 106拖到場景/圖像70上來添加新的消費(fèi)品。用戶接口還可以包括參數(shù)定義系統(tǒng)(圖7中未示出),其使得消費(fèi)品的編程者能夠限定什么參數(shù)用于該消費(fèi)品,并且使商業(yè)用戶能夠填入關(guān)于該消費(fèi)品的值。使用創(chuàng)作部件46C,消費(fèi)品可以被這樣設(shè)置即使得其跨越多個(gè)表面。為此,創(chuàng)建檢測相鄰表面的系統(tǒng),并且當(dāng)商業(yè)用戶將消費(fèi)品這樣設(shè)置即使得其在2個(gè)或更多個(gè)不同表面之間配合(fit)時(shí),部分消費(fèi)品將被設(shè)置在一個(gè)表面上,而部分將被設(shè)置在另一表面上。 在使用該特征的一實(shí)施例中,所設(shè)置的消費(fèi)品數(shù)據(jù)結(jié)構(gòu)(圖11)將不僅包含一個(gè)字段集合: {父id (parent id), χ, y},而且包含含有相同字段的陣列,以及用于描述每個(gè)表面上裁切設(shè)置的消費(fèi)品的部分的另外4個(gè)更多字段,因此新的字段集合將是[{父id,χ, y,左裁 (cropleft),右裁(cropright),頂裁(croptop),底裁(cropbottom) }, ···,…]。圖7和8圖示了圖2中示出的方法的接口過程的示例。圖7示出了在所有先前的步驟(其中技術(shù)用戶建立矩陣和表面)之后,商業(yè)用戶最初將交互的接口模式。在該狀態(tài)下, 商業(yè)用戶可以將任何可用的軟件消費(fèi)品(在此展示中標(biāo)有“貼花(Decals)”)拖放到任何表面上。綠色箭頭108 (僅出于說明的目的重疊,因?yàn)槠湮闯尸F(xiàn)在用戶接口中)示出了商業(yè)用戶將消費(fèi)品拖放到表面上的鼠標(biāo)路徑,并且得到的呈現(xiàn)在表面上的消費(fèi)品在箭頭的指向末端出示出。圖8示出了當(dāng)編輯已由商業(yè)用戶創(chuàng)建的消費(fèi)品時(shí)商業(yè)用戶將交互的接口模式。在消費(fèi)品部分102中,顯示根據(jù)消費(fèi)品在哪個(gè)表面上而編組的所設(shè)置消費(fèi)品(設(shè)置在圖像70 中的消費(fèi)品)的列表110。該示了通過鼠標(biāo)停留的軟件消費(fèi)品。其使用與圖4中使用的相似的同步選擇方法,使得當(dāng)用戶停留在設(shè)置消費(fèi)品的列表中的消費(fèi)品或者如圖像70上示出的實(shí)際消費(fèi)品上時(shí),此兩者被突出顯示。當(dāng)商業(yè)用戶點(diǎn)擊消費(fèi)品時(shí),將打開表單(圖9), 其提示商業(yè)用戶輸入呈現(xiàn)在該表單上的關(guān)于該消費(fèi)品的參數(shù)(諸如標(biāo)題、描述和參數(shù))值。圖10和11圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的系統(tǒng)的對象模型110,其中圖10 圖示了示出應(yīng)用如何存儲(chǔ)和處置消費(fèi)品定義的對象模型。該倉庫可以以任何面向?qū)ο蟮挠浄?諸如但不限于XML)表述。圖11示出了如何將設(shè)置的消費(fèi)品存儲(chǔ)在應(yīng)用中并且隨著商業(yè)用戶與系統(tǒng)交互而增長并且基本上描述了由商業(yè)用戶執(zhí)行的所有活動(dòng)的結(jié)果。圖11 中所示的“父id”字段指的是父表面,然而構(gòu)造應(yīng)用可以用于構(gòu)造如下最終應(yīng)用,其中消費(fèi)品不僅可以設(shè)置在表面上,而且實(shí)際上消費(fèi)品可以設(shè)置到另一消費(fèi)品上,在該情況下,父id 指的是父消費(fèi)品的存儲(chǔ)器地址(ID)。圖11還示出了關(guān)于消費(fèi)品/內(nèi)容塊的語言代碼參數(shù), 其允許在對象模型中限定消費(fèi)品/內(nèi)容塊的語言,而且還允許在不必重新限定關(guān)于消費(fèi)品 /內(nèi)容塊的對象模型的情況下容易地改變消費(fèi)品/內(nèi)容塊的語言。圖12圖示了用于將內(nèi)容設(shè)置在3D環(huán)境中的系統(tǒng)中的數(shù)據(jù)倉庫和用戶動(dòng)作的更多細(xì)節(jié)。構(gòu)造應(yīng)用和最終應(yīng)用兩者均使用數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)應(yīng)用了解做什么所需的信息并且數(shù)據(jù)結(jié)構(gòu)在這兩個(gè)應(yīng)用之間共享。倉庫可以使用在也主控上述工具46的計(jì)算機(jī)上運(yùn)行的基于軟件的數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn),但是也可以通過硬件實(shí)現(xiàn)。倉庫120可以包括項(xiàng)目數(shù)據(jù)倉庫122、 表面?zhèn)}庫124、消費(fèi)品定義和類定義126以及消費(fèi)品倉庫128。存儲(chǔ)消費(fèi)品的定義的倉庫1 在編程者執(zhí)行應(yīng)用之前創(chuàng)立并且在商業(yè)用戶可以開始使用系統(tǒng)之前必須包含至少一個(gè)限定的消費(fèi)品。倉庫126在應(yīng)用運(yùn)行時(shí)是固定的,并且在應(yīng)用運(yùn)行期間不應(yīng)改變。為了使用該倉庫126,首先消費(fèi)品的編程者編寫實(shí)現(xiàn)如期望的特定消費(fèi)品的(如計(jì)算機(jī)科學(xué)中定義的)類。隨后,編程者創(chuàng)建定義所實(shí)現(xiàn)的消費(fèi)品的新對象,并且將該對象添加到消費(fèi)品倉庫128,該消費(fèi)品倉庫1 可以包含數(shù)目無限制的消費(fèi)品。每個(gè)消費(fèi)品應(yīng)定義將顯示給用戶的名稱和描述并且限定每個(gè)參數(shù),用于創(chuàng)立表單,提示用戶適當(dāng)?shù)膮?shù),提供與每個(gè)參數(shù)相關(guān)聯(lián)的正確的表單控件,并且使系統(tǒng)了解在商業(yè)用戶完成表單錄入之后如何存儲(chǔ)數(shù)據(jù)。如上在圖3中所述,當(dāng)商業(yè)用戶編輯消費(fèi)品時(shí),構(gòu)造存儲(chǔ)商業(yè)用戶針對系統(tǒng)的輸入的倉庫。圖12還圖示了在用戶動(dòng)作(如參照圖3描述的過程52至62)、數(shù)據(jù)倉庫122至 128、呈現(xiàn)引擎130、用于上述技術(shù)用戶和商業(yè)用戶的用戶接口 132以及用于遞送到客戶的完成的3D應(yīng)用(最終應(yīng)用)的用戶接口 134之間的交互。由于構(gòu)造應(yīng)用(132)是WYSIWYG 編輯器,因此最終應(yīng)用134在視覺上是構(gòu)造應(yīng)用的子集。然而,由于軟件消費(fèi)品可以具有與 “釋放模式”功能不同的“設(shè)計(jì)模式”功能,因此在最終應(yīng)用中可能獲得更多功能。完成的最終應(yīng)用的示例可以是聊天室,其包含聊天面板和具有按鈕形式的相關(guān)選項(xiàng)以及其他常見的用戶接口控件。項(xiàng)目數(shù)據(jù)倉庫122存儲(chǔ)關(guān)于所有用戶工作以產(chǎn)生的應(yīng)用的所有數(shù)據(jù)和元數(shù)據(jù),而表面?zhèn)}庫1 存儲(chǔ)所有表面數(shù)據(jù)。消費(fèi)品定義倉庫126存儲(chǔ)源代碼或者具有類定義形式的編譯二進(jìn)制軟件,以及圖10和11中概述的數(shù)據(jù)。消費(fèi)品倉庫128存儲(chǔ)由商業(yè)用戶添加的所有消費(fèi)品的設(shè)置和參數(shù)以及數(shù)據(jù)。呈現(xiàn)引擎130消耗并且聚集來自所有數(shù)據(jù)源的數(shù)據(jù)并且所有應(yīng)用使用呈現(xiàn)引擎 130用于以交互方式在屏幕上顯示完成的結(jié)果。呈現(xiàn)引擎通過原樣呈現(xiàn)122中的背景圖像而啟動(dòng)。隨后,呈現(xiàn)引擎查看所有表面并且在消費(fèi)品將去往的屏幕上創(chuàng)建不可見的(或者如果構(gòu)造應(yīng)用處于表面編輯模式,則可見的)視口(矩形區(qū)域)。通過以下來計(jì)算這些視口的3D 或2D位置查看124中的表面的坐標(biāo),并且計(jì)入122中的投影矩陣,并且使用標(biāo)準(zhǔn)的3D投影計(jì)算機(jī)算法用于將視口投影到2D計(jì)算機(jī)監(jiān)視顯示器上。隨后,呈現(xiàn)引擎查看來自與每個(gè)表面(其現(xiàn)在由視口表示)相關(guān)聯(lián)的128的每個(gè)消費(fèi)品。其將消費(fèi)品設(shè)置到視口上,再次使用標(biāo)準(zhǔn)3D算法來了解如何將每個(gè)消費(fèi)品變換到顯示監(jiān)視器的各像素上,條件是給定視口的位置和設(shè)置的消費(fèi)品的位置。在該過程期間,呈現(xiàn)引擎還通過創(chuàng)建126中定義的(多個(gè)) 類的實(shí)例并且隨后將由設(shè)置的消費(fèi)品定義的參數(shù)設(shè)置到消費(fèi)品實(shí)例中,使來自1 的設(shè)置的消費(fèi)品與來自126的消費(fèi)品定義組合。最后,呈現(xiàn)引擎指令消費(fèi)品實(shí)例將其自身呈現(xiàn)到具有由商業(yè)用戶62給出的參數(shù)的視口的計(jì)算位置上。用戶接口 132表示用于構(gòu)造如上所述的應(yīng)用的應(yīng)用邏輯和用戶接口邏輯并且用戶接口 134表示建議構(gòu)造應(yīng)用創(chuàng)建的并且由最終應(yīng)用的軟件客戶和所有終端用戶使用的最終應(yīng)用。上述系統(tǒng)和方法可用于生成3D應(yīng)用(最終應(yīng)用),該3D應(yīng)用能夠嵌入到協(xié)作系統(tǒng)中,使得許多終端用戶同時(shí)注意到虛擬事件。在一個(gè)實(shí)施例中,構(gòu)造應(yīng)用或最終應(yīng)用或此兩者可以使用富互聯(lián)網(wǎng)應(yīng)用平臺(tái)實(shí)現(xiàn),其包括但不限于Adobe Flash和Microsoft Silverlight (業(yè)界中最常見的兩個(gè)平臺(tái))。這樣做的優(yōu)點(diǎn)在于(多個(gè))應(yīng)用變?yōu)榉窍螺d的無處不在的解決方案。然而,該系統(tǒng)也可以使用其他技術(shù)實(shí)現(xiàn)。作為上述系統(tǒng)和方法的結(jié)果,非技術(shù)用戶能夠簡單地通過拖放來添加、編輯和刪除3D世界中設(shè)置的內(nèi)容,從而應(yīng)用可以由需要它們的用戶創(chuàng)建,而不需要編程者干預(yù)。該系統(tǒng)還提供了元編程環(huán)境,其使得能夠通過限定高級建模方面而非源代碼來從頭開始創(chuàng)建應(yīng)用,其中元編程環(huán)境是拖放和表單編輯的系統(tǒng)。此外,為使用構(gòu)造應(yīng)用構(gòu)建的應(yīng)用創(chuàng)建的軟件消費(fèi)品可以在其他應(yīng)用中可互換地重新使用。例如,如果存在特定的媒體播放器(其由編程者編寫并且包括在出于一個(gè)特定應(yīng)用的目的而向用戶提供的管理工具中),則在其他商業(yè)用戶創(chuàng)建的其他應(yīng)用中可以重新使用該媒體播放器,不需要編程者采取使該媒體播放器可重新使用的動(dòng)作。該系統(tǒng)還提供了用于在不逐行編寫代碼的情況下創(chuàng)建應(yīng)用的方式并且縮短了傳統(tǒng)的編輯-編譯-測試-運(yùn)行開發(fā)周期。此外,開發(fā)者和商業(yè)用戶容易地共享和修改消費(fèi)品并且改進(jìn)彼此的工作。此外,創(chuàng)建(由商業(yè)用戶使用的)軟件消費(fèi)品的軟件編程者不需要具有3D編程專門技術(shù)并且商業(yè)用戶不需要具有任何3D專門技術(shù);拖動(dòng)到3D表面不需要比計(jì)算機(jī)軟件應(yīng)用中的普通拖放更多的技能。應(yīng)用運(yùn)行時(shí)平臺(tái)在運(yùn)行三維應(yīng)用的計(jì)算機(jī)系統(tǒng)上執(zhí)行。該應(yīng)用運(yùn)行時(shí)平臺(tái)是被描述為上文的構(gòu)造應(yīng)用的應(yīng)用的功能子集。應(yīng)用運(yùn)行時(shí)在概念上類似于Adobe PDF Reader 如何在你創(chuàng)建PDF文件時(shí)準(zhǔn)確地顯示與你在Microsoft Word或其他編輯器中可看到的相同的事物。使此分離為另一應(yīng)用的一點(diǎn)是減少代碼尺寸,這有利于加快應(yīng)用的加載時(shí)間并且減少錯(cuò)誤和安全弱點(diǎn)。再者,應(yīng)用運(yùn)行時(shí)可以被實(shí)現(xiàn)為可重新使用的平臺(tái),從而如果使用構(gòu)造應(yīng)用創(chuàng)建多個(gè)應(yīng)用,則該運(yùn)行時(shí)平臺(tái)僅需被加載一次并且可以支持使用本發(fā)明創(chuàng)建的所有應(yīng)用。以上系統(tǒng)和方法的實(shí)施例的示例將允許商業(yè)用戶與(使用3D圖像實(shí)現(xiàn)的)虛擬顯示交互并且將一個(gè)或多個(gè)軟件消費(fèi)品/內(nèi)容添加到虛擬顯示。在圖4至8中示出了該實(shí)施例的示例,其示出了虛擬顯示的休息室,其被修改以將一個(gè)或多個(gè)軟件消費(fèi)品/內(nèi)容添加到虛擬顯示中。盡管前文參照本發(fā)明的特定的實(shí)施例,但是本領(lǐng)域的技術(shù)人員將認(rèn)識到,在不偏離由所附權(quán)利要求限定其范圍的本發(fā)明的原理和精神的情況下,可以在該實(shí)施例中進(jìn)行各種改變。
權(quán)利要求
1.一種用于生成三維應(yīng)用的系統(tǒng),包括執(zhí)行構(gòu)造工具的計(jì)算機(jī)系統(tǒng),技術(shù)用戶和商業(yè)用戶使用所述構(gòu)造工具生成三維應(yīng)用;倉庫,與所述計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián),存儲(chǔ)與所述構(gòu)造工具和所述三維應(yīng)用相關(guān)聯(lián)的數(shù)據(jù);應(yīng)用運(yùn)行時(shí)平臺(tái),在運(yùn)行所述三維應(yīng)用的計(jì)算機(jī)系統(tǒng)上執(zhí)行;終端用戶應(yīng)用,包括所述三維應(yīng)用和所述應(yīng)用運(yùn)行時(shí)平臺(tái);以及其中所述構(gòu)造工具進(jìn)一步包括投影矩陣部件,該投影矩陣部件允許所述技術(shù)用戶調(diào)整投影矩陣以與三維圖像對準(zhǔn);以及創(chuàng)作部件,該創(chuàng)作部件允許商業(yè)用戶將一個(gè)或多個(gè)消費(fèi)品設(shè)置到所述三維圖像上以生成具有所述三維圖像和一個(gè)或多個(gè)消費(fèi)品的所述三維應(yīng)用,其中所述一個(gè)或多個(gè)消費(fèi)品相對于所述三維圖像維持透視。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述倉庫進(jìn)一步包括關(guān)于每塊內(nèi)容的消費(fèi)品對象,其中所述消費(fèi)品對象進(jìn)一步包括語言代碼參數(shù),所述語言代碼參數(shù)包含關(guān)于所述消費(fèi)品對象的語言,其中所述語言代碼參數(shù)允許在不改變所述消費(fèi)品對象的一個(gè)或多個(gè)其他參數(shù)的情況下改變所述消費(fèi)品對象的語言。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述投影矩陣部件進(jìn)一步包括拖動(dòng)墊,所述拖動(dòng)墊是控制所述投影矩陣的一個(gè)或多個(gè)變量的工具。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述構(gòu)造工具進(jìn)一步包括拖動(dòng)墊,其中所述拖動(dòng)墊具有第一控制軸和第二控制軸,其中第一變量被指配給所述第一控制軸,從而使用所述拖動(dòng)墊使用所述第一控制軸控制所述第一變量的值,并且第二變量被指配給所述第二控制軸,從而使用所述拖動(dòng)墊使用所述第二控制軸控制所述第二變量的值。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中所述拖動(dòng)墊進(jìn)一步包括所述構(gòu)造工具的用戶接口部件,其中所述第一控制軸進(jìn)一步包括由用戶操縱來改變所述第一變量的值的所述用戶接口部件的右側(cè)和左側(cè),而所述第二控制軸進(jìn)一步包括由用戶操縱來改變所述第二變量的值的所述用戶接口部件的頂側(cè)和底側(cè)。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述三維圖像是虛擬顯示的圖像,以及其中所述一個(gè)或多個(gè)消費(fèi)品是被設(shè)置到所述虛擬顯示中的對象,從而用戶可以與所述虛擬顯示交互。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述三維應(yīng)用進(jìn)一步包括不需要下載的Flash實(shí)現(xiàn)的三維應(yīng)用。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述構(gòu)造工具進(jìn)一步包括表面編輯部件,該表面編輯部件允許所述技術(shù)用戶在所述三維圖像上面添加一個(gè)或多個(gè)表面,以及其中所述創(chuàng)作部件允許所述商業(yè)用戶將所述一個(gè)或多個(gè)消費(fèi)品設(shè)置到所述一個(gè)或多個(gè)表面上以生成具有三維圖像、一個(gè)或多個(gè)表面以及所述一個(gè)或多個(gè)消費(fèi)品的所述三維應(yīng)用。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述表面編輯部件進(jìn)一步包括拖動(dòng)墊,所述拖動(dòng)墊是控制使用所述表面編輯部件正在編輯的一個(gè)或多個(gè)表面的一個(gè)或多個(gè)變量的工具。
10.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述創(chuàng)作部件允許用戶進(jìn)行添加、刪除和修改所述一個(gè)或多個(gè)軟件消費(fèi)品中的一項(xiàng)。
11.一種生成三維應(yīng)用的方法,包括提供在計(jì)算機(jī)系統(tǒng)上執(zhí)行的構(gòu)造工具,技術(shù)用戶和商業(yè)用戶使用所述構(gòu)造工具生成三維應(yīng)用;在與所述計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián)的倉庫中存儲(chǔ)與所述構(gòu)造工具和所述三維應(yīng)用相關(guān)聯(lián)的數(shù)據(jù);技術(shù)用戶使用作為所述構(gòu)造工具的一部分的投影矩陣部件調(diào)整投影矩陣以與三維圖像對準(zhǔn);商業(yè)用戶使用作為所述構(gòu)造工具的一部分的創(chuàng)作部件將一個(gè)或多個(gè)消費(fèi)品設(shè)置到所述三維圖像上以生成具有所述三維圖像和一個(gè)或多個(gè)消費(fèi)品的所述三維應(yīng)用,其中所述一個(gè)或多個(gè)消費(fèi)品相對于所述三維圖像維持透視。
12.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括使用拖動(dòng)墊控制所述投影矩陣的一個(gè)或多個(gè)變量。
13.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括使用拖動(dòng)墊控制一個(gè)或多個(gè)變量,其中所述拖動(dòng)墊具有第一控制軸和第二控制軸,其中第一變量被指配給所述第一控制軸,從而使用所述拖動(dòng)墊使用所述第一控制軸控制所述第一變量的值,并且第二變量被指配給所述第二控制軸,從而使用所述拖動(dòng)墊使用所述第二控制軸控制所述第二變量的值。
14.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括由技術(shù)用戶使用作為所述構(gòu)造工具的一部分的表面編輯部件在所述三維圖像上面添加一個(gè)或多個(gè)表面,以及其中所述創(chuàng)作部件允許所述商業(yè)用戶將所述一個(gè)或多個(gè)消費(fèi)品設(shè)置到所述一個(gè)或多個(gè)表面上以生成具有三維圖像、一個(gè)或多個(gè)表面以及所述一個(gè)或多個(gè)消費(fèi)品的所述三維應(yīng)用。
15.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括使用拖動(dòng)墊來控制使用所述表面編輯部件正在編輯的一個(gè)或多個(gè)表面的一個(gè)或多個(gè)變量。
全文摘要
描述了允許用戶與二維(2D)照片或圖像交互如同照片或圖像是三維(3D)照片圖像的方法和工具的集合。
文檔編號G06F9/44GK102388362SQ201080015632
公開日2012年3月21日 申請日期2010年4月9日 優(yōu)先權(quán)日2009年4月9日
發(fā)明者B. 加蘭 H. 申請人:翁24公司