国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      通用三維場(chǎng)景數(shù)據(jù)的應(yīng)用實(shí)例的制作方法

      文檔序號(hào):6540828閱讀:195來(lái)源:國(guó)知局
      通用三維場(chǎng)景數(shù)據(jù)的應(yīng)用實(shí)例的制作方法
      【專(zhuān)利摘要】本發(fā)明提供了采用層次結(jié)構(gòu)實(shí)例化場(chǎng)景描述數(shù)據(jù)來(lái)渲染三維圖像的系統(tǒng)和方法。訪問(wèn)一個(gè)層次結(jié)構(gòu)。該層次結(jié)構(gòu)包含一個(gè)第一節(jié)點(diǎn)和一個(gè)實(shí)例節(jié)點(diǎn)。該第一節(jié)點(diǎn)是一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)的前身而且第一節(jié)點(diǎn)是與第一場(chǎng)景描述數(shù)據(jù)對(duì)象相關(guān)聯(lián)的。該實(shí)例節(jié)點(diǎn)是層次結(jié)構(gòu)的一片葉子。實(shí)例節(jié)點(diǎn)有一個(gè)母節(jié)點(diǎn)而且實(shí)例節(jié)點(diǎn)與第二場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān)。該母節(jié)點(diǎn)有除實(shí)例節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)。讀取實(shí)例節(jié)點(diǎn)的實(shí)例化指令。該實(shí)例化指令包含識(shí)別第一節(jié)點(diǎn)的信息。一個(gè)或多個(gè)節(jié)點(diǎn)的實(shí)例子樹(shù)被合并到實(shí)例節(jié)點(diǎn)層次結(jié)構(gòu)的一個(gè)位置。根據(jù)子樹(shù)的合并實(shí)例渲染圖像。
      【專(zhuān)利說(shuō)明】通用三維場(chǎng)景數(shù)據(jù)的應(yīng)用實(shí)例

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計(jì)算機(jī)生成的場(chǎng)景數(shù)據(jù),更具體而言涉及使用層次結(jié)構(gòu)樹(shù)計(jì)算機(jī)生成的場(chǎng)景數(shù)據(jù)。

      【背景技術(shù)】
      [0002]計(jì)算機(jī)生成的動(dòng)畫(huà)通常是通過(guò)創(chuàng)造一序列圖像,每個(gè)圖像描述由一個(gè)或多個(gè)計(jì)算機(jī)生成的對(duì)象(如:一個(gè)角色、一棵樹(shù)、一張桌子或一把椅子)組成的計(jì)算機(jī)生成的場(chǎng)景。計(jì)算機(jī)生成的圖像往往描述一個(gè)包含多個(gè)類(lèi)似對(duì)象(如:多個(gè)角色、多棵樹(shù)、多張桌子或多把椅子)的場(chǎng)景。例如:一個(gè)場(chǎng)景可能包括數(shù)百人坐在體育場(chǎng)看臺(tái)上觀看一場(chǎng)體育賽事或者另一個(gè)場(chǎng)景可能包括許多松樹(shù)產(chǎn)生一片森林的效果。
      [0003]再具體而言,生成一個(gè)包括松樹(shù)林的虛擬三維場(chǎng)景,從計(jì)算機(jī)的角度上看,反復(fù)生成相同松樹(shù)組成的森林要比設(shè)計(jì)、開(kāi)發(fā)、維護(hù)和提供不同樹(shù)木組成的森林便宜很多。復(fù)制相同松樹(shù)組成的森林也比設(shè)計(jì)場(chǎng)景的美術(shù)師所花的時(shí)間更少。
      [0004]然而,森林中的每棵松樹(shù)都一模一樣,從審美意義上并不好看。這樣的森林既不真實(shí),讓看這動(dòng)畫(huà)場(chǎng)景的人也覺(jué)得不逼真。但只需要稍微改變一下松樹(shù)的細(xì)節(jié)就可大大增加森林的逼真效果。例如:改變樹(shù)木的色澤、樹(shù)木的質(zhì)地、樹(shù)枝的數(shù)量和位置以及樹(shù)葉的顏色,這樣森林的場(chǎng)景就明顯地逼真了。
      [0005]通常,能夠在虛擬三維場(chǎng)景中復(fù)制對(duì)象背景中紛雜物景的多個(gè)變量是非常有益的。因此,有必要建立一個(gè)通用系統(tǒng),用于配置和管理計(jì)算機(jī)生成的場(chǎng)景中的元素以及在復(fù)制時(shí)應(yīng)用各種變體。
      [0006]發(fā)明概述
      [0007]本發(fā)明闡述了通過(guò)使用層次結(jié)構(gòu)實(shí)例化的場(chǎng)景描述數(shù)據(jù)渲染三維圖像的流程。其中例示的一個(gè)流程可包括訪問(wèn)一個(gè)層次結(jié)構(gòu)。層次結(jié)構(gòu)包括第一節(jié)點(diǎn)和一個(gè)實(shí)例節(jié)點(diǎn)。第一節(jié)點(diǎn)是包含一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)的前身,而且與第一場(chǎng)景描述數(shù)據(jù)對(duì)象相關(guān)。實(shí)例節(jié)點(diǎn)有一個(gè)母節(jié)點(diǎn),而且與第二場(chǎng)景描述數(shù)據(jù)對(duì)象相關(guān)。母節(jié)點(diǎn)有除實(shí)例節(jié)點(diǎn)以外的后繼節(jié)點(diǎn)。然后,讀取實(shí)例節(jié)點(diǎn)的實(shí)例化指令。實(shí)例化指令包括識(shí)別第一節(jié)點(diǎn)的信息。隨后,包含一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)被合并到實(shí)例節(jié)點(diǎn)的層次結(jié)構(gòu)中。根據(jù)第一子樹(shù)的合并實(shí)例渲染圖像。
      [0008]本發(fā)明還闡述了通過(guò)使用層次結(jié)構(gòu)實(shí)例化的場(chǎng)景描述數(shù)據(jù)產(chǎn)生三維圖像的系統(tǒng)和計(jì)算機(jī)可讀的存儲(chǔ)媒介。
      [0009]附圖簡(jiǎn)述
      [0010]可通過(guò)參考以下說(shuō)明和相應(yīng)編號(hào)的附圖更好地理解本申請(qǐng)。
      [0011]圖1例示一幅計(jì)算機(jī)根據(jù)各種實(shí)施例用層次結(jié)構(gòu)樹(shù)生成的圖像。
      [0012]圖2A-B例示源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)。
      [0013]圖3A-B例示覆蓋一個(gè)節(jié)點(diǎn)的源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)。
      [0014]圖4顯示用于遞歸合并節(jié)點(diǎn)的示范技術(shù)。
      [0015]圖5A-B例示覆蓋增加一個(gè)節(jié)點(diǎn)的源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)。
      [0016]圖6A-B例示用于絕對(duì)路徑和相對(duì)路徑的源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)。
      [0017]圖7例示使用層次結(jié)構(gòu)渲染三維圖像的流程。
      [0018]圖8顯示一個(gè)示范計(jì)算系統(tǒng)。
      [0019]發(fā)明詳述
      [0020]以下描述可使本領(lǐng)域的普通技術(shù)人員制造和使用各種實(shí)施例。這里描述的具體裝置、技術(shù)和應(yīng)用僅作為示例。對(duì)于本領(lǐng)域的普通技術(shù)人員而言對(duì)這些示例進(jìn)行各種修改簡(jiǎn)單易行,而且可以在不偏離本技術(shù)的精神和范圍情況下把本專(zhuān)利描述的一般原理運(yùn)用到其它實(shí)例和應(yīng)用中去。所以,這里公開(kāi)的技術(shù)并不局限于本文所列的示例,而可應(yīng)用于與本權(quán)利要求相一致的范圍之中。
      [0021]出于描述目的,在此公開(kāi)的技術(shù)全文中使用的軟件、軟件模塊、軟件對(duì)象等等均可描述執(zhí)行各種功能。然而,本領(lǐng)域的一個(gè)普通技術(shù)人員會(huì)發(fā)現(xiàn)軟件可能無(wú)法主動(dòng)執(zhí)行任何功能,但可包括計(jì)算機(jī)處理器可執(zhí)行的指令。因此,盡管這里描述的軟件可執(zhí)行一項(xiàng)功能,但它應(yīng)被理解為計(jì)算機(jī)處理器或其它計(jì)算裝置通??蓤?zhí)行這些功能,因?yàn)檫@些軟件模塊或?qū)ο筇峁┝擞?jì)算機(jī)的執(zhí)行指令。
      [0022]計(jì)算機(jī)生成的動(dòng)畫(huà)通常是通過(guò)創(chuàng)造一序列圖像,每個(gè)圖像描述由一個(gè)或多個(gè)計(jì)算機(jī)生成的對(duì)象組成的計(jì)算機(jī)生成的場(chǎng)景。光源、材料、紋理和其它視覺(jué)效果可與計(jì)算機(jī)生成對(duì)象相關(guān)聯(lián)以創(chuàng)造一個(gè)視覺(jué)效果逼真的計(jì)算機(jī)生成的場(chǎng)景。為了便于本文討論,計(jì)算機(jī)生成的場(chǎng)景通常指可用虛擬攝像機(jī)拍攝的虛擬三維(3D)空間,也可泛指一個(gè)場(chǎng)景。
      [0023]以下描述的各種實(shí)施例與場(chǎng)景描述數(shù)據(jù)有關(guān)。場(chǎng)景描述數(shù)據(jù)按層次結(jié)構(gòu)樹(shù)的結(jié)構(gòu)排列。層次結(jié)構(gòu)樹(shù)被用于虛擬三維場(chǎng)景的實(shí)例場(chǎng)景描述數(shù)據(jù)。此外,變量可運(yùn)用到實(shí)例化的場(chǎng)景描述數(shù)據(jù)之中。例如:一個(gè)人物對(duì)象有皮膚顏色特性和頭發(fā)顏色特性。這個(gè)人物可被實(shí)例化產(chǎn)生第二個(gè)人物。在第二個(gè)人物中,變量可運(yùn)用到皮膚顏色的特性,譬如使皮膚顏色更深。這樣,一個(gè)場(chǎng)景可同時(shí)用兩個(gè)人物,第一個(gè)人物皮膚顏色稍淺,而第二個(gè)人物有更深色的皮膚。
      [0024]圖1例示計(jì)算機(jī)根據(jù)各種實(shí)施例可用層次結(jié)構(gòu)樹(shù)生成圖像。值得注意的是圖1描繪了一個(gè)體育場(chǎng)中一群人物的場(chǎng)景。為了創(chuàng)造這樣一幅圖像,工程師通常要逐個(gè)地配置每個(gè)人物來(lái)營(yíng)造一群人的效果。當(dāng)某些人物共有的特性需要改變時(shí),工程師必須對(duì)每一個(gè)人物的特性進(jìn)行逐一改變。因此,保持人物的多個(gè)副本會(huì)使創(chuàng)造這類(lèi)圖像變成一個(gè)困難和繁重的任務(wù)。
      [0025]參考圖1,采用層次結(jié)構(gòu)樹(shù)的通用實(shí)例化渲染同樣的場(chǎng)景,工程師可創(chuàng)建人物的其它實(shí)例并給實(shí)例化的人物添加變量。這種技術(shù)可使人群中的人物共享某些特性,又可使工程師改變實(shí)例化人物的個(gè)性特點(diǎn)。這樣,減少了存儲(chǔ)代表這群人物的數(shù)據(jù)并減小了維護(hù)這些人物的開(kāi)支。這些人物就是場(chǎng)景描述數(shù)據(jù)。
      [0026]如上所述,場(chǎng)景描述數(shù)據(jù)是按層次結(jié)構(gòu)樹(shù)的結(jié)構(gòu)排列的。層次結(jié)構(gòu)樹(shù)上最高的節(jié)點(diǎn)稱(chēng)之為根節(jié)點(diǎn)。根節(jié)點(diǎn)沒(méi)有母節(jié)點(diǎn)。層次樹(shù)的內(nèi)部節(jié)點(diǎn)均有一個(gè)或多個(gè)子節(jié)點(diǎn)。層次樹(shù)的葉節(jié)點(diǎn)是層次樹(shù)上沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)。葉節(jié)點(diǎn)代表數(shù)據(jù)(如:字符串、整數(shù)、矢量或多邊形網(wǎng)格等)。內(nèi)部節(jié)點(diǎn)代表數(shù)據(jù)組。例如:葉節(jié)點(diǎn)可能表示幾何網(wǎng)格、視覺(jué)效果對(duì)象、應(yīng)用到幾何上的材料、虛擬攝像機(jī)、照明架、濾光器等等。邊緣或鏈路連接層次結(jié)構(gòu)樹(shù)的各個(gè)節(jié)點(diǎn)。
      [0027]圖2例示了源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)。實(shí)例化的語(yǔ)義是按照源層次結(jié)構(gòu)200至目標(biāo)層次結(jié)構(gòu)220之間轉(zhuǎn)換進(jìn)行描述的。
      [0028]源層次結(jié)構(gòu)200包括根節(jié)點(diǎn)202、內(nèi)部節(jié)點(diǎn)204-210以及葉節(jié)點(diǎn)212-218。每個(gè)節(jié)點(diǎn)212、214和216代表場(chǎng)景描述數(shù)據(jù)。節(jié)點(diǎn)218是葉節(jié)點(diǎn),即一個(gè)實(shí)例節(jié)點(diǎn)。一個(gè)實(shí)例節(jié)點(diǎn)包括一個(gè)特殊實(shí)例化標(biāo)簽。例如:該實(shí)例節(jié)點(diǎn)包括一個(gè)“母實(shí)例”標(biāo)簽和一個(gè)值。這個(gè)“母實(shí)例”標(biāo)簽可被稱(chēng)之為一個(gè)實(shí)例化指令標(biāo)簽。實(shí)例節(jié)點(diǎn)的值是層次結(jié)構(gòu)樹(shù)上另一個(gè)需要被實(shí)例的節(jié)點(diǎn)路徑。同樣,實(shí)例節(jié)點(diǎn)可包括實(shí)例另一個(gè)節(jié)點(diǎn)的指令而且該實(shí)例節(jié)點(diǎn)可指定樹(shù)中哪個(gè)節(jié)點(diǎn)應(yīng)被實(shí)例化。
      [0029]作為示例,到達(dá)葉節(jié)點(diǎn)216的路徑可以是“1,1,2,2”。為了便于理解,該路徑可寫(xiě)成:1[來(lái)自標(biāo)簽=節(jié)點(diǎn)202的1]、1[來(lái)自標(biāo)簽=節(jié)點(diǎn)204的1]、2[來(lái)自標(biāo)簽=節(jié)點(diǎn)210的2]、2 [來(lái)自標(biāo)簽=節(jié)點(diǎn)216的2]。
      [0030]要被實(shí)例化的節(jié)點(diǎn)稱(chēng)之為實(shí)例母節(jié)點(diǎn)。在圖2A的示例中,節(jié)點(diǎn)218就是一個(gè)實(shí)例母節(jié)點(diǎn)。實(shí)例指令標(biāo)簽和實(shí)例母節(jié)點(diǎn)的路徑用虛線從實(shí)例節(jié)點(diǎn)218連到實(shí)例母節(jié)點(diǎn)204。在這個(gè)示例中,實(shí)例母節(jié)點(diǎn)218有一條“1,I”的路徑。當(dāng)實(shí)例指令標(biāo)簽在執(zhí)行時(shí),存儲(chǔ)在該節(jié)點(diǎn)的路徑被行進(jìn)過(guò)而且母節(jié)點(diǎn)204的所有子節(jié)點(diǎn)的副本被作為實(shí)例節(jié)點(diǎn)218的姐妹插入到實(shí)例母節(jié)點(diǎn)204并產(chǎn)生圖2B所示的目標(biāo)層次結(jié)構(gòu)220。在圖2A,實(shí)例母節(jié)點(diǎn)204的子節(jié)點(diǎn)是節(jié)點(diǎn)208-216。實(shí)例節(jié)點(diǎn)218被刪除。換言之,實(shí)例母節(jié)點(diǎn)204的子節(jié)點(diǎn)替代了節(jié)點(diǎn)218。
      [0031]在圖2B示例中,源層次結(jié)構(gòu)200已被執(zhí)行,產(chǎn)生目標(biāo)層次結(jié)構(gòu)220。如上所述,當(dāng)實(shí)例節(jié)點(diǎn)被執(zhí)行時(shí),實(shí)例母節(jié)點(diǎn)所有子節(jié)點(diǎn)的副本將被作為實(shí)例節(jié)點(diǎn)的姐妹插入并產(chǎn)生一個(gè)目標(biāo)層次結(jié)構(gòu)。目標(biāo)層次結(jié)構(gòu)220具有與源層次結(jié)構(gòu)200相類(lèi)似的結(jié)構(gòu),但增添了內(nèi)部節(jié)點(diǎn)222和224及葉節(jié)點(diǎn)226、228和230。更重要的是,實(shí)例葉節(jié)點(diǎn)226、228及230具有與相應(yīng)的葉節(jié)點(diǎn)212、214及216相同的標(biāo)簽、值和特性。
      [0032]當(dāng)一個(gè)實(shí)例母節(jié)點(diǎn)因一條實(shí)例化指令被實(shí)例化時(shí),該實(shí)例母節(jié)點(diǎn)的所有子節(jié)點(diǎn)被復(fù)制。這個(gè)副本是深復(fù)制副本。深復(fù)制副本指該母節(jié)點(diǎn)以下的整個(gè)子樹(shù)被復(fù)制。
      [0033]在示例中,圖2的節(jié)點(diǎn)204代表在虛擬場(chǎng)景中放置的一個(gè)虛擬對(duì)象。節(jié)點(diǎn)204是一組用于產(chǎn)生虛擬對(duì)象的元素。虛擬對(duì)象的不同元素由葉節(jié)點(diǎn)212、214和216表示。節(jié)點(diǎn)212代表對(duì)象的幾何網(wǎng)格,節(jié)點(diǎn)214代表對(duì)象的材料屬性(如:對(duì)象的顏色),而節(jié)點(diǎn)216則代表對(duì)象的轉(zhuǎn)換特性(如:位置、旋轉(zhuǎn)及對(duì)象的比例)。如圖2A所示,作為示例,節(jié)點(diǎn)214代表該對(duì)象的材料屬性,具有“ B ”值。
      [0034]圖2的節(jié)點(diǎn)206代表作同一場(chǎng)景中放置的第二個(gè)虛擬對(duì)象,前一個(gè)虛擬對(duì)象用節(jié)點(diǎn)204代表。當(dāng)執(zhí)行實(shí)例節(jié)點(diǎn)218的實(shí)例化指令時(shí),母節(jié)點(diǎn)204的子節(jié)點(diǎn)被深復(fù)制。節(jié)點(diǎn)208-216被復(fù)制后產(chǎn)生節(jié)點(diǎn)222-230。節(jié)點(diǎn)206連接節(jié)點(diǎn)222-230并與節(jié)點(diǎn)226-230所含的數(shù)據(jù)有關(guān)。具體而言,節(jié)點(diǎn)206是用于產(chǎn)生虛擬對(duì)象的一組元素。節(jié)點(diǎn)226代表對(duì)象的幾何網(wǎng)格并具有與節(jié)點(diǎn)212相同的值,節(jié)點(diǎn)228代表對(duì)象的材料屬性(如:對(duì)象的顏色)并具有與節(jié)點(diǎn)214相同的值,而節(jié)點(diǎn)230則代表對(duì)象的轉(zhuǎn)換特性(如:位置、旋轉(zhuǎn)及對(duì)象的比例)并具有與節(jié)點(diǎn)216相同的值。如圖2B所示,作為示例,節(jié)點(diǎn)228代表該對(duì)象的材料屬性,具有與節(jié)點(diǎn)214相同的“B”值。
      [0035]圖3例示覆蓋一個(gè)節(jié)點(diǎn)的源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)。實(shí)例化的語(yǔ)義是按照源層次結(jié)構(gòu)300至目標(biāo)層次結(jié)構(gòu)330之間轉(zhuǎn)換進(jìn)行描述的。
      [0036]源層次結(jié)構(gòu)300包括根節(jié)點(diǎn)302、內(nèi)部節(jié)點(diǎn)304-310和320以及葉節(jié)點(diǎn)312-318和322。每個(gè)節(jié)點(diǎn)312、314、316和322代表場(chǎng)景描述數(shù)據(jù)。節(jié)點(diǎn)318是一個(gè)葉節(jié)點(diǎn),即實(shí)例節(jié)點(diǎn)。如圖3A中虛線所示,節(jié)點(diǎn)318包括一個(gè)“母實(shí)例”標(biāo)簽和到達(dá)實(shí)例母節(jié)點(diǎn)304路徑的值。例如:到達(dá)母節(jié)點(diǎn)的路徑可用“1-1”表示。第一個(gè)“I”表示節(jié)點(diǎn)302,第二個(gè)“I”表示節(jié)點(diǎn)304。
      [0037]與圖2A中的源層次結(jié)構(gòu)200相反,圖3A中的源層次結(jié)構(gòu)300包括一個(gè)有妹節(jié)點(diǎn)的實(shí)例節(jié)點(diǎn)318。換言之,在源層次結(jié)構(gòu),代表實(shí)例化指令的節(jié)點(diǎn)可能有姐妹節(jié)點(diǎn)。這些姐妹節(jié)點(diǎn)可以是葉節(jié)點(diǎn),也可以是內(nèi)部節(jié)點(diǎn)。如圖3A所示,內(nèi)部節(jié)點(diǎn)320和實(shí)例節(jié)點(diǎn)318是姐妹節(jié)點(diǎn),因?yàn)閮?nèi)部節(jié)點(diǎn)320和實(shí)例節(jié)點(diǎn)318具有同一個(gè)直系母節(jié)點(diǎn)——節(jié)點(diǎn)306。
      [0038]在圖3B示例中,源層次結(jié)構(gòu)300已被執(zhí)行,導(dǎo)致出目標(biāo)層次結(jié)構(gòu)330。如上所述,當(dāng)一個(gè)實(shí)例節(jié)點(diǎn)被執(zhí)行時(shí),該實(shí)例母節(jié)點(diǎn)的所有子節(jié)點(diǎn)被復(fù)制,被作為姐妹節(jié)點(diǎn)插入實(shí)例節(jié)點(diǎn)并產(chǎn)生一個(gè)目標(biāo)層次結(jié)構(gòu)。這種復(fù)制可能導(dǎo)致兩個(gè)或更多節(jié)點(diǎn)之間的碰撞。當(dāng)一個(gè)(實(shí)例化導(dǎo)致的)復(fù)制節(jié)點(diǎn)和一個(gè)現(xiàn)有節(jié)點(diǎn)具有同一標(biāo)簽(如:它們描述在一個(gè)層次結(jié)構(gòu)樹(shù)中同一位置的同一個(gè)場(chǎng)景描述數(shù)據(jù))時(shí)將發(fā)生碰撞。產(chǎn)生碰撞時(shí),已實(shí)例化的母節(jié)點(diǎn)之子節(jié)點(diǎn)將與現(xiàn)有節(jié)點(diǎn)合并產(chǎn)生目標(biāo)層次結(jié)構(gòu)。
      [0039]現(xiàn)在,讓我們回到圖3A,看看已實(shí)例化的母節(jié)點(diǎn)之子節(jié)點(diǎn)是如何與現(xiàn)有節(jié)點(diǎn)合并產(chǎn)生目標(biāo)層次結(jié)構(gòu)330。在這個(gè)示例中值得關(guān)注的重點(diǎn)是內(nèi)部節(jié)點(diǎn)320 (tag=2)和內(nèi)部節(jié)點(diǎn)310(tag=2)具有同樣的標(biāo)簽。因此,在執(zhí)行實(shí)例節(jié)點(diǎn)318的實(shí)例化指令時(shí),這兩個(gè)內(nèi)部節(jié)點(diǎn)產(chǎn)生碰撞。由于內(nèi)部節(jié)點(diǎn)320和內(nèi)部節(jié)點(diǎn)310均為無(wú)葉節(jié)點(diǎn),所以他們的子節(jié)點(diǎn)被合并。
      [0040]源層次結(jié)構(gòu)的內(nèi)部節(jié)點(diǎn)320有一個(gè)子節(jié)點(diǎn)322(tag=l)。內(nèi)部節(jié)點(diǎn)310(tag=2)有子節(jié)點(diǎn)314(tag=l)和子節(jié)點(diǎn)316(tag=2)。當(dāng)節(jié)點(diǎn)310的子節(jié)點(diǎn)和節(jié)點(diǎn)320的子節(jié)點(diǎn)合并時(shí)會(huì)產(chǎn)生另一個(gè)碰撞。這個(gè)碰撞發(fā)生在子節(jié)點(diǎn)314(tag=l)副本被復(fù)制到節(jié)點(diǎn)320的直系子節(jié)點(diǎn)和其子節(jié)點(diǎn)322(tag=l)時(shí)。這個(gè)碰撞的發(fā)生是因?yàn)閺?fù)制結(jié)果產(chǎn)生一棵樹(shù)的同一位置上具有兩個(gè)相同標(biāo)簽值的節(jié)點(diǎn)。如果涉及碰撞的兩個(gè)節(jié)點(diǎn)都不是葉節(jié)點(diǎn),碰撞的結(jié)果會(huì)有利于現(xiàn)有節(jié)點(diǎn)。換言之,來(lái)自于源代碼樹(shù)上的現(xiàn)有節(jié)點(diǎn)會(huì)保留在目標(biāo)樹(shù)上。在這個(gè)示例中,涉及碰撞的兩個(gè)節(jié)點(diǎn)均為葉節(jié)點(diǎn)。因此,碰撞的結(jié)果有利于葉節(jié)點(diǎn)322。節(jié)點(diǎn)310的另一個(gè)子節(jié)點(diǎn),即葉節(jié)點(diǎn)316,并沒(méi)有造成碰撞,所以被復(fù)制到節(jié)點(diǎn)320 —個(gè)直系子節(jié)點(diǎn)中。如圖3B所示,葉節(jié)點(diǎn)316被復(fù)制成葉節(jié)點(diǎn)336。同樣,節(jié)點(diǎn)308和節(jié)點(diǎn)312被相應(yīng)地復(fù)制為節(jié)點(diǎn)306子樹(shù)的節(jié)點(diǎn)332和節(jié)點(diǎn)334。
      [0041]由于這次合并,樹(shù)中現(xiàn)有數(shù)據(jù)覆蓋新復(fù)制的數(shù)據(jù)并產(chǎn)生出實(shí)例母節(jié)點(diǎn)變量子樹(shù)。
      [0042]圖4例示一個(gè)遞歸的合并節(jié)點(diǎn)過(guò)程。該過(guò)程始于模塊402。模塊404表示為當(dāng)前組節(jié)點(diǎn)的各個(gè)姐妹節(jié)點(diǎn)的合并程序正在執(zhí)行。這個(gè)過(guò)程進(jìn)行到模塊406將一組節(jié)點(diǎn)合并到一個(gè)節(jié)點(diǎn)。如果系統(tǒng)在模塊406檢測(cè)到該節(jié)點(diǎn)會(huì)產(chǎn)生碰撞,該程序會(huì)移到模塊408。碰撞是通過(guò)比較將被復(fù)制到層次結(jié)構(gòu)樹(shù)某一位置的節(jié)點(diǎn)標(biāo)簽與該位置現(xiàn)有節(jié)點(diǎn)標(biāo)簽而檢測(cè)到。如果被復(fù)制的節(jié)點(diǎn)具有與現(xiàn)有節(jié)點(diǎn)相同的值,兩個(gè)節(jié)點(diǎn)會(huì)產(chǎn)生碰撞。在模塊408,系統(tǒng)會(huì)確定兩個(gè)產(chǎn)生碰撞的節(jié)點(diǎn)是否其中一個(gè)是葉節(jié)點(diǎn)。如果兩個(gè)中有一個(gè)是葉節(jié)點(diǎn),系統(tǒng)會(huì)移到模塊414。如果兩個(gè)都不是葉節(jié)點(diǎn),系統(tǒng)會(huì)移到模塊410。
      [0043]在模塊414,系統(tǒng)保留了現(xiàn)有節(jié)點(diǎn),丟棄了被復(fù)制的節(jié)點(diǎn)。在一個(gè)示例中,現(xiàn)有節(jié)點(diǎn)可以是一個(gè)覆蓋一個(gè)葉節(jié)點(diǎn)或內(nèi)部節(jié)點(diǎn)的葉節(jié)點(diǎn)。在另一個(gè)示例中,現(xiàn)有節(jié)點(diǎn)可以是一個(gè)覆蓋一個(gè)葉節(jié)點(diǎn)的內(nèi)部節(jié)點(diǎn)。然后系統(tǒng)移到模塊412。
      [0044]系統(tǒng)在模塊410調(diào)用合并兩個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)程序。圖400的該程序可被反復(fù)調(diào)用以實(shí)現(xiàn)這個(gè)合并。
      [0045]系統(tǒng)在模塊412確定是否還有其它姐妹節(jié)點(diǎn)需要被復(fù)制。如果沒(méi)有需要復(fù)制的姐妹節(jié)點(diǎn),該程序會(huì)在模塊416結(jié)束。如果系統(tǒng)確定還有一個(gè)或多個(gè)姐妹節(jié)點(diǎn)要復(fù)制,系統(tǒng)會(huì)返回到模塊404,并繼續(xù)處理進(jìn)行下一個(gè)姐妹節(jié)點(diǎn)。
      [0046]采用這種覆蓋技術(shù),系統(tǒng)可以修改葉節(jié)點(diǎn)定義的任何屬性。此外,系統(tǒng)還可以作為合并的一部分增添節(jié)點(diǎn)。圖5展示了增添節(jié)點(diǎn)的一個(gè)示例。
      [0047]圖5例示了源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)在一次覆蓋時(shí)增添了一個(gè)節(jié)點(diǎn)。實(shí)例化的語(yǔ)義按照源層次結(jié)構(gòu)500至目標(biāo)層次結(jié)構(gòu)530之間的轉(zhuǎn)換進(jìn)行描述。
      [0048]圖5A中,源層次結(jié)構(gòu)500包括根節(jié)點(diǎn)502、內(nèi)部節(jié)點(diǎn)504-510和520以及葉節(jié)點(diǎn)512-518和522。每個(gè)節(jié)點(diǎn)512、514、516和522代表場(chǎng)景描述數(shù)據(jù)。如圖5A用虛線所示,節(jié)點(diǎn)518也是一個(gè)屬于實(shí)例節(jié)點(diǎn)的葉節(jié)點(diǎn)。
      [0049]重要的是,葉節(jié)點(diǎn)522具有一個(gè)值3的標(biāo)簽(tag=3)。在這個(gè)示例中,當(dāng)實(shí)例化時(shí),只有節(jié)點(diǎn)510和節(jié)點(diǎn)520會(huì)產(chǎn)生碰撞。葉節(jié)點(diǎn)522(tag=3)與節(jié)點(diǎn)514(tag=l)和節(jié)點(diǎn)516(tag=2)的副本之間不會(huì)有任何碰撞。
      [0050]在圖5B的示例中,源層次結(jié)構(gòu)500已被執(zhí)行,產(chǎn)生目標(biāo)層次結(jié)構(gòu)530。與前面的示例相同,產(chǎn)生了節(jié)點(diǎn)532、534、536和538。但是,在這個(gè)示例中增添的一個(gè)節(jié)點(diǎn)也被存儲(chǔ)了。具體而言,組510和520相同,唯一不同是多了一個(gè)葉節(jié)點(diǎn)522 (tag=3)。這個(gè)示例表明增添節(jié)點(diǎn)(和增添場(chǎng)景描述數(shù)據(jù))可以通過(guò)實(shí)例化程序完成。因此,覆蓋也可以添加節(jié)點(diǎn),因?yàn)槟繕?biāo)層次結(jié)構(gòu)是實(shí)例母節(jié)點(diǎn)復(fù)制和覆蓋數(shù)據(jù)之間的合并(如:圖5A中的節(jié)點(diǎn)522)例如:一個(gè)攝像機(jī)架可被實(shí)例產(chǎn)生一個(gè)攝像機(jī)架,新產(chǎn)生的攝像機(jī)架子樹(shù)中比原來(lái)的攝像機(jī)架子樹(shù)中多一個(gè)節(jié)點(diǎn)。這個(gè)增添的節(jié)點(diǎn)可描述為一個(gè)攝像過(guò)濾器或其它場(chǎng)景描述數(shù)據(jù)。
      [0051]該系統(tǒng)的另一個(gè)屬性是葉節(jié)點(diǎn)可存儲(chǔ)值,這些值可被解釋為對(duì)層次結(jié)構(gòu)中其它節(jié)點(diǎn)的引用。例如:可通過(guò)存儲(chǔ)一個(gè)路徑值而實(shí)現(xiàn)。這個(gè)路徑值,如上所述,是一個(gè)序列標(biāo)簽。絕對(duì)引用是一條被解釋為來(lái)自根節(jié)點(diǎn)的路徑。
      [0052]但是,路徑也可被解釋為從存儲(chǔ)的子節(jié)點(diǎn)的母節(jié)點(diǎn)中開(kāi)始行進(jìn)的路徑。這稱(chēng)之為相對(duì)引用而且當(dāng)這個(gè)節(jié)點(diǎn)被實(shí)例化后具有許多有用的屬性。例如:一個(gè)實(shí)例復(fù)制的節(jié)點(diǎn)包含一個(gè)相對(duì)引用可指向該實(shí)例的相應(yīng)參考原節(jié)點(diǎn),并不指向原節(jié)點(diǎn)本身。這就使系統(tǒng)模塊化,能使通用實(shí)例子樹(shù)按預(yù)期進(jìn)行,即使子樹(shù)包含內(nèi)在引用。
      [0053]圖6例示用于絕對(duì)和相對(duì)路徑的源層次結(jié)構(gòu)和目標(biāo)層次結(jié)構(gòu)。在圖6A中,源層次結(jié)構(gòu)600包括根節(jié)點(diǎn)602、內(nèi)部節(jié)點(diǎn)604-610和616以及葉節(jié)點(diǎn)612、614、618和620。如圖6A虛線所示,節(jié)點(diǎn)620也是一個(gè)屬于實(shí)例節(jié)點(diǎn)的葉節(jié)點(diǎn)。
      [0054]葉節(jié)點(diǎn)614可包括指向節(jié)點(diǎn)618的引用。該引用作為一條路徑被存儲(chǔ)。如上所述,路徑可以說(shuō)絕對(duì)或相對(duì)的。一個(gè)絕對(duì)引用會(huì)使葉節(jié)點(diǎn)614的每次實(shí)例化都會(huì)被指向節(jié)點(diǎn)618。而相對(duì)引用可使葉節(jié)點(diǎn)614的每次實(shí)例化指向相對(duì)于節(jié)點(diǎn)614所在位置的相同路徑。
      [0055]例如:圖6B中的目標(biāo)層次結(jié)構(gòu)640產(chǎn)生于實(shí)例化。在圖6B中,目標(biāo)層次結(jié)構(gòu)640包括根節(jié)點(diǎn)602、內(nèi)部節(jié)點(diǎn)604-610、616、622、624和630以及葉節(jié)點(diǎn)612、614、618、626、628和632。如果葉節(jié)點(diǎn)614包含指向葉節(jié)點(diǎn)618的絕對(duì)引用,實(shí)例化的葉節(jié)點(diǎn)628也會(huì)包含指向葉節(jié)點(diǎn)618的絕對(duì)引用。這種絕對(duì)引用的例子是“1,1,2,2,I”。但是,如果葉節(jié)點(diǎn)614包含指向葉節(jié)點(diǎn)618的相對(duì)引用,實(shí)例化的葉節(jié)點(diǎn)628會(huì)包含指向葉節(jié)點(diǎn)632的相對(duì)引用。這種相對(duì)引用的例子是“2,I”。這個(gè)相對(duì)引用被解釋為從存儲(chǔ)的子節(jié)點(diǎn)的母節(jié)點(diǎn)中開(kāi)始行進(jìn)的路徑。在這個(gè)示例中,節(jié)點(diǎn)628的母節(jié)點(diǎn)是節(jié)點(diǎn)624。行進(jìn)的路徑“2,I”從節(jié)點(diǎn)624開(kāi)始,至葉節(jié)點(diǎn)632止。在某些示例中,引用旁邊會(huì)存儲(chǔ)一面旗巾只或一個(gè)標(biāo)記,表示該引用是相對(duì)引用還是絕對(duì)引用。
      [0056]本系統(tǒng)的另一個(gè)特點(diǎn)是具有指向稱(chēng)之為“移到母節(jié)點(diǎn)”的特殊令牌的相對(duì)引用能力。這可解釋為一種指令,而不是一種標(biāo)簽。這個(gè)指令可以在樹(shù)中行進(jìn)計(jì)算參照物時(shí)移到層次結(jié)構(gòu)更高一個(gè)層級(jí)。這也可被認(rèn)為是一種類(lèi)似于UNIX系統(tǒng)和文件路徑名中.”的特殊目錄名。
      [0057]圖7例示了通過(guò)用一個(gè)層次結(jié)構(gòu)實(shí)例化場(chǎng)景描述數(shù)據(jù)來(lái)渲染三維圖像的過(guò)程。在模塊702訪問(wèn)層次結(jié)構(gòu)。層次結(jié)構(gòu)包括一個(gè)第一節(jié)點(diǎn)。第一節(jié)點(diǎn)是一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)的前身。換言之,第一子樹(shù)的一個(gè)或多個(gè)節(jié)點(diǎn)是第一節(jié)點(diǎn)的兒子或?qū)O子。第一節(jié)點(diǎn)與第一場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān)。場(chǎng)景描述數(shù)據(jù)對(duì)象可包括,如幾何物體、虛擬攝像機(jī)、照明架、光源、光濾波器、材料、紋理和其它視覺(jué)效果。該層次結(jié)構(gòu)還包括一個(gè)實(shí)例節(jié)點(diǎn)。這個(gè)實(shí)例節(jié)點(diǎn)是層次結(jié)構(gòu)的一片葉子。該實(shí)例節(jié)點(diǎn)有一個(gè)母節(jié)點(diǎn)而且該實(shí)例節(jié)點(diǎn)與第二場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān)。該實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)具有該實(shí)例節(jié)點(diǎn)以外的其它后繼節(jié)點(diǎn)。那些后繼節(jié)點(diǎn)可以是內(nèi)部節(jié)點(diǎn)及或葉節(jié)點(diǎn)。
      [0058]在模塊704,該實(shí)例節(jié)點(diǎn)的實(shí)例化指令被讀取。實(shí)例化指令包含識(shí)別第一節(jié)點(diǎn)的信息。實(shí)例化指令可以是一個(gè)特殊標(biāo)簽和實(shí)例節(jié)點(diǎn)的值。
      [0059]在模塊706,第一子樹(shù)的實(shí)例被合并。第一子樹(shù)實(shí)例的一個(gè)或多個(gè)節(jié)點(diǎn)在實(shí)例節(jié)點(diǎn)層次結(jié)構(gòu)的某個(gè)位置被合并。合并可包括確定在(a)第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)和(b)除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)之間是否有沖突。合并可能還包括覆蓋由(b)(除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn))用(a)(第一子樹(shù)的至少一個(gè)節(jié)點(diǎn))定義的一個(gè)屬性的第二值來(lái)定義一個(gè)屬性的第一值。
      [0060]沖突可通過(guò)訪問(wèn)(a)(第一子樹(shù)的至少一個(gè)節(jié)點(diǎn))的第一標(biāo)簽,該標(biāo)簽具有一個(gè)標(biāo)簽值;以及訪問(wèn)(b)(除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn))的第二標(biāo)簽,該第二標(biāo)簽具有相同的標(biāo)簽值來(lái)確定。因?yàn)閮蓚€(gè)標(biāo)簽值相同,否則兩個(gè)節(jié)點(diǎn)可能是姐妹節(jié)點(diǎn),所以確定兩個(gè)節(jié)點(diǎn)之間是否有沖突。通常,標(biāo)簽值用于識(shí)別層次結(jié)構(gòu)中的姐妹節(jié)點(diǎn)的獨(dú)特性。
      [0061]在有些示例中,第一節(jié)點(diǎn)也可以有一個(gè)標(biāo)簽,如第三標(biāo)簽。識(shí)別第一節(jié)點(diǎn)的信息包括一條路徑,該路徑使用第三標(biāo)簽。
      [0062]在有些示例中,第一子樹(shù)包含一個(gè)含相對(duì)引用的第二節(jié)點(diǎn),該第二節(jié)點(diǎn)的相對(duì)引用識(shí)別第一子樹(shù)中第一個(gè)識(shí)別的節(jié)點(diǎn)。第一子樹(shù)合并實(shí)例包含一個(gè)含相對(duì)引用的第三節(jié)點(diǎn)。該第三節(jié)點(diǎn)的相對(duì)引用識(shí)別第一子樹(shù)合并實(shí)例中的第二個(gè)識(shí)別的節(jié)點(diǎn)。第一個(gè)識(shí)別的節(jié)點(diǎn)和第二個(gè)識(shí)別的節(jié)點(diǎn)不是同一節(jié)點(diǎn)。
      [0063]在其它示例中,第一子樹(shù)包含一個(gè)含絕對(duì)引用的第二節(jié)點(diǎn)。第二節(jié)點(diǎn)的絕對(duì)引用識(shí)別第一子樹(shù)的第一個(gè)識(shí)別的節(jié)點(diǎn)。第一子樹(shù)的合并實(shí)例包含一個(gè)含絕對(duì)引用的第三節(jié)點(diǎn)。該第三節(jié)點(diǎn)的絕對(duì)引用識(shí)別第一子樹(shù)的第一個(gè)識(shí)別的節(jié)點(diǎn)。
      [0064]此外,第一子樹(shù)可能包含一個(gè)第四節(jié)點(diǎn),該節(jié)點(diǎn)包括含一個(gè)母令牌的數(shù)據(jù)。母令牌表示可在層次結(jié)構(gòu)中往上移一層級(jí)的指令。
      [0065]在模塊708,根據(jù)第一子樹(shù)合并實(shí)例渲染一幅圖像。
      [0066]圖8例示可以被用于執(zhí)行上述層次結(jié)構(gòu)技術(shù)的動(dòng)畫(huà)系統(tǒng)800。該層次結(jié)構(gòu)技術(shù)可在硬件或在非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介的軟件中執(zhí)行。
      [0067]動(dòng)畫(huà)系統(tǒng)800經(jīng)配置可從輸入裝置820接收用戶(hù)的輸入。輸入裝置820可以是任何能接收用戶(hù)輸入信息并發(fā)送此類(lèi)信息到動(dòng)畫(huà)系統(tǒng)800的裝置。例如:輸入裝置820可以是一個(gè)鍵盤(pán)、鼠標(biāo)、平板電腦、指示筆等等。本領(lǐng)域的熟練技術(shù)人員會(huì)知道也可使用其它類(lèi)型的輸入裝置。
      [0068]動(dòng)畫(huà)系統(tǒng)800經(jīng)配置可向輸出裝置830輸出圖形、圖像或動(dòng)畫(huà)。輸出裝置830可包括任何能夠接受來(lái)自動(dòng)畫(huà)系統(tǒng)數(shù)據(jù)并把數(shù)據(jù)傳給用戶(hù)的裝置。例如:輸出裝置830可包括一個(gè)液晶顯示儀、一組發(fā)光二極管、投影儀等等。本領(lǐng)域的熟練技術(shù)人員會(huì)知道也可使用其它類(lèi)型的輸出裝置。
      [0069]動(dòng)畫(huà)系統(tǒng)800還可包括一個(gè)中央處理器802。該中央處理器可包括一個(gè)或多個(gè)處理核心。中央處理器802可與輸入裝置820連接,并與之通信。盡管顯示的動(dòng)畫(huà)系統(tǒng)800只有一個(gè)中央處理器,但該系統(tǒng)可包括多個(gè)處理器。動(dòng)畫(huà)系統(tǒng)800還可包括圖形處理器804。圖形處理器804可用于專(zhuān)門(mén)處理與圖形相關(guān)的數(shù)據(jù)。圖形處理器804可包括一個(gè)處理核心或多個(gè)處理核心。盡管顯示的動(dòng)畫(huà)系統(tǒng)800只有一個(gè)圖形處理器804,但該系統(tǒng)可包括數(shù)個(gè)圖形處理器。中央處理器802及或圖形處理器804可與輸出裝置830連接,并與之通信。
      [0070]在示例中,動(dòng)畫(huà)系統(tǒng)800可包括存儲(chǔ)在非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介上的一個(gè)或多個(gè)處理器和指令,當(dāng)一個(gè)或多個(gè)處理器執(zhí)行時(shí),將會(huì)應(yīng)用上述層次結(jié)構(gòu)技術(shù)渲染動(dòng)畫(huà)。在此處所描述實(shí)施例的背景中,“非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介”可以是任何能夠包含或存儲(chǔ)用于或連接指令執(zhí)行系統(tǒng)、儀器或裝置。非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介可包括但不限于電子、磁、光學(xué)、電磁、紅外線或半導(dǎo)體系統(tǒng)、儀器或裝置、便攜式計(jì)算機(jī)磁盤(pán)(磁性)、隨機(jī)存取存儲(chǔ)器(RAM)(磁性)、只讀存儲(chǔ)器(ROM)(磁性)、可擦除可編程只讀存儲(chǔ)器(EPROM)(磁性)、便攜式光盤(pán)如⑶、⑶-R、⑶-RW、DVD、DVD-R或DVD-RW、或閃存記憶體如小型閃存卡、安全數(shù)碼卡、USB存儲(chǔ)設(shè)備、記憶棒等等。
      [0071]動(dòng)畫(huà)系統(tǒng)800可包括易失性存儲(chǔ)器806,這是一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,可與中央處理器802通信。易失性存儲(chǔ)器806可包括隨機(jī)存取存儲(chǔ)器,如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器或靜態(tài)隨機(jī)存取存儲(chǔ)器或任何其它類(lèi)型的易失性存儲(chǔ)器。易失性存儲(chǔ)器806可在運(yùn)行動(dòng)畫(huà)系統(tǒng)800的時(shí)候用于存儲(chǔ)數(shù)據(jù)或指令。本領(lǐng)域的熟練技術(shù)人員將會(huì)知道也可使用其它類(lèi)型的易失性存儲(chǔ)器。
      [0072]動(dòng)畫(huà)系統(tǒng)800還可包括非易失性存儲(chǔ)器808,這是一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,可與中央處理器802通信。非易失性存儲(chǔ)器808可包括閃存器、硬盤(pán)、磁存儲(chǔ)設(shè)備、只讀存儲(chǔ)器等等。非易失性存儲(chǔ)器808可在用于存儲(chǔ)動(dòng)畫(huà)數(shù)據(jù)、渲染安裝設(shè)置圖數(shù)據(jù)、計(jì)算機(jī)指令或其它信息。本領(lǐng)域的熟練技術(shù)人員將會(huì)知道也可使用其它類(lèi)型的非易失性存儲(chǔ)器。
      [0073]動(dòng)畫(huà)系統(tǒng)800并不局限于上述這些設(shè)備、配置和功能。例如:盡管只顯示了單一的易失性存儲(chǔ)器806、非易失性存儲(chǔ)器808、中央處理器802、圖形處理器804、輸入裝置820、和輸出裝置830,多個(gè)此類(lèi)裝置可內(nèi)部或外部連接動(dòng)畫(huà)系統(tǒng)800。此外,動(dòng)畫(huà)系統(tǒng)800還可包括用于訪問(wèn)諸如內(nèi)部網(wǎng)絡(luò)或互聯(lián)網(wǎng)的網(wǎng)絡(luò)信息的網(wǎng)絡(luò)連接設(shè)備。本領(lǐng)域的熟練技術(shù)人員將會(huì)知道本動(dòng)畫(huà)系統(tǒng)800也可采用其它配置。
      [0074]這里描述了許多示例。這些示例的參照意義沒(méi)有局限。提供這些示例能夠顯示本公開(kāi)的技術(shù)之更廣泛的應(yīng)用。在不偏離本技術(shù)真正精神和范圍的前提下,可對(duì)各種實(shí)施例進(jìn)行更改或采用等同物進(jìn)行替代。此外,為了適用于特定情況、材料、物質(zhì)組成、程序、過(guò)程行為或步驟可進(jìn)行很多修改以達(dá)到各種實(shí)施例的目的、精神或范圍。另外,熟悉本領(lǐng)域的技術(shù)人員可能理解這里描述和展示的每個(gè)變量均有其獨(dú)特的部分和功能,可以在不偏離各種實(shí)施例的范圍或精神的前提下隨時(shí)與其它功能分離或結(jié)合。
      【權(quán)利要求】
      1.一種通過(guò)用層次結(jié)構(gòu)實(shí)例化場(chǎng)景描述數(shù)據(jù)來(lái)渲染三維圖像的計(jì)算機(jī)執(zhí)行方法,所述方法包含: 訪問(wèn)層次結(jié)構(gòu);所述層次結(jié)構(gòu)包含: 第一節(jié)點(diǎn);所述第一節(jié)點(diǎn)系一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)的前身并且所述第一節(jié)點(diǎn)是與第一場(chǎng)景描述數(shù)據(jù)對(duì)象相關(guān)聯(lián)的; 一個(gè)實(shí)例節(jié)點(diǎn);所述實(shí)例節(jié)點(diǎn)是一個(gè)層次結(jié)構(gòu)的葉片、實(shí)例節(jié)點(diǎn)有一個(gè)母節(jié)點(diǎn)、并且所述實(shí)例節(jié)點(diǎn)與第二場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān),并且其中母節(jié)點(diǎn)具有除實(shí)例節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)。 讀取所述實(shí)例節(jié)點(diǎn)的實(shí)例化指令;所述實(shí)例化指令包含識(shí)別所述第一節(jié)點(diǎn)的信息。 合并在所述實(shí)例節(jié)點(diǎn)層次結(jié)構(gòu)中某一位置的一個(gè)或多個(gè)節(jié)點(diǎn)的所述第一子樹(shù)實(shí)例;以及 渲染根據(jù)所述第一子樹(shù)實(shí)例合并生成的圖像。
      2.如權(quán)利要求1所述的計(jì)算機(jī)執(zhí)行方法,這里所述的合并包含: 確定在(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)和(b)除所述實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的所述后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)之間是否有沖突;以及 覆蓋由(b)所述后繼 節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)定義的屬性的第一值,通過(guò)使用由(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)定義的所述屬性的第二值。
      3.如權(quán)利要求1所述的計(jì)算機(jī)執(zhí)行方法,其中所述的合并還包含: 確定沖突采用: 訪問(wèn)(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)的第一標(biāo)簽,所述標(biāo)簽具有標(biāo)簽值。 訪問(wèn)(b)所述后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)的第二標(biāo)簽,所述第二標(biāo)簽具有所述標(biāo)簽值;以及 其中標(biāo)簽值獨(dú)特地標(biāo)示在層次結(jié)構(gòu)中的姐妹節(jié)點(diǎn)。
      4.如權(quán)利要求3所述的計(jì)算機(jī)執(zhí)行方法,其中: 所述第一節(jié)點(diǎn)有第三標(biāo)簽; 識(shí)別所述第一節(jié)點(diǎn)的所述信息包含路徑;并且 所述路徑包括所述第一節(jié)點(diǎn)的所述第三標(biāo)簽。
      5.如權(quán)利要求1所述的計(jì)算機(jī)執(zhí)行方法,其中: 所述第一子樹(shù)包含一包含相對(duì)引用的第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)的所述相對(duì)引用識(shí)別在所述第一子樹(shù)中的第一個(gè)識(shí)別的節(jié)點(diǎn); 所述第一子樹(shù)合并實(shí)例包含一包含相對(duì)引用的第三節(jié)點(diǎn),所述第三節(jié)點(diǎn)的相對(duì)引用識(shí)別在所述第一子樹(shù)合并實(shí)例中的第二個(gè)識(shí)別的節(jié)點(diǎn);并且 其中所述的第一個(gè)識(shí)別的節(jié)點(diǎn)和所述第二個(gè)識(shí)別的節(jié)點(diǎn)并非同一個(gè)節(jié)點(diǎn)。
      6.如權(quán)利要求1所述的計(jì)算機(jī)執(zhí)行方法,其中: 所述第一子樹(shù)包含一包含絕對(duì)引用的第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)的絕對(duì)引用識(shí)別在所述第一子樹(shù)中第一個(gè)識(shí)別的節(jié)點(diǎn);以及 所述第一子樹(shù)合并實(shí)例包含一包含絕對(duì)引用的第三節(jié)點(diǎn),所述第三節(jié)點(diǎn)的絕對(duì)引用識(shí)別在所述第一子樹(shù)中的第一個(gè)識(shí)別的節(jié)點(diǎn)。
      7.如權(quán)利要求1所述的計(jì)算機(jī)執(zhí)行方法,其中:所述第一子樹(shù)包含一第四節(jié)點(diǎn),所述節(jié)點(diǎn)包括含一個(gè)母令牌的數(shù)據(jù),所述母令牌表示可在所述層次結(jié)構(gòu)中往上移一個(gè)層級(jí)的指令。
      8.一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介包括采用層次結(jié)構(gòu)實(shí)例化場(chǎng)景描述數(shù)據(jù)來(lái)渲染三維圖像的計(jì)算機(jī)可執(zhí)行的指令,所述計(jì)算機(jī)可執(zhí)行的指令包含用于下列用途的指令: 訪問(wèn)所述層次結(jié)構(gòu),所述層次結(jié)構(gòu)包含: 第一節(jié)點(diǎn);所述第一節(jié)點(diǎn)系一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)的前身而且所述第一節(jié)點(diǎn)與第一場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān)。 一個(gè)實(shí)例節(jié)點(diǎn);所述實(shí)例節(jié)點(diǎn)是所述層次結(jié)構(gòu)的一片葉子,所述實(shí)例節(jié)點(diǎn)有母節(jié)點(diǎn),并且所述實(shí)例節(jié)點(diǎn)與第二場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān),并且其中所述母節(jié)點(diǎn)有除實(shí)例節(jié)點(diǎn)之外的后繼節(jié)點(diǎn); 讀取所述實(shí)例節(jié)點(diǎn)的實(shí)例化指令;所述實(shí)例化指令包含識(shí)別所述第一節(jié)點(diǎn)的信息。 合并在所述實(shí)例節(jié)點(diǎn)層次結(jié)構(gòu)中某位置的一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù);以及 根據(jù)所述第一子樹(shù)的合并實(shí)例渲染圖像。
      9.如權(quán)利要求8所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,其中所述合并包含以下指令: 確定在(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)和(b)所述除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)之間是否有沖突;以及 覆蓋由(b)所述除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)定義的屬性的第一值,通過(guò)使用由(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)定義的屬性的第二值。
      10.如權(quán)利要求8所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,其中所述合并還包含以下指令: 確定沖突采用: 訪問(wèn)(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)的第一標(biāo)簽,所述標(biāo)簽具有一個(gè)標(biāo)簽值; 訪問(wèn)(b)所述除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)的第二標(biāo)簽,所述第二標(biāo)簽具有標(biāo)簽值;并且 其中標(biāo)簽值獨(dú)特地標(biāo)示在層次結(jié)構(gòu)中的姐妹節(jié)點(diǎn)。
      11.如權(quán)利要求10所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,其中: 所述第一節(jié)點(diǎn)有第三標(biāo)簽; 所述識(shí)別第一節(jié)點(diǎn)的信息包含路徑;以及 所述路徑包括第一節(jié)點(diǎn)的第三標(biāo)簽。
      12.如權(quán)利要求8所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,其中: 所述第一子樹(shù)包含一包含相對(duì)引用的第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)的相對(duì)引用識(shí)別在所述第一子樹(shù)中的第一個(gè)識(shí)別的節(jié)點(diǎn); 所述第一子樹(shù)合并實(shí)例包含一包含相對(duì)引用的第三節(jié)點(diǎn),所述第三節(jié)點(diǎn)的相對(duì)引用識(shí)別在所述第一子樹(shù)合并實(shí)例中的第二個(gè)識(shí)別的節(jié)點(diǎn);以及 其中所述的第一個(gè)識(shí)別的節(jié)點(diǎn)和第二個(gè)識(shí)別的節(jié)點(diǎn)并非同一個(gè)節(jié)點(diǎn)。
      13.如權(quán)利要求8所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,其中: 所述第一子樹(shù)包含一包含絕對(duì)引用的第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)的絕對(duì)引用識(shí)別在所述第一子樹(shù)中第一個(gè)識(shí)別的節(jié)點(diǎn);以及 所述第一子樹(shù)合并實(shí)例包含一包含絕對(duì)引用的第三節(jié)點(diǎn),所述第三節(jié)點(diǎn)的絕對(duì)引用識(shí)別在所述第一子樹(shù)中的所述第一個(gè)識(shí)別的節(jié)點(diǎn)。
      14.如權(quán)利要求8所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒介,其中: 所述第一子樹(shù)包含一第四節(jié)點(diǎn),所述第四節(jié)點(diǎn)含一母令牌的數(shù)據(jù),所述母令牌表示可在所述層次結(jié)構(gòu)中往上移一個(gè)層級(jí)的指令。
      15.一種通過(guò)用層次結(jié)構(gòu)實(shí)例化場(chǎng)景描述數(shù)據(jù)來(lái)渲染三維圖像的裝置, 所述裝置包含: 經(jīng)配置可存儲(chǔ)所述層次結(jié)構(gòu)的存儲(chǔ)器;以及 一個(gè)或多個(gè)經(jīng)配置后可執(zhí)行下列操作的計(jì)算機(jī)處理器: 訪問(wèn)層次結(jié)構(gòu),所述層次結(jié)構(gòu)包含: 第一節(jié)點(diǎn),所述第一節(jié)點(diǎn)系一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)的前身,并且第一節(jié)點(diǎn)與第一場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān); 實(shí)例節(jié)點(diǎn),所述實(shí)例節(jié)點(diǎn)是所述層次結(jié)構(gòu)的葉子,所述實(shí)例節(jié)點(diǎn)有母節(jié)點(diǎn),所述實(shí)例節(jié)點(diǎn)與第二場(chǎng)景描述數(shù)據(jù)對(duì)象有關(guān),并且其中所述母節(jié)點(diǎn)有除實(shí)例節(jié)點(diǎn)之外的后繼節(jié)點(diǎn);讀取實(shí)例節(jié)點(diǎn)的實(shí)例化指令;所述實(shí)例化指令包含識(shí)別所述第一節(jié)點(diǎn)的信息; 合并在所述實(shí)例節(jié)點(diǎn)層次結(jié)構(gòu)中某位置的一個(gè)或多個(gè)節(jié)點(diǎn)的第一子樹(shù)的實(shí)例;以及 根據(jù)所述第一子樹(shù)的合并實(shí)例渲染圖像。
      16.如權(quán)利要求15所述的裝置,所述一個(gè)或多個(gè)計(jì)算機(jī)處理器經(jīng)配置還可用于: 確定在(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)和(b)所述除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)之間是否有沖突;以及 覆蓋由(b)所述除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)定義的屬性的第一值,通過(guò)使用由(a)第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)定義的屬性的第二值。
      17.如權(quán)利要求15所述的裝置,所述一個(gè)或多個(gè)經(jīng)過(guò)進(jìn)一步配置可執(zhí)行下列操作的計(jì)算機(jī)處理器: 通過(guò)下列方式確定沖突: 訪問(wèn)(a)所述第一子樹(shù)的至少一個(gè)節(jié)點(diǎn)的第一標(biāo)簽,所述標(biāo)簽具有標(biāo)簽值; 訪問(wèn)(b)所述除實(shí)例節(jié)點(diǎn)的母節(jié)點(diǎn)之外的后繼節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)的第二標(biāo)簽,所述第二標(biāo)簽具有標(biāo)簽值;以及 其中標(biāo)簽值獨(dú)特地標(biāo)示在層次結(jié)構(gòu)中的姐妹節(jié)點(diǎn)。
      18.如權(quán)利要求17所述的裝置,其中: 所述第一節(jié)點(diǎn)有第三標(biāo)簽; 所述識(shí)別第一節(jié)點(diǎn)的信息包含路徑;以及 所述路徑包括所述第一節(jié)點(diǎn)的所述第三標(biāo)簽。
      19.如權(quán)利要求15所述的裝置,其中: 所述第一子樹(shù)包含一包含相對(duì)引用的第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)的相對(duì)引用識(shí)別在所述第一子樹(shù)中的第一個(gè)識(shí)別的節(jié)點(diǎn); 所述第一子樹(shù)合并實(shí)例包含一包含相對(duì)引用的第三節(jié)點(diǎn),所述第三節(jié)點(diǎn)的相對(duì)引用識(shí)別在所述第一子樹(shù)合并實(shí)例中的第二個(gè)識(shí)別的節(jié)點(diǎn);以及 其中所述的第一個(gè)識(shí)別的節(jié)點(diǎn)和第二個(gè)識(shí)別的節(jié)點(diǎn)并非同一個(gè)節(jié)點(diǎn)。
      20.如權(quán)利要求15所述的裝置,其中:所述第一子樹(shù)包含一包含絕對(duì)引用的第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)的絕對(duì)引用識(shí)別在所述第一子樹(shù)中第一個(gè)識(shí)別的節(jié)點(diǎn);以及 所述第一子樹(shù)合并實(shí)例包含一包含絕對(duì)引用的第三節(jié)點(diǎn),所述第三節(jié)點(diǎn)的絕對(duì)引用識(shí)別在所述第一子樹(shù)中的所述第一個(gè)識(shí)別的節(jié)點(diǎn)。
      21.如權(quán)利要求15所述的裝置,其中: 所述第一子樹(shù)包含第四節(jié)點(diǎn),所述第四節(jié)點(diǎn)包含母令牌的數(shù)據(jù),所述母令牌表示可在所述層次結(jié)構(gòu) 中往上移一個(gè)層級(jí)的指令。
      【文檔編號(hào)】G06T17/00GK104050699SQ201410098949
      【公開(kāi)日】2014年9月17日 申請(qǐng)日期:2014年3月17日 優(yōu)先權(quán)日:2013年3月15日
      【發(fā)明者】R·G·威爾遜, D·穆?tīng)? N·龍 申請(qǐng)人:夢(mèng)工廠動(dòng)畫(huà)公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1