專利名稱:使用幾何著色器的鑲嵌引擎的系統(tǒng)、方法及計(jì)算機(jī)程序產(chǎn)品的制作方法
技術(shù)領(lǐng)域:
一般而言,本發(fā)明系有關(guān)于繪圖處理單元中的最佳化鑲嵌化操作。
背景技術(shù):
繪圖處理單元(GPU)為特定目的之用于繪圖處理操作的最佳化集成電路。繪圖處 理單元通常整合于計(jì)算裝置(如個(gè)人計(jì)算機(jī)、描繪場(chǎng)(rendering farm)或服務(wù)器、手持裝 置、數(shù)字電話等)之中,該計(jì)算裝置系用于執(zhí)行具有高難度繪圖處理需求之應(yīng)用程序,例如 電視游戲應(yīng)用程序。在大部分現(xiàn)今的GPU執(zhí)行中,繪圖操作的處理通常分散成數(shù)種功能性單元。典型 地,至繪圖處理單元的輸入的形式為頂點(diǎn)組以及一些連結(jié)數(shù)據(jù),該連結(jié)數(shù)據(jù)系確認(rèn)頂點(diǎn)如 何彼此互相連接。與頂點(diǎn)組的連結(jié)數(shù)據(jù)耦合的頂點(diǎn)組定義幾何基元。通常來(lái)說(shuō),幾何基元 的選擇為三角形,該三角形由三頂點(diǎn)及三邊緣定義,該邊緣以連結(jié)數(shù)據(jù)呈現(xiàn)。如同各幾何基元由用于描繪的繪圖處理單元處理,各頂點(diǎn)由頂點(diǎn)著色器處理。頂 點(diǎn)著色器通常用于進(jìn)行應(yīng)用于各頂點(diǎn)的運(yùn)算。該等運(yùn)算包含轉(zhuǎn)換運(yùn)算及光影運(yùn)算。由于該 等運(yùn)算的結(jié)果,關(guān)于經(jīng)計(jì)算頂點(diǎn)位置的數(shù)據(jù)、頂點(diǎn)中的基元顏色,以及用于紋理映像的頂點(diǎn) 中的紋理坐標(biāo)通常能予以計(jì)算。進(jìn)行對(duì)個(gè)頂點(diǎn)的控制后,管線的外加階段可對(duì)全體的基元進(jìn)行運(yùn)算。該階段通 常關(guān)于幾何著色器,且應(yīng)用繪圖技術(shù)至可能造成外加基元的創(chuàng)造的全部基元。舉例來(lái) 說(shuō),幾何著色器可以應(yīng)用再定位頂點(diǎn)組的位移映像,或應(yīng)用毛皮及鰭技術(shù)(fur and fin techniques)0在幾何著色器階段,輸出通常被傳送至掃描場(chǎng)解析器以轉(zhuǎn)換成二維圖像,以及由 像素著色器進(jìn)行進(jìn)一步提升。為了提升待呈現(xiàn)對(duì)象的外觀之目的,幾何著色器進(jìn)行的技術(shù)通常造成外加基元的 創(chuàng)造。藉由使用位移映像,例如,產(chǎn)生外加基元以提供外加頂點(diǎn),該外加頂點(diǎn)接著根據(jù)紋理 位映像(texture bitmap)予以移動(dòng)。一般而言,在該技術(shù)的執(zhí)行中使用越多基元,將顯示的 最終對(duì)象會(huì)越柔順及越逼真。然而,提供過(guò)多的頂點(diǎn)會(huì)壓制頂點(diǎn)著色器及幾何著色器,而且 無(wú)法造成顯著改善的待呈現(xiàn)對(duì)象,尤其是,當(dāng)呈現(xiàn)的對(duì)象配置于距觀察平面非常遠(yuǎn)的距離。先前的執(zhí)行系藉由鑲嵌引擎以在頂點(diǎn)著色器階段之前快速增加基元數(shù)量。舉例來(lái) 說(shuō),Buchner等人共同擁有的美國(guó)專利申請(qǐng)公開(kāi)第2004/0085312號(hào)(申請(qǐng)?zhí)?0/287,143) 的全部于此并入?yún)⒖?,并揭露一種用于進(jìn)行該鑲嵌化的方法及裝置。然而,先前的執(zhí)行僅允 許輸出從鑲嵌引擎至經(jīng)處理的頂點(diǎn)著色器,接著傳輸至掃描場(chǎng)解析器以呈現(xiàn)至顯示器。若 使用先前的執(zhí)行的開(kāi)發(fā)者欲藉由鑲嵌化基元增加基元計(jì)數(shù),接著經(jīng)由幾何著色器執(zhí)行鑲嵌 化基元,必須將鑲嵌化輸出儲(chǔ)存于內(nèi)存的某處。開(kāi)發(fā)者接著將需要再執(zhí)行鑲嵌化數(shù)據(jù)上的 繪圖處理單元管線,以使進(jìn)行其對(duì)鑲嵌化數(shù)據(jù)的控制。因此,當(dāng)處理幾何著色器中的鑲嵌化數(shù)據(jù)時(shí),需要改進(jìn)的技術(shù)以降低描鑲嵌化造成的繪成本。
發(fā)明內(nèi)容
本發(fā)明的具體實(shí)施例包含一種提供鑲嵌化基元數(shù)據(jù)至幾何著色器的方法。該方法 包含基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組,在鑲嵌引擎中計(jì)算鑲嵌化頂點(diǎn)組及經(jīng)計(jì)算連結(jié)數(shù)據(jù) 組;基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組,在頂點(diǎn)著色器中產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù);在該幾何 著色器中接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組,在該幾何著色器請(qǐng)求該經(jīng) 計(jì)算頂點(diǎn)數(shù)據(jù)的子集;以及處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集定義的基元。本發(fā)明的具體實(shí)施例包含一種用于提供鑲嵌化基元數(shù)據(jù)至幾何著色器之繪圖處 理單元。該繪圖處理單元包含鑲嵌引擎,基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組計(jì)算鑲嵌化頂點(diǎn)組 及經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;頂點(diǎn)著色器,基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù) 據(jù);以及幾何著色器,接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組,基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組請(qǐng)求該經(jīng)計(jì)算頂 點(diǎn)數(shù)據(jù)的子集,以及處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集定義的基元。本發(fā)明的具體實(shí)施例包含一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包含具有計(jì)算 機(jī)程序邏輯之計(jì)算機(jī)可用媒介,該計(jì)算機(jī)程序邏輯記錄于該計(jì)算機(jī)可用媒介上,該計(jì)算機(jī) 程序邏輯用于使處理器提供鑲嵌化基元數(shù)據(jù)至幾何著色器。該計(jì)算機(jī)程序邏輯包含數(shù)據(jù) 及/或指令,該數(shù)據(jù)及指令使該處理器基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組,在鑲嵌引擎中計(jì)算 鑲嵌化頂點(diǎn)組及經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組,在頂點(diǎn)著色器中 產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù);在幾何著色器中接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù) 組,在該幾何著色器中請(qǐng)求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集;以及處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子 集定義的基元。本發(fā)明的詳細(xì)特性及優(yōu)點(diǎn)以及本發(fā)明的各種具體實(shí)施例的結(jié)構(gòu)及操作,配合附圖 詳細(xì)說(shuō)明于下述中。須注意的是本發(fā)明不受限于此處所述的特定實(shí)施例。此處呈現(xiàn)的該 等具體實(shí)施例僅為例示性說(shuō)明之目的。基于此處包含的教示,其它具體實(shí)施例對(duì)本技術(shù)領(lǐng) 域具通常知識(shí)者而言為清楚的。
此處并入并構(gòu)成部分的說(shuō)明之附圖、本發(fā)明的例示性具體實(shí)施例及其敘述,進(jìn)一 步提供以解釋本發(fā)明的原則及使本技術(shù)領(lǐng)域具通常知識(shí)者可以制造及使用本發(fā)明。圖1為典型的繪圖處理器管線之圖示;圖2為根據(jù)本發(fā)明具體實(shí)施例的繪圖處理器管線與鑲嵌引擎的方塊圖;圖3為根據(jù)本發(fā)明具體實(shí)施例之最佳化繪圖處理器管線與該管線內(nèi)的鑲嵌引擎 之方塊圖;圖4為根據(jù)本發(fā)明實(shí)施例之繪圖處理器管線的數(shù)個(gè)階段之間的通信的圖示;圖5為根據(jù)本發(fā)明實(shí)施例之具有鑲嵌引擎的繪圖處理器管線通過(guò)幾何著色器提 升處理之流程圖;圖6繪示本發(fā)明實(shí)施例可實(shí)作的示范計(jì)算機(jī)系統(tǒng);圖7本發(fā)明實(shí)施例可實(shí)作之計(jì)算機(jī)系統(tǒng)中的接口層的例示范例各層的概念的圖
7J\ ο
本發(fā)明的詳細(xì)特性及優(yōu)點(diǎn)以及本發(fā)明的各種具體實(shí)施例的結(jié)構(gòu)及操作,配合附圖 詳細(xì)說(shuō)明于下述中。須注意的是本發(fā)明不受限于此處所述的特定實(shí)施例。此處呈現(xiàn)的該 等具體實(shí)施例僅為例示性說(shuō)明之目的?;诖颂幇慕淌?,其它具體實(shí)施例對(duì)本技術(shù)領(lǐng) 域具通常知識(shí)者而言為清楚的
具體實(shí)施例方式下列本發(fā)明的 詳細(xì)說(shuō)明系配合與本發(fā)明一致且繪示例示性實(shí)施例之圖示。其它實(shí) 施例亦為可亦可基于不同觀點(diǎn)與應(yīng)用,在不悖離本創(chuàng)作之精神下進(jìn)行各種修飾與變更。因 此,詳細(xì)說(shuō)明并不限制本發(fā)明。反之,本發(fā)明的范圍由請(qǐng)求的權(quán)利要求定義。對(duì)本技術(shù)領(lǐng)域具通常知識(shí)者而言,清楚的是下述本發(fā)明可以軟件、硬件、韌體及 /或圖示中繪示的整體的具體實(shí)施例完成。完成本發(fā)明的任何以硬件的特定控制的軟件編 碼并不限制本發(fā)明。因此,下述本發(fā)明的操作方式將附帶以下了解對(duì)本文所陳述的具體 實(shí)施例的修飾、變化皆為可能的。此外,對(duì)本技術(shù)領(lǐng)域具通常知識(shí)者而言,清楚的亦是各 具體實(shí)施例的模擬、合成及/或制造可以部分地經(jīng)由計(jì)算機(jī)可讀取編碼(如上述)的使用 完成,該計(jì)算機(jī)可讀取編碼包含常見(jiàn)的程序語(yǔ)言(如C or C++)、包含Verilog HDL, VHDL, Altera HDL(AHDL)等之硬件描述語(yǔ)言(HDL),或其它市面上的原理圖截取工具(如電路圖 截取工具;circuit capture tools)。計(jì)算機(jī)可讀取編碼可配置在任何習(xí)知的計(jì)算機(jī)可用 媒介,包含半導(dǎo)體、磁盤、光盤(如⑶-R0M、DVD-R0M),以及作為計(jì)算機(jī)數(shù)據(jù)信號(hào)內(nèi)嵌在計(jì)算 機(jī)可用(如可讀取)傳輸媒介(如載波或包含數(shù)字、光學(xué)或模擬型式媒介之任何其它媒介) 中。藉此,編碼可傳輸通過(guò)包含因特網(wǎng)之通信網(wǎng)路。須了解的是系統(tǒng)及上述技術(shù)完成之功 能及/或提供的結(jié)構(gòu)可以再呈現(xiàn)內(nèi)嵌在程序編碼中的核心(如繪圖處理器核心)中,并能 傳輸至作為集成電路的部份之硬件。圖1繪示具有至少四個(gè)處理階段之典型的繪圖處理器(GPU)管線100?,F(xiàn)今的繪 圖處理器管線100通常具有頂點(diǎn)著色器102階段、幾何著色器104階段、掃描場(chǎng)解析器106 階段,以及像素著色器108階段。于處理器管線100的使用中,繪圖應(yīng)用程序提供頂點(diǎn)著色 器102 —組頂點(diǎn)以及一組連結(jié)數(shù)據(jù)。此外,該組頂點(diǎn)及該組連結(jié)數(shù)據(jù)定義待呈現(xiàn)之對(duì)象或 場(chǎng)景。頂點(diǎn)著色器102可用于控制該組頂點(diǎn)以進(jìn)行頂點(diǎn)運(yùn)算。該等運(yùn)算包含,例如,轉(zhuǎn) 換運(yùn)算及光影運(yùn)算。頂點(diǎn)著色器102使繪圖應(yīng)用程序可控制待呈現(xiàn)之對(duì)象,例如,藉由增 加位移至各包含對(duì)象之頂點(diǎn)以移動(dòng)場(chǎng)景中的對(duì)象。舉例來(lái)說(shuō),若繪圖應(yīng)用程序欲沿χ、y、 Z空間中的X-軸將待呈現(xiàn)之對(duì)象移動(dòng)5單位,會(huì)使用頂點(diǎn)著色器計(jì)算+5位移量至各包含 對(duì)象之頂點(diǎn)的χ坐標(biāo)。根據(jù)本發(fā)明之實(shí)施例,此等計(jì)算系藉由發(fā)布單指令多重?cái)?shù)據(jù)(SIMD; single-instruction multiple-data)指令至繪圖處理器管線100完成。幾何著色器104從頂點(diǎn)著色器獲得受控制的頂點(diǎn)組及組連結(jié)數(shù)據(jù)以準(zhǔn)備進(jìn)一步 控制。幾何著色器104配置以運(yùn)算簡(jiǎn)單幾何形狀,即所謂基元(primitive)。雖然基元可為 任意組的頂點(diǎn)數(shù)據(jù)及該組中頂點(diǎn)間的連結(jié)數(shù)據(jù)時(shí),但大部份幾何著色器104執(zhí)行主要在運(yùn) 算三角形。三角形由三頂點(diǎn)及該等三頂點(diǎn)間的連結(jié)數(shù)據(jù)定義。幾何著色器104可用以,例 如,應(yīng)用再定位基元組中的頂點(diǎn)組或應(yīng)用毛皮及鰭技術(shù)(fur and fin techniques)至基元 組之位移映像(displacement map)。
應(yīng)用上述技術(shù)幾何著色器104的結(jié)果可為外加頂點(diǎn)及連結(jié)數(shù)據(jù)的創(chuàng)造,因此形成 外加基元。例如,位移映像的應(yīng)用程序可造成外加頂點(diǎn)及對(duì)應(yīng)連結(jié)數(shù)據(jù)的產(chǎn)生,以移動(dòng)頂點(diǎn) 先前無(wú)法配置之對(duì)象之區(qū)域。
應(yīng)用于頂點(diǎn)著色器102及幾何著色器104的技術(shù)易受益于作為至幾何著色器104 之輸入之較高的基元計(jì)數(shù),以造成較柔順、較復(fù)雜之對(duì)象。因此,有益的是使用高等級(jí)表面 (high-order surface)作為至繪圖處理器管線100的輸入,以從頂點(diǎn)著色器102及幾何著 色器104中的基元控制技術(shù)的應(yīng)用獲得更好的結(jié)果。掃描場(chǎng)解析器106抓取最終頂點(diǎn)組及連結(jié)數(shù)據(jù)組,以及,基于觀察平面,決定若從 對(duì)應(yīng)點(diǎn)的觀點(diǎn)以二維呈現(xiàn),包含頂點(diǎn)組及連結(jié)數(shù)據(jù)組之場(chǎng)景的表現(xiàn)樣貌。典型地包含備用 于二維顯示裝置上顯示之圖像元素(“像素”)組之待呈現(xiàn)場(chǎng)景,接著被傳送至用于每個(gè)像 素層級(jí)上的外加處理之像素著色器108。如前述,為了圖像質(zhì)量的目的,當(dāng)進(jìn)行繪圖處理器管線100中的基元的處理時(shí),具 有外加基元以共同工作是有益的。圖2為繪圖處理器管線200的方塊示。繪圖處理器管線200包含頂點(diǎn)著色器 203、幾何著色器104、掃描場(chǎng)解析器106以及如繪圖處理器管線100中的像素著色器108。 繪圖處理器管線亦包含鑲嵌引擎202用于完成導(dǎo)入基于存在基元之外加基元的處理,即為 “鑲嵌化”之處理。鑲嵌引擎202可用于抓取頂點(diǎn)數(shù)據(jù)組及連結(jié)數(shù)據(jù)組,以及鑲嵌產(chǎn)生之基元,以提 供新的頂點(diǎn)數(shù)據(jù)組及新的連結(jié)數(shù)據(jù)組至頂點(diǎn)著色器102以進(jìn)一步處理。Buchner等人共同 擁有的美國(guó)專利申請(qǐng)公開(kāi)第2004/0085312號(hào)(申請(qǐng)?zhí)?0/287,143)的全部于此并入?yún)?考,并揭露一種用于進(jìn)行該鑲嵌化的方法及裝置。如同習(xí)知路徑之中,鑲嵌引擎202的輸出 接著被傳送至頂點(diǎn)著色器203,使頂點(diǎn)著色器203可計(jì)算新的頂點(diǎn)組并將之儲(chǔ)存于評(píng)估著 色器204中。掃描場(chǎng)解析器106可接著從評(píng)估著色器204取回頂點(diǎn),并繼續(xù)先前的運(yùn)算。在本執(zhí)行中,不可能對(duì)管線200中的鑲嵌化輸出幾何著色器運(yùn)算,因?yàn)閹缀沃?器104沒(méi)有任何可以取回鑲嵌化輸出的手段。因此,為了應(yīng)用幾何著色器104技術(shù)至鑲嵌化 數(shù)據(jù),需要將鑲嵌化數(shù)據(jù)儲(chǔ)存在內(nèi)存某處,并重啟動(dòng)使用鑲嵌化數(shù)據(jù)作為至頂點(diǎn)著色器203 的輸入以通過(guò)至幾何著色器104的數(shù)據(jù)之管線200。具鑲嵌化之最佳化繪圖處理器管線圖3為根據(jù)本發(fā)明具體實(shí)施例之最佳化繪圖處理器管線300之圖示。管線300包 含鑲嵌引擎202、頂點(diǎn)著色器102、評(píng)估著色器204、幾何著色器104、掃描場(chǎng)解析器106,以及 像素著色器108。根據(jù)本發(fā)明之實(shí)施例,鑲嵌引擎202可用于從內(nèi)存位置(圖未示)取回(或接收) 的頂點(diǎn)組及連結(jié)信息。根據(jù)本發(fā)明之實(shí)施例,如Buchner等人共同擁有的美國(guó)專利申請(qǐng)公 開(kāi)第2004/0085312號(hào)(申請(qǐng)?zhí)?0/287,143)(其全部于此并入?yún)⒖?所述之一,應(yīng)用鑲嵌 化技術(shù)可使鑲嵌引擎產(chǎn)生鑲嵌化基元。根據(jù)本發(fā)明之實(shí)施例,鑲嵌引擎202中的鑲嵌化技術(shù)的應(yīng)用造成用于原輸入基元 的原頂點(diǎn)以及鑲嵌化頂點(diǎn)的輸出。對(duì)應(yīng)原頂點(diǎn)及鑲嵌化頂點(diǎn)的鑲嵌引擎產(chǎn)生的新連結(jié)信 息。于本例示性具體實(shí)施例中,鑲嵌化頂點(diǎn)作為重心坐標(biāo)(barycentric coordinate)被輸
出ο
如圖3所示,來(lái)自鑲嵌引擎202的輸出被傳輸至幾何著色器104及頂點(diǎn)著色器203 兩者。根據(jù)本發(fā)明之實(shí)施例,鑲嵌引擎202傳輸經(jīng)計(jì)算的包含原頂點(diǎn)及鑲嵌化頂點(diǎn)之頂點(diǎn) 組至頂點(diǎn)著色器203。根據(jù)本發(fā)明之實(shí)施例,頂點(diǎn)著色器203可用于計(jì)算經(jīng)計(jì)算頂點(diǎn)組的頂 點(diǎn)值。根據(jù)本發(fā)明之又一實(shí)施例,頂點(diǎn)著色器203可用于進(jìn)行經(jīng)計(jì)算頂點(diǎn)組的頂點(diǎn)上的外 加頂點(diǎn)運(yùn)算,例如轉(zhuǎn)換運(yùn)算。相關(guān)領(lǐng)域中熟習(xí)技術(shù)者應(yīng)了解到,該頂點(diǎn)著色器的功能包含用 于頂點(diǎn)層級(jí)運(yùn)作的已知技術(shù)。當(dāng)該經(jīng)計(jì)算頂點(diǎn)組的所有改變均已實(shí)施,該經(jīng)計(jì)算頂點(diǎn)組被 寫至評(píng)估著色器204。根據(jù)本發(fā)明的實(shí)施例,評(píng)估著色器204包含環(huán)狀緩存,該經(jīng)計(jì)算頂點(diǎn) 組被寫至該環(huán)狀緩存。 鑲嵌引擎202還直接傳輸全部頂點(diǎn)(原頂點(diǎn)及鑲嵌化頂點(diǎn)兩著)的連結(jié)數(shù)據(jù)至幾 何著色器104。根據(jù)本發(fā)明之實(shí)施例,幾何著色器104接著可用于使用這連結(jié)數(shù)據(jù)以獲得對(duì) 應(yīng)于由連結(jié)數(shù)據(jù)子集所定義的基元之頂點(diǎn)。根據(jù)本發(fā)明之實(shí)施例,幾何著色器104取回來(lái) 自評(píng)估著色器204的頂點(diǎn)數(shù)據(jù),其中,該頂點(diǎn)數(shù)據(jù)已經(jīng)藉由頂點(diǎn)著色器102儲(chǔ)存。圖4的通信流程圖進(jìn)一步根據(jù)本發(fā)明之實(shí)施例之本過(guò)程。流程圖400顯示鑲嵌引 擎202、頂點(diǎn)著色器203、評(píng)估著色器204,以及幾何著色器104之間的通信。于步驟402,在 鑲嵌化之后,鑲嵌引擎202傳輸原及鑲嵌化頂點(diǎn)組至頂點(diǎn)著色器203。于步驟404,計(jì)算經(jīng) 計(jì)算頂點(diǎn)組后,頂點(diǎn)著色器203將該經(jīng)計(jì)算頂點(diǎn)組儲(chǔ)存于評(píng)估著色器204中。再者,于步驟 406,鑲嵌引擎202直接傳輸全部頂點(diǎn)(原頂點(diǎn)及鑲嵌化頂點(diǎn)兩者)的經(jīng)計(jì)算連結(jié)數(shù)據(jù)至幾 何著色器104。根據(jù)本發(fā)明之實(shí)施例,于步驟408,具有在掌控中連結(jié)數(shù)據(jù),幾何著色器104接著 請(qǐng)求對(duì)應(yīng)于由連結(jié)數(shù)據(jù)所定義的基元之頂點(diǎn)組。評(píng)估著色器204接著提供被請(qǐng)求的頂點(diǎn)。 于步驟410,幾何著色器104接著可用于對(duì)被取回的頂點(diǎn)上的基元層級(jí)進(jìn)行運(yùn)算。根據(jù)本發(fā)明之實(shí)施例,圖5為繪示步驟之流程圖500,藉由該等步驟圖3的繪圖處 理器管線300可用于提供最佳化的鑲嵌化圖形。該方法開(kāi)始于步驟501,并續(xù)行至判斷是否 已經(jīng)請(qǐng)求鑲嵌化的步驟502。根據(jù)本發(fā)明之實(shí)施例,鑲嵌化只在符合特定閥值時(shí)才得以應(yīng)用程序。舉例來(lái)說(shuō),該 閥值可為從觀察平面至呈現(xiàn)對(duì)象的距離、對(duì)象的曲率或其它準(zhǔn)則。本技術(shù)領(lǐng)域具通常知識(shí) 者將了解到亦存在有其它閥值可最佳化呈現(xiàn)對(duì)象的復(fù)雜度,該呈現(xiàn)對(duì)象的復(fù)雜度系相對(duì) 于繪圖應(yīng)用程序的使用者的能力所能分辨的復(fù)雜度。再者,根據(jù)本發(fā)明之實(shí)施例,基于如特 定繪圖處理器管線300的控制能力、顯示區(qū)域及使用者喜好的考慮,調(diào)整閥值。于步驟502, 若未請(qǐng)求鑲嵌化,該法續(xù)行至步驟506而不進(jìn)行鑲嵌化。于步驟504,在鑲嵌引擎202中進(jìn)行鑲嵌化,且鑲嵌引擎202計(jì)算鑲嵌化頂點(diǎn)并產(chǎn) 生定義全部頂點(diǎn)(原頂點(diǎn)及鑲嵌化頂點(diǎn)兩者)間的連接的新連結(jié)數(shù)據(jù)。根據(jù)本發(fā)明之實(shí)施 例,于步驟506,頂點(diǎn)著色器203計(jì)算經(jīng)調(diào)整的頂點(diǎn)數(shù)據(jù)。如前述,頂點(diǎn)著色器203接收?qǐng)D4 的步驟402的來(lái)自于鑲嵌引擎202的原及鑲嵌化頂點(diǎn)組,于該鑲嵌引擎202上,頂點(diǎn)著色器 203可用于產(chǎn)生步驟404中經(jīng)計(jì)算頂點(diǎn)組。根據(jù)本發(fā)明的實(shí)施例,該經(jīng)計(jì)算頂點(diǎn)組是存儲(chǔ)在 評(píng)著色器204中。該方法續(xù)行至步驟508,其中幾何著色器104接收來(lái)自鑲嵌引擎202的連結(jié)數(shù)據(jù)。 于步驟510,幾何著色器104確認(rèn)對(duì)應(yīng)于連結(jié)數(shù)據(jù)的基元,以及取回對(duì)應(yīng)的頂點(diǎn)。根據(jù)本發(fā) 明之實(shí)施例,幾何著色器104取回來(lái)自評(píng)估著色器204的頂點(diǎn),其中儲(chǔ)存頂點(diǎn)著色器203已經(jīng)儲(chǔ)存該等頂點(diǎn)。幾何著色器104接著進(jìn)行取回的基元上的基元層級(jí)運(yùn)算,且該方法結(jié)束 于步驟512。計(jì)算機(jī)系統(tǒng)執(zhí)行本 發(fā)明的各種態(tài)樣可由軟件、韌體、硬件或其組合完成。圖6繪示例示性的計(jì)算機(jī) 系統(tǒng)600,其中本發(fā)明或本發(fā)明之部分可以計(jì)算機(jī)可讀取編碼方式完成。舉例來(lái)說(shuō),圖5的 流程圖繪示的方法可以在系統(tǒng)600中完成。本發(fā)明的各種具體實(shí)施例系依據(jù)該例示性的計(jì) 算機(jī)系統(tǒng)600說(shuō)明。在閱讀本說(shuō)明后,對(duì)本技術(shù)領(lǐng)域具通常知識(shí)者而言,如何使用其它計(jì)算 機(jī)系統(tǒng)及/或計(jì)算機(jī)結(jié)構(gòu)完成將變得清楚。計(jì)算機(jī)系統(tǒng)600包含一個(gè)或多個(gè)處理器,例如處理器604。處理器604可為特定目 的或通常目的處理器。處理器604連接至通信基礎(chǔ)設(shè)施606。計(jì)算機(jī)系統(tǒng)600亦包含主存儲(chǔ)器608,較佳為隨機(jī)存取內(nèi)存(RAM),以及亦包含第 二內(nèi)存610。第二內(nèi)存610可包含,例如,硬盤驅(qū)動(dòng)器612、可抹除儲(chǔ)存驅(qū)動(dòng)器614,及/或 記憶卡??赡ǔ齼?chǔ)存驅(qū)動(dòng)器614可包含軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、閃存等???抹除儲(chǔ)存驅(qū)動(dòng)器614以習(xí)知方式從可抹除儲(chǔ)存單元618讀取及/或?qū)懭胫量赡ǔ齼?chǔ)存單元 618??赡ǔ齼?chǔ)存單元618包含軟盤、磁帶、光盤等,該可抹除儲(chǔ)存單元618由可抹除儲(chǔ)存驅(qū) 動(dòng)器614讀取且寫入至可抹除儲(chǔ)存驅(qū)動(dòng)器614。本技術(shù)領(lǐng)域具通常知識(shí)者將了解到的是,可 抹除儲(chǔ)存單元618包含其中儲(chǔ)存有計(jì)算機(jī)軟件及/或數(shù)據(jù)之計(jì)算機(jī)可用儲(chǔ)存媒介。在另一執(zhí)行中,第二內(nèi)存610可包含其它類似手段使計(jì)算機(jī)程序或其它指令可被 加載至計(jì)算機(jī)系統(tǒng)600中。舉例來(lái)說(shuō),該等手段包含可抹除儲(chǔ)存單元622及接口 620。該等 手段的實(shí)例包含程序匣(program cartridge)及匣接口(如存在電視游戲器中之匣接口)、 可抹除記憶芯片(如EPROM或PR0M)及相關(guān)插槽,以及使軟件及數(shù)據(jù)可被從可抹除儲(chǔ)存單 元622傳送至計(jì)算機(jī)系統(tǒng)600之其它可抹除儲(chǔ)存單元622及接口 620。計(jì)算機(jī)系統(tǒng)600亦可包含通信接口 624。通信接口 624使軟件及數(shù)據(jù)可被傳送于 計(jì)算機(jī)系統(tǒng)600及外部裝置之間。通信接口 624可包含調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(如以太網(wǎng) 絡(luò)卡)、通信孔、PCMCIA插槽及卡等。經(jīng)由通信接口 624傳送的軟件及數(shù)據(jù)為可被通信接口 624接收之電子、電磁、光學(xué)或其它信號(hào)之形式之信號(hào)。該等信號(hào)經(jīng)由通信路徑626被提供 至通信接口 624。通信路徑626承載信號(hào),并可用電線(wire)或纜線(cable)、光纖、電話 線、行動(dòng)電話連結(jié)、RF連結(jié)或其它通信管道執(zhí)行。在本文中,所使用的術(shù)語(yǔ)“計(jì)算機(jī)程序媒介”及“計(jì)算機(jī)可用媒介”通常指如可抹 除儲(chǔ)存單元618、可抹除儲(chǔ)存單元622及設(shè)置于硬盤驅(qū)動(dòng)器中的硬盤之媒介。被載送通過(guò)通 信路徑626的信號(hào)實(shí)行本文所述的邏輯。計(jì)算機(jī)程序媒介及計(jì)算機(jī)可用媒介亦可指內(nèi)存, 例如可為半導(dǎo)體(如DRAM等)之主存儲(chǔ)器608及第二內(nèi)存610。該等計(jì)算機(jī)程序產(chǎn)品為提 供軟件至計(jì)算機(jī)系統(tǒng)600的手段。計(jì)算機(jī)程序(亦稱為計(jì)算機(jī)控制邏輯或數(shù)據(jù)及/或指令)儲(chǔ)存于主存儲(chǔ)器608及 第二內(nèi)存610中。該等計(jì)算機(jī)程序執(zhí)行時(shí)可使計(jì)算機(jī)系統(tǒng)600完成此處討論的本發(fā)明。尤 其是,計(jì)算機(jī)程序執(zhí)行時(shí)可使處理器604完成本發(fā)明的處理,例如圖5的流程圖500繪示 的方法中的步驟。因此,該等計(jì)算機(jī)程序代表計(jì)算機(jī)系統(tǒng)600的控制器。使用軟件完成本 發(fā)明時(shí),軟件可被儲(chǔ)存于計(jì)算機(jī)程序產(chǎn)品中并可被加載至使用可抹除儲(chǔ)存驅(qū)動(dòng)器614、接口 620、硬盤驅(qū)動(dòng)器612或通信接口 624的計(jì)算機(jī)系統(tǒng)600中。
本發(fā)明亦關(guān)于包含儲(chǔ)存于計(jì)算機(jī)可用媒介上的軟件之計(jì)算機(jī)程序產(chǎn)品。該軟件執(zhí) 行于一或更多數(shù)據(jù)處理裝置中時(shí),會(huì)使數(shù)據(jù)處理裝置進(jìn)行此處所述或上述之運(yùn)算、以及允 許計(jì)算裝置的合成及/或制造(如ASIC,或處理器)以進(jìn)行此處所述的本發(fā)明實(shí)施例。本 發(fā)明的具體實(shí)施例實(shí)行現(xiàn)今習(xí)知或未來(lái)的任何計(jì)算機(jī)可用或可讀取媒介。計(jì)算機(jī)可用媒介 的實(shí)例包含(但不限于)主儲(chǔ)存器(如任何形式的隨機(jī)存取內(nèi)存)、第二儲(chǔ)存器(如硬盤驅(qū) 動(dòng)器、軟盤、⑶R0MS、ZIP磁盤、磁帶、磁式儲(chǔ)存器、光學(xué)儲(chǔ)存器、MEMS、奈米技術(shù)儲(chǔ)存器等), 以及通信媒介(如有線及無(wú)線通信網(wǎng)路、局域網(wǎng)絡(luò)、廣域網(wǎng)絡(luò)、因特網(wǎng)等)。應(yīng)用程序?qū)蛹?jí)執(zhí)行根據(jù)本發(fā)明之實(shí)施例,圖7為繪示各層的概念的圖示,藉由該等層的概念繪圖應(yīng) 用程序702可用于與此處揭露的繪圖硬件互動(dòng)。應(yīng)用程序702可發(fā)送訊息至數(shù)個(gè)應(yīng)用程序 接口(“API”),該應(yīng)用程序接口包含繪圖應(yīng)用程序接口 704及操作系統(tǒng)(“OS”)應(yīng)用程序接 口 706。舉例來(lái)說(shuō),繪圖應(yīng)用程序接口 704包含Microsoft DirectX 10 (由位在Washington 的 Microsoft Corporation ofRedmond 開(kāi)發(fā)),或 Open Graphics Library (" OpenGL"; 由位在 Sunnyvale, California 的 Silicon Graphics, Inc 開(kāi)發(fā))。各種應(yīng)用程序接口可進(jìn)一步與繪圖硬件制造商提供的概念層互動(dòng),以與特定的繪 圖硬件(即,繪圖硬件驅(qū)動(dòng)器708)互動(dòng)。操作系統(tǒng)核心710接收各層的通信,接著發(fā)送適 當(dāng)訊息至繪圖硬件712。根據(jù)本發(fā)明之實(shí)施例,上述圖3的繪圖處理器管線300在繪圖硬件712中執(zhí)行。根 據(jù)本發(fā)明之又一實(shí)施例,繪圖硬件驅(qū)動(dòng)器708及繪圖應(yīng)用程序接口 704經(jīng)最佳化以使用繪 圖處理器管線300的鑲嵌化特性。結(jié)論 雖然本發(fā)明的各種實(shí)施例已經(jīng)過(guò)上述說(shuō)明,但須了解到本發(fā)明僅由該等實(shí)施例方 式呈現(xiàn),但本發(fā)明不受限于此。本技術(shù)領(lǐng)域具通常知識(shí)者將了解到該等實(shí)施例可在不脫離 廣義發(fā)明概念、申請(qǐng)專利范圍定義的范圍及其均等范圍的原則及精神下,加以置換、修改以 及變化。須了解的是,本發(fā)明不受限于該等實(shí)施例。本發(fā)明可應(yīng)用于此處所述的任何組件 操作。因此,本發(fā)明的廣泛及范圍不應(yīng)受限于上述的例示性實(shí)施例,但應(yīng)由如根據(jù)以下申請(qǐng) 專利范圍及其均等定義之。
權(quán)利要求
1.一種提供鑲嵌化基元數(shù)據(jù)至幾何著色器的方法,該方法包含基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組,在鑲嵌引擎中計(jì)算鑲嵌化頂點(diǎn)組及經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組,在頂點(diǎn)著色器中產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù); 在該幾何著色器中接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組,在該幾何著色器請(qǐng)求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集;以及 處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集定義的基元。
2.如權(quán)利要求1所述的方法,還包含若該頂點(diǎn)組不符合閥值,則使該鑲嵌引擎的使用不處理表面數(shù)據(jù)輸出。
3.如權(quán)利要求2所述的方法,其中,該閥值由與觀察平面間的距離定義。
4.如權(quán)利要求3所述的方法,其中,該閥值基于觀察窗口的尺寸予以調(diào)整。
5.如權(quán)利要求1所述的方法,還包含將該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)儲(chǔ)存于該頂點(diǎn)著色器中的評(píng)估著色器。
6.如權(quán)利要求5所述的方法,其中,該請(qǐng)求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集包含 向該評(píng)估著色器請(qǐng)求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集。
7.一種繪圖處理單元,用于提供鑲嵌化基元數(shù)據(jù)至幾何著色器,該繪圖處理單元包含鑲嵌引擎,基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組計(jì)算鑲嵌化頂點(diǎn)組及經(jīng)計(jì)算連結(jié)數(shù)據(jù)組; 頂點(diǎn)著色器,基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù);以及 幾何著色器,接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組,基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組請(qǐng)求該經(jīng)計(jì)算頂點(diǎn) 數(shù)據(jù)的子集,以及處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集定義的基元。
8.如權(quán)利要求7所述的繪圖處理單元,其中,若該原頂點(diǎn)組不符合閥值,則該鑲嵌引擎 不運(yùn)作。
9.如權(quán)利要求8所述的繪圖處理單元,其中,該閥值由與觀察平面間的距離定義。
10.如權(quán)利要求9所述的繪圖處理單元,其中,該閥值基于觀察窗口的尺寸予以調(diào)整。
11.如權(quán)利要求7所述的繪圖處理單元,其中,該頂點(diǎn)著色器用于將該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù) 儲(chǔ)存于評(píng)估著色器中。
12.如權(quán)利要求11所述的繪圖處理單元,其中,該幾何著色器用于向該評(píng)估著色器請(qǐng) 求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集。
13.一種計(jì)算機(jī)程序產(chǎn)品,包含具有計(jì)算機(jī)程序邏輯的計(jì)算機(jī)可用媒介,該計(jì)算機(jī)程序 邏輯記錄于該計(jì)算機(jī)可用媒介上,該計(jì)算機(jī)程序邏輯用于使處理器提供鑲嵌化基元數(shù)據(jù)至 幾何著色器,該計(jì)算機(jī)程序邏輯包含數(shù)據(jù)及指令以使該處理器基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組,在鑲嵌引擎中計(jì)算鑲嵌化頂點(diǎn)組及經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組,在頂點(diǎn)著色器中產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù); 在幾何著色器中接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組,在該幾何著色器中請(qǐng)求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集;以及 處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集定義的基元。
14.如權(quán)利要求13所述的計(jì)算機(jī)程序邏輯,還包含若該原頂點(diǎn)組不符合閥值,則使該鑲嵌引擎的使用不處理表面數(shù)據(jù)輸出。
15.如權(quán)利要求14所述的計(jì)算機(jī)程序邏輯,其中,該閥值由與觀察平面間的距離定義。
16.如權(quán)利要求15所述的計(jì)算機(jī)程序邏輯,其中,該閥值基于觀察窗口的尺寸予以調(diào)節(jié)。
17.如權(quán)利要求13所述的計(jì)算機(jī)程序邏輯,還包含數(shù)據(jù)及指令,以使該處理器 將該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)儲(chǔ)存于該頂點(diǎn)著色器中的評(píng)估著色器。
18.如權(quán)利要求17所述的計(jì)算機(jī)程序邏輯,其中,使該處理器請(qǐng)求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù) 的子集的該數(shù)據(jù)及指令包含數(shù)據(jù)及指令,以使該處理器向該評(píng)估著色器請(qǐng)求該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集。
19.如權(quán)利要求13所述的計(jì)算機(jī)程序邏輯,其中,該數(shù)據(jù)及指令包含硬件描述語(yǔ)言數(shù) 據(jù)及指令。
20.一種繪圖處理單元,包含鑲嵌引擎,基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組計(jì)算鑲嵌化頂點(diǎn)組及經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;以及頂點(diǎn)著色器,基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)。
21.如權(quán)利要求20所述的繪圖處理單元,還包含幾何著色器,接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組,基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組請(qǐng)求經(jīng)計(jì)算頂點(diǎn)數(shù) 據(jù)的子集,以及處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集定義的基元。
22.如權(quán)利要求20所述的繪圖處理單元,其中,該繪圖處理單元包含儲(chǔ)存計(jì)算機(jī)可讀 媒介上的指令組,該些指令包含硬件描述語(yǔ)言指令。
全文摘要
本發(fā)明揭露提供鑲嵌化基元數(shù)據(jù)至幾何著色器的系統(tǒng)、方法及計(jì)算機(jī)程序產(chǎn)品。該方法包含基于原頂點(diǎn)組及原連結(jié)數(shù)據(jù)組,計(jì)算鑲嵌化頂點(diǎn)組及經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該原頂點(diǎn)組及該鑲嵌化頂點(diǎn)組,產(chǎn)生經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù);接收該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組;基于該經(jīng)計(jì)算連結(jié)數(shù)據(jù)組,請(qǐng)求經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集;以及處理由該經(jīng)計(jì)算頂點(diǎn)數(shù)據(jù)的子集定義的基元。本發(fā)明揭露之該系統(tǒng)及該產(chǎn)品系完成與上述方法相似的結(jié)果。
文檔編號(hào)G06F15/16GK102047238SQ200980119831
公開(kāi)日2011年5月4日 申請(qǐng)日期2009年5月27日 優(yōu)先權(quán)日2008年5月29日
發(fā)明者V·戈?duì)?申請(qǐng)人:先進(jìn)微裝置公司