專利名稱:將三維場景分層結(jié)構(gòu)集成到二維合成系統(tǒng)中的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計算機圖形學(xué)領(lǐng)域。更具體地,發(fā)明涉及將三維圖形集成到二維合成系統(tǒng)中。
背景技術(shù):
部分因為存儲器和總線速度沒有跟上主處理器和/或圖形處理器的發(fā)展,造成了計算機系統(tǒng)上訪問圖形的傳統(tǒng)模型的限制。一般,用于使用位圖準備幀的當前的模型需要太多數(shù)據(jù)處理來跟上當期望復(fù)雜圖形效果時的硬件刷新率。結(jié)果是,當使用常規(guī)圖形模型嘗試復(fù)雜圖形效果時,代替完成為下一幀及時產(chǎn)生所感知的可視效果的改變,這些改變可能對不同的幀添加,導(dǎo)致可視上不期望的結(jié)果。
此外,經(jīng)由引入諸如所顯示的3D圖像動畫的三維(3D)圖形和特效,加劇了該問題。需要能夠?qū)崟r呈現(xiàn)3D圖像、當圖像由計算機程序調(diào)用時創(chuàng)建圖像的圖形生成和合成系統(tǒng)。此外,如果需要在顯示器上提供3D和2D圖像的混合,3D圖像的創(chuàng)建應(yīng)被集成到二維(2D)圖形顯示中。針對這些和其它考慮進行了本發(fā)明。
發(fā)明概述以上和其它問題通過將3D模型對象集成到2D可視對象的分層結(jié)構(gòu)中并無縫處理3D圖像和2D圖像以便呈現(xiàn)在2D顯示器上來解決。對可視分層結(jié)構(gòu)中3D模型對象和2D可視對象的處理被集成,使得處理可容易地在3D操作與2D操作之間切換。此外,創(chuàng)建顯示圖像時的處理可視2D對象和3D模型對象之間的轉(zhuǎn)變換的次數(shù)沒有結(jié)構(gòu)上的限制。因此,用戶可自由地創(chuàng)建無限地將3D圖像嵌入到2D圖像和將2D圖像嵌入到3D圖像的圖形。例如,用戶界面對話框可被構(gòu)造到顯示為另一對話框的一部分的球體上,而該另一對話框又被構(gòu)造到錐體上。
根據(jù)另一方面,本發(fā)明涉及用于將創(chuàng)建3D圖像和2D圖像的計算機程序?qū)ο蠹傻胶锌梢?D對象或指向3D模型對象的3D場景對象的視件樹對象分層結(jié)構(gòu)中的數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)包括對象樹分層結(jié)構(gòu)、一個或多個可視2D對象,以及指向3D模型對象的一個或多個3D參照或場景對象。可視2D對象定義繪制2D圖像的操作。3D參照或場景對象定義指向?qū)ο蟮膮⒄眨昧艘黄饋砝L制由一個或多個3D模型組成的三維場景的二維視圖的操作。3D參照或場景對象指向3D模型對象和照相機對象。照相機對象定義3D場景的二維視圖。3D模型對象繪制3D模型,并定義在繪制模型輪廓中使用的網(wǎng)格信息以及在繪制模型的表面紋理中使用的材質(zhì)信息。模型的表面紋理的材質(zhì)信息可由可視2D對象、3D參照或場景對象或可視2D對象和/或3D參照場景對象的樹分層結(jié)構(gòu)定義。
根據(jù)又一方面,本發(fā)明涉及用于處理計算機程序可視對象的分層結(jié)構(gòu)以便創(chuàng)建從計算機輸出的二維(2D)和三維(3D)圖像的混合的方法。該方法包括遍歷可視對象的第一樹分層結(jié)構(gòu)的分枝以便處理葉子對象和分枝對象,以及檢測下一未處理可視對象是可視2D對象還是可視3D對象。如果檢測到可視2D對象,則調(diào)用2D處理來處理該可視對象。如果檢測到可視3D對象,則調(diào)用3D處理來處理該可視對象。3D處理設(shè)置照相機視圖,并繪制由可視3D對象定義的一個或多個3D模型的圖像。圖像是基于一個或多個3D模型的照相機視圖繪制的。
本發(fā)明可實現(xiàn)為計算機進程、計算系統(tǒng)或作為諸如計算機程序產(chǎn)品或計算機可讀介質(zhì)的制品。計算機可讀介質(zhì)可以是可由計算機系統(tǒng)讀取的并對指令的計算機程序編碼以便執(zhí)行計算機進程的計算機存儲介質(zhì)。計算機可讀介質(zhì)也可以是可由計算系統(tǒng)讀取并對指令的計算機程序編碼以便執(zhí)行計算機進程的載波上的傳播信號。
這些和各種其它特征以及優(yōu)點是本發(fā)明的特征,當閱讀以下詳細描述和審閱相關(guān)聯(lián)附圖之后,這些特征和優(yōu)點將是顯而易見的。
附圖簡述
圖1示出了對2D對象的視件樹中嵌入3D對象的根據(jù)本發(fā)明的一個實施例組織的可視對象分層結(jié)構(gòu)。
圖2示出了可在其上實現(xiàn)本發(fā)明的實施例的合適的計算系統(tǒng)環(huán)境的示例。
圖3是一般表示可在其中包含本發(fā)明的圖形層體系結(jié)構(gòu)的框圖。
圖4是用于諸如通過遍歷場景圖來提供圖形命令和其它數(shù)據(jù)等處理場景圖的視件和相關(guān)聯(lián)組件的場景圖的表示。
圖5是所構(gòu)造的認證視件、繪圖視件和相關(guān)聯(lián)繪圖原語的場景圖的表示。
圖6示出了視件樹分層結(jié)構(gòu)的一部分的詳細示例,其中可視3D對象指向含有原語3D對象以及可視3D內(nèi)容的3D模型對象,可視3D內(nèi)容還指向由一組3D模型組成的3D場景,一個這樣的3D模型含有可視2D對象作為材質(zhì)內(nèi)容。
圖7示出了在定義3D場景或模型的照相機視圖即2D視圖中所使用的照相機參數(shù)。
圖8是示出用于處理視件樹中的可視2D對象的操作流程以及對處理同一視件樹中的可視3D對象的轉(zhuǎn)變的操作流程圖。
圖9是示出用于處理視件樹中可視3D對象以及對處理同一視件樹中可視2D對象的轉(zhuǎn)變的操作流程的操作流程圖。
圖10是按圖8和9的操作流程圖示出處理的示例性可視對象樹。
發(fā)明詳細描述根據(jù)本發(fā)明的一個實施例,圖1示出了集成到可視對象樹分層結(jié)構(gòu)中的3D參照或場景對象,使得該樹具有可視2D對象和3D參照或場景可視對象兩者?!翱梢暋保敶颂幣c對象相關(guān)聯(lián)時,表示由對象在計算機顯示屏上呈現(xiàn)的圖畫。在視件樹的此示例性圖示中,根可視對象10有四個孩子,替換實施例中,它具有作為3D場景孩子的一個孩子??梢?D孩子是12、14和16,在替換中3D場景對象18和20之一是根可視對象10的第四個孩子。
3D場景對象18是可視3D對象18,且包含對模型3D對象24的參照或指針23,以及對用于將3D模型視作2D圖像的照相機對象22的參照或指針25。在名為MODEL 3D CONSTRUCTION APPLICATION PROGRAM INTERFACE的交叉引用專利申請中更詳細地描述了可視3D對象,以上申請被引用。照相機22將由對象24描繪的3D模型視作3D場景。模型3D對象24和照相機對象22一起在計算機顯示屏上產(chǎn)生3D場景的2D圖像。3D場景對象20是具有繪圖環(huán)境的可視2D對象。在本發(fā)明的該實施例中,可視2D對象的繪圖環(huán)境包含對3D對象24建模的參照或指針27以及對照相機對象22的參照或指針29。
為創(chuàng)建圖像和呈現(xiàn)顯示,從左到右遍歷和處理視件樹的分支;因此圖1中的呈現(xiàn)序列被示為從左到右。在名為VISUAL AND SCENE GRAPH INTERFACE的共同轉(zhuǎn)讓的申請中描述了具有繪圖環(huán)境的可視2D對象和對視件樹的處理,該申請以上在相關(guān)申請的交叉引用中引用。對該處理的簡要審閱將在此處包含在圖3到圖5的描述中。
為了示出在該呈現(xiàn)序列中如何產(chǎn)生圖像顯示,假定可視2D對象12創(chuàng)建三角形,可視2D對象14產(chǎn)生圓形,可視2D對象16產(chǎn)生正方形。3D場景可視3D對象18或3D場景可視2D對象20產(chǎn)生如從照相機看到的3D場景。由于呈現(xiàn)序列是從左到右,后呈現(xiàn)的對象覆蓋之前呈現(xiàn)的對象,視件樹8將產(chǎn)生圖1中的顯示圖像25。換言之,由可視12產(chǎn)生的三角形和由可視14產(chǎn)生的圓形被可視16提供的正方形覆蓋,因為可視16在可視12和14之后處理。同樣,由3D場景對象18或20創(chuàng)建的3D場景的2D視圖在圓形之后產(chǎn)生,并覆蓋該圓形。通過提供包含3D場景的3D場景對象和查看該場景的虛擬照相機,3D場景被轉(zhuǎn)換成可呈現(xiàn)為來自視件樹的另一2D圖像的2D圖像。此外,由于圖像是被繪制而不是位像,顯示可實時呈現(xiàn)在計算機顯示屏上或作為其它計算機視頻輸出。
在本發(fā)明的另一顯著特征中,3D模型對象24具有材質(zhì)或紋理信息26。材質(zhì)信息26可指向由可視對象28表示的另一視件樹。該可視對象28可具有正如視件樹根對象10的可視2D對象和3D場景對象。因此,視件樹分層結(jié)構(gòu)可將3D場景對象嵌入到具有2D對象的視件樹中,且此外,具有2D對象和3D場景對象的第二視件樹又可被嵌入到第一視件樹中的3D場景對象的3D模型中。這種3D和2D對象對樹分層結(jié)構(gòu)的順序交替嵌入可處理如圖形程序創(chuàng)建者創(chuàng)建混合2D和3D圖像的期望顯示的期望次數(shù)。
視件樹分層結(jié)構(gòu)中3D對象與2D對象的集成的更詳細圖示在圖6中示出。然而,現(xiàn)在描述圖2-5來提供用于處理集成的視件樹分層結(jié)構(gòu)的示例性操作環(huán)境和軟件環(huán)境。
示例性操作環(huán)境圖2示出了可在其上實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的示例。計算系統(tǒng)環(huán)境100只是合適的計算環(huán)境的一個示例,并不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)該把計算環(huán)境100解釋為對示例性操作環(huán)境100中示出的任一組件或其組合有任何依賴性或要求。
本發(fā)明可用眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置來操作。適合在本發(fā)明中使用的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個人計算機、服務(wù)器計算機、手持或膝上型設(shè)備、圖形輸入板設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機、大型機、包含上述系統(tǒng)或設(shè)備中的任一個的分布式計算環(huán)境等。
本發(fā)明可在由計算機執(zhí)行的諸如程序模塊等的計算機可執(zhí)行指令的通用語境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計算環(huán)境中實現(xiàn),其中任務(wù)由通過通信網(wǎng)絡(luò)連接的遠程處理設(shè)備執(zhí)行。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
參考圖2,用于實現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括計算機110形式的通用計算設(shè)備。計算機110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標準體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強的ISA(EISA)總線、視頻電子技術(shù)標準協(xié)會(VESA)局部總線、加速圖形端口(AGP)總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。
計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能夠被計算機110訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以任何方法或技術(shù)實現(xiàn)的用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù);CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲;磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所需信息且可以由計算機110訪問的任何其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指的是這樣一種信號,其一個或多個特征以在信號中編碼信息的方式被設(shè)定或更改。作為示例,而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)。上述中任一個的組合也應(yīng)包括在計算機可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲器130包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),諸如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132。基本輸入/輸出系統(tǒng)133(BIOS)包含有助于諸如啟動時在計算機110中元件之間傳遞信息的基本例程,它通常存儲在ROM 131中。RAM 132通常包含處理單元120可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖2示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機110也可以包括其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作為示例,圖2示出了從不可移動、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動器141,從可移動、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動器151,以及從諸如CD ROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤156中讀取或向其寫入的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境下使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常由不可移動存儲器接口,諸如接口140連接至系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通常由可移動存儲器接口,諸如接口150連接至系統(tǒng)總線121。
以上描述和在圖2中示出的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機110提供了對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖2中,硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標注了不同的標號是為了說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,諸如圖形輸入板(電子數(shù)字化儀)164、麥克風(fēng)163、鍵盤162和定點設(shè)備161(通常指鼠標、跟蹤球或觸摸墊)向計算機110輸入命令和信息。其它輸入設(shè)備(未示出)可以包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但也可以由其它接口或總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器191或其它類型的顯示設(shè)備也經(jīng)由接口,諸如視頻接口190連接至系統(tǒng)總線121。監(jiān)視器191也可與可經(jīng)由諸如觸摸屏接口192的接口將諸如筆跡的數(shù)字化輸入輸入到計算機系統(tǒng)110中的觸摸屏面板193等集成。注意到,監(jiān)視器和/或觸摸屏面板可物理地耦合至其中包含計算設(shè)備110的外殼,諸如圖形輸入板型個人計算機中,其中觸摸屏面板193基本上用作圖形輸入板164。此外,諸如計算設(shè)備110的計算機也可以包括其它外圍輸出設(shè)備,諸如揚聲器195和打印機196,它們可以通過輸出外圍接口194等連接。
計算機110可使用至一臺或多臺遠程計算機,諸如遠程計算機180的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠程計算機180可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見網(wǎng)絡(luò)節(jié)點,且通常包括上文相對于計算機110描述的許多或所有元件,盡管在圖2中只示出存儲器存儲設(shè)備181。圖2中所示的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機110通過網(wǎng)絡(luò)接口或適配器170連接至局域網(wǎng)171。當在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機110通常包括調(diào)制解調(diào)器172或用于通過諸如因特網(wǎng)等WAN 173建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,它可以通過用戶輸入接口160或其它合適的機制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機110所描述的程序模塊或其部分可以存儲在遠程存儲器存儲設(shè)備中。作為示例,而非限制,圖2示出了遠程應(yīng)用程序185駐留在存儲器設(shè)備181上??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手段。
用于處理視件樹分層結(jié)構(gòu)的軟件環(huán)境圖3表示了可在其中處理視件樹的一般、分層的體系結(jié)構(gòu)200。如圖3中所示,根據(jù)本發(fā)明的一方面,可開發(fā)程序代碼202(例如,應(yīng)用程序或操作系統(tǒng)組件等)來以一種或多種不同的方式輸出圖形,包括經(jīng)由成像204、經(jīng)由向量圖形元素206、和/或經(jīng)由直接置于可視應(yīng)用程序編程接口(API)層212的函數(shù)/方法調(diào)用。一般,成像204向程序代碼202提供用于加載、編輯和保存圖像的機制,例如位圖。如下所述,這些圖像可由系統(tǒng)的其它部分使用,且存在使用原語繪圖代碼來直接繪制圖像的方式。向量圖形元素206提供繪制圖形的另一方式,與對象模型(以下描述)的其余部分一致。向量圖形元素206可經(jīng)由標記語言創(chuàng)建,元素/屬性系統(tǒng)208和提交器(presenter)系統(tǒng)210對其解釋來進行對可視API層212的適當調(diào)用。
圖形層體系結(jié)構(gòu)200包括高層合成和動畫引擎214,它包括或與高速緩存數(shù)據(jù)結(jié)構(gòu)216相關(guān)聯(lián)。高速緩存數(shù)據(jù)結(jié)構(gòu)216包含場景圖,它包括根據(jù)如下所述的定義的對象模型管理的分層管理的對象。一般,可視API層212向程序代碼202(和提交器系統(tǒng)210)提供至高速緩存數(shù)據(jù)結(jié)構(gòu)216的接口,包括創(chuàng)建對象、打開和關(guān)閉對象向其提供數(shù)據(jù)等的能力。換言之,高層合成和動畫引擎214展示了統(tǒng)一的媒體API層212,開發(fā)員通過其表示關(guān)于圖形和媒體的意圖以便顯示圖形信息,并向底層平臺提供足夠的信息,使得平臺可為程序代碼優(yōu)化硬件的使用。例如,底層平臺可負責(zé)高速緩存、資源協(xié)商和媒體集成。
高層合成和動畫引擎214將指令流和可能的其它數(shù)據(jù)(例如,對位圖的指針)傳遞給快速、低層合成和動畫引擎218。如此處所使用的,術(shù)語“高層”和“低層”類似于其它計算情形中所使用的,其中一般,軟件組件相對于較高組件越低,該組件越接近硬件。因此,例如,從高層合成和動畫引擎214發(fā)送的圖形信息可在低層合成和動畫引擎218處接收,在那里信息被用來將圖形數(shù)據(jù)發(fā)送到包括硬件222在內(nèi)的圖形子系統(tǒng)。
高層合成和動畫引擎214結(jié)合程序代碼202建立場景圖來表示由程序代碼202提供的圖形場景。例如,要繪制的每一項可使用繪圖指令加載,系統(tǒng)可將其高速緩存在場景圖數(shù)據(jù)結(jié)構(gòu)216中。如將在以下描述,存在指定該數(shù)據(jù)結(jié)構(gòu)216以及繪制了什么的多種不同的方式。此外,高層合成和動畫引擎214與定時和動畫系統(tǒng)220集成來提供說明(或其它)動畫控制(例如,動畫間隔)和定時控制。注意,動畫系統(tǒng)允許動畫值傳遞到系統(tǒng)中的基本任何地方,包括例如在元素屬性層208處、可視API層212內(nèi)部、以及任何其它資源中。定時系統(tǒng)在元素和可視層展示。
低層合成和動畫引擎218管理場景的合成、動畫和呈現(xiàn),然后將它們提供給圖形子系統(tǒng)222。低層引擎218為多個應(yīng)用程序的場景合成呈現(xiàn),并使用呈現(xiàn)組件實現(xiàn)到屏幕的圖形的實際呈現(xiàn)。注意,然而,有時有必要和/或有利地使某些呈現(xiàn)在較高層次上進行。例如,低層服務(wù)向多個應(yīng)用程序請求,而高層在每個應(yīng)用程序的基礎(chǔ)上例示,借此有可能經(jīng)由成像機制204在高層執(zhí)行消耗時間或應(yīng)用程序?qū)S玫某尸F(xiàn),并將對位圖的引用傳遞給較低層。
圖4和5分別示出了示例場景圖300和400,包括被稱為視件的基礎(chǔ)對象。一般而言,視件包括對用戶表示的可視虛擬表面和在顯示器上具有可視表示的對象。如圖4中所示,頂層(即根)視件302連接至可視管理器對象304,對象304也具有與窗口(HWnd)306或其中為程序代碼輸出圖形數(shù)據(jù)的類似單元的關(guān)系(例如,經(jīng)由句柄)。VisualManager 304管理對該窗口306的頂層視件(以及該視件的任何孩子)的繪制。為了繪制,可視管理器304按照分配器308調(diào)度處理(例如,遍歷或傳輸)場景圖,并為低層組件218(圖3)的對應(yīng)窗口306向該低層組件218提供圖形指令和其它數(shù)據(jù)。場景圖處理將通常由分配器308以相對慢于低層組件218和/或圖形子系統(tǒng)222的刷新率的速率調(diào)度。圖4示出了在頂層(根)視件302下方分層安排的多個孩子視件310-315,其中某些被表示為經(jīng)由繪圖環(huán)境316、317(被示為虛線框以表示它們臨時性的本質(zhì))分別使用相關(guān)聯(lián)的指令列表318和319填充,指令列表包含繪制原語和其它視件。視件也可包含其它屬性信息,如以下示例視件類中所示
可見,視件通過供應(yīng)可經(jīng)由get方法set(設(shè)置)和/或讀取的變換、剪輯、不透明度和可能的其它屬性來提供服務(wù)。此外,視件具有控制它如何參與命中測試的標志。使用Show(顯示)屬性來顯示/隱藏視件,例如當假時視件不可見,否則視件可見。
由變換屬性設(shè)置的變換為視件的子圖定義了坐標系統(tǒng)。變換前的坐標系統(tǒng)被稱為變換前坐標系統(tǒng),變化后的被稱為變換后坐標系統(tǒng),即具有變換的視件等價于具有變換節(jié)點作為雙親的視件。對視件樹和合成系統(tǒng)的更完整描述被包含在以上交叉引用的名為VISUAL AND SCENE GRAPH INTERFACE的相關(guān)專利申請中。
將可視3D集成到數(shù)據(jù)樹分層結(jié)構(gòu)中到考慮以上硬件和軟件環(huán)境時,圖6示出將3D場景對象集成到也具有可視2D對象的視件樹分層結(jié)構(gòu)中。如之前參考圖1所述,可視3D場景對象創(chuàng)建2D圖像——3D場景的照相機視圖。如以上為圖1所述,3D場景對象被實現(xiàn)為具有對3D模型的指針的可視3D對象或具有帶有對3D模型的指針的繪圖環(huán)境的可視2D對象。如為圖1所述,存在圖1中所示的對照相機對象的第二指針。在圖6的示例中,從3D場景對象到3D模型的指針由指針602表示。該指針602指向3D模型原語604,后者將繪制3D對象,并在繪制3D對象過程中使用網(wǎng)格信息606和材質(zhì)信息608。
網(wǎng)格信息606指的是2D形狀的網(wǎng)格,它可用于逼近3D模型的3D輪廓線。例如,如果拍攝將織物網(wǎng)格網(wǎng)壓在諸如椅子的3D模型上;該網(wǎng)將呈現(xiàn)椅子的輪廓。一般,網(wǎng)格由平面三角形組成。三角形通常相當小,照此形成可使用來遵循3D輪廓的精細網(wǎng)格。除三角形以外,具有多于三條邊或甚至連續(xù)邊的其它2D圖形可使用來形成網(wǎng)格,但三角形較佳,因為三角形的三個點定義一平面,這簡化了網(wǎng)格的計算。
材質(zhì)信息608,它也是對3D模型對象604關(guān)聯(lián)的信息,指的是用于填入3D模型的圖像上的表面中的紋理。紋理可以是陰影、彩色或其它可視圖像。圖6中,材料的其它可視圖像是3D場景對象610。
3D場景對象610可以是如圖1中所述的可視3D對象或可視2D對象中的任一種。在任一情況中,都有指向3D模型的指針和指向照相機對象的指針。指針612指向照相機對象來定義呈現(xiàn)3D場景的2D視圖的照相機參數(shù)。指針616指向圖6中的3D對象,它是3D內(nèi)容612的一部分。指針616指向組成3D視件樹的模型3D對象的根對象618。根對象是3D模型組對象618。3D模型組對象在包含一個或多個模型3D原語對象的3D視件樹中用作根節(jié)點或結(jié)合節(jié)點中的任一個。原語對象可以處于可視3D樹中分支的葉子處,并包含用于創(chuàng)建3D模型的繪圖信息。圖6中,存在兩個模型3D原語對象——原語620和原語622,以及模型3D光對象624。光對象624的光信息內(nèi)容定義了照亮由3D模型組成的3D場景的光和可應(yīng)用的光線的方向。每一3D模型原語的繪圖信息內(nèi)容包括網(wǎng)格信息和材質(zhì)信息。該內(nèi)容對原語622僅示為網(wǎng)格信息626和材質(zhì)信息628。材質(zhì)信息628可單單含有繪圖內(nèi)容信息或它可含有可視2D對象或3D場景對象或其兩者。在圖6的示例中,材質(zhì)信息628含有可視2D對象630。
為了審閱圖6所示的集成,圖6以從諸如圖1的對象18或?qū)ο?0的3D場景對象到模型3D對象604的指針開始。模型3D對象604含有材質(zhì)信息608,后者含有指向模型3D組對象618和照相機對象614的另一3D場景對象610。在由3D組618以其孩子定義的3D場景中,3D原語對象622含有指向可視2D對象630的材質(zhì)信息。以此方式,具有2D可視對象的視件樹分層結(jié)構(gòu)可集成到由3D場景對象創(chuàng)建的3D場景中。反過來,3D場景樹中的模型3D對象可含有指向第二視件樹的信息,集成到第二視件樹中的有另一可視2D對象、3D場景對象或這兩種類型的對象。3D場景對象和可視2D對象的這種集成可無限地進行。
本發(fā)明的顯著特征之一在于可視對象和模型3D對象不產(chǎn)生要處理的圖像的位圖而提供用于當處理視件樹時繪制圖像的指令。以上描述的是對這樣的視件樹的處理。對3D場景視件樹的處理類似,但添加了創(chuàng)建由模型3D對象定義的3D場景的2D視圖的一些操作。
3D場景對象創(chuàng)建3D場景的照相機視圖,即,2D視圖。照相機視圖由標識虛擬照相機“位置”、照相機的“查看”或瞄準方向以及照相機視野“區(qū)域”的參數(shù)指定。照相機參數(shù)的示例在圖7中示出,其中照相機的位置或觀點被定位在X,Y,Z坐標2,7,0。照相機的查看或瞄準方向由查看位置XYZ 6,1,2指定。照相機的視區(qū)被指示為30度。這些照相機參數(shù)被用于當繪制由3D原語創(chuàng)建的3D模型時設(shè)置照相機或2D視圖。
這些照相機參數(shù)反映透視圖照相機??墒褂闷渌障鄼C,諸如在以上對相關(guān)申請的交叉引用中提及的名為MODEL 3D CONSTRUCTION APPLICATIONPROGRAM INTERFACE的共同轉(zhuǎn)讓的專利申請中所述的那些。例如,直角照相機可提供其中所有的光線平行并且,主要照相機參數(shù)是瞄準或查看方向和視區(qū)的直角視圖。
圖8和圖9示出了用于處理包含可視2D對象和3D場景對象兩者的視件樹的操作流程。圖10在圖8和圖9的描述期間被引用,作為由圖8和9中的操作處理的視件樹的示例。圖8和9的邏輯操作被實現(xiàn)為(1)計算機實現(xiàn)的動作的序列或運行在計算系統(tǒng)上的程序模塊和/或(2)計算系統(tǒng)內(nèi)互連的機器邏輯電路或電路模塊。取決于實現(xiàn)本發(fā)明的計算系統(tǒng)的性能要求,實現(xiàn)是選擇的問題。從而,組成此處所述的本發(fā)明的實施例的邏輯操作被不同地稱作操作、結(jié)構(gòu)化設(shè)備、動作或模塊。本領(lǐng)域的技術(shù)人員可認識到,這些操作、結(jié)構(gòu)化設(shè)備、動作和模塊可按照軟件、固件、專用數(shù)字邏輯及其任何組合實現(xiàn),而不背離如所附的權(quán)利要求書內(nèi)描述的本發(fā)明的精神和范圍。
在圖10的示例中,視件樹表示計算機顯示屏上的窗口。窗口的可視2D根對象1002具有三個孩子,面板可視對象1004、復(fù)選框可視對象1006以及可視3D對象1008。面板可視對象1004是容器可視對象,它具有兩個孩子,按鈕可視對象1010和滾動條可視對象1012。因此,程序員使用按鈕、滾動條和復(fù)選框以及3D場景對象來創(chuàng)建窗口以提供視為2D圖像的3D場景。
3D場景對象1008以指針1009指向照相機參數(shù)1011,以指針1014指向3D場景1016。3D場景由兩個模型3D組對象1018和1020、兩個模型3D原語對象1024和1025以及模型3D光對象1022組成。3D原語中的每一個包含繪圖環(huán)境,且在每一情況中,它們示出不同的繪圖環(huán)境的可能性。光對象1022指定由原語對象1024繪制的模型的照明,光對象1022和原語對象1024是組對象1020的孩子。原語對象1024包含網(wǎng)格信息1026和材質(zhì)信息1028。原語1025包含網(wǎng)格信息1027和材質(zhì)信息1029。材質(zhì)信息1029指向具有視件樹根1030以及可視2D對象1032和3D場景對象1034兩者的另一視件樹。
用于處理圖10中的視件樹的操作流程在圖8中開始,它以至3D場景對象處理的橋路示出可視2D對象處理。如在本操作流程的描述中將會變得顯然,圖8和9中的流程是遞歸的流程。操作流程處理下至葉子的樹的分支,然后處理下至葉子的其它分支。如圖1中所示,樹的遍歷和圖像呈現(xiàn)序列是從左往右的;然而,它可按照任何數(shù)量的方式組織,例如從右到左通過樹,或按照分支的長度或按照程序員希望實現(xiàn)的遍歷樹的任何其它優(yōu)先級。
圖8當視件樹處理由圖8外部的調(diào)用操作(未示出)調(diào)用時開始處理圖10中的視件樹。該調(diào)用操作是對用于以窗口對象1002開始創(chuàng)建窗口的處理的主要調(diào)用程序。創(chuàng)建窗口的操作流程進入視件樹處理入口800。移動操作801將處理移動至樹中未處理的下一對象。第一個這樣的對象是窗口對象1002。操作流程進入循環(huán)802,循環(huán)802包含調(diào)用操作803和更多對象測試操作704。當處理可視2D對象時,循環(huán)802中的操作途徑通過樹的處理。
調(diào)用操作803調(diào)用2D處理入口點805。在入口點805處,操作流程轉(zhuǎn)到3D場景測試操作806。測試操作806檢測對象是3D場景對象還是可視2D對象。如果它是可視2D對象,如對圖10中窗口對象1002的情況中,操作流程分支到“否”來處理可視操作808。處理操作808執(zhí)行窗口對象1004,以繪制窗口圖像。操作808在以上交叉引用的名為Visual And Scene Graph Interfaces的相關(guān)專利申請中描述。當處理可視操作808完成之后,返回操作810將操作流程返回至調(diào)用操作803。
在調(diào)用操作803處,流程指向更多對象測試操作804。更多對象測試操作804檢測在視件樹中是否存在要處理的其它對象。如果存在,操作流程分枝到是至移動操作801。移動操作801將樹的最左分枝下移到圖10中的面板對象1004,它是下一未處理的對象。樹的分枝將從左往右處理。
面板對象1004是另一可視2D對象,且以剛對窗口對象1002討論的相同方式處理。返回操作使流程再次返回到調(diào)用操作803,流程轉(zhuǎn)到移動操作801。處理現(xiàn)在移動至面板對象1004的第一個孩子,它是按鈕可視2D對象1010。按照以上對對象1002的描述處理按鈕對象,流程返回至調(diào)用操作803,并由此至移動操作801。同一分枝中下一未處理的對象是滾動條可視對象1012。它是可視2D對象,操作流程將再次轉(zhuǎn)到處理可視2D操作808到3D場景測試操作806。處理可視2D操作808將以以上為窗口對象1002的處理描述的相同方式處理滾動條可視對象1012。操作流程再次返回至調(diào)用操作803,移動操作801將圖6中的視件樹移動至下一分枝中的第一對象,即復(fù)選框?qū)ο?006。
當復(fù)選框可視2D對象1006處理之后,移動操作801將樹移動至3D場景對象1008。3D場景對象1008將由測試操作806檢測,操作流程將分枝到“是”以便在調(diào)用操作812處調(diào)用3D場景處理。3D場景處理操作流程在圖9中示出,調(diào)用操作812將操作流程傳遞到圖9中的3D場景入口點900。
圖9中,移動操作901將處理移動至3D場景樹中未處理的下一對象。第一個這樣的對象是也是3D場景樹的根節(jié)點的3D組對象1018。操作流程進入循環(huán)902,循環(huán)902包含調(diào)用操作903和更多對象測試操作904。當處理3D場景樹1016中的模型3D對象時,環(huán)繞循環(huán)902的操作流程從左往右使處理經(jīng)過3D場景樹的分枝。
調(diào)用操作903調(diào)用3D處理模塊入口點909。在入口點909處,操作流程轉(zhuǎn)到組對象測試操作914。第一對象是3D組對象1018。組測試操作914將檢測組對象,并使操作流程分枝到處理3D組操作930。組操作可以是變換操作或諸如設(shè)定模型剪輯操作、陰影操作、線框操作等其它操作。在處理組操作930之后,對調(diào)用程序操作920的返回使流程再次返回至調(diào)用操作903。
對調(diào)用操作930的返回使得流程繞循環(huán)902轉(zhuǎn)到更多對象測試操作904。更多對象測試操作904檢測3D場景樹中是否存在要處理的其它對象。如果存在,則操作流程分枝是到移動操作901。移動操作901將3D場景樹的最左分枝下移至圖10中的3D組對象1020,它是下一未處理的對象。將從左往右處理樹的分枝。
模型3D對象1020是另一組對象,組測試操作914將使得流程分枝“是”到處理組操作930以便處理組對象1020。返回操作920再次使流程返回至調(diào)用操作903,流程轉(zhuǎn)到移動操作901。處理現(xiàn)在移動到模型3D光對象1022,它是3D場景樹1016的同一分枝中下一未處理的對象。組對象測試操作使流程轉(zhuǎn)到光對象測試操作916。光對象1022被檢測,并轉(zhuǎn)到處理光對象操作918。處理光操作為由3D組對象1020收集的3D場景設(shè)置光,流程然后轉(zhuǎn)到返回至調(diào)用程序操作920。
流程返回到調(diào)用操作903,由此至移動操作901。同一分枝中下一未處理的對象是3D原語對象1024。原語對象繪制3D模型。組對象測試914和光對象測試916當檢測原語對象1024時以否定結(jié)果響應(yīng)。從而,操作流程從光對象測試916分枝到“否”,至檢索照相機參數(shù)的檢索照相機操作922。設(shè)置視圖操作924然后設(shè)置照相機即2D視圖,操作流程轉(zhuǎn)到2D內(nèi)容測試操作926。由于圖10中的原語對象1024不含有任何可視對象,因此沒有附加任何2D內(nèi)容,操作流程將分枝“否”至繪制原語操作928。繪制原語操作928基于模型3D原語對象1024中所包含的網(wǎng)格信息1026和材質(zhì)信息1029繪制3D模型。模型是從基于照相機參數(shù)的照相機視圖觀點繪制的。結(jié)果是如根據(jù)光對象1022照明的3D模型的2D圖像。在返回至調(diào)用程序操作920處,操作流程再次返回至調(diào)用操作903。更多對象測試操作904檢測到3D場景樹中存在要處理的其余對象。移動操作901使3D場景樹移至下一分枝,至3D原語對象1025,即下一未處理對象。
3D原語對象1025含有包括材質(zhì)信息1029,它在材質(zhì)信息中包括可視2D和3D場景對象兩者。從而,操作流程從2D內(nèi)容測試操作926處分枝“是”至調(diào)用視件樹處理操作932。調(diào)用視件樹處理調(diào)用圖8中的視件樹入口點800,移動操作801移動程序控制來處理可視2D對象1030。調(diào)用操作803調(diào)用2D處理,可視2D對象1030由處理可視操作808處理。操作流程轉(zhuǎn)到返回至調(diào)用程序操作810,并返回至調(diào)用操作803。移動操作801然后使2D內(nèi)容樹移到可視2D對象1032。再次調(diào)用2D處理來處理可視2D對象1032。對象1032由處理可視操作處理,操作流程返回至循環(huán)802?,F(xiàn)在,移動操作801將控制移動到3D場景對象1034。
調(diào)用操作803調(diào)用2D處理,3D場景對象1034將由3D場景測試操作806檢測。作為結(jié)果,調(diào)用操作812調(diào)用圖9中的3D場景處理來處理3D場景的模型3D對象(未示出)。該處理可與以上在3D場景1016的示例中所述的相同。圖9中的3D場景對象1034被調(diào)用來處理由可視3D對象1034表示的3D場景模型,當為3D場景對象1034繪制了最后一個模型時,操作流程轉(zhuǎn)到圖9中的返回至調(diào)用程序操作920。這種情況中的調(diào)用程序是調(diào)用操作903。
調(diào)用操作903使流程轉(zhuǎn)到更多對象測試904,它檢測到不存在與3D場景對象1034相關(guān)聯(lián)的其余對象。操作流程分枝“否”至返回至調(diào)用程序操作906,它使流程傳回至調(diào)用操作812。調(diào)用操作使流程轉(zhuǎn)到調(diào)用操作803。更多對象測試操作804檢測到不存在為由對象1030、1032和1034組成的2D內(nèi)容樹要處理的其余對象。從而,流程分枝“否”來返回至調(diào)用程序操作814。在此情況中,返回到調(diào)用視件樹處理來處理2D內(nèi)容樹的調(diào)用操作932。繪制3D原語操作934現(xiàn)在使用由2D內(nèi)容樹對象1030、1032和1034表示的材質(zhì)信息為原語對象1025繪制3D模型。返回至調(diào)用程序操作920,然后使流程返回至調(diào)用操作903。
更多對象測試操作904然后檢測到3D場景樹1016中沒有其余的對象,并使流程轉(zhuǎn)到返回至調(diào)用程序操作906。返回操作906現(xiàn)在使流程返回至圖8中的調(diào)用3D場景操作812。流程然后由返回操作810傳回至調(diào)用操作803。更多對象測試操作804檢測到圖10的視件樹被完全處理,從而使操作流程轉(zhuǎn)到返回至調(diào)用程序操作810。返回至調(diào)用程序操作使程序控制轉(zhuǎn)回至調(diào)用程序932。調(diào)用操作932調(diào)用圖8中的2D處理,它現(xiàn)在處理可視2D對象1030??梢?D對象1030是材質(zhì)信息1028的根對象。處理可視操作808處理根對象1030,返回至調(diào)用程序操作810使程序控制傳回到調(diào)用來處理圖10的視件樹的主調(diào)用程序(未示出)。這以圖10中示例視件樹的集成的3D場景對象和可視2D對象完成了對該視件樹的處理。
盡管本發(fā)明以計算機結(jié)構(gòu)化特征、方法性動作專用的語言且按照計算機可讀介質(zhì)描述,應(yīng)理解,所附權(quán)利要求書中定義的本發(fā)明不必限于所述的專用結(jié)構(gòu)、動作或介質(zhì)。從而,這些專用結(jié)構(gòu)化特征、動作和介質(zhì)被公開為實現(xiàn)所要求保護的本發(fā)明的示例性實施例。
上述各個實施例僅作為說明提供,而不應(yīng)被解釋為限制本發(fā)明。本領(lǐng)域中的技術(shù)人員可以容易地認識到,可對本發(fā)明進行各種修改和改變,而不必遵循此處示出和描述的示例實施例和應(yīng)用,而不背離以下權(quán)利要求書中所述的本發(fā)明的真正的精神和范圍。
權(quán)利要求
1.一種用于將創(chuàng)建三維(3D)圖像和二維(2D)圖像的計算機程序?qū)ο蠹傻胶锌梢?D對象和可視3D對象的視件樹對象分層結(jié)構(gòu)中的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括對象樹分層結(jié)構(gòu);所述樹分層結(jié)構(gòu)中定義繪制2D圖像的操作的一個或多個可視2D對象;定義繪制由一個或多個3D模型組成的三維場景的二維視圖的操作的一個或多個3D場景對象,所述3D場景對象參照一個或多個3D模型對象以及至少一個照相機對象;為所述3D場景定義3D模型的所述一個或多個3D模型對象中的每一個;以及定義所述3D場景的二維、照相機視圖的照相機對象。
2.如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述3D模型對象中的一個或多個為模型的表面紋理定義材質(zhì)信息。
3.如權(quán)利要求2所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述材質(zhì)包括定義為所述表面紋理繪制二維圖像的操作的可視2D對象。
4.如權(quán)利要求2所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述模型的紋理的材質(zhì)信息還包括3D場景對象。
5.如權(quán)利要求2所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述模型的紋理的材質(zhì)信息還包括可視對象的視件樹分層結(jié)構(gòu)。
6.如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述3D場景對象包括含有指向模型3D對象的指針和指向至少一個照相機對象的指針的可視3D對象。
7.一種用于處理計算機程序可視對象的分層結(jié)構(gòu)以便創(chuàng)建二維(2D)和三維(3D)圖像的混合作為來自計算機的輸出的方法,所述方法包括遍歷可視對象的第一樹分層結(jié)構(gòu)的分枝以處理葉子對象和分枝對象;檢測下一未處理可視對象是可視2D對象還是3D場景對象;以及如果檢測到可視2D對象則調(diào)用2D處理來處理可視對象,且如果檢測到3D場景對象則調(diào)用3D處理來處理模型3D對象。
8.如權(quán)利要求7所述的方法,其特征在于,所述3D處理包括設(shè)置照相機視圖;以及繪制由一個或多個模型3D對象定義的一個或多個3D模型的圖像,所述圖像是基于所述一個或多個3D模型的照相機視圖。
9.如權(quán)利要求7所述的方法,其特征在于,所述3D模型被定義為由3D場景對象指向的一個或多個模型3D對象的第二樹分層結(jié)構(gòu)。
10.如權(quán)利要求9所述的方法,其特征在于,所述第二樹中的一個或多個模型3D對象定義可視對象的第三樹分層結(jié)構(gòu)供繪制所述3D模型使用。
11.如權(quán)利要求10所述的方法,其特征在于,所述第三樹分層結(jié)構(gòu)具有至少一個可視2D對象,所述可視2D對象又定義了模型3D對象的第四樹分層結(jié)構(gòu),借此3D場景對象和可視2D對象可沿對象樹分層結(jié)構(gòu)的分枝集成到多個后繼對象處并由適當?shù)?D處理和3D處理所處理。
12.一種對集成二維圖像的可視對象和三維模型的二維圖像的可視對象的計算機程序?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)編碼的計算機可讀介質(zhì),所述數(shù)據(jù)結(jié)構(gòu)包括創(chuàng)建二維圖像的可視對象的視件樹分層結(jié)構(gòu);作為參照3D模型和所述3D模型的二維視圖的3D場景對象的所述可視對象中的一個或多個;由對象的第二樹分層結(jié)構(gòu)定義的所述3D模型;以及至少包含定義繪制所述3D模型的操作的繪圖對象、以及定義所述3D模型的照明的光可視對象的所述第二樹的對象。
13.如權(quán)利要求12所述的計算機可讀介質(zhì),其特征在于,所述3D模型的二維視圖是從所定義的第一位置和所定義的第二位置的觀點來定義的;且所述第一和第二位置為所述3D模型的視圖定義了瞄準方向。
14.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,所述第一位置是照相機位置點,所述第二位置是“查看”位置點。
15.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,所述繪圖對象包含在構(gòu)造所述模型的表面的紋理中所使用的材質(zhì)信息。
16.如權(quán)利要求15所述的計算機可讀介質(zhì),其特征在于,所述材質(zhì)信息定義對象的第三樹分層結(jié)構(gòu)。
17.如權(quán)利要求16所述的計算機可讀介質(zhì),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)還包括作為參照第二3D模型和所述第二3D模型的二維視圖的3D場景對象的所述第三樹分層結(jié)構(gòu)的對象中的一個或多個;由對象的第四樹分層結(jié)構(gòu)定義的所述第二3D模型;以及至少包含定義繪制所述3D模型的操作的繪圖對象以及定義所述3D模型的照明的光可視對象的所述第四樹的對象。
18.如權(quán)利要求17所述的計算機可讀介質(zhì),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)中的繪圖對象還包括用于定義逼近所述3D模型的輪廓的平面形狀的網(wǎng)格信息。
19.如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述3D場景對象包括含有定義指向模型3D對象和至少一個照相機對象的指針的繪圖環(huán)境的可視2D對象。
全文摘要
(2D)可視對象和(3D)場景對象的分層結(jié)構(gòu)被集成以便無縫處理來在(2D)計算機顯示器上呈現(xiàn)包含(3D)場景的(2D)視圖的(2D)圖像。對可視分層結(jié)構(gòu)中(3D)模型對象和(2D)可視對象的處理被集成,使得處理可容易地在(3D)操作與(2D)操作之間切換。此外,創(chuàng)建顯示圖像時的處理可視(2D)對象和(3D)模型對象之間的轉(zhuǎn)變的次數(shù)沒有結(jié)構(gòu)上的限制。數(shù)據(jù)結(jié)構(gòu)將創(chuàng)建(3D)圖像和(2D)圖像的計算機程序?qū)ο蠹傻胶锌梢?2D)對象或指向(3D)模型對象的(3D)場景對象的視件樹對象分層結(jié)構(gòu)中。數(shù)據(jù)結(jié)構(gòu)包括對象樹分層結(jié)構(gòu)、一個或多個可視(2D)對象、以及指向(3D)模型對象的一個或多個(3D)參照或場景對象??梢?2D)對象定義繪制(2D)圖像的操作。(3D)參照或場景對象定義指向?qū)ο蟮膮⒄?,利用的是一起來繪制由一個或多個(3D)模型組成的三維場景的二維視圖的操作。(3D)參照或場景對象指向(3D)模型對象和照相機對象。照相機對象定義(3D)場景的二維視圖。(3D)模型對象繪制(3D)模型,并定義在繪制模型輪廓中使用的網(wǎng)格信息和在繪制模型的表面紋理中使用的材質(zhì)信息。模型的表面紋理的材質(zhì)信息可由可視(2D)對象、(3D)參照或場景對象或者可視(2D)對象和/或(3D)參照場景對象的樹分層結(jié)構(gòu)定義。
文檔編號G06T15/00GK1942904SQ200480042906
公開日2007年4月4日 申請日期2004年7月29日 優(yōu)先權(quán)日2004年5月3日
發(fā)明者G·D·謝克特, J·S·貝達, G·D·斯維伯格, A·M·史密斯 申請人:微軟公司