序模塊或其它數(shù)據(jù)具體化為 諸如載波或其它傳輸機(jī)制那樣的調(diào)制的數(shù)據(jù)信號,并且通信介質(zhì)包括任何信息傳遞介質(zhì)。 術(shù)語"調(diào)制的數(shù)據(jù)信號"是指使它的特性中的一個或多個W如下方式設(shè)置或改變的信號, 良P:將信息編碼在信號中。作為示例,但不是限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或 直接連線的連接,W及包括無線介質(zhì),諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)。上述的任何介 質(zhì)的組合也應(yīng)當(dāng)被包括在計算機(jī)可讀介質(zhì)的范圍內(nèi)。
[0016] 存儲器112包括W易失性和/或非易失性存儲器形式的計算機(jī)存儲介質(zhì)。存儲器 112可W是可拆卸的、非可拆卸的或它們的組合。示范性存儲器包括固態(tài)存儲器、硬盤驅(qū)動 器、光盤驅(qū)動器等等。計算設(shè)備100包括一個或多個處理器114,它們從諸如總線110、存儲器 112或I/O組件120那樣的各種實體讀取數(shù)據(jù)。(一個或多個)展示組件116把數(shù)據(jù)指示展示給 用戶或其它設(shè)備。示范性展示組件116包括顯示設(shè)備、揚聲器、打印組件、振動組件等等。I/O 端口 118允許計算設(shè)備100被邏輯地禪合到包括I/O組件120的其它設(shè)備,其中的某些可能是 內(nèi)建的。說明性I/O組件120包括麥克風(fēng)、操縱桿、游戲板、衛(wèi)星碟形天線、攝像機(jī)、麥克風(fēng)、掃 描儀、打印機(jī)、無線設(shè)備等等。與說明性的I/O組件120的交互可W經(jīng)由觸摸、話音和手勢等 等。
[0017] 計算設(shè)備100的組件可W被用在圖像處理中。例如,計算設(shè)備100可W被用來實現(xiàn) 類似于圖3的圖形管線300的圖形管線,其處理原始圖像并對其施加各種效果和調(diào)節(jié)。圖形 管線包括在數(shù)字圖像上執(zhí)行的一系列操作。運些管線一般被設(shè)計成允許對數(shù)字圖像的高效 處理,而同時利用可得到的硬件。
[0018] 為了實現(xiàn)圖形管線,使用GPU 124上的一個或多個過程(procedural)著色器。過程 著色器是GPU 124的??诨奶幚碜訂卧糜趯D形數(shù)據(jù)執(zhí)行??诨牟僮?。過程著色器 的示例是外殼著色器126,其通常對2D曲線,比如像貝塞爾扇形操作。例如,外殼著色器126 可W基于與最小定界框相關(guān)聯(lián)的維度施加與將2D曲線再分成定義數(shù)目的=角形有關(guān)的計 算,其中所述最小定界框包圍定義2D曲線的控制點。過程著色器的另一示例是域著色器 128。例如,將外殼著色器126的輸出傳送至域著色器128,域著色器128進(jìn)而施加計算,W便 沿著2D曲線定義對于所述定義數(shù)目的=角形中每一個=角形的頂點位置。還使用諸如頂點 著色器和像素著色器運樣的其它過程著色器;W下將相對于圖3更加深入地說明運些著色 器。在過程著色器結(jié)束其操作之后,信息可W被置于GPU緩沖器130中。信息可W被展示在隨 附的顯示設(shè)備上或者可W被發(fā)送回主機(jī)W用于進(jìn)一步的操作。
[0019] GPU緩沖器130提供GPU 124上的存儲位置,在所述存儲位置可W存儲所處理的場 景數(shù)據(jù)。在對于場景數(shù)據(jù)執(zhí)行各種處理操作時,可W從GPU緩沖器130訪問數(shù)據(jù),更改數(shù)據(jù), 然后將數(shù)據(jù)重新存儲在緩沖器130上。GPU緩沖器130允許被處理的數(shù)據(jù)在被圖形管線變換 的時候保留在GPU 124上。由于將數(shù)據(jù)從GPU 124運送到存儲器112是耗時的,所W可能優(yōu)選 的是讓數(shù)據(jù)保留在GPU緩沖器130上直到處理操作完成。
[0020] 對于外殼著色器126和域著色器128,可W通過將指令下載到外殼著色器126和域 著色器128來獲得??诨墓δ苄?。另外,許多不同操作的功能性可W由針對諸如像素著色 器和光柵化器運樣的其他組件定制(tailor)的指令集來提供。例如,求反(negate)、重映 射、偏置和其他功能性對于許多圖形應(yīng)用是有用的。由于通過利用GPU 124的并行架構(gòu)而達(dá) 到的處理速度,對GPU 124上的外殼著色器126和域著色器128編程W處理2D曲線的能力對 于圖形操作是有利的。運些??诨闹噶罴蒞因為易于開發(fā)和改進(jìn)性能而增值。假定不 超過外殼著色器126和域著色器128的指令計數(shù)極限和其他硬件限制,則通過執(zhí)行運些指 令,可W由外殼著色器126和域著色器128執(zhí)行各種各樣的功能。外殼著色器126、域著色器 128和其他組件可W通過一個或多個應(yīng)用程序接口(API)接收指令。
[0021] 參考圖2,圖示了框圖,其示出適合供本發(fā)明的實施例使用的示范性計算系統(tǒng)架構(gòu) 200。圖2所示的計算系統(tǒng)架構(gòu)200只是一個合適的計算系統(tǒng)的示例,而不限制本發(fā)明的使用 或功能性的范圍。也不應(yīng)將計算系統(tǒng)架構(gòu)200解讀為具有與任何單一模塊/組件或模塊/組 件的組合有關(guān)的任何依賴性或要求。
[0022] 計算系統(tǒng)架構(gòu)200包括計算設(shè)備206和顯示器216。計算設(shè)備206包括圖像模塊208、 GPU驅(qū)動器210、API模塊212和操作系統(tǒng)214。計算設(shè)備206可W是任何類型的計算設(shè)備,比如 像W上參考圖1描述的計算設(shè)備100。僅作為示例而不是限制,計算設(shè)備206可W是個人計算 機(jī)、臺式計算機(jī)、膝上型計算機(jī)、手持設(shè)備、移動手持機(jī)或消費電子設(shè)備等等。
[0023] 圖像模塊208傳輸針對要呈現(xiàn)的對象或場景的數(shù)據(jù)。圖像模塊208可W是計算機(jī)程 序,針對所述計算機(jī)程序要呈現(xiàn)對象或場景。要呈現(xiàn)的對象或場景可W包括但不限于視頻 游戲圖像、視頻剪輯、電影圖像和靜態(tài)屏幕圖像。對象可W是=維的或二維的。API模塊212 是接口,其可W由操作系統(tǒng)214來提供,W支持由諸如圖像模塊208運樣的計算機(jī)程序做出 的請求。Direct3D ?和化en化?是支持圖像模塊208的請求的API的示例。設(shè)備206與顯示設(shè) 備216通信。
[0024] 圖像模塊208可W為圖形管線中的一個或多個組件提供配置指令。所述指令也可 W由操作系統(tǒng)214提供??蒞將指令傳遞至API模塊212,API模塊212將GPU驅(qū)動器210的功能 顯露給圖像模塊208"API模塊212可W基于接收到的指令來配置GPU驅(qū)動器210中的功能。如 隨后更詳細(xì)說明的,API模塊212具有再分因子性質(zhì),其定義了被諸如圖1的外殼著色器126 運樣的外殼著色器使用來尤其通過基于最小定界框的寬度或高度的最大值去將2D曲線再 分成定義數(shù)目的=角形而近似該曲線的參數(shù),其中所述最小定界框包含定義了 2D曲線的控 制點。API模塊212還可W具有位置因子性質(zhì),其定義了被諸如圖1的域著色器128運樣的域 著色器使用來通過沿著2D曲線確定對于所述定義數(shù)目的=角形中每個=角形的頂點位置 而定位2D曲線的參數(shù)。此外,API模塊212可W具有:呈現(xiàn)目標(biāo)存儲性質(zhì),其定義了在GPU上分 配給所呈現(xiàn)的圖像的存儲器量;W及采樣率性質(zhì),其定義了由光柵化器組件使用的采樣率。 圖像模塊208可W在每帖的基礎(chǔ)上為運些性質(zhì)提供指令,或在呈現(xiàn)單一場景或?qū)ο蟮臅r候 多次改變運些功能。
[0025] 參考圖3,示出了示范性圖形管線300。圖形管線300包括用于將場景數(shù)據(jù)變換成該 數(shù)據(jù)的光柵化位圖表示(也稱為覆蓋掩模(mask)或所呈現(xiàn)的圖像)的級,所述數(shù)據(jù)的光柵化 位圖表示可W被顯示在顯示設(shè)備上。圖形管線300包括輸入裝配器(assembler)310、頂點著 色器312、外殼著色器314、細(xì)化器316、域著色器318、幾何圖形著色器320、光柵化器324、像 素著色器326和輸出合并器328。由圖形管線300產(chǎn)生的所呈現(xiàn)圖像可W被寫入為所呈現(xiàn)圖 像分配的GPU緩沖器330(例如,如由連接圖形管線300和GPU緩沖器330的箭頭所示的)。圖3 中描繪的圖形管線300是示范性的,并且可W增加附加的組件或去除組件。
[0026] 輸入裝配器310從存儲器(例如,GPU緩沖器330)讀出頂點W及與貝塞爾扇形相關(guān) 聯(lián)的控制點和扇形原點,從運些數(shù)據(jù)點形成幾何圖形(例如,S角形和貝塞爾扇形的組),并 創(chuàng)建管線工作項目。每一組圖元(例如S角形對貝塞爾扇形)被作為圖形管線300上的單獨 的一遍通過(separate pass)來操控。然而為了效率,來自多個幾何圖形的相似圖元將在圖 形管線300上的單遍通過(single pass)中被一起處理。
[0027] 使用頂點著色器312和像素著色器326來光柵化=角形圖元。頂點著色器312是用 于通過對對象的頂點數(shù)據(jù)執(zhí)行數(shù)學(xué)運算而對3D環(huán)境中的對象添加特殊效果的圖形處理功 能。幾何圖形著色器320從發(fā)送給圖形管線300的起點的那些圖元生成新的圖形圖元,比如 點、線和=角形。光柵化器324將場景數(shù)據(jù)轉(zhuǎn)換成光柵圖像(例如,像素)W輸出至顯示器或 文件。光柵化器324可W按照每像素若干子像素來采樣場景數(shù)據(jù)。像素著色器326用于操縱 像素顏色,例如通常用于對圖像施加效果:真實感、凹凸貼圖(bump mapping)、陰影、抗銀齒 和爆炸效果。是圖形功能在每像素的基礎(chǔ)上計算效果。輸出合并器328執(zhí)行混合、深度和模 板(stencil)操作。由輸出合并器328產(chǎn)生的所呈現(xiàn)圖像被寫入GPU緩沖器330。
[0028] 除了其他著色器和/或W上概述的組件之外,還使用外殼著色器314、細(xì)化器316和 域著色器318來光柵化貝塞爾扇形圖元。如W下將更詳細(xì)描述的,外殼著色器314尤其指定 貝塞爾扇形將被當(dāng)作變形的=角形,將變形的=角形的內(nèi)部劃分成一個或多個=角形和曲 線段,并通過指定將如何再分曲線段而近似曲線段。例如,外殼著色器314基于包圍貝塞爾 扇形的控制點的定界框的維度來指定要被用來近似曲線段的=角形的數(shù)目。細(xì)化器316基 于由外殼著色器314指定的參數(shù)來實行對貝塞爾扇形的細(xì)化。
[0029] 細(xì)化器316的輸出被傳遞到域著色器318上。域著色器318還直接從外殼著色器314 接收與貝塞爾扇形相關(guān)聯(lián)的至少所述四個控制點和扇形原點W作為輸入。域著色器318使 用例如伯恩斯坦(Bernstein)多項式對運些值進(jìn)行運算,W輸出沿著貝塞爾扇形的曲線段 的每個=角形的頂點位置。因此,在高等級上,外殼著色器314指定被用來描述具有2D曲線 的幾何圖形的總體形狀,并且域著色器318定位所述幾何圖形。
[0030] 現(xiàn)在轉(zhuǎn)向圖4,貝塞爾扇形的說明圖被示出,并且總地用數(shù)字400來引