欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

圖形處理系統(tǒng)的制作方法

文檔序號:6580944閱讀:198來源:國知局
專利名稱:圖形處理系統(tǒng)的制作方法
圖形處理系統(tǒng) 本發(fā)明涉及在計算機圖形系統(tǒng)中的渲染圖像的過程,尤其涉及在這種系統(tǒng)中的筆 畫曲線(stroked curve)的渲染。
背景技術(shù)
近年來,在計算機圖形中使用矢量圖形已經(jīng)變的日益常見。正如所知道的,在該領(lǐng) 域中,矢量圖形優(yōu)于光柵圖形的一個關(guān)鍵優(yōu)點是提供分辨率獨立的圖像,即可以被基本上 無限縮放(sacle)而不降級的圖像。例如,計算機字體中的獨特的字符,比如TrueType , 典型地以矢量圖像存儲。 矢量圖形基于單個定義的幾何對象的使用,并典型地由一個或多個線段描述,例 如在錨點被連接在一起以形成路徑的直線或曲線(比如二次(貝塞爾曲線)曲線,橢圓形 的弧,三次(貝塞爾曲線)曲線)。 在空間中定義并操作矢量圖形對象/路徑,通常被認(rèn)為是"用戶空間(use space)"。然而,為了向視頻顯示器或打印機輸出該矢量圖形對象/路徑,在用戶空間定義 的對象/路徑需要被轉(zhuǎn)換為合適的形式以便在屏幕上顯示或在打印機上輸出。典型地, 這個轉(zhuǎn)換包括把在用戶空間所定義的對象/路徑投射到通常被稱為"表面空間(surface space)"的另一個空間,其對應(yīng)于輸出顯示器的全景(幾何),其中,對象/路徑在該顯示器 上將被看到。典型地,用戶空間和表面空間之間的轉(zhuǎn)換被稱為"用戶到表面的轉(zhuǎn)換"。
—旦矢量圖形對象/路徑被轉(zhuǎn)換到表面空間的表示內(nèi),他們就被渲染 (rendered)。 正如在該領(lǐng)域中所知道的,典型地,這個過程包括產(chǎn)生一個或多個覆蓋對象/路 徑的表面空間的表示的圖形基元(primitive),比如三角形,以及在該基元內(nèi)把該基元光柵 化為多個采樣點,其中,該基元隨后被采樣以確定每一個采樣點是否落在投射的對象/路 徑內(nèi)?;谶@個確定,向該多個采樣點分配數(shù)據(jù)以適當(dāng)允許該對象/路徑被正確地顯示,其 中,該數(shù)據(jù)例如是紅、綠和藍(RGB)顏色值以及"alpha"透明度值。這些過程通常被分別稱 為光柵化和明暗處理(shading)。(在3D圖形文獻中,詞"光柵化"有時被用來指代對象到采樣位置的轉(zhuǎn)換和明暗處 理。然而,在這里,光柵化將僅僅被用來指代被對象數(shù)據(jù)轉(zhuǎn)換到采樣點地址。)
正如在該領(lǐng)域中所知道的,典型地,通過表現(xiàn)使用通常稱為"片元(fragment)"的 離散圖形實體的采樣點來執(zhí)行這些過程,其中,在片元上執(zhí)行圖形處理操作(比如明暗處 理)。因此,實際上,該片元是由圖形處理系統(tǒng)(其經(jīng)過圖形管線)處理的圖形實體。
每個片元可以被合理的認(rèn)為是有效等同于被處理的場景的"像素(pixel)"。每 個片元可以對應(yīng)于單個或多個采樣點。在最終的顯示中,每個片元可以對應(yīng)于單一的像素 (圖像要素)(既然因為像素在顯示中是單個,在由圖形處理器操作的片元和顯示的像素之 間存在有一到一的映射)。然而,更典型地情況將是片元和顯示像素之間沒有一到一的對 應(yīng),例如,在顯示最終圖像之前在渲染圖像上執(zhí)行后處理(post-processing)的特定方式 地方,比如下縮放(down-scaling)。
6
在矢量圖形中通常可見的兩類對象是"填充"對象和筆畫對象(stroked objects)。填充的過程包括把單個色彩、梯度(gradient)、圖案或者圖像塊應(yīng)用到在一個對 象或封閉路徑內(nèi)的區(qū)域。與此同時,筆畫的過程可以被看作通過沿著路徑拖動特定寬度的 線形(line-shaped)筆尖來向路徑有效地添加寬度。更明確地,筆尖的中心點跟著路徑,而 且筆尖是定向的以便總是與路徑垂直。因此,相同地,筆畫路徑的邊界也可以由一組點來定 義,其中,自該點向在路徑上的點可以畫長度(至多)為w/2(對于寬度w的筆畫的路徑) 且垂直于路徑的線。 特別地,就在CPU上的負(fù)載而言,傳統(tǒng)的筆畫路徑和筆畫曲線的渲染是昂 貴的操作。例如,一種常見的渲染筆畫路徑的方法是在CPU上把路徑再分成到多個 單獨的線或填充路徑內(nèi),之后,其每一個都可以被分別渲染。然而,這是處理集約型 (processing-intensive)的操作。用于渲染筆畫曲線經(jīng)常使的另外一種方法是使用專用曲 線渲染硬件。然而,盡管這個方法確實提供了解決方案以縮減與上面描述的再分技術(shù)有關(guān) 的執(zhí)行,它需要專用的硬件,其,例如,在圖形處理系統(tǒng)中不總是可用或者令人滿意的。
因此,申請人相信有發(fā)揮渲染筆畫路徑(且尤其筆畫曲線)的另外的技術(shù)的余地, 例如,其可以不需要使用另外的、專用的硬件,但和已知的再分技術(shù)相比較,其可能依然達 到改進的執(zhí)行級別。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供在圖形處理系統(tǒng)中渲染用于顯示的筆畫曲線的方 法,該方法包括 接收在用戶空間定義的輸入筆畫曲線; 通過確定對應(yīng)于所接收的筆畫曲線的在規(guī)范空間(canonicalspace)定義的規(guī)范
曲線的部分來確定對應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分; 使用接收的轉(zhuǎn)換把所接收的筆畫曲線投射進表面空間內(nèi); 在表面空間定義一個或多個基元(primitives),其覆蓋所投射的筆畫曲線; 對于在該一個或多個基元內(nèi)的多個采樣點中的每一個,確定在規(guī)范空間內(nèi)的對應(yīng)
地址是否在對應(yīng)于所接收的筆畫曲線的該規(guī)范空間的部分內(nèi);以及 依照確定在規(guī)范空間內(nèi)的對應(yīng)地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空 間的該部分內(nèi)的所述步驟,把用于渲染所接收的筆畫曲線的數(shù)據(jù)分配到表面空間內(nèi)的多個 采樣點中的一個或多個。 根據(jù)本發(fā)明的第二方面,提供在圖形處理系統(tǒng)中用于渲染用于顯示的筆畫曲線的 渲染設(shè)備,該設(shè)備包括 用于接收在用戶空間內(nèi)定義的筆畫曲線的裝置; 用于通過確定對應(yīng)于所接收的筆畫曲線的在規(guī)范空間內(nèi)定義的規(guī)范曲線的部分
來確定對應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分的裝置; 用于使用接收的轉(zhuǎn)換把所接收的筆畫曲線投射進表面空間內(nèi)的裝置; 用于定義一個或多個在表面空間內(nèi)覆蓋所投射的筆畫曲線基元的裝置; 對在該一個或多個基元內(nèi)的多個采樣點中的每一個,來確定在規(guī)范空間內(nèi)的對應(yīng)
地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的該部分內(nèi)的裝置;以及
用于依照在規(guī)范空間內(nèi)的對應(yīng)地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空 間的該部分內(nèi)的所述確定,來把用于渲染所接收的筆畫曲線的數(shù)據(jù)分配到表面空間內(nèi)的多 個采樣點中的一個或多個的裝置。 在本發(fā)明中,通過首先把該輸入筆畫曲線映射到已被在"規(guī)范空間"內(nèi)定義的預(yù)先 定義的曲線的對應(yīng)部分,來渲染輸入筆畫曲線。然后,在規(guī)范空間中的位置被采樣(測試), 以確定在表面空間的對應(yīng)位置是否落在該輸入筆畫曲線內(nèi)部。 這是和直接確定在表面空間內(nèi)的采樣點是否在所投射的筆畫曲線內(nèi)(及因此直 接確定關(guān)于由用于渲染的圖形處理系統(tǒng)接收的每個筆畫曲線的信息)形成對比,其經(jīng)常不 可行或不便捷,由此導(dǎo)致了以上討論的先前技術(shù)的使用。 然而,申請人已經(jīng)認(rèn)識到,可以僅僅使用平移,旋轉(zhuǎn)和等比縮放(uniform scaling)把某些曲線家族內(nèi)的所有曲線轉(zhuǎn)換成預(yù)先定義的,單個或基本的曲線(這里稱為 "規(guī)范曲線(canonicalcurve)")中的至少一部分。 因此,這允許關(guān)于單個曲線(即規(guī)范曲線)的信息,被用來確定關(guān)于由用于渲染的 圖形處理系統(tǒng)接收的多個筆畫曲線的信息。換句話說,例如,代替必需得到或存儲與將被渲 染的、通過圖形處理系統(tǒng)接收的每一個單獨的筆畫曲線有關(guān)的數(shù)據(jù),它僅僅需要得到或存 儲關(guān)于該規(guī)范曲線的數(shù)據(jù)。此數(shù)據(jù)隨后可以被用來渲染屬于"規(guī)范曲線"所表示的筆畫曲 線的家族(組)的單獨的筆畫曲線中的每一個。 此外,因為僅使用平移、旋轉(zhuǎn)和等比縮放可以把適當(dāng)給出的輸入筆畫曲線轉(zhuǎn)換到 這樣的對應(yīng)的規(guī)范曲線,隨后,如下面將進一步討論的,其允許對應(yīng)于所接收的筆畫曲線的 規(guī)范曲線的部分,"筆畫規(guī)范曲線段(segment)",例如它的起始和終止點在使用中被快捷地 確定。同樣地,允許在規(guī)范空間中,當(dāng)筆畫曲線將出現(xiàn)時,它的寬度在使用中被快捷地確定。
例如,因為可以使用等比縮放和其它事項把輸入筆畫曲線映射到它的對應(yīng)規(guī)范曲 線,在用戶空間內(nèi)是單一值的筆畫寬度在規(guī)范空間內(nèi)將依舊是單一值,盡管典型地是不同 的值(即在用戶空間內(nèi)的筆畫寬度乘以與用戶空間和規(guī)范空間之間的轉(zhuǎn)換相關(guān)的任意縮 放因子)。(這是與,例如,用戶空間和表面空間之間的轉(zhuǎn)換相比,其典型地包括非-等比縮 放,所以在用戶空間內(nèi)筆畫曲線的單一寬度值隨著投射進表面空間內(nèi),典型地,它的值將變 成多值(即,寬度將沿著筆畫曲線的長度變化))。 因此,本發(fā)明不僅能提供更為有效的用于渲染筆畫曲線的機制,它還提供用于這 樣做的尤其方便的機制。 對任何形式的筆畫曲線而言,可以使用本發(fā)明為其衍生出具有如上所描述的性質(zhì) 的"規(guī)范曲線"。因此,由圖形處理系統(tǒng)接收的輸入筆畫曲線可以是來自曲線家族的任何曲 線,其可以有適當(dāng)相關(guān)的規(guī)范曲線。 可以有這個形式的相關(guān)的規(guī)范曲線的一個曲線家族是二次曲線。在這種情況中, 規(guī)范曲線將是基本二次曲線,即,y = x2式的二次曲線。 據(jù)此,在一個優(yōu)選的實施例中,由圖形處理系統(tǒng)接收的在用戶空間內(nèi)的筆畫曲線 是二次曲線。 在用戶空間定義的筆畫曲線可以以任何期望和合適的方式定義,其中,該筆畫曲 線被接收作為到本發(fā)明的過程的輸入。 例如,且優(yōu)選地,圖形處理系統(tǒng)可以接收定義筆畫曲線的信息,該信息例如是曲線
8位置和任何涉及曲線的參數(shù)。 如上所描述的,優(yōu)選地,通過中心曲線和相關(guān)的筆畫寬度在用戶空間定義所接收 的(或輸入的)筆畫曲線。優(yōu)選地,該筆畫曲線的中心曲線通過在用戶空間內(nèi)的多個控制 點(典型地,包括起始點,終止點及一個或多個中間點)的位置,與起始和終止控制點之間 要畫的曲線的類型指示一起來確定。例如,并優(yōu)選地,筆畫的中心曲線包括以下所列中的一 個二次貝賽爾曲線(需要單個中間控制點);三次貝賽爾曲線(需要兩個中間控制點); 以及橢圓性弧線。 因此,在一個優(yōu)選的實施例中,用以接收在用戶空間中定義的筆畫曲線的步驟或 裝置,包括接收在用戶空間中的多個控制點的位置、指示曲線類型的信息、以及在用戶空間 的筆畫寬度。 在用戶空間中定義的輸入到本發(fā)明的過程中的筆畫曲線可以是通過,例如,要求 畫出曲線的應(yīng)用,所初始定義的筆畫曲線。 然而,對于要成為可從另外的在用戶空間內(nèi)定義的曲線得到的曲線的筆畫曲線,
也是有可能的。例如,值得思考的是,輸入筆畫曲線可能已經(jīng)通過把其它的或者初始曲線轉(zhuǎn)
換到用戶空間形式內(nèi)而得到,其中,由本發(fā)明在該用戶空間形式內(nèi)接收它。 同樣值得思考的是通過再分在用戶空間內(nèi)定義的初始曲線可以得到輸入筆畫曲線。 例如,正如下面將要更進一步討論的,申請人已經(jīng)認(rèn)識到,如果在規(guī)范空間中不具 有對應(yīng)曲線的曲線要被渲染可能要把那個初始曲線再分成多個曲線部分或段,其每一個都 具有對應(yīng)的規(guī)范曲線(其是具有相關(guān)規(guī)范曲線的曲線家族的成員)。例如,三次或橢圓形曲 線被再分成多個二次曲線。因此,這總允許本發(fā)明被用來渲染曲線,其中,該曲線可以沒有 為其直接定義的(和/或存儲的)或可用的直接對應(yīng)的規(guī)范曲線。 申請人:進一步認(rèn)識到將給定的要渲染的筆畫曲線分成用于渲染的不同部分可能 也是所期望的,因為這可以(正如下面將要進一步討論的)允許渲染過程更加快捷。
因此,在尤其優(yōu)選的實施例中,本發(fā)明進一步包括用于把在用戶空間內(nèi)定義的筆 畫曲線再分成多個筆畫曲線部分,然后,用一個或多個筆畫曲線部分建立在用戶空間內(nèi)定 義的以本發(fā)明的方式處理和渲染的輸入筆畫曲線的步驟或裝置。 例如,優(yōu)選地,如果在用戶空間定義的筆畫曲線不是具有相關(guān)規(guī)范曲線的曲線,它 可以被(就被)再分成多個曲線部分,該些曲線部分是具有相關(guān)規(guī)范曲線的曲線家族成員。 在這樣的優(yōu)選實施例中,在用戶空間內(nèi)定義的筆畫曲線是三次曲線或橢圓形曲線的地方, 這樣的曲線被再分成多個二次曲線,然后使用本發(fā)明將其渲染。 因此,應(yīng)該注意在這里計劃把涉及輸入筆畫曲線,除非上下文需要另有要求,稱為 "輸入"到本發(fā)明渲染過程的曲線,以及那個輸入曲線可以,舉例來說,是正如初始所定義 的,例如,通過正被討論的應(yīng)用,或者從初始"用戶定義的"曲線得到的曲線,比如那個曲線 的再分部分。 —旦通過圖形處理系統(tǒng)接收輸入筆畫曲線,那么確定表示接收的筆畫曲線的規(guī)范 空間的對應(yīng)部分是必需的。這個確定可以以任何合適的和所期望的方式來執(zhí)行。
尤其,在優(yōu)選實施例中,這是通過確定轉(zhuǎn)換來完成的,其中,需要該轉(zhuǎn)換獲得在用 戶空間定義的筆畫的中心曲線并把它放在規(guī)范空間的對應(yīng)部分上。如以上所討論的,這個轉(zhuǎn)換(用戶到規(guī)范的轉(zhuǎn)換)應(yīng)僅需要平移,旋轉(zhuǎn)和/或等比縮放。 因此,確定把在用戶空間內(nèi)定義的筆畫曲線轉(zhuǎn)換到規(guī)范曲線的適當(dāng)部分的轉(zhuǎn)換的 步驟或裝置,優(yōu)選地,包括確定轉(zhuǎn)換的平移部分(分量),即時有也很少。
轉(zhuǎn)換的平移部分(分量)可以以任何合適的和所期望的方式確定。然而,在尤其 優(yōu)選的實施例中,以及其中所接收的筆畫曲線(以及因此該規(guī)范曲線)是二次曲線,轉(zhuǎn)換的 平移部分(分量)通過確定需要去把在用戶空間內(nèi)的輸入筆畫曲線的最底點(即與二次曲 線相關(guān)的曲率最大的點)移動到規(guī)范曲線的最底點上的平移來確定。 因此,在優(yōu)選實施例中,確定轉(zhuǎn)換的平移部分(分量)的步驟或裝置,包括,確定所 接收的筆畫曲線的最底點(的地址)以及需要去把那個最底點映射到規(guī)范曲線的最底點 (的地址)的平移。(正如將要理解到的,在用戶空間內(nèi)所定義的筆畫曲線的最底點可以在定義的筆 畫的中心曲線上(即,在輸入筆畫曲線的起始和終止控制點之間的地址),或者它可以在輸 入筆畫曲線的中心曲線的外推部分上(即,在輸入筆畫曲線的起始和終止控制點以外的地 址)。相同地,對應(yīng)于接收的筆畫曲線的規(guī)范曲線的部分可以包含規(guī)范曲線的最底點(在前 面的事例中),或者對應(yīng)于接收的筆畫曲線的規(guī)范曲線的部分可以不包含規(guī)范曲線的最底 點(在后面的事例中))。 同樣優(yōu)選地,確定把在用戶空間內(nèi)的筆畫曲線轉(zhuǎn)換到在規(guī)范曲線的適當(dāng)部分上的
轉(zhuǎn)換的步驟或裝置,包括,確定轉(zhuǎn)換的旋轉(zhuǎn)部分(分量),即使有也很少。 轉(zhuǎn)換的旋轉(zhuǎn)部分(分量)也可以以任何合適的和所期望的方式確定。然而,在尤
其優(yōu)選的實施例中,以及再一次其中所接收的筆畫曲線(以及因此該規(guī)范曲線)是二次曲
線,轉(zhuǎn)換的旋轉(zhuǎn)部分(分量)通過確定需要的旋轉(zhuǎn)來確定,該旋轉(zhuǎn)讓在最底點的兩側(cè)的兩個
點之間畫出的線平行于用于規(guī)范曲線的畫出的對應(yīng)的線,其中,該兩個點在接收的筆畫曲
線的中心曲線上且與最底點等距。 同樣優(yōu)選地,確定把在用戶空間內(nèi)的筆畫曲線轉(zhuǎn)換到規(guī)范曲線的適當(dāng)部分上的步 驟或裝置包括確定轉(zhuǎn)換的等比縮放部分(分量),即使有也很少。 轉(zhuǎn)換的等比縮放部分(分量)也可以以任何合適的和所期望的方式確定。然而, 在尤其優(yōu)選的實施例中,以及再一次其中所接收的筆畫曲線(以及因此該規(guī)范曲線)是二 次曲線,轉(zhuǎn)換的等比縮放部分(分量)通過確定第一條線和第二條線的長度比例,然后確定 必需的縮放因子來確定,以便這個比例與根據(jù)規(guī)范曲線獲得的對應(yīng)的比例相等,其中,該第 一條線是在接收的筆畫曲線的中心曲線上與最底點等距且在最底點的兩側(cè)的兩個點之間 畫出的,該第二條線是從第一條線的中點向最底點畫出的。 確定轉(zhuǎn)換的平移,旋轉(zhuǎn)和等比縮放分量的步驟可以以任何期望的次序執(zhí)行。然而, 在本發(fā)明的優(yōu)選實施例中,首先確定平移分量,接著旋轉(zhuǎn)分量,以及最后等比分量。
—旦所需要的把輸入筆畫曲線的中心曲線映射到規(guī)范曲線的轉(zhuǎn)換已經(jīng)被確定,對 應(yīng)于輸入筆畫曲線(即,輸入筆畫曲線所覆蓋的)的規(guī)范空間的部分,優(yōu)選地,通過使用已 確定的轉(zhuǎn)換來確定以確定對應(yīng)于輸入筆畫曲線的中心曲線的起始和終止點的在規(guī)范曲線 上的兩個位置;在規(guī)范空間中輸入筆畫曲線將具有的寬度(其將是由已確定的用戶到規(guī)范 的轉(zhuǎn)換的縮放因子乘以在用戶空間內(nèi)的曲線的寬度)。然后,這給出了在規(guī)范空間中的輸入 筆畫曲線的地址。
10
—旦對應(yīng)于輸入筆畫曲線的的規(guī)范空間的部分(地址)已被確定,那么曲線可以 被渲染。 這是通過首先利用(執(zhí)行)由(被輸入到)圖形處理系統(tǒng)接收的轉(zhuǎn)換(用戶到空 間的轉(zhuǎn)換)把輸入筆畫曲線投射到表面空間里做成的。因此,將理解到用戶到空間的轉(zhuǎn)換 不同于用戶到規(guī)范的轉(zhuǎn)換,因為它不是由圖形處理系統(tǒng)確定的,而是相反地被作為預(yù)先定 義的轉(zhuǎn)換輸入到系統(tǒng),其中,該轉(zhuǎn)換指示所需要的把在用戶空間內(nèi)的地址投射到在表面空 間的對應(yīng)地址的映射。 然后一個或多個圖形基元被產(chǎn)生,其在筆畫曲線在表面空間內(nèi)出現(xiàn)時覆蓋它(投 射的筆畫曲線)。這些一個或多個圖形基元可以使用任何合適的和期望的被看作適當(dāng)?shù)?技術(shù),比如通過定義覆蓋投射筆畫曲線的一個包圍盒(bounding box)或者多個包圍盒和 /或通過定義緊緊地適于投射曲線的端部(即,在起始和終止(控制)點)的包圍多邊形 (bounding polygon)。 接著,確定在規(guī)范空間內(nèi)的采樣位置(以便可以確定對應(yīng)于在表面空間內(nèi)的采樣 點的在規(guī)范空間中的地址,是否落在規(guī)范空間內(nèi)的筆畫曲線的地址內(nèi)),其中,該采樣地址 與用于在表面空間內(nèi)產(chǎn)生的基元的采樣點對應(yīng)。 可以以任何合適的或期望的方式來確定在規(guī)范空間內(nèi)的用于采樣點的對應(yīng)地址。 然而,優(yōu)選地,首先通過利用把所接收的筆畫曲線投射到表面空間(用戶到表面的轉(zhuǎn)換)的 反,將在表面空間內(nèi)的采樣點映射到在用戶空間內(nèi)的對應(yīng)地址來確定。然后,優(yōu)選地,利用 已確定的轉(zhuǎn)換把在用戶空間內(nèi)的對應(yīng)的地址映射到在規(guī)范空間內(nèi)的對應(yīng)的地址,其中,該 確定的轉(zhuǎn)換把在用戶空間內(nèi)所定義的筆畫曲線轉(zhuǎn)換到規(guī)范曲線的對應(yīng)部分上(用戶到規(guī) 范的轉(zhuǎn)換)。 因此,在優(yōu)選實施例中,確定在規(guī)范空間內(nèi)與對應(yīng)于在表面空間內(nèi)的采樣點的地 址的方法或裝置,包括,把在表面空間內(nèi)的采樣點映射到在用戶空間內(nèi)的對應(yīng)地址,以及然 后把在用戶空間內(nèi)的對應(yīng)的地址映射到在規(guī)范空間內(nèi)的對應(yīng)地址。 在這個步驟之后,正如將理解到的,對應(yīng)于在表面空間的采樣點的在規(guī)范空間內(nèi) 的地址是已知的。 —旦在規(guī)范空間內(nèi)的對應(yīng)的采樣地址已被確定,就確定當(dāng)這個地址在規(guī)范空間內(nèi) 出現(xiàn)時,它是否在筆畫曲線內(nèi)。然后,這可以被用于確定在表面空間內(nèi)的采樣點是否在筆畫 曲線內(nèi)部,以及因此在表面空間內(nèi)據(jù)此對采樣點進行明暗處理。 可以如所期望地來執(zhí)行在規(guī)范空間內(nèi)的采樣地址,當(dāng)它在規(guī)范空間內(nèi)出現(xiàn)時,是 否是在筆畫曲線內(nèi)的確定。 然而,申請人已經(jīng)認(rèn)識到對一些規(guī)范曲線的形式至少,對在規(guī)范空間內(nèi)的每一個 離散地址(采樣點),將存在在規(guī)范空間上的整數(shù)個點(解),其中,自該點向該離散地址 (采樣點)可能畫(直)線,該線垂直于規(guī)范曲線。此外,在規(guī)范曲線上的這些一個或多個 點(解),如下面將要詳細(xì)討論的,可以用來確定在規(guī)范空間內(nèi)的采樣地址,當(dāng)它在規(guī)范空 間內(nèi)出現(xiàn)時,是否在給定的筆畫曲線內(nèi)。 首先,如將理解到的,在規(guī)范空間內(nèi)的筆畫曲線,及更特別地規(guī)范曲線它本身的對 應(yīng)部分,將遍布至少一個在規(guī)范空間內(nèi)的特定參數(shù)范圍。(不同參數(shù)范圍的數(shù)目取決于規(guī)范
空間的維數(shù)。)例如,對形式為y = x2的規(guī)范曲線,該曲線將遍布"x"值的范圍和"y"(=x2)值的范圍,因此兩個"x"和"y"可以用作曲線的"參數(shù)"。(這里應(yīng)注意特定規(guī)范曲線遍布的參數(shù)范圍可以通過曲線的任何合適的參數(shù)化來
表示。所以,有時對于形式為y = x2的規(guī)范曲線軸可以是,以及優(yōu)選的是,作為參數(shù)使用,
并不是對所有的規(guī)范曲線都這樣。) 因此,任何人可以按照規(guī)范空間內(nèi)的筆畫曲線所覆蓋的特定參數(shù)范圍,來測試在
規(guī)范空間內(nèi)與給定地址相關(guān)的在規(guī)范曲線上的解的參數(shù)值,以看看是否該地址具有落在這 個特定參數(shù)范圍內(nèi)的解。 如將要被本領(lǐng)域技術(shù)人員所理解的,盡管筆畫曲線將典型地由多個參數(shù)范圍(例 如,當(dāng)規(guī)范曲線是基本二次曲線時,由"x"值和"y"值)來表示,僅僅按照一個參數(shù)范圍測
試就足夠了,因為如果一個點在被筆畫曲線覆蓋的規(guī)范曲線的部分內(nèi),那它將在曲線的每
一個參數(shù)的范圍內(nèi)而不管這個范圍怎樣定義。因此,例如,對形式為y = x2的規(guī)范曲線,優(yōu) 選地,僅按照在規(guī)范空間內(nèi)與接收的筆畫曲線的部分相關(guān)的"x"值的范圍來測試解的"x" 值。在這個實施例中,"x"被優(yōu)選地用作將測試的"參數(shù)",因為與在原點周圍的規(guī)范空間的
區(qū)域使用"y"相比,它更精確。 在其它實施例中,任何人可以測試解和在規(guī)范曲線上預(yù)先確定的點之間沿著曲線
的距離。例如,在規(guī)范曲線是基本二次曲線的實施例中,可以確定從最底點到在規(guī)范曲線上 的解的沿著曲線的距離,其中,該解與在規(guī)范空間內(nèi)的給定地址相關(guān),并且隨后當(dāng)這個距離 在規(guī)范空間內(nèi)出現(xiàn)時,它可以與由筆畫曲線覆蓋的特定距離范圍相比。 當(dāng)要渲染的筆畫曲線將用給定的點繪圖案來點繪(例如,顯示為一系列點和/或 虛線)時,這個稍后的實施例具有特別的好處。例如,在優(yōu)選實施例中,可以以任何合適并 期望的方式,例如作為ID紋理,和(使用適當(dāng)?shù)霓D(zhuǎn)換)應(yīng)用到關(guān)于在曲線上預(yù)先確定的點 (例如最底點)的規(guī)范曲線的已選擇的點繪圖案來存儲一個或多個點繪圖案。根據(jù)這個預(yù) 先確定的的點,沿著曲線的距離可以與已選擇的點繪圖案,以及據(jù)此渲染的在表面空間內(nèi) 的對應(yīng)地址相比(即,基于當(dāng)它出現(xiàn)在規(guī)范空間內(nèi)時該地址是否在筆畫曲線內(nèi)以及與該地 址相關(guān)的解落在已選點繪圖案的地方),其中,該點為在規(guī)范空間內(nèi)的與給定地址相關(guān)的解 中的每一個所確定。 其次,然后如以上所描述的,通過一組點(the set of points)定義筆畫曲線的邊 界,其中,自該點向在路徑上的點可以畫預(yù)先確定了寬度,并且垂直于該路徑的線。
因此,任何人可以對照在規(guī)范空間內(nèi)的筆畫曲線的筆畫寬度的一半,來測試在規(guī) 范空間內(nèi)與給定的地址相關(guān)的規(guī)范曲線上的解的垂直距離,B卩,自在規(guī)范曲線上的點(解) 到離散地址(采樣點)畫的(直)線的長度,以看看當(dāng)該地址出現(xiàn)在規(guī)范空間內(nèi)時,它是否 具有落在筆畫曲線內(nèi)的解。(如以上所討論的,在規(guī)范空間內(nèi)的筆畫曲線的筆畫寬度將等于 用戶空間與規(guī)范空間之間的轉(zhuǎn)換的縮放因子部分(分量)乘以在用戶空間內(nèi)的筆畫寬度。)
因此,申請人已經(jīng)認(rèn)識到確定在規(guī)范空間內(nèi)給定的離散地址(采樣點位置),當(dāng)該 地址出現(xiàn)在規(guī)范空間時,是否在筆畫曲線內(nèi)的特別有效的方法是去識別那些在規(guī)范曲線上 的點,其中,自該點向采樣點地址可以畫垂直于規(guī)范曲線的(直)線,以及隨后確定在規(guī)范 曲線上的這些點中的任何一個是否在對應(yīng)于筆畫曲線的規(guī)范曲線之部分的參數(shù)范圍內(nèi),以 及,在規(guī)范曲線上的這些點中的任何一個到采樣點地址之間的距離,當(dāng)該地址在規(guī)范空間 內(nèi)出現(xiàn)時,它是否小于或等于筆畫曲線的筆畫寬度的一半。如果在規(guī)范曲線上的任何已識
12別的點中的一個通過了這兩個測試,那么當(dāng)該采樣點位置出現(xiàn)在規(guī)范空間內(nèi)時,它是在筆 畫曲線內(nèi)。 因此,在優(yōu)選實施例中,確定在規(guī)范空間內(nèi)的采樣地址是否在對應(yīng)于接收的筆畫 曲線的規(guī)范空間的部分內(nèi)的步驟包括以下的其中之一,以及優(yōu)選兩個都包括,確定地址在 規(guī)范曲線上的任意點是否位于由在規(guī)范空間內(nèi)的筆畫曲線所覆蓋的參數(shù)范圍內(nèi),其中,自 該點向在規(guī)范空間內(nèi)的采樣地址可以畫垂直于規(guī)范曲線的(直)線;以及在規(guī)范空間內(nèi)的 采樣地址和在規(guī)范曲線上的一個或多個點之間所畫的(直)線的長度,是否小于或等于當(dāng) 它在規(guī)范空間內(nèi)出現(xiàn)時的筆畫曲線的筆畫寬度的一半,其中,可以向該一個或多個點畫垂 直于規(guī)范曲線的(直)線。如果規(guī)范曲線上存在點滿足這兩項用于測試在規(guī)范空間內(nèi)的采 樣位置的需求,那當(dāng)該采樣位置出現(xiàn)在規(guī)范空間時,它在筆畫曲線內(nèi),以及據(jù)此在表面空間 對應(yīng)的采樣位置也在筆畫曲線內(nèi)(所以允許在表面空間內(nèi)的采樣位置據(jù)此被明暗處理)。
(申請人已進一步認(rèn)識到當(dāng)用以渲染特定筆畫曲線的基元被定義為緊密適合于被 渲染的曲線端部的包圍多邊形,即,以便在基元內(nèi)可以采樣的所有點將在被渲染的曲線的 參數(shù)范圍內(nèi),那么關(guān)于在規(guī)范空間內(nèi)的采樣地址,是否在對應(yīng)于接收的筆畫曲線的規(guī)范空 間的部分內(nèi)的確定可以,且優(yōu)選地是,只是通過確定在規(guī)范空間內(nèi)的采樣地址與規(guī)范曲線 上的解之間的距離是否小于或等于,當(dāng)該采樣地址出現(xiàn)于規(guī)范空間內(nèi)時,被渲染曲線的筆 畫寬度的一半來做出。) 如將要被理解到的,以上所討論的優(yōu)選地被用于確定在規(guī)范空間內(nèi)的采樣地址是 否在規(guī)范空間內(nèi)的筆畫曲線內(nèi)的兩個步驟可以以任何期望的次序被執(zhí)行。在一個優(yōu)選實施 例中,對那些在規(guī)范曲線上通過了第一測試(即,基于第一測試其被確定潛在地是在筆畫 曲線內(nèi)部)的點(解)僅執(zhí)行第二測試,該兩個測試步驟從而被執(zhí)行。如那些熟練于本領(lǐng) 域技術(shù)的人所認(rèn)識到的,這將允許減少必需執(zhí)行的測試的數(shù)目,該測試用于確定給定的地 址是否在規(guī)范空間中的筆畫曲線內(nèi)。然而,在可選擇的實施方式中,該兩個測試因第一測試 與第二測試同時出現(xiàn)被并行執(zhí)行。當(dāng)使用圖形處理硬件時這個后面的實施例可能更方便。
在優(yōu)選實施例中,可以以如上描述的所需要的確定當(dāng)該地址出現(xiàn)在規(guī)范空間內(nèi) 時,它是否在筆畫曲線內(nèi)的方式,來測試在規(guī)范空間內(nèi)的與給定的離散地址(采樣點位置) 相關(guān)的在規(guī)范曲線上的一個或多個所有這樣的點(解)。 例如,申請人已經(jīng)認(rèn)識到對輸入筆畫曲線的一些部分,例如,那些與具有特定特性 的筆畫曲線的區(qū)域不相關(guān)的部分,僅僅通過測試多個這樣的與地址相關(guān)的可能的點(解) 中的一些,而非全部,且優(yōu)選僅僅一個來正確確定在規(guī)范空間內(nèi)的特定地址是否在筆畫曲 線的部分內(nèi)是可能的。優(yōu)選地,當(dāng)使用這樣的"測試"時,該測試點是規(guī)范空間內(nèi)到各個地 址最近的點(解),即,具有最小的到各個地址的垂直距離的點(方案)。
申請人:已進一步認(rèn)識到對輸入曲線的其它部分,例如,那些與具有特定特性的筆 畫曲線的區(qū)域相關(guān)的部分,在規(guī)范空間內(nèi)與給定的地址(其是在區(qū)域中的一個內(nèi))相關(guān)的 一個這樣的點(解)可能指出該地址在筆畫曲線的部分內(nèi),同時與地址相關(guān)的另外的這樣 的點(方案)可能指出,當(dāng)該地址在規(guī)范空間內(nèi)時,它在筆畫曲線的外部。因此,為了精確 地渲染筆畫曲線的這種區(qū)域,測試與地址相關(guān)的點(解)中的至少兩個,并優(yōu)選地測試全部 是必要的。
因此,在優(yōu)選地實施例中,用以渲染接收的曲線,或者,如以下描述的,用以渲染接收的曲線的部分的渲染過程可能包括測試僅僅一個,并優(yōu)選地測試最近的,這樣的與在規(guī) 范空間內(nèi)的地址相關(guān)的解,或者它可能包括測試與在規(guī)范空間內(nèi)的地址相關(guān)的點(解)中 的兩個或更多,并優(yōu)選地測試全部,以確定在規(guī)范空間內(nèi)的該地址是否在筆畫曲線或其中 的部分之內(nèi),如適當(dāng)?shù)?,?dāng)它在規(guī)范空間內(nèi)出現(xiàn)時。 相似地,取決于怎樣產(chǎn)生用以渲染曲線的基元,如上所討論的,測試與在規(guī)范空間 內(nèi)地址的(每一個)解相關(guān)的數(shù)據(jù)中的僅僅一些,而非全部,可能是必需的(或者必需測試 與(每一個)解相關(guān)的數(shù)據(jù)中的全部)。 同樣的渲染過程可以被用來渲染整個筆畫曲線??蛇x地,兩個或多個渲染過程可 以被用來渲染筆畫曲線。例如,第一渲染過程(如,其中較少的,例如只一個,解被測試,)被 用來渲染筆畫曲線的第一部分或部分,而不同地,第二渲染過程(如,其中兩個或多個,且 優(yōu)選全部,解被測試)被用來渲染筆畫曲線的第二部分或部分。 確定在規(guī)范空間的采樣地址是否在規(guī)范空間內(nèi)對應(yīng)于接收的筆畫曲線的部分內(nèi) 的步驟,其優(yōu)選地包括以上描述的步驟(測試),可以以任何合適和期望的方式被執(zhí)行。然 而,在優(yōu)選地實施例中,通過查找預(yù)先確定的允許該過程被執(zhí)行的信息(即提前被存儲的 數(shù)據(jù))來做成。 尤其,申請人已經(jīng)認(rèn)識到在規(guī)范空間內(nèi)的用于給定(采樣)地址的在規(guī)范曲線上 的每一個"解"的參數(shù)的地址,以及用于在規(guī)范空間內(nèi)的用于給定(采樣)地址的在規(guī)范曲 線上的每一個"解"的在規(guī)范空間內(nèi)的到(采樣)地址的垂直距離可以提前被得到并存儲, 于是,例如,當(dāng)那個地址在規(guī)范空間內(nèi)將被測試時被查出。這個與在規(guī)范空間內(nèi)的(采樣) 地址有關(guān)的存儲的信息然后可以與參數(shù)的范圍和被考慮用于給定的筆畫曲線在規(guī)范空間 內(nèi)的(一半的)筆畫寬度比較,以看看在規(guī)范空間的該地址是否具任何指示它落在被考慮 的筆畫曲線內(nèi)的在規(guī)范曲線上的解。因此,如果這樣的數(shù)據(jù)被存儲用于覆蓋規(guī)范空間的多 個地址(一組采樣位置),那么存儲的地址可以被查找用于需要被測試的在規(guī)范空間內(nèi)的 給定的位置。 提前確定并存儲這樣的解提供了執(zhí)行這些測試的特別方便和有效地機制。進一 步,如上所描述的,因為對在規(guī)范空間內(nèi)的每個地址存在有限數(shù)目個這樣的"解",存儲這些 關(guān)于在規(guī)范空間內(nèi)的地址的信息將是一個相對可管理的任務(wù)。 因此,在尤其優(yōu)選的實施例中,上面所提到的該預(yù)先設(shè)置的信息被存儲用于在規(guī) 范空間內(nèi)的多個離散的地址。最優(yōu)地,這樣的信息被存儲用于采樣點的對稱陣列其(大體 上)覆蓋期望要考慮的/需要的規(guī)范空間。 因此,在尤其優(yōu)選的實施例中,為在規(guī)范空間內(nèi)的多個地址中的至少一個,存儲了 自在規(guī)范空間內(nèi)的地址向其可以畫垂直于曲線的線的在規(guī)范曲線上的一個或多個點中的
至少一個參數(shù)的值,以及在規(guī)范曲線上的一個或多個點中的至少一個與在規(guī)范空間內(nèi)各個
地址之間的垂直距離。 應(yīng)當(dāng)注意對在規(guī)范空間內(nèi)為其存儲了"解數(shù)據(jù)"的多個離散地址中的一個或多個, 盡管非全部,在規(guī)范曲線上可能不存在自各個地址可以向其畫出垂直于曲線的(直)線的 任何點(即,對那個點可能在曲線上沒有任何解)。相同地,在規(guī)范空間內(nèi)一些地址具有比 其它地址更多的解。優(yōu)選地,沒有,或較少,為其將要存儲數(shù)據(jù)的給定地址的解的地方,或者 沒有信息被存儲或者,在尤其優(yōu)選的實施例中,被預(yù)先確定或預(yù)先定義(默認(rèn))信息被存
14儲,例如,更多信息如下所描述,用于"缺失"解。 相似地,在尤其優(yōu)選的實施例中,確定在規(guī)范空間內(nèi)(對應(yīng)于在表面空間內(nèi)的采 樣位置)的地址,當(dāng)它在規(guī)范空間出現(xiàn)時,是否落在筆畫曲線內(nèi)的步驟或裝置包括,查找存 儲的用于在規(guī)范空間內(nèi)的多個地址的數(shù)據(jù),用于地址在規(guī)范曲線上的一個或多個點中的至 少一個的參數(shù)的值,其中,自在規(guī)范空間內(nèi)的地址能夠向該一個或多個點畫垂直于曲線的 線;以及在規(guī)范曲線上的一個或多個點中的至少一個與在規(guī)范空間內(nèi)的各個地址之間的垂 直距離。 與在規(guī)范空間內(nèi)的采樣點的陣列有關(guān)的信息組(the set of information),例如 數(shù)據(jù)存儲,可以以任何合適和期望的方式被存儲。然而,在本發(fā)明的尤其優(yōu)選的實施例中, 與在規(guī)范空間內(nèi)的多個離散的地址有關(guān)的信息被以一個或多個圖形紋理的形式存儲。這特 別有利和有益因為不僅計劃讓圖形紋理存儲與特定的地理地址陣列有關(guān)的數(shù)據(jù),而且,如 下面將要討論的,以紋理的形式存儲數(shù)據(jù)允許現(xiàn)有的一般的紋理映射過程并入圖形處理系 統(tǒng)以用于以本發(fā)明所述的方式渲染筆畫曲線。 因此,根據(jù)本發(fā)明的第三方面,提供在圖形處理系統(tǒng)中渲染用于顯示的筆畫曲線 的方法,該方法包括 接收在用戶空間定義的輸入筆畫曲線; 通過確定在規(guī)范空間定義的對應(yīng)于所接收的筆畫曲線的規(guī)范曲線的部分確定對 應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分; 使用接收的轉(zhuǎn)換把所接收的筆畫曲線投射進表面空間內(nèi); 定義一個或多個基元,其在表面空間內(nèi)覆蓋該投射的筆畫曲線的;以及 然后,對在該一個或多個基元內(nèi)的多個采樣點中的每一個 確定在規(guī)范空間內(nèi)的對應(yīng)地址;以及 采樣一個或多個圖形紋理的至少一個紋素(texel),該一個或多個圖形紋理具有
每一個與涉及在規(guī)范空間內(nèi)的至少一個離散地址的信息相關(guān)的多個紋素,以確定在規(guī)范空
間對應(yīng)的地址是否在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的該對應(yīng)部分內(nèi)。 根據(jù)本發(fā)明的第四個方面,提供一種在圖形處理系統(tǒng)中渲染用于顯示的筆畫曲線
的設(shè)備,該設(shè)備包括 用于接收在用戶空間定義的輸入筆畫曲線的裝置; 用于通過確定對應(yīng)于所接收的筆畫曲線的在規(guī)范空間定義的規(guī)范曲線的部分確 定對應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分的裝置; 用于使用接收的轉(zhuǎn)換把所接收的筆畫曲線投射進表面空間內(nèi)的裝置; 用于定義一個或多個在表面空間內(nèi)覆蓋該投射的筆畫曲線的基元的裝置;以及 用于對在該一個或多個基元內(nèi)的多個采樣點中的每一個來確定在規(guī)范空間對應(yīng)
的地址的裝置;以及 用于采樣一個或多個圖形紋理的至少一個紋素的裝置,該一個或多個圖形紋理具 有每一個與涉及在規(guī)范空間內(nèi)的至少一個離散地址的信息相關(guān)的多個紋素,以確定在規(guī)范 空間對應(yīng)的地址是否在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分內(nèi)。 也相信這種形式的圖形紋理的使用可能是新的并具有它自己恰當(dāng)?shù)膬?yōu)勢。因此本 發(fā)明也延伸至這種的紋理的結(jié)構(gòu)以及延伸至這種紋理本身。
因此根據(jù)本發(fā)明的第五個方面,提供在渲染用于顯示的筆畫曲線時在圖形處理系 統(tǒng)中使用的圖形紋理,其中所述紋理的每一個紋素表示在定義的空間中的至少一個地址, 以及具有與它相關(guān)的,用于所述至少一個地址,涉及在所述空間中定義的曲線的信息。
因此根據(jù)本發(fā)明的第六個方面,提供構(gòu)造在渲染用于顯示的筆畫曲線時用于與圖 形處理系統(tǒng)一起使用的圖形紋理的方法,該方法包括
在定義的空間定義曲線; 為在所述定義的空間中的多個地址中的每一個,確定涉及在所述空間定義的曲線 的信息;以及 產(chǎn)生并存儲包括紋素陣列的圖形紋理,其中每一個紋素對應(yīng)于在所述定義的空間 的多個地址中的至少一個,并與涉及在所述空間內(nèi)定義的所述曲線的所確定的信息相關(guān)。
因此根據(jù)本發(fā)明的第七個方面,提供用于構(gòu)造當(dāng)渲染用于顯示的筆畫曲線時與圖 形處理系統(tǒng)一起使用的圖形紋理的設(shè)備,該設(shè)備包括
用于在定義的空間定義曲線的裝置; 用于為在所述定義的空間中的多個地址中的每一個來確定涉及在所述空間定義 的曲線的信息的裝置;以及 用于產(chǎn)生并存儲包括紋素陣列的圖形紋理的裝置,其中每一個紋素對應(yīng)于在所述 定義的空間的多個地址中的至少一個以及具有與它相關(guān)的涉及在所述空間內(nèi)定義的所述 曲線的所確定的信息。 如熟悉本領(lǐng)域技術(shù)的那些人將理解到的,本發(fā)明的這些方面和實施例可以最好適 當(dāng)?shù)匕ū景l(fā)明在這里描述的優(yōu)選和可選的特征中的任何一個。 例如,涉及在所述空間定義的曲線的信息最好包括涉及涉及在所定義的空間內(nèi)的 至少一個地址相對于所述曲線上的一個或多個點的位置的信息。 進一步,曲線最好包括如上所描述的規(guī)范曲線,以及在曲線上的一個或多個點優(yōu) 選地包括一個或多個在曲線上的點,其中,自該點可以向在討論的所述空間內(nèi)的地址畫一 條垂直于該曲線的(直)線。 相似地,優(yōu)選地在一個或多個紋理中的每一個紋素具有與它相關(guān)的上面所討論的 用于那個紋素位置在規(guī)范曲線上的解的信息。換句話說,每個紋素將表示在規(guī)范空間內(nèi)的 至少一個位置以及存儲涉及用于在規(guī)范空間內(nèi)的那個位置的在規(guī)范曲線上的解的點的信 息。例如,并優(yōu)選地,信息是解的點的參數(shù)值,或從在規(guī)范曲線上預(yù)先確定的點到解的點的 距離,以及從解的點到曲線的垂直距離。 例如,對四通道紋理(存儲RGBA),紋理的紅和綠通道可以存儲參數(shù)的地址和到曲 線的垂直距離(或者,反之亦然)用于討論中的在規(guī)范空間內(nèi)的位置的一個解點,以及藍和 阿爾法通道可以存儲用于曲線上的其它解點的對應(yīng)數(shù)據(jù)(等等如果紋理支持進一步的數(shù) 據(jù)通道)。可選地,另外的紋理,或者同一個紋理的其它部分,可以被用來存儲用于討論中的 地址的進一步的解,如果需要的話。 在信息以紋理的形式被存儲的地方,紋理可以具有個任何合適和期望的大小 (即,包括所期望的任何數(shù)目的紋素),且每一紋素可以具有與它相關(guān)的任意期望數(shù)目的數(shù) 據(jù)。然而,優(yōu)選地,每個紋素具有與它相關(guān)僅涉及在定義的(規(guī)范)空間的單個離散地址的信息。
16
申請人:進一步認(rèn)識到對在規(guī)范空間的任何離散地址,以及其中規(guī)范曲線是基本二 次曲線,將僅有0,1或2個自其可以向在規(guī)范曲線的一半(S卩,如果把規(guī)范曲線關(guān)于它的對 稱反射軸分裂(分開))上的各個離散的地址畫出垂直于該規(guī)范曲線的(直)線的相關(guān)點 (解)。 因此,在尤其優(yōu)選的實施例中,其中規(guī)范曲線具有(例如,通過二次規(guī)范曲線的最 底點的)對稱反射軸,以便它可以被分裂(分開)成彼此是鏡像圖像的兩個一半,該信息, 比如上面討論的,僅僅被存儲用于在規(guī)范空間定義的每個離散地址(采樣位置),僅僅用于 在半個規(guī)范曲線上的那個地址的"解"點。 因此,在本發(fā)明尤其優(yōu)選的實施例中其中對在規(guī)范空間內(nèi)的每一個離散地址存儲 了在規(guī)范曲線上的相關(guān)的識別點(解)的參數(shù)值和在規(guī)范曲線上的該相關(guān)的識別點(解) 與各個離散地址之間的距離,然后在這種情況中,對于在規(guī)范空間的每一個離散地址(采 樣位置)僅僅需要存儲,最多,四(4)個分量(離散條信息),即(i)在規(guī)范曲線上的第一 (比如最近的)識別點(解)的參數(shù)值;(ii)在規(guī)范曲線上的第一 (比如最近的)識別點 (解)與離散地址的距離;(iii)在規(guī)范曲線上的第二 (比如最遠的)識別點(解)的參數(shù) 值;(IV)在規(guī)范曲線上的第二 (比如最遠的)識別點(解)與離散地址的距離。如將要理 解到的,這四個分量可以方便地被存儲在單個"四通道"圖形紋理的單個紋素中,因為這樣 的單個紋素將如上面所提到的具有四個數(shù)據(jù)通道_紅色通道,綠色通道,藍色通道和阿爾 法通道。 優(yōu)選地,涉及到用于每個離散地址(或涉及"缺失的解"的適當(dāng)?shù)臄?shù)據(jù),如果沒有 最近的解的話)的最近的解的信息總是被存儲在用于給定的紋理的每個紋素的相同部分 (通道)中(及優(yōu)選地在被使用的所有紋理中),例如總是在每一個紋素的紅色和綠色通道 中。這可以確保每一個紋素(和紋理)具有相同的共同的基本配置,以及允許,尤其涉及到 那些其中只有用于特定采樣位置的最近的解被測試(如上面所討論的)的實施例,系統(tǒng)快 捷地測試存儲了涉及最近的解之信息的紋素數(shù)據(jù)通道。 如上面作描述的,對與一個或多個紋理相關(guān)的在規(guī)范空間中的離散地址中的一個 或多個,在規(guī)范曲線上可能沒有可以自其向各個離散地址畫出垂直于該規(guī)范曲線的(直) 線的點(解),或者可能有比解的數(shù)目更少的在規(guī)范曲線上的點(解),解的數(shù)目通過構(gòu)造 了一個或多個紋理而被保持。例如,在上面的實施例中,一個或多個紋理被構(gòu)造使得每一個 紋素優(yōu)選地能夠存儲關(guān)于在規(guī)范曲線上的兩個點(解)的信息的同時,即與單個離散地址 相關(guān)的點(解)的最大數(shù)目,可能需要紋素中的一個或多個來僅僅存儲關(guān)于一個點(解) 的信息,或者根本不需要存儲關(guān)于任何點(解)的信息,即那些在規(guī)范空間內(nèi)與地址相關(guān)的 紋素僅僅具有一個或沒有在規(guī)范曲線上相關(guān)的點(解)。 優(yōu)選地,對那些具有比相關(guān)的點(解)的最大數(shù)目少的離散地址(紋素),預(yù)先確
定的或預(yù)先定義的值被存在有關(guān)的紋理的"參數(shù)的"和/或的"距離"的分量中其將導(dǎo)致"缺
失"的解無法測試以確定當(dāng)它出現(xiàn)在規(guī)范空間內(nèi)時它是否落在筆畫曲線內(nèi)。 例如,在優(yōu)選的實施例中,把當(dāng)它出現(xiàn)在規(guī)范空間內(nèi)時將總是大于任意輸入接收
的筆畫曲線的筆畫寬度一半的值存儲在這種"缺失"的解的"距離"分量中。在這樣的實施
例中紋素的相關(guān)的"參數(shù)"分量或者可能被留成空的(未定義)或者可能包含任何合適和
期望的適當(dāng)?shù)闹担驗榻鈨H需要放棄兩個用于被確定的"缺失"的解的測試中的一個,當(dāng)它出現(xiàn)在規(guī)范空間內(nèi)時其落在筆畫曲線的外部。 當(dāng)按照本發(fā)明使用紋理時這有助于避免任何導(dǎo)致偽渲染效果的"缺失的"解。
在以上面描述的方式使用圖形紋理的地方,紋理隨后可以如所期望地被采樣以獲 得用于在規(guī)范空間內(nèi)的給定地址的解數(shù)據(jù)。 例如,在一個實施例中,當(dāng)紋理被采樣時獲得的信息可以是存儲的涉及到要被采 樣的規(guī)范空間內(nèi)的位置最近的紋素的信息。 然而,在尤其優(yōu)選的實施例中,使用合適的紋理過濾或插值過程,比如,且優(yōu)選地, 雙線性過濾,如本領(lǐng)域內(nèi)知道的。這將有效的增加紋理的分辨率并因此同樣地增加渲染的 精確度。因此,在尤其優(yōu)選的實施例中,使用雙線性過濾采樣紋理。(通過增加為其存儲信息的在規(guī)范空間內(nèi)的離散地址的數(shù)目增加紋素的絕對分辨 率也將是可能的。然而,這可能不總是期望的。因此在采樣紋理時,過濾或插值過程的使用 提供了備選的無需增加紋理絕對精確度就可增加渲染精確度的途徑。) 在尤其優(yōu)選的實施例中,存儲的用于在規(guī)范空間中定義的每一個離散地址的信息 (如每一個紋素),包括在規(guī)范曲線上的一個或多個識別點中的每一個與各個離散地址之 間的符號距離,而非絕對距離。如將被理解到的,該符號距離不僅僅指出兩點之間的距離 (絕對距離),而且指出離散地址落在規(guī)范曲線的哪一邊。例如,如果離散地址在規(guī)范曲線 的上方,那么該距離被賦予正值,而如果該離散地址在規(guī)范曲線的下方,那么該距離被賦予 負(fù)值(或者,當(dāng)然,反之亦然)。 在使用過濾或插值時,使用符號距離將有助于實現(xiàn)紋理的精確采樣。 申請人:已經(jīng)認(rèn)識到,當(dāng)紋理被采樣時自紋理返回的值取決于被使用的紋理查找
(采樣)過程,例如,取決于當(dāng)紋理被采樣時過濾或插值的任何形式是否被應(yīng)用以及,如果
是,過濾或插值采取了哪種形式。例如,對紋素的單位陣列(identical array),與簡單獲取
到采樣位置的最近的紋素的值的紋理查找比較,對于給定的采樣位置,使用雙線性過濾的
紋理采樣過程可能返回不同的的紋素值。 當(dāng)構(gòu)造一個或多個本發(fā)明供的紋理時,這可以被探索以提供更好的渲染結(jié)果。尤 其,申請人已認(rèn)識到,在使用紋理時,如果在一個或多個紋理中的紋素值被裁減或優(yōu)化至被 使用的紋理采樣過程(過濾),對于給定的紋理分辨率,可以實現(xiàn)筆畫曲線的更精確地渲 染。 因此,在優(yōu)選實施例中,一個或多個紋理被優(yōu)選地裁減至將使用的紋理采樣過程。 換言之,一個或多個紋理被優(yōu)選地構(gòu)造以便考慮到要對紋理使用的特定紋理采樣技術(shù)。
例如, 一個或多個紋理的紋素值優(yōu)選地被設(shè)置(計算)以便最小化(minimising) 最大的誤差和/或本地誤差的和,在用選擇的紋理采樣過程(例如雙線性過濾)采樣之后, 而非,例如必需想要具有在紋素中心的正確的值。在尤其優(yōu)選實施例中,通過得到可以被用 來表示采樣過程的成本函數(shù)(cost function)以及隨后使用一個或多個優(yōu)化算法比如模擬 退火算法(simulated annealing)最小化那個成本函數(shù),來確定并選擇(設(shè)置)紋素值。
在尤其優(yōu)選的實施例中,產(chǎn)生并存儲多個不同的紋理,每一個表示不同的規(guī)范曲 線和/或給定規(guī)范曲線的不同部分。那么對要畫的任意給定的曲線,對那個曲線最適當(dāng)?shù)?紋理可以被識別和選擇,并被使用以渲染曲線。因此,通過在紋理中表示曲線的合適范圍, 之后渲染筆畫曲線的范圍應(yīng)該是可能的。
在優(yōu)選實施例中,在同一個紋理映射中表示和存儲多個不同的規(guī)范曲線。這可以 通過在紋理中空間地分開曲線,以及之后如本領(lǐng)域技術(shù)所知道的那樣采樣討論中的曲線在 紋理中適當(dāng)?shù)膮^(qū)域來做成。 在尤其優(yōu)選的實施例中,多個紋理相對于給定的規(guī)范空間被使用和存儲,其中每 個紋理存儲涉及在規(guī)范空間不同區(qū)域內(nèi)的多個離散地址的信息。例如,優(yōu)選地,相對于給定 的規(guī)范空間,第一紋理被構(gòu)造(使用)以存儲涉及在規(guī)范空間第一區(qū)域內(nèi)的多個離散地址 的信息,且至少一個第二紋理被構(gòu)造(使用)以存儲涉及在規(guī)范空間第二區(qū)域內(nèi)的多個離 散地址的信息。 規(guī)范空間的第一和第二區(qū)域可以是明確并分開的區(qū)域,或者可選地,它們可以或 者部分或者全部重疊。的確,在優(yōu)選的實施例中,第一區(qū)域被第二區(qū)域全部包圍。例如,在 規(guī)范曲線是基本二次曲線的實施例中,第一區(qū)域可以覆蓋自最底點向第一參數(shù)的地址延伸 的規(guī)范空間的區(qū)域以及第二區(qū)域可以覆蓋自最底點向第二即更大參數(shù)的地址延伸的規(guī)范 空間的區(qū)域。 在使用本發(fā)明的地方,然后優(yōu)選地表示規(guī)范曲線的紋理提前被產(chǎn)生,以及之后被 合適地存儲以便由圖形處理系統(tǒng)使用,例如,并優(yōu)選地,連同圖形處理系統(tǒng)可以使用的其它 (靜態(tài)的)紋理映射(maps) —起。然后,給定的紋理被合適地選擇和使用,當(dāng)討論中的筆畫 曲線要被渲染時。 —旦已確定在表面空間中一個或多個基元內(nèi)的采樣點,當(dāng)它在規(guī)范空間出現(xiàn)時, 是否落在筆畫曲線內(nèi),例如使用如上所討論的本發(fā)明的優(yōu)選步驟,然后數(shù)據(jù),例如紅,綠和 藍(RGB)色彩值以及"阿爾法"(透明度)值,可以基于該確定被分配(根據(jù)在用戶空間所 定義的接收筆畫曲線所需的)到采樣點。然后優(yōu)選地,為在表面空間內(nèi)定義的多個采樣點 中的每一個以及因此而渲染的筆畫曲線來重復(fù)這個過程。 自上可見,所以在本發(fā)明的優(yōu)選實施例中,一個或多個基元被光柵化至采樣點和 產(chǎn)生的片元,和表示適當(dāng)?shù)囊?guī)范曲線的紋理,和規(guī)范空間的部分,通過采樣對應(yīng)于基元采樣 點位置的紋理中的位置(以本領(lǐng)域所知道的方式)來采樣用于一個或多個基元中的每一個 采樣點。(如以上所討論的,應(yīng)使用適當(dāng)?shù)募y理過濾過程,例如,并優(yōu)選地,雙線性過濾,來采
樣紋理。) 然后,把采樣的紋理值比較于討論中的筆畫曲線的對應(yīng)的值(例如,并優(yōu)選地,在 規(guī)范空間的參數(shù)范圍及筆畫寬度(的一半))以及保留或據(jù)此丟棄的在表面空間內(nèi)的對應(yīng) 的采樣點。 這個"比較和丟棄"的過程可以以任何期望和合適的方式被執(zhí)行用于討論中的圖 形處理系統(tǒng)。例如,使用具有可編程的片元陰影器(shader)硬件的圖形處理系統(tǒng),可以并 優(yōu)選地使用比較和有條件的丟棄路徑。 用具有固定功能硬件的圖形處理系統(tǒng),本發(fā)明的這個操作可以通過,例如,多次讓 采樣點(片元)穿過圖形渲染管線(Pipeline),來執(zhí)行。 例如,第一個經(jīng)由圖形渲染管線的通路可以被用來核查用于采樣點的一個或多個 解中的一個的參數(shù)值是否當(dāng)它出現(xiàn)在規(guī)范空間時是在筆畫曲線的參數(shù)范圍內(nèi),然后第二個 經(jīng)由圖形管線的通路可以被用來,這應(yīng)該是必需的,核查解和采樣地址之間的距離是否小 于或等于筆畫曲線的筆畫寬度的一半(或反過來當(dāng)然也一樣)。如果需要,那么做出一對同
19樣的通路來核查與采樣地址相關(guān)的規(guī)范曲線上的一個或多個點(解)中其它的。 在需要的地方,可以使用點積以產(chǎn)生在如上所描述的測試中使用的任何信息的絕
對值。例如,優(yōu)選地,點積被用來把符號距離轉(zhuǎn)換成絕對距離。此外,優(yōu)選地,阿爾法測試被
使用以執(zhí)行如上所描述的測試中所必需的比較。 如上所描述的,在尤其優(yōu)選的實施例中,如果在它的第一個經(jīng)由渲染管線的通路 中解測試失敗,那么它將不再進一步測試(通過第二次穿過管線)。優(yōu)選地,這可以使用模 板緩存(stencil buffer)來執(zhí)行。 在尤其優(yōu)選的實施例中,本發(fā)明不同的功能在單個圖形處理平臺上執(zhí)行,其中,該 平臺產(chǎn)生并輸出要寫到用于顯示設(shè)備的幀緩沖器的數(shù)據(jù)。 本發(fā)明可應(yīng)用于渲染器的任何形式或配置,比如,具有"管線"安排的渲染器(這 種情況下渲染器將是以渲染管線的形式)。在優(yōu)選實施例中,它應(yīng)用到硬件圖形渲染管線。 本發(fā)明不同的功能和元件等可以如所期望的,例如,并優(yōu)選地,通過適當(dāng)?shù)墓δ軉卧?、處?邏輯、處理器、微處理器安排等來執(zhí)行。 本發(fā)明可以應(yīng)用到渲染的所有形式,比如立即模式渲染(immediate mode rendering),延遲模式澄染(deferred moderendering),瓦片紋理澄染(tile-based rendering),等等。 如根據(jù)以上將要理解到的,盡管并不排他地,本發(fā)明尤其適用于3D圖形處理器和 處理設(shè)備,并因此延伸至一個3D圖形處理器和包括根據(jù)這里描述的本發(fā)明的若干方面中 的任何一個或多個的設(shè)備或根據(jù)這里描述的本發(fā)明的若干方面中的任何一個或多個運行 的3D圖形處理平臺。如果任何硬件必需去執(zhí)行上面討論的特定功能,這樣的一個3D圖形處 理器可以另外包括多個3D處理器包括的通常功能單元中的任何一個或多個或全部,等等。
本發(fā)明同樣延伸至2D圖形處理器和2D圖形處理。 熟悉本領(lǐng)域技藝者還將理解到所有描述的本發(fā)明的方面和實施例可以,并優(yōu)選
地,包括,同樣適當(dāng)?shù)?,這里描述的優(yōu)選和任選的特征中的任意一個或多個或全部。 根據(jù)本發(fā)明的方法可以至少部分使用軟件,例如計算機程序,來執(zhí)行。因此將看到
當(dāng)從更進一步的方面看時本發(fā)明提供當(dāng)被安裝在數(shù)據(jù)處理裝置上時尤其適于執(zhí)行這里討
論的方法的計算機軟件,包括當(dāng)程序元件在數(shù)據(jù)處理裝置上運行時用以執(zhí)行這里描述的方
法的計算機軟件代碼部分的計算機程序元件,以及包括當(dāng)程序運行在數(shù)據(jù)處理系統(tǒng)上時適
于執(zhí)行這里描述的方法或者多個方法的所有步驟的代碼裝置的計算機程序。數(shù)據(jù)處理器可
以是微處理系統(tǒng),可編程FPGA(現(xiàn)場可編程門陣列),等。 該發(fā)明還可以延伸至計算機軟件載體,其包括當(dāng)被使用以運轉(zhuǎn)圖形處理器,渲染 器或包括數(shù)據(jù)處理裝置的微處理系統(tǒng)時,與所述數(shù)據(jù)處理裝置、所述處理器、所述渲染器或 系統(tǒng)協(xié)力去執(zhí)行本發(fā)明之方法的步驟的這樣的軟件。這樣的計算機軟件載體可以是物理存 儲介質(zhì)比如ROM芯片,CD ROM或磁盤,或也可以是信號比如通過線的電信號,光信號或無線 電信號比如到衛(wèi)星或類似物。 將進一步理解到并非本發(fā)明之方法的所有步驟需要通過計算機軟件執(zhí)行以及因 此根據(jù)更進一步廣義的方面本發(fā)明提供計算機軟件,和安裝在計算機軟件載體上的這樣的 軟件,用以執(zhí)行這里提出的方法之步驟中的至少一個。 因此本發(fā)明可能作為與計算機系統(tǒng)一起使用的計算機程序產(chǎn)品被合適地實施。這樣的執(zhí)行可以包括一系列計算機可讀指令,該可讀指令或者固定于有形介質(zhì),比如計算機 可讀介質(zhì),例如,磁盤,CD-R0M, ROM,或硬盤,或者可傳輸?shù)接嬎銠C系統(tǒng),經(jīng)由調(diào)制解調(diào)器或 者其它界面設(shè)備,通過或有形介質(zhì),包括但不限于光學(xué)或模擬通信線,或使用無線技術(shù)的無 形介質(zhì),包括但不限于微波,紅外線或其他傳輸技術(shù)。這一系列計算機可讀指令包括這里前 面描述的功能性的全部或部分。 熟悉本領(lǐng)域技藝者將認(rèn)識到為與許多計算機架構(gòu)或操作系統(tǒng)一起使用這樣的 計算機可讀指令可以用多種程序語言來寫。進一步,這樣的指令可以使用任何存儲技 術(shù),現(xiàn)在或?qū)?,包括但不限于,半?dǎo)體、磁性的或光學(xué)的來存儲,或使用任何通信技術(shù), 現(xiàn)在或?qū)?,包括但不限于,光學(xué)的、紅外線的或者微波來傳輸??紤]到這樣的計算機 程序產(chǎn)品可以與附隨的打印或電子文件一起作為可移動介質(zhì)例如用收縮性薄膜包裝的 (shrinkir即ped)軟件,用計算機系統(tǒng)預(yù)先裝載的(pre-loaded)例如在計算機ROM或 固定磁盤上,來分發(fā),或者從服務(wù)器或電子公告板通過網(wǎng)絡(luò)來分發(fā),例如,因特網(wǎng)或萬維網(wǎng) (World Wide Web),來分發(fā)。


本發(fā)明的多個優(yōu)選的實施例將通過只舉例的方式并參考附圖一起在下面描述,其 中 圖1示意性地示出本發(fā)明的實施例的原理過程; 圖2說明了所必需的把輸入筆畫曲線映射到規(guī)范曲線的對應(yīng)部分的轉(zhuǎn)換的確定;
圖3示意性地示出在用戶空間內(nèi)的筆畫曲線在規(guī)范空間內(nèi)的規(guī)范曲線的對應(yīng)部 分內(nèi)的轉(zhuǎn)換; 圖4示出了在規(guī)范空間內(nèi)的二次規(guī)范曲線,以及在規(guī)范空間內(nèi)與特定地址相關(guān)的 在規(guī)范曲線上的解; 圖5示出了覆蓋在圖4中的二次規(guī)范曲線上的對應(yīng)于輸入筆畫曲線的規(guī)范曲線的 部分; 圖6說明了規(guī)范曲線被再分到分開的部分內(nèi),每一個分開的部分與特定的紋理相 關(guān); 圖7示出了與優(yōu)選實施例相關(guān)的渲染管線。
具體實施例方式
除非另外指出,否則同樣的參考數(shù)字用于同樣的分量。
圖1示意性地示出本發(fā)明的實施例原理過程。 如圖1所示,在2D用戶空間2中,由曲線1的起始點c0和終止點c2的位置,中 間的控制點cl的位置,和筆畫寬度w來最初定義筆畫二次貝塞爾曲線1形式的矢量圖形對 象。 為了渲染用于顯示的筆畫曲線l,筆畫曲線l,或者典型地定義該筆畫曲線的信 息,最初被輸入到圖形處理系統(tǒng)。 在渲染過程中,如在領(lǐng)域中所知道的,在用戶空間2所定義的筆畫曲線1被投射進 2D表面空間3內(nèi),其具有相同的顯示透視圖(幾何圖形),其中,在該顯示上將看到筆畫曲線。把筆畫曲線1從用戶空間2投射到表面空間3的轉(zhuǎn)換被普遍地稱為用戶到表面的轉(zhuǎn)換 (TJ,以及典型地將包括非等比縮放。因此,在表面空間3內(nèi)的所投射的筆畫曲線1'的筆 畫寬度將普遍地隨著曲線的長度變化,而非與筆畫曲線1 一樣具有單一的、固定的值。
—旦筆畫曲線1已被投射進表面空間3內(nèi),從而定義所投射的筆畫曲線1',基元 4,比如圖1所示的多邊體,被產(chǎn)生以覆蓋在表面空間3內(nèi)的所投射的筆畫曲線l'。如在本 領(lǐng)域內(nèi)所知道的,然后基元4被光柵化,以及在光柵化過程中定義的多個采樣點被適當(dāng)?shù)?明暗處理(基于他們是否落在由投射的筆畫曲線l'限定的區(qū)域內(nèi)),以便顯示所投射的筆
畫曲線r。 在本實施例中,這個確定(表面空間3內(nèi)的采樣點是否落在所投射的曲線1'內(nèi) 的)通過把在用戶空間2中所定義的筆畫曲線1映射到規(guī)范空間5的對應(yīng)部分l"(這里稱 為筆畫規(guī)范曲線段(segment)),然后確定在規(guī)范空間5中對應(yīng)于在表面空間3內(nèi)的采樣點 的地址是否落在筆畫規(guī)范曲線段1"內(nèi)來做出。 在規(guī)范空間5內(nèi)定義規(guī)范曲線12,如上所討論的,規(guī)范曲線12是預(yù)先定義的、單一 或基本曲線,其中,僅使用平移(translation)、旋轉(zhuǎn)和/或等比縮放就可以把在曲線家族 內(nèi)的所有曲線轉(zhuǎn)換到該曲線(或至少到一部分)上。例如,在本實施例中,其中在用戶空間 2所定義的筆畫曲線1是二次曲線,規(guī)范曲線12是曲線y = x2。 如將被理解到的,為了實施本實施例,有必要確定用戶到規(guī)范的轉(zhuǎn)換(Tu。),即把在
用戶空間2內(nèi)所定義的筆畫曲線1映射到規(guī)范曲線12的對應(yīng)部分l"的轉(zhuǎn)換。 圖2示出了在本實施例中得到用于任意給定的輸入二次貝塞爾曲線的用戶到規(guī)
范的轉(zhuǎn)換的方式。 如在本領(lǐng)域內(nèi)所知道的,普通的二次貝塞爾曲線由下式定義
〈x(t) , y(t)〉 = P(t) = P。(l-t)2+2P,(l-t)+P2t2,其中t G [o,l]
其中規(guī)范二次曲線由下式定義
〈x(t' ), y(t' )> = 〈t' , t' 2> 如上所提到的用戶到規(guī)范的轉(zhuǎn)換僅包括平移(由矩陣Mt所定義),旋轉(zhuǎn)(由矩陣 Mr所定義)和/或等比縮放(由矩陣Ms = kl所定義,其中k是常數(shù)而I是單位矩陣)。
在本實施例中,用以確定用戶到規(guī)范的轉(zhuǎn)換的過程的第一階段是確定轉(zhuǎn)換的平移 分量(平移矩陣Mt)。以所必需的把在用戶空間2中的輸入二次貝塞爾曲線10的最底點 (底部的點)20平移到在規(guī)范空間5中的規(guī)范曲線12的最底點22(在原點(O,O)處)的形 式確定所需要的平移_見圖2(i)。正如將被理解到的,輸入曲線10的最底點20是曲線上 曲率最大的點,以及,由于該曲線是二次曲線,所以該最底點20也是在曲線上的位置內(nèi)關(guān) 于參數(shù)t的變化在其處產(chǎn)生最小變化的點。 在輸入曲線10上的兩點(x, y)和(x+Ax, y+Ay)之間的距離由^/&2 + A/給出,
在Ax和八7的極限趨于零時,其導(dǎo)致在曲線上由/)(0 = ^(02+乂《)2給出的地址中的無窮 小變化,其中'表示對t求導(dǎo)。因此,通過計算t在D' (t) =0中的值來確定輸入曲線10 的最底點20的地址,其等于求解D(t)2) ' = O,并具有以下解答
ax = x。-2x,X2
ay = y。-2yi+y2
22

by
2x。 2y「2y。 其中(x。, y。)是在用戶空間2(其中心曲線是輸入二次貝塞爾曲線10)中的筆畫 曲線1的起始控制點c0的位置;(Xl, y》是筆畫曲線1的中間控制點cl的位置;以及(x2, y2)是筆畫曲線1的終止控制點c2的位置。 通過把上面的t值插入到關(guān)于x(t)和y(t)的方程里,可以確定在用戶空間2中 的最底點20的坐標(biāo)(x,y),并由此可以確定把輸入曲線10的最底點20移動到規(guī)范曲線12 的最底點22(即到在規(guī)范空間5內(nèi)的原點(O,O))所必需的平移。 —旦已確定用戶到規(guī)范的轉(zhuǎn)換的平移分量,接著確定旋轉(zhuǎn)分量(即旋轉(zhuǎn)矩陣 Mr)。圖2(ii)示出了這個過程。 通過定位在規(guī)范空間5內(nèi)的所平移的輸入曲線14上的兩個普通的點30、32來確 定所需要的旋轉(zhuǎn),其中,從最底點22到該普通點的點30,32等距。之后,在這兩點之間能夠 畫一條線34,而所需要的旋轉(zhuǎn)是必需讓這條線水平(即使得所有在該線上的點具有相同 的y值)。 因此,把在所平移的輸入曲線14上的坐標(biāo)(作為列向: 12的旋轉(zhuǎn)矩陣Mr可以這樣計算
px = 2axt+bx py = 2ayt+by
:提供)將要帶到規(guī)范曲線
M, 二 最后,確定用戶到規(guī)范的轉(zhuǎn)換的等比縮放分量(即縮放矩陣M》。這個在圖 2(iii)示出。 如將要理解到的,一旦被合適地平移和旋轉(zhuǎn)到規(guī)范空間5內(nèi),在用戶空間2中的輸 入曲線10,即圖2(iii)的曲線16,現(xiàn)在具有y = kx2的形式,其中k是將要確定的縮放因 子。所以,如果為了計算旋轉(zhuǎn)矩陣所定義的在點30和32之間的線34的長度是21p且自這 條線的中點延伸到在原點的曲線16的最底點的線的長度被定義為12,那所需要的縮放度 是
+ or. <formula>formula see original document page 23</formula> —旦已計算了用戶到規(guī)范的轉(zhuǎn)換,S卩Tuc二M眞Mt二kM具,可以通過把所確定的轉(zhuǎn) 換應(yīng)用到輸入筆畫曲線1的參數(shù)來確定由筆畫規(guī)范曲線段1〃覆蓋的規(guī)范空間5的實際部 分,其中,該轉(zhuǎn)換必需把在用戶空間2內(nèi)定義的輸入筆畫的輸入曲線1的中心曲線映射到規(guī)范曲線12的對應(yīng)部分上。這個過程在圖3示意。 如圖3所示,使用用戶到規(guī)范的轉(zhuǎn)換把在用戶空間2內(nèi)所定義,并具有控制點c0、 cl和c2及筆畫寬度w的輸入筆畫曲線l映射到規(guī)范曲線的對應(yīng)部分l〃 。由于用戶到規(guī) 范的轉(zhuǎn)換的性質(zhì),筆畫規(guī)范曲線段1〃自身是一個具有單一筆畫寬度w〃的筆畫曲線,且其 在規(guī)范曲線12上的起始點c0〃和終止點c2〃之間延伸。 筆畫規(guī)范曲線段1〃的起始和終止點c0〃 , c2〃定義在規(guī)范空間5內(nèi)的輸入筆畫 曲線l的參數(shù)(x)的范圍。因此,如圖3所示,筆畫規(guī)范曲線段1〃具有在參數(shù)地址乂4和& 之間延伸的參數(shù)范圍。 此外,因為在等比縮放應(yīng)用下的歐幾里德距離的線性縮放,筆畫規(guī)范曲線段1〃的 寬筆畫度w〃將等于kw,S卩在用戶空間所定義的輸入筆畫曲線l的筆畫寬度w乘以用戶到 規(guī)范的轉(zhuǎn)換的縮放因子k。 在本實施例中,如上面所提到的,為確定在表面空間3中的基元4內(nèi)的采樣點是否 在所投射的筆畫曲線l'之內(nèi),使用用戶到表面轉(zhuǎn)換的反(inverse),把采樣點映射到在用 戶空間2中的對應(yīng)地址,然后使用用戶到規(guī)范的轉(zhuǎn)換把在用戶空間2的這個地址映射到在 規(guī)范空間5內(nèi)的對應(yīng)地址。最后,作出關(guān)于在規(guī)范空間5內(nèi)的對應(yīng)地址是否在筆畫規(guī)范曲 線段1〃內(nèi)的決定。 如果有可能自在規(guī)范空間5內(nèi)的地址畫一條直線到規(guī)范曲線12(其形成了筆畫規(guī) 范曲線段1〃的中心曲線)上的點,使得該線垂直于曲線且具有小于或等于(筆畫規(guī)范曲 線段1〃的)筆畫寬度一半的長度,則在規(guī)范空間5內(nèi)的該地址被定義為在筆畫規(guī)范曲線 段1〃內(nèi)部。在規(guī)范空間5內(nèi)沒有達到這個條件的任何地址(點)都將在筆畫規(guī)范曲線段 1〃的外部。 在本實施例中使用規(guī)范二次曲線的第二性質(zhì)作出這個確定,也就是對于在該規(guī)范 曲線的平面里的任意點,可以自在平面上的點向其畫線,且那個線垂直于該曲線的在曲線 上的點的數(shù)目由常數(shù)K限定。因此,換句話說,對于在規(guī)范空間5內(nèi)的任意點((x,y)地址), 有可能從那個點向在規(guī)范曲線12上的整數(shù)個點畫垂直于規(guī)范曲線12的線。因此,對在規(guī) 范空間的每一個(x,y)地址,將有整數(shù)n個解(solutions)(在曲線上的這樣的點),其中n =0,1,2,3。 例如,如圖4所示,在規(guī)范空間5內(nèi)的點40有3個這樣的解。第一解,即,垂直線 "擊中"曲線10的地方,是在x = Xl處,以及從點11到曲線10x = Xl處產(chǎn)生的(resultant) 直線具有長度4。第二和第三解分別是在x = -x2和x = -x3處,伴隨具有長度分別為d2和 (13的相關(guān)的直線。 據(jù)此,注意到在規(guī)范曲線12上的每一個解由兩條信息定義,該解與規(guī)范空間5內(nèi) 的點(地址)相關(guān),其中,該信息首先為它的參數(shù)(x)的值;其次為從在規(guī)范空間5內(nèi)的點 (地址)到它的垂直距離。 在本實施例中,這兩條信息被用來確定該特定地址是否在筆畫規(guī)范曲線段1〃內(nèi) 部,其中,該信息是關(guān)于在規(guī)范空間5內(nèi)的特定地址的規(guī)范曲線上的每個解,,其更詳細(xì)的 內(nèi)容以下參考圖5討論。 圖5示出了覆蓋到先前圖4所示的二次規(guī)范曲線上的筆畫規(guī)范曲線段1 〃 ,筆畫規(guī) 范曲線段1〃遍布x值^《x《Xe的范圍,并具有相關(guān)的筆畫寬度w〃 。
24
為了確定在規(guī)范空間的點40是否在筆畫規(guī)范曲線段1 〃中,首先確定與點40相關(guān) 的解中的至少一個是否落在范圍xA《x《xB內(nèi)。如圖5所示,可以看到點40的第一解具 有參數(shù)(x)的A值,其位于期望的范圍內(nèi)。接下來確定這個第一解是否具有小于或等于筆 畫寬度w〃 一半的垂直距離。正如再次可從圖5看到的,點40的垂直距離c^小于w〃 /2。 因此,點40位于筆畫規(guī)范曲線段1〃內(nèi)。 在本實施例中,這樣的測試被通過存儲以上兩條信息來執(zhí)行,其中,該信息與在規(guī) 范空間5中定義的多個離散地址的解相關(guān)。在本實施例中,這是為在規(guī)范空間5內(nèi)地址的 對稱陣列而做的,盡管這不是必需的并且地址可以被定義在規(guī)范區(qū)間5內(nèi)任何期望的點。
在本實施例中,以一個或多個特別構(gòu)造的圖形紋理的方式存儲上面的信息。如以 上所描述的,因為以這個方式存儲數(shù)據(jù),這特別有利于現(xiàn)存的可以被用來渲染筆畫曲線的 圖形處理系統(tǒng)的紋理映射處理。 如在該領(lǐng)域所知道的,典型地,圖形紋理的每一個紋素(紋理要素)有四個通道 紅色通道;綠色通道;藍色通道;和阿爾法通道,以及其普遍地存儲四條分開的數(shù)據(jù)。所以, 在本實施例中,用于第一解的該組值存儲在紋素的紅色和綠色通道,而用于第二解的該組 值存儲在紋素的藍色和阿爾法通道。 所以,對在規(guī)范空間中具有多于兩個解的任意地址而言,同時在圖形紋理的二個 或多個紋素內(nèi)存儲所需的信息是可能的,在本實施例中,沿著最底點分裂所有通過圖形處 理系統(tǒng)接收的輸入筆畫曲線,其意味著只需要存儲那些具有非負(fù)參數(shù)值的解,對在規(guī)范空 間5內(nèi)的任意地址,僅有用于其的兩個中的最大值。據(jù)此,在本實施例中,在圖形紋理的紋 素和規(guī)范空間5的地址之間存在一到一的對應(yīng)。 例如,在本實施例中使用的包括在與圖4所示的點40相關(guān)的信息的圖形紋理,將 僅存儲用于第一解的該組值,即,Oq, d》,而不存儲用于第二和第三解的值,S卩(_x2, d2)和 (-x3,d3)。對于在規(guī)范空間中的點40的鏡像圖像的點(S卩,其已被關(guān)于y軸反射),以及其
因此具有解(_Xl, d》、(x2, d2)和(x3, cg,圖形紋理將存儲用于第二和第三解的該組值,而
非第一解。 在本實施例中,實際上構(gòu)造了多個圖形紋理,每一個與規(guī)范曲線的特定部分(參 數(shù)的范圍)相關(guān)。例如,參考圖6,為規(guī)范曲線12在0《x < ^之間的部分構(gòu)造第一紋理 (即,存儲用于在陰影區(qū)50所定義的多個離散地址的解),為規(guī)范曲線12在0《x < xB之 間的部分構(gòu)造第二紋理,以及為規(guī)范曲線12在0《x < Xc之間的部分構(gòu)造第三紋理。以這 樣的方式創(chuàng)建多個紋理意味著,在大多數(shù)情況下,由圖形處理系統(tǒng)接收的任意輸入筆畫曲 線l可以在最底點被分裂,以及輸入筆畫曲線1的每個部分可以僅僅使用單個的紋理渲染。
同時,如上所述,在規(guī)范空間5中的一些點將具有不止一個在規(guī)范曲線12上的相 關(guān)解,已經(jīng)發(fā)現(xiàn)并不總是需要測試所有這些解來確定點是否在筆畫規(guī)范曲線段1〃的內(nèi)部。
例如,當(dāng)確定出筆畫曲線不包括任何自重疊(self-overl即ping)區(qū)域(其出現(xiàn)在 當(dāng)中心曲線的曲率半徑小于筆畫寬度的一半時)時,那么僅需要測試用于特定采樣位置的 最近的解,是否在筆畫規(guī)范曲線段1〃的內(nèi)部,B卩,僅采樣紋素的第一個的兩個分量。
然而,如果確定出筆畫曲線包括一個或多個自重疊區(qū)域,則存在以下可能性與在 規(guī)范空間5內(nèi)的點相關(guān)的多個解中的一個,在測試時,被發(fā)現(xiàn)在筆畫規(guī)范曲線段1〃的內(nèi) 部,而與該點相關(guān)的另外的解被發(fā)現(xiàn)在筆畫規(guī)范曲線段1〃的外部。對這樣的點,典型地必
25需(盡管不總是)測試與在規(guī)范空間5中的特定采樣位置相關(guān)的兩個解,以確定它是否在 筆畫規(guī)范曲線段1〃的內(nèi)部,B卩,采樣紋素的所有四個分量。 相似地,如果覆蓋筆畫曲線的基元緊密粘合在曲線的端部,可能僅需要測試每一 個被測試解的距離的值,而非參數(shù)的值。 在本實施例中,如上所描述的,為確定在表面空間3內(nèi)的采樣點是否在所投射的 筆畫曲線1'內(nèi),該采樣點被映射到在規(guī)范空間5中的對應(yīng)地址。在規(guī)范空間5中的這個地 址可以正確對應(yīng)于在紋理內(nèi)存儲了其的相關(guān)解的地址。然而,情況將常常是,的在規(guī)范空間 5內(nèi)的地址,其對應(yīng)于表面空間3內(nèi)的采樣點,將不正確地對應(yīng)于在紋理內(nèi)為其存儲了相關(guān) 解的地址。因此,使用合適的過濾或差值過程采樣該紋理。例如,在本實施例中,使用雙線 性插值(bilinear interpolation)過程采樣紋理,在其中獲取被存儲的涉及到所期望的地 址的四個最近的地址的數(shù)據(jù),以及采用加權(quán)平均以確定所期望地址的數(shù)據(jù)。然后,以上面描 述的方式使用插入的數(shù)據(jù),以確定用于那個地址的解中的至少一個是否通過了用于確定該 地址是否在筆畫規(guī)范曲線段1 〃內(nèi)部的兩個測試。如果解中的一個通過了兩個測試,該地址 在筆畫規(guī)范曲線段1〃內(nèi),且因此在表面空間3內(nèi)的采樣點被明暗處理。
在將要適當(dāng)執(zhí)行的雙線性插值過程的順序內(nèi),在本實施例中,在特別構(gòu)造的紋理 內(nèi)存儲符號距離(signed distance)而非絕對距離。換句話說,每個存儲的值被給予或者 正的或者負(fù)的符號,取決于在規(guī)范空間5內(nèi)的相關(guān)地址是在規(guī)范曲線12的上方還是下方。
正如將被認(rèn)識到的,在紋理內(nèi)的一些紋素,將不具有定義的用于所有四個分量的 值。例如,那些與在規(guī)范空間左下象限的采樣位置有關(guān)的紋素,B卩,x〈0且y〈0,沒有具 有非-負(fù)參數(shù)的值的解,以及如所指的(assuch)沒有為紋理的四個分量中的任意一個所定 義的值。此外,那些對應(yīng)于僅具有一個解(而非最大的兩個解)的采樣位置的紋素,例如, 圖4和圖5中的點40,將僅具有用于紋素的第一個兩個分量所定義的值。考慮到這些"缺 失"的解,以及為避免在測試過程中的任何潛在的誤-正(false-positive)結(jié)果,在相關(guān)紋 素中的"缺失"解的距離分量被給予值,該值大于任意(一半)筆畫寬度,將按照其來比較 該解的距離分量。 也將被認(rèn)識到,僅對應(yīng)于規(guī)范空間內(nèi)左上象限的采樣位置的紋素,即,x < 0且y > 0,其具有兩個柏異的解,且因此具有定義的用于紋理的所有四個分量的值。據(jù)此,在現(xiàn)有實 施例中通過創(chuàng)建兩個分開的紋理來優(yōu)化紋理存儲是可能的,第一紋理存儲在規(guī)范空間5的 所有四個象限內(nèi)的用于離散地址的第一解的該組值,第二紋理僅存儲在規(guī)范空間左上象限 內(nèi)的離散地址的第二解的該組值。(第二紋理因此僅僅是第一紋理大小的四分之一。)
圖7解釋了使用本實施例渲染筆畫曲線的渲染管線。 首先,在步驟60在用戶空間定義筆畫曲線。在步驟62,筆畫曲線被歸類,因此例如 被定義為二次曲線,橢圓弧線或三次曲線。如果筆畫曲線被確定為橢圓弧線或三次曲線,該 曲線因此被再分成多個二次曲線段,見步驟64。 接下來,將被渲染的二次曲線,或者每一個二次曲線段,被輸入到系統(tǒng)的圖形處理 單元(GPU)內(nèi),以及在GPU內(nèi)產(chǎn)生的相關(guān)筆畫曲線(見步驟66)。然后,以以上描述的方式, 使用用戶到表面的轉(zhuǎn)換把輸入的筆畫曲線轉(zhuǎn)換到表面空間內(nèi)(步驟68)以及產(chǎn)生并光柵化 覆蓋所轉(zhuǎn)換的筆畫曲線的基元(步驟70)。 使用以上描述的過程,然后確定在光柵化過程中確定的采樣點中的每一個是否在所轉(zhuǎn)換的筆畫曲線內(nèi),并因此基于這個確定明暗處理該采樣點。正如本技術(shù)領(lǐng)域 內(nèi)所知道的,這后面的步驟典型地被分成剪裁(cli卯ing)和遮罩(masking)(步驟 72),畫圖(paint)生成(步驟74),圖像插值(步驟76),及混和(blending)與抗鋸齒 (antialiasing)(步驟78)步驟。 可以使用任何合適的傳統(tǒng)的,現(xiàn)存的圖形處理系統(tǒng)來執(zhí)行本發(fā)明的過程。 例如,在可編程的圖形硬件上,這些過程可以在像素著色器(fragment shader)內(nèi)
快捷地執(zhí)行。 在固定功能的硬件上,可以使用一些貫穿渲染管線的通路來執(zhí)行本發(fā)明。例如, 對在規(guī)范空間5內(nèi)的所期望的采樣地址的每一個解,可以使用第一通路去核查參數(shù)的范 圍,以及可以使用第二通路去核查到曲線的距離(或反之亦然)。使用點積將符號距離轉(zhuǎn) 換成在測試中使用的絕對距離,以及使用阿爾發(fā)測試來執(zhí)行不同的比較。也使用模板緩存 (stencilbuffer)以允許兩個通路彼此交流信息使得那些通過第一測試的解再一次通過用 以第二次測試的管線。 綜上可見,至少在它優(yōu)選的實施例中,本發(fā)明提供了以實質(zhì)上比可能具有傳統(tǒng)技 術(shù)的方式更為有效的方式(就CPU上的負(fù)載而言),在傳統(tǒng)的固定功能3D圖形硬件和在未 修改的,現(xiàn)存的硬件圖形加速器上,用以渲染筆畫路徑,以及尤其筆畫曲線,和其它的事務(wù) 的方法和設(shè)備。
權(quán)利要求
在圖形處理系統(tǒng)中渲染用于顯示的筆畫曲線的方法,所述方法包括接收在用戶空間內(nèi)定義的輸入筆畫曲線;通過確定在規(guī)范空間(canonical space)內(nèi)定義的對應(yīng)于所接收的筆畫曲線的規(guī)范曲線的部分來確定對應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分;使用接收的轉(zhuǎn)換將所接收的筆畫曲線投射進表面空間內(nèi);定義一個或多個基元,其在表面空間內(nèi)覆蓋所投射的筆畫曲線;對在所述一個或多個基元內(nèi)的多個采樣點中的每一個,確定在規(guī)范空間內(nèi)的對應(yīng)地址是否在對應(yīng)于所接收的筆畫曲線的所述規(guī)范空間的所述部分內(nèi);以及根據(jù)確定在規(guī)范空間內(nèi)的對應(yīng)地址是否在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述步驟,把用于渲染所接收的筆畫曲線的數(shù)據(jù)分配到在表面空間內(nèi)的所述多個采樣點中的一個或多個。
2. 根據(jù)權(quán)利要求1所述的方法,其中確定在規(guī)范空間的采樣地址是否在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述步驟,包括,確定當(dāng)所述采樣地址在規(guī)范空間內(nèi)出現(xiàn)時在所述規(guī)范曲線上的至少一個點是否位于所述筆畫曲線的參數(shù)的范圍內(nèi),從所述規(guī)范曲線到在規(guī)范空間內(nèi)的所述采樣地址能夠畫垂直于所述規(guī)范曲線的線。
3. 根據(jù)權(quán)利要求1或2所述的方法,其中確定在規(guī)范空間內(nèi)的采樣地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述步驟,包括,當(dāng)所述采樣地址在規(guī)范空間內(nèi)出現(xiàn)時確定從所述規(guī)范曲線向所述采樣地址垂直延伸的線的長度是否小于或等于所述筆畫曲線的筆畫寬度的一半。
4. 根據(jù)以上所述權(quán)利要求中的任何一個所述的方法,其中確定在規(guī)范空間的采樣地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述步驟包括查找為規(guī)范空間內(nèi)的多個離散地址而存儲的預(yù)先確定的信息。
5. 根據(jù)權(quán)利要求4所述的方法,其中所述預(yù)先確定的信息包括以下所列中的至少一個用于所述規(guī)范曲線上的點的參數(shù)值,能從在規(guī)范空間內(nèi)的各個地址向所述規(guī)范曲線上的點畫垂直于所述曲線的線;以及在所述規(guī)范曲線上的點與在規(guī)范空間內(nèi)的所述各個地址之間的垂直距離。
6. 根據(jù)權(quán)利要求4或5所述的方法,其中所述預(yù)先確定的信息被存儲在至少一個圖形紋理內(nèi)。
7. 在圖形處理系統(tǒng)中渲染用以顯示的筆畫曲線的方法,所述方法包括接收在用戶空間定義的輸入筆畫曲線;通過確定在規(guī)范空間內(nèi)定義的對應(yīng)于所接收的筆畫曲線的規(guī)范曲線的部分來確定對應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分;使用接收的轉(zhuǎn)換將所接收的筆畫曲線投射進表面空間內(nèi);定義一個或多個基元,其在表面空間內(nèi)覆蓋所投射的筆畫曲線;以及然后,對在所述一個或多個基元內(nèi)的多個采樣點中的每一個確定在規(guī)范空間內(nèi)的對應(yīng)地址;以及采樣一個或多個圖形紋理的至少一個紋素(texel),所述一個或多個圖形紋理具有多個紋素,每一個與涉及在所述規(guī)范空間內(nèi)的至少一個離散地址的信息相關(guān),以確定在規(guī)范空間內(nèi)的所述對應(yīng)地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)。
8. 根據(jù)權(quán)利要求7所述的方法,包括基于所接收的筆畫曲線,從用于由所述圖形處理系統(tǒng)使用的可用的多個圖形紋理中選 擇圖形紋理,其每一個存儲涉及在規(guī)范空間的不同區(qū)域內(nèi)的多個離散地址的信息;以及采樣所選擇的圖形紋理中的至少一個紋素以確定在規(guī)范空間中的所述對應(yīng)地址是否 是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)。
9. 構(gòu)造當(dāng)渲染用于顯示的筆畫曲線時與圖形處理系統(tǒng)一起使用的圖形紋理的方法,該 方法包括在定義的空間內(nèi)定義曲線;為在所述定義的空間內(nèi)的多個地址中的每一個,確定涉及在所述空間內(nèi)定義的所述曲 線的信息;以及產(chǎn)生并存儲包括紋素陣列的圖形紋理,其中每一個紋素對應(yīng)于在所述定義的空間內(nèi)的 所述多個地址中的至少一個,并具有與它相關(guān)涉及在所述空間內(nèi)定義的所述曲線的所確定 的信息。
10. 根據(jù)權(quán)利要求9所述的方法,其中涉及所定義的曲線的所述信息包括涉及在所定 義的空間內(nèi)的至少一個地址相對于所述曲線上的一個或多個點的位置(position)的信息。
11. 用于在圖形處理系統(tǒng)中渲染用于顯示的筆畫曲線的設(shè)備,該設(shè)備包括 用于接收在用戶空間定義的輸入筆畫曲線的裝置;用于通過確定在規(guī)范空間內(nèi)定義的對應(yīng)于所接收的筆畫曲線的規(guī)范曲線的部分來確定所輸入的筆畫曲線對應(yīng)的規(guī)范空間的部分的裝置;用于使用接收的轉(zhuǎn)換將所接收的筆畫曲線投射進表面空間內(nèi)的裝置; 用于定義一個或多個在表面空間內(nèi)覆蓋所投射的筆畫曲線基元的裝置; 用于對在所述一個或多個基元內(nèi)的多個采樣點中的每一個來確定在規(guī)范空間內(nèi)的對應(yīng)地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的裝置;以及用于根據(jù)在規(guī)范空間內(nèi)的對應(yīng)地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述確定來把用于渲染所接收的筆畫曲線的數(shù)據(jù)分配到在表面空間內(nèi)的所述多個采樣點中的一個或多個的裝置。
12. 根據(jù)權(quán)利要求11所述的設(shè)備,其中用于確定在規(guī)范空間的采樣地址是否是在對應(yīng) 于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述裝置,包括,用于確定當(dāng)所述采樣地 址在規(guī)范空間內(nèi)出現(xiàn)時在所述規(guī)范曲線上的至少一個點是否位于所述筆畫曲線的參數(shù)的 范圍內(nèi)的裝置,從所述規(guī)范曲線到在規(guī)范空間內(nèi)的所述采樣地址能夠畫垂直于所述規(guī)范曲 線的線。
13. 根據(jù)權(quán)利要求11或12所述的設(shè)備,其中,用于確定在規(guī)范空間的采樣地址是否是 在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述裝置包括,用< >于當(dāng)所述采樣地 址在規(guī)范空間內(nèi)出現(xiàn)時確定所述從所述規(guī)范曲線向所述采樣地址垂直延伸的線的長度是 否小于或等于所述筆畫曲線的筆畫寬度的一半的裝置。
14. 根據(jù)權(quán)利要求11到13中的任何一個所述的設(shè)備,其中用于確定在規(guī)范空間內(nèi)的地 址是否在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的所述裝置包括用于查找為 規(guī)范空間內(nèi)的多個離散地址而存儲的預(yù)先確定的信息的裝置。
15. 根據(jù)權(quán)利要求14所述的設(shè)備,其中所述預(yù)先確定的信息包括以下所列中的至少一 個用于所述規(guī)范曲線上的點的參數(shù)值,能從在規(guī)范空間內(nèi)的各個地址向所述規(guī)范曲線上 的點畫垂直于所述曲線的線;以及在所述規(guī)范曲線上的點與在規(guī)范空間內(nèi)的所述各個地址 之間的垂直距離。
16. 根據(jù)權(quán)利要求14或15所述的設(shè)備,其中所述預(yù)先確定的信息被存儲在至少一個圖 形紋理內(nèi)。
17. 用于在圖形處理系統(tǒng)中渲染用于顯示的筆畫曲線的設(shè)備,所述設(shè)備包括 用于接收在用戶空間定義的筆畫曲線的裝置;用于通過確定在規(guī)范空間內(nèi)定義的對應(yīng)于所接收的筆畫曲線的規(guī)范曲線的部分來確定對應(yīng)于所接收的筆畫曲線的規(guī)范空間的部分的裝置;用于使用接收的轉(zhuǎn)換將所接收的筆畫曲線投射進表面空間內(nèi)的裝置;用于定義一個或多個在表面空間內(nèi)覆蓋所投射的筆畫曲線的基元的裝置;用于對在所述一個或多個基元內(nèi)的多個采樣點中的每一個來確定在規(guī)范空間內(nèi)的對應(yīng)地址的裝置;以及用于采樣一個或多個圖形紋理的至少一個紋素的裝置,所述一個或多個圖形紋理具有 多個紋素,每一個均與涉及在所述規(guī)范空間內(nèi)的離散地址的信息相關(guān),以確定在規(guī)范空間 內(nèi)的所述對應(yīng)地址是否是在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)。
18. 根據(jù)要求17所述的裝置,包括用于基于所接收的筆畫曲線來從用于由所述圖形處理系統(tǒng)使用的可用的多個圖形紋 理中選擇圖形紋理的裝置,其每一個存儲涉及在規(guī)范空間的不同區(qū)域內(nèi)的多個離散地址的 信息;以及用于采樣所選擇的圖形紋理中的至少一個紋素以確定在規(guī)范空間內(nèi)的所述對應(yīng)地址 是否在對應(yīng)于所接收的筆畫曲線的規(guī)范空間的所述部分內(nèi)的裝置。
19. 用于構(gòu)造當(dāng)渲染用于顯示的筆畫曲線時與圖形處理系統(tǒng)一起使用的圖形紋理的設(shè) 備,該設(shè)備包括用于在定義的空間內(nèi)定義曲線的裝置;用于為在所述定義的空間中的多個地址中的每一個來確定涉及在所述空間中定義的 所述曲線的信息的裝置;以及用于產(chǎn)生并存儲包括紋素陣列的圖形紋理的裝置,其中每一個紋素對應(yīng)于在所述定義 的空間中的所述多個地址中的至少一個并具有與它相關(guān)的涉及在所述空間內(nèi)定義的所述 曲線的所確定的信息。
20. 根據(jù)權(quán)利要求19所述的設(shè)備,其中所述信息包括涉及在所定義的空間內(nèi)的至少一 個地址相對于所述曲線上的一個或多個點的位置的信息。
21. 用于當(dāng)渲染用于顯示的筆畫曲線時在圖形處理系統(tǒng)中使用的圖形紋理,其中所述 紋理的每一個紋素表示在定義的空間內(nèi)的至少一個地址,并且對于所述至少一個地址,具 有與它相關(guān)的涉及在所述空間內(nèi)定義的曲線的信息。
22. 根據(jù)權(quán)利要求21所述的圖形紋理,其中所述信息包括涉及在所定義的空間內(nèi)的至 少一個地址相對于所述曲線上的一個或多個點的位置的信息。
23. 計算機程序元件,包括,當(dāng)所述程序元件被運行在數(shù)據(jù)處理裝置上時用于執(zhí)行權(quán)利要求1到10中任意一個所述方法的計算機軟件代碼部分。
全文摘要
當(dāng)在圖形處理系統(tǒng)中渲染用于顯示的筆畫曲線時,在用戶空間2定義的筆畫曲線1被該系統(tǒng)接收。對應(yīng)于所接收的筆畫曲線1的規(guī)范空間5的部分被通過確定對應(yīng)于所接收的筆畫曲線1的在規(guī)范空間5中定義規(guī)范曲線12的部分來確定。然后,對在一個或多個基元4內(nèi)的多個采樣點中的每一個,確定在規(guī)范空間5內(nèi)的對應(yīng)(于在表面空間3中的采樣點)地址是否在對應(yīng)于所接收的筆畫曲線的該規(guī)范空間的該部分內(nèi),例如通過查找已經(jīng)被(提前)存儲在一個或多個圖形紋理中的合適的信息;其中,產(chǎn)生該一個或多個基元4以在它投射進表面空間3中后覆蓋所接收的筆畫曲線1′。然后基于該確定,把用于渲染所接收的筆畫曲線1的數(shù)據(jù)(例如RGB值)分配到多個采樣點中的每一個。
文檔編號G06T15/10GK101714261SQ200910179578
公開日2010年5月26日 申請日期2009年9月30日 優(yōu)先權(quán)日2008年10月6日
發(fā)明者A·S·克里斯滕森, J·尼斯塔德, R·霍爾姆 申請人:Arm有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
邯郸市| 阳朔县| 基隆市| 宁安市| 瑞金市| 绩溪县| 丰原市| 砀山县| 松潘县| 高邮市| 肇东市| 庆阳市| 昌图县| 敦化市| 伊春市| 资溪县| 仙桃市| 从江县| 江油市| 裕民县| 盱眙县| 阿拉善右旗| 南宁市| 贵南县| 盖州市| 德江县| 达日县| 砀山县| 光泽县| 沙雅县| 泌阳县| 泽库县| 肇东市| 耒阳市| 曲周县| 泰来县| 朔州市| 威宁| 余干县| 高台县| 阳西县|