專利名稱:虛擬世界應(yīng)用中減少視覺模擬循環(huán)的總計算時間的方法
技術(shù)領(lǐng)域:
本發(fā)明公開的實(shí)施例一般涉及計算機(jī)生成的圖像,更具體地涉及提高計算機(jī)生成的圖像的效率的方法。
背景技術(shù):
虛擬世界應(yīng)用一般包括在服務(wù)器和客戶機(jī)二者上執(zhí)行的不同階段以給予用戶3D 真實(shí)性的感覺。例如,服務(wù)器執(zhí)行物理模擬和AI (人工智能)來發(fā)展對象并使用可見度計算來計算傳送至客戶機(jī)的可見集。同樣,客戶機(jī)執(zhí)行(基于效果的)物理模擬和渲染(利用光線跟蹤和/或光柵化)來顯示場景。這些“計算內(nèi)核”中的每一個維持并構(gòu)建其自身的數(shù)據(jù)結(jié)構(gòu)以加速其各自的計算。這些計算內(nèi)核彼此不同,因為它們中的每一個都針對其自身的任務(wù)優(yōu)化(如加速鄰近計算相對于使每個節(jié)點(diǎn)中的三角形的數(shù)量最小化相對于使節(jié)點(diǎn)中的空白空間最小化)。(本文中使用的術(shù)語“階段”、“內(nèi)核”和“計算內(nèi)核”含義相同。)附圖簡述通過閱讀以下的詳細(xì)描述并結(jié)合附圖將更好地理解所公開的實(shí)施例,在附圖中
圖1是根據(jù)現(xiàn)有技術(shù)圍繞計算機(jī)生成圖像的創(chuàng)建的現(xiàn)有進(jìn)程的圖示;圖2是根據(jù)本發(fā)明的實(shí)施例圍繞計算機(jī)生成圖像的創(chuàng)建的進(jìn)程的圖示;圖3示出根據(jù)本發(fā)明的實(shí)施例根據(jù)數(shù)據(jù)結(jié)構(gòu)修改在葉節(jié)點(diǎn)上的一組漸進(jìn)細(xì)化;圖4是示出根據(jù)本發(fā)明的實(shí)施例減少視覺模擬循環(huán)的總計算時間的方法的流程圖;圖5是示出根據(jù)本發(fā)明的實(shí)施例啟用由視覺模擬循環(huán)生成的虛擬場景的電子顯示上的視覺表示的方法的流程圖;以及圖6是示出根據(jù)本發(fā)明的實(shí)施例在虛擬世界應(yīng)用中處理視覺模擬循環(huán)的方法的流程圖。為了簡化和清楚說明的目的,附圖示出一般的構(gòu)造方式,且省略公知特征和技術(shù)的描述和細(xì)節(jié),以避免不必要地使所述本發(fā)明的實(shí)施例的討論晦澀。另外,附圖中的元件不一定是按比例繪制的。例如,附圖中的某些元件的尺寸相對于其它元件被放大,以有助于改進(jìn)對本發(fā)明的實(shí)施例的理解。相同的附圖標(biāo)記在不同的附圖中指示相同的元件,但相似的附圖標(biāo)記可能但不一定指示相似的元件。在說明書和權(quán)利要求書中的術(shù)語“第一”、“第二”、“第三”、“第四”等(如果有的話)用于在類似元件之間進(jìn)行區(qū)分,且未必是用于描述特定次序或時間順序。應(yīng)該理解如此使用的數(shù)據(jù)在適當(dāng)情況下是可以互換的,使得本文所述的本發(fā)明的實(shí)施例例如能夠以本文示出或以其它方式描述的次序以外的次序操作。類似地,如果本文中方法被描述為包括一系列步驟,則如本文呈現(xiàn)的這些步驟的順序不一定是可執(zhí)行這些步驟的唯一順序,且某些所述步驟可被省略和/或可能將本文未描述的某些其它步驟添加到該方法中。此外,術(shù)語“包括”、“包含”、“具有”及其任何變形旨在適用非排他地包括,使得包括一系列要素的過程、方法、制品或裝置不一定限于那些要素,但可包括未明確列出或這些過程、方法、制品或裝置所固有的其它要素。
在說明書和權(quán)利要求書中的術(shù)語“左”、“右”、“前”、“后”、“頂”、“底”、“上”、“下”等
(如果有的話)用于描述的目的,且不一定用于描述永久的相對位置。應(yīng)該理解如此使用的數(shù)據(jù)在適當(dāng)情況下是可以互換的,使得本文所述的本發(fā)明的實(shí)施例例如能夠以本文示出或以其它方式描述的方向以外的其它方向操作。如本文所使用的術(shù)語“耦合”被定義為電或非電方式的直接或間接連接。在本文中描述為彼此“相鄰”的物體按照適于使用該短語的上下文可以在物理上彼此接觸、彼此緊鄰或彼此處于同一通用區(qū)域或區(qū)。在本文中短語 “在一個實(shí)施例中”的出現(xiàn)不一定全指同一實(shí)施例。附圖的詳細(xì)描述在本發(fā)明的一個實(shí)施例中,減少視覺模擬循環(huán)的總計算時間的方法包括通過在執(zhí)行特定階段的計算之前使公用數(shù)據(jù)結(jié)構(gòu)適應(yīng)于每個特定階段的要求來在視覺模擬循環(huán)的每個階段上共享公用數(shù)據(jù)結(jié)構(gòu)。隨著多核架構(gòu)的出現(xiàn),前面提到的不同計算內(nèi)核很可能在同一處理器上執(zhí)行,且共享如高速緩存、存儲器控制器、總線等的資源。因此,構(gòu)建并維持其自身的狀態(tài)不僅增加用于構(gòu)建這些數(shù)據(jù)結(jié)構(gòu)的時間而且需要更多的資源來存儲它們。作為示例,物理模擬通常占用總處理時間(每幀)的約10%至20%用于加速數(shù)據(jù)結(jié)構(gòu)(例如,包圍體層次(BVH)、 kd-樹等)的構(gòu)造,且光線跟蹤占用處理時間(每幀)的約30%至40%來構(gòu)建其數(shù)據(jù)結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)的大小對于每個操作通常均相同,導(dǎo)致總處理時間的雙倍增加。構(gòu)建數(shù)據(jù)結(jié)構(gòu)(或加速層次)來使特定計算任務(wù)加速是公知的。然而,這些數(shù)據(jù)結(jié)構(gòu)隔離地構(gòu)建和維持,沒有共享的交叉應(yīng)用信息且沒有用于所有任務(wù)(如視覺模擬情況下的物理、圖形和Al)的一個數(shù)據(jù)結(jié)構(gòu)。相反,本發(fā)明的實(shí)施例在整個視覺模擬循環(huán)上構(gòu)建并維持一個公用數(shù)據(jù)結(jié)構(gòu)。這種“公用數(shù)據(jù)結(jié)構(gòu)”能以低成本修改以實(shí)現(xiàn)幾乎與單獨(dú)優(yōu)化的數(shù)據(jù)結(jié)構(gòu)的性能一樣好的性能。這允許構(gòu)造成本的顯著降低,且僅少量增加每個單獨(dú)算法的運(yùn)行時間同時實(shí)現(xiàn)共享架構(gòu)的所有優(yōu)點(diǎn)。結(jié)果是構(gòu)造加使用成本方面的凈提高,即,凈幀速率的增加。本發(fā)明的實(shí)施例在不同的應(yīng)用中共享公用數(shù)據(jù)結(jié)構(gòu),使它們按需要適應(yīng)于各應(yīng)用的要求。這種高時間效率和高空間效率的數(shù)據(jù)結(jié)構(gòu)共享實(shí)現(xiàn)資源的高效率使用以及性能增強(qiáng)。對于在同一平臺上運(yùn)行這些應(yīng)用的多核和很多核架構(gòu),本發(fā)明的實(shí)施例還節(jié)省存儲空間、改進(jìn)高速緩存局部性并減少數(shù)據(jù)結(jié)構(gòu)構(gòu)建時間?,F(xiàn)在參考附圖,圖1是根據(jù)現(xiàn)有技術(shù)圍繞計算機(jī)生成圖像的創(chuàng)建的現(xiàn)有進(jìn)程100 的圖示。圖1示出由物理模擬和光線跟蹤內(nèi)核構(gòu)成的應(yīng)用。這些內(nèi)核中的每一個構(gòu)建專用于該內(nèi)核的其本身的加速數(shù)據(jù)結(jié)構(gòu)(示出kd-樹但可使用任何數(shù)據(jù)結(jié)構(gòu))。因此現(xiàn)有技術(shù)支付了每幀構(gòu)造兩個kd-樹的成本。圖2是根據(jù)本發(fā)明的實(shí)施例圍繞計算機(jī)生成圖像的創(chuàng)建的進(jìn)程200的圖示。如圖 2所示,進(jìn)程200構(gòu)造用于物理模擬的一個kd-樹,然后使該數(shù)據(jù)結(jié)構(gòu)適應(yīng)于光線跟蹤。作為示例,物理模擬引擎可基于稱為WiysBAM的源碼庫(來自斯坦福大學(xué))。已經(jīng)確定以低構(gòu)造成本使數(shù)據(jù)結(jié)構(gòu)快速適應(yīng)于不同視覺計算內(nèi)核的技術(shù)(由圖2中的“使數(shù)據(jù)結(jié)構(gòu)適應(yīng)” 框表示);這些保留了用于每個內(nèi)核的專門數(shù)據(jù)結(jié)構(gòu)的大部分效率。這導(dǎo)致對于兩個內(nèi)核合起來在構(gòu)造加計算時間方面的新節(jié)省。作為示例,采用由物理模擬引擎構(gòu)建的kd-樹并使其適應(yīng)于光線跟蹤引擎(即圖2描述的情形)可通過使表面積啟發(fā)式(Surface Area Heuristic)適應(yīng)于細(xì)化WiysBAM樹的葉節(jié)點(diǎn)來完成,為
權(quán)利要求
1.一種啟用由視覺模擬循環(huán)生成的虛擬場景的電子顯示上的視覺表示的方法,所述方法包括針對所述視覺模擬循環(huán)的第一階段構(gòu)建數(shù)據(jù)結(jié)構(gòu); 利用所述數(shù)據(jù)結(jié)構(gòu)執(zhí)行第一階段的第一計算; 使所述數(shù)據(jù)結(jié)構(gòu)適應(yīng)于所述視覺模擬循環(huán)的第二階段;以及利用經(jīng)適應(yīng)的數(shù)據(jù)結(jié)構(gòu)執(zhí)行所述第二階段的第二計算。
2.如權(quán)利要求1所述的方法,其特征在于,還包括使所述數(shù)據(jù)結(jié)構(gòu)適應(yīng)于所述視覺模擬循環(huán)的每個附加階段;以及使用經(jīng)適應(yīng)的數(shù)據(jù)結(jié)構(gòu)中相應(yīng)的一個執(zhí)行所述視覺模擬循環(huán)的每個附加階段的后續(xù)計算。
3.如權(quán)利要求1所述的方法,其特征在于所述視覺模擬循環(huán)包括物理模擬階段、可見度計算階段、人工智能階段和渲染階段。
4.如權(quán)利要求3所述的方法,其特征在于所述視覺模擬循環(huán)由第一處理設(shè)備和第二處理設(shè)備處理;所述第一處理設(shè)備執(zhí)行人工智能階段、可見度計算階段和物理模擬階段的第一實(shí)例;以及所述第二處理設(shè)備執(zhí)行渲染階段和物理模擬階段的第二實(shí)例。
5.如權(quán)利要求1所述的方法,其特征在于 所述數(shù)據(jù)結(jié)構(gòu)包括kd-樹和包圍體層次之一。
6.如權(quán)利要求1所述的方法,其特征在于所述第一階段是物理模擬階段而所述第二階段是渲染階段;以及使所述數(shù)據(jù)結(jié)構(gòu)適應(yīng)包括執(zhí)行表面積啟發(fā)式。
7.如權(quán)利要求1所述的方法,其特征在于所述第一階段是渲染階段而所述第二階段是物理模擬階段;以及使所述數(shù)據(jù)結(jié)構(gòu)適應(yīng)包括標(biāo)識包括根節(jié)點(diǎn)和葉節(jié)點(diǎn)的空間層次結(jié)構(gòu);標(biāo)識所述渲染階段所使用的多個基元;用多個基元中的特定一個填充所述葉節(jié)點(diǎn)。
8.如權(quán)利要求7所述的方法,其特征在于 填充所述葉節(jié)點(diǎn)是在線性時間上執(zhí)行的。
9.一種減少視覺模擬循環(huán)的總計算時間的方法,所述方法包括通過在執(zhí)行特定階段的計算之前使公用數(shù)據(jù)結(jié)構(gòu)適應(yīng)于每個特定階段的要求來在視覺模擬循環(huán)的每個階段上共享公用數(shù)據(jù)結(jié)構(gòu)。
10.如權(quán)利要求9所述的方法,其特征在于所述視覺模擬循環(huán)包括物理模擬階段、可見度計算階段、人工智能階段和渲染階段。
11.如權(quán)利要求10所述的方法,其特征在于所述視覺模擬循環(huán)在第一處理設(shè)備和第二處理設(shè)備處處理;所述第一處理設(shè)備執(zhí)行人工智能階段、可見度計算階段和物理模擬階段的第一實(shí)例;以及所述第二處理設(shè)備執(zhí)行渲染階段和物理模擬階段的第二實(shí)例。
12.如權(quán)利要求9所述的方法,其特征在于 所述公用數(shù)據(jù)結(jié)構(gòu)包括kd-樹或包圍體層次。
13.如權(quán)利要求9所述的方法,其特征在于視覺模擬循環(huán)的第一階段是物理模擬階段,而視覺模擬循環(huán)的第二階段是渲染階段;以及使公用數(shù)據(jù)結(jié)構(gòu)適應(yīng)包括執(zhí)行表面積啟發(fā)式。
14.如權(quán)利要求9所述的方法,其特征在于視覺模擬循環(huán)的第一階段是渲染階段,而視覺模擬循環(huán)的第二階段是物理模擬階段;以及使所述公用數(shù)據(jù)結(jié)構(gòu)適應(yīng)包括 標(biāo)識包括根節(jié)點(diǎn)和葉節(jié)點(diǎn)的空間層次結(jié)構(gòu); 標(biāo)識所述渲染階段所使用的多個基元;以及用多個基元中的特定一個填充所述葉節(jié)點(diǎn)。
15.如權(quán)利要求14所述的方法,其特征在于 填充所述葉節(jié)點(diǎn)是在線性時間上執(zhí)行的。
16.一種在虛擬世界應(yīng)用中處理視覺模擬循環(huán)的方法,所述方法包括 對于視覺模擬循環(huán)的每個圖像更新幀精確構(gòu)建一個數(shù)據(jù)結(jié)構(gòu);在服務(wù)器處理設(shè)備上利用原始或經(jīng)適應(yīng)的版本的所述數(shù)據(jù)結(jié)構(gòu)執(zhí)行第一計算;以及在客戶機(jī)處理設(shè)備上利用原始或經(jīng)適應(yīng)的版本的所述數(shù)據(jù)結(jié)構(gòu)執(zhí)行第二計算。
17.如權(quán)利要求16所述的方法,其特征在于所述數(shù)據(jù)結(jié)構(gòu)駐留在客戶機(jī)處理設(shè)備的芯片上高速緩存中。
18.如權(quán)利要求16所述的方法,其特征在于 所述第一計算和所述第二計算是在圖像更新幀期間執(zhí)行的僅有的計算。
19.如權(quán)利要求16所述的方法,其特征在于 所述數(shù)據(jù)結(jié)構(gòu)包括kd-樹和包圍體層次之一。
全文摘要
減少視覺模擬循環(huán)的總計算時間的方法包括通過在執(zhí)行特定階段的計算之前使公用數(shù)據(jù)結(jié)構(gòu)適應(yīng)每個特定階段的要求來在視覺模擬循環(huán)的每個階段上共享公用數(shù)據(jù)結(jié)構(gòu)。
文檔編號G06T17/00GK102201127SQ20111008150
公開日2011年9月28日 申請日期2011年3月25日 優(yōu)先權(quán)日2010年3月26日
發(fā)明者B·卡坦扎羅, J·查烏加尼, N·R·薩蒂什, S·庫馬, 金昌奎 申請人:英特爾公司