TWI708208B - 圖形處理系統 - Google Patents
圖形處理系統 Download PDFInfo
- Publication number
- TWI708208B TWI708208B TW105123682A TW105123682A TWI708208B TW I708208 B TWI708208 B TW I708208B TW 105123682 A TW105123682 A TW 105123682A TW 105123682 A TW105123682 A TW 105123682A TW I708208 B TWI708208 B TW I708208B
- Authority
- TW
- Taiwan
- Prior art keywords
- curve
- regular
- point
- space
- input
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 117
- 238000005070 sampling Methods 0.000 claims abstract description 399
- 230000009466 transformation Effects 0.000 claims abstract description 87
- 238000009877 rendering Methods 0.000 claims description 96
- 238000000034 method Methods 0.000 claims description 65
- 238000003491 array Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 29
- 238000013519 translation Methods 0.000 description 26
- 239000011159 matrix material Substances 0.000 description 20
- 230000006870 function Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000001131 transforming effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/04—Context-preserving transformations, e.g. by using an importance map
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20072—Graph-based image processing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
一種圖形處理系統,其利用一輸入曲線10產生一渲染輸出,其包括處理電路,其被組態以對於定義在一世界空間11中的一輸入曲線10,決定定義在一正則空間13中而對應到輸入曲線10的一正則曲線12的一部分10”,及將輸入曲線10映射成正則曲線12的部分10”所需的變換TUC。對於世界空間11中輸入曲線10周圍的各複數取樣點,處理電路被組態以利用世界空間11及正則空間13之間的決定好的變換TUC,將取樣點從世界空間11變換到正則空間13;及在正則空間13中,決定正則曲線12的決定好的部分10”上到變換過的取樣點的最近點。處理電路據此對於正則空間13中正則曲線12周圍的各變換過的取樣點,決定正則空間13中正則曲線12上的一對應最近點。系統亦包括當產生一渲染輸出時,處理電路可利用正則曲線12的決定好的最近點,以供正則空間13中的變換過的取樣點。
Description
本發明是關於圖形處理系統,特別是關於在圖形處理系統中利用平滑形狀,例如平滑曲線的影像的渲染。
愈來愈需要圖形處理系統,以便有效地及精確地渲染(render)平滑形狀,特別是由平滑曲線定義的(以一平滑曲線作為它們的邊緣或邊界的)形狀,以供顯示。一般而言,具有連續且其曲線的第一導數是分段連續的一邊緣或邊界曲線的一形狀可視為圖形處理觀點下的一平滑形狀(平滑曲線所定義的形狀)(而為了本發明及應用的目的,將視為一平滑形狀,及對應地一平滑曲線)。在圖形處理中,這種平滑曲線的例子是貝茲曲線(Bezier curves)、樣條曲線(spline curves)及弧。
近年來,愈來愈普遍的是在電腦圖形中利用向量圖形。在本技術領域中,已知向量圖形對於光柵圖形(raster graphics)的一關鍵優點是有能力提供具有自足解析度的影像,亦即實質上可任意縮放而不會劣化的影像。例如電腦字型中的個別字元(字符),例如TrueTypeTM,是典型地儲存成向量影像。
向量圖形是基於利用個別定義的幾何物體,並典型地由一或多條線段,例如直線或曲線(例如二次(例如貝茲)曲線、橢圓弧、三次(例如貝茲)曲線)描述的,其等在定位點上連接在一起,以形成一路徑。
向量圖形物體/路徑是定義在一般稱為「世界空間」(world space)的一空間中,並在其中操作的。然而,為了將向量圖形物體/路徑輸出到一視訊顯示器或印表機,定義在世界空間中的物體/路徑必須轉換成一適合的格式,以便顯示在一螢幕上,或輸出到一印表機。此轉換典型地包括將定義在世界空間中的物體/路徑投影到另一空間,一般稱為「表面空間」,其對應到欲呈現出物體/路徑的輸出顯示的透視(幾何)。世界空間及表面空間之間的變換典型地稱為「世界到表面空間變換」。
一旦向量圖形物體/路徑轉換成表面空間表示法時,它們則可利用物體及/或路徑的一預計表示法而渲染。
將向量圖形物體/路徑轉換成一預計表示法而可例如在表面空間中用於渲染物體或路徑的一方法是利用例如儲存在一紋理中而當渲染物體時可取樣出的一有向距離場(signed distance field)。一有向距離場包含一點陣列,例如紋素(texels),而對於各點,到物體的路徑或邊緣的最近距離則儲存在其中,並以距離的正負號表示點是在欲渲染的物體之內或之外。因此,取樣有向距離場決定一取樣點落在欲渲染的物體之內或之外。
有向距離場有助於例如字型的字符等物體的渲染,而可令例如反鋸齒的技術受到利用。然而,例如利用掃描線光柵化(rasterisation),而從向量圖形物體/路徑計算有向距離場是複雜的。再者,若必須縮放物體或路徑,則有向距離場可能必須以新解析度重新計算,因為有向距離場可能僅以一有限解
析度儲存。此外,當渲染可能包括多重曲線線段的更複雜的物體,例如字型的字符時,已發現到,有向距離場的利用造成渲染過的物體的一細節損失,例如銳角的平滑化,這是計算有向距離場的方法中所用的加工所致。因此,這在計算上涉及其即時計算,或需要大量空間,以離線儲存預先計算出的有向距離場。此可將潛時(latencies)引進到可能需要即時進行的例如動態網頁等物體/路徑的渲染。
申請人因此相信,尚有空間改進技術及系統,以供渲染平滑曲線及由平滑曲線定義的形狀。
基於一第一觀點,本發明提供一種在一圖形處理系統中利用一輸入曲線產生一渲染輸出的方法,包括:對於定義在一世界空間中的一輸入曲線:決定定義在一正則空間(canonical space)中而對應到輸入曲線一正則曲線(canonical curve)的一部分,及將輸入曲線映射成正則曲線的部分所需的變換;對於世界空間中輸入曲線周圍的各複數取樣點:利用世界空間及正則空間之間的決定好的變換,將取樣點從世界空間變換到正則空間;及在正則空間中,決定正則曲線的決定好的部分上到變換過的取樣點的最近點;以據此對於正則空間中正則曲線周圍的各變換過的取樣點,決定正則空間中正則曲線上的一對應最近點;及
當產生一渲染輸出時,利用對於正則空間中變換過的取樣點而在正則曲線上決定好的最近點。
基於一第二觀點,本發明提供一種圖形處理系統,其利用一輸入曲線產生一渲染輸出,圖形處理系統包括:處理電路,其被組態以對於定義在一世界空間中的一輸入曲線:決定定義在一正則空間中而對應到輸入曲線的一正則曲線的一部分,及將輸入曲線映射成正則曲線的部分所需的變換;對於世界空間中輸入曲線周圍的各複數取樣點:利用世界空間及正則空間之間的決定好的變換,將取樣點從世界空間變換到正則空間;及在正則空間中,決定正則曲線的決定好的部分上到變換過的取樣點的最近點;以據此對於正則空間中正則曲線周圍的各變換過的取樣點,決定正則空間中正則曲線上的一對應最近點;及處理電路被組態以當產生一渲染輸出時,利用對於正則空間中的變換過的取樣點而在正則曲線上決定好的最近點。
在本發明中,渲染輸出是利用一輸入曲線而產生的,它是透過首先將定義在(可能是平面的,從而僅為二維的,亦可能是一個三維空間的)一「世界空間」中的輸入曲線映射成預先定義在一「正則空間」中的一對應預定「正則」曲線。接著,將從世界空間中輸入曲線周圍的對應位置變換成的正則空間中的位置取樣(測試),以決定正則曲線上到各取樣位置的最近點。這些最近點是用於產生渲染輸出的。此資訊可用於例如渲染形狀,例如字型的字符(glyphs),其等是由輸入曲線形成其等輪廓的至少一部分,或基於一物體渲染光影,其等是由輸入曲線形成其等輪廓的至少一部分。
然而,申請人已了解到,某曲線族中的所有曲線可例如僅利用旋轉、平移及等比例縮放而變換成一預定、單一或基本曲線的至少一部分,本文稱為一「正則曲線」。
因此,這可將關於單一曲線,亦即正則曲線的資訊用於決定關於圖形處理系統所用,以供用於產生渲染輸出的一或多個輸入曲線的資訊。換句話說,與其例如必須獲得或儲存關於圖形處理系統所用而欲渲染的各個別輸入曲線的資料,僅必須獲得或儲存關於正則曲線的資料。此資料則可利用「正則曲線」所表示的輸入曲線族(集合)所屬的各個別輸入曲線而用於產生渲染輸出。
因此,本發明不僅可提供一更有效的機制,以供利用一或多條輸入曲線產生一渲染輸出,更提供一特別方便的機制完成此事。例如一旦正則空間中的正則曲線定義好時,即可簡單地以單一坐標,例如x坐標指出曲線上的點(從而在計算中利用它們)。因此,利用正則曲線,決定曲線上到一取樣點的最近點,並可接著用於決定到曲線上的最近點的距離(一有向距離場中的資訊的一部分),可保留例如利用向量圖行而定義的輸入曲線的數學表示法。這是決定此資訊的一更簡單及更精確的方式,從而,比起利用當計算有向距離場時,將導致一資訊損失,從而渲染輸出的一細節損失的掃描線光柵化所估計的有向距離場的技術而言,它增加利用輸入曲線產生渲染輸出的速度及準確度。
提供一更簡單的過程,以供利用這種輸入曲線產生一渲染輸出,有助於減少執行這種過程的裝置的處理及電力負載,可將其用於更簡單的裝置,例如行動及穿戴裝置,它們是電池供電的,並可能不實現多功能處理。或者,過程增加的效率可令其進行更精密的渲染特徵,或當需要時,可即時(重新)計算必要資訊(例如正則曲線上到各變換過的取樣點的最近點),比起先前技術,在處理及裝置的電力負載中不需要一相關聯的增設。
為了產生渲染輸出,當利用這種輸入曲線,特別是渲染字型時,利用一更簡單及更精確的處理(例如對於一變換過的取樣點,正則曲線上的最近點的一分析計算)可將字形更漂亮地呈現在顯示器上,特別是當放大文字,使得文字可能必須重新計算時,更是如此。
定義在世界空間中而為本發明的處理所用,例如作為其輸入的輸入曲線,可為由例如必須利用輸入曲線產生渲染輸出的應用程式所原始定義的輸入曲線。然而,輸入曲線亦可能是從定義在世界空間中的另一曲線獲得的一曲線。例如亦可考慮,輸入曲線可能是從例如本發明所接收的另一空間,將另一條或初始曲線變換到世界空間而獲得的。
輸入曲線可以適合及需要的方式輸入到圖形處理系統。例如輸入曲線可(預先)儲存在圖形處理系統中,以從其儲存位置讀取之,或輸入曲線可由圖形處理系統本身決定。在另一實施例中,輸入曲線可為例如透過必須利用輸入曲線產生渲染輸出的應用程式的主動輸入。在一較佳實施例中,方法包括步驟(而處理電路被組態)以接收輸入曲線。
例如包含利用輸入曲線所欲渲染的一形狀的渲染輸出,可僅利用例如其整體長度(或欲用於產生渲染輸出的至少部分長度)具有單一定義(例如數學公式)的單一曲線而產生。較佳地,輸入曲線具有可獲得具有上述性質的一「正則曲線」的一形式。因此,圖形處理系統所用的輸入曲線可為來自可具有一適當相關聯的正則曲線的一曲線族的任何曲線。
具有此形式的一相關聯的正則曲線的一曲線族都是二次曲線。在這種情況下,正則曲線可為基本二次曲線,亦即,形式為y=x2的一曲線。據此,在一特別較佳實施例中,圖形處理系統所接收的世界空間中的輸入曲線是一條二次曲線。
同樣地可考慮,渲染輸出可利用複數輸入曲線而產生,例如其等長度各具有一不同定義(例如數學公式)的多重曲線線段。例如一字型的一字符典型地將由一起形成字符輪廓的多重曲線線段(其可能包括直線線段)而定義。
同理或反之,輸入曲線可能沒有正則空間中的一對應曲線,從而可將初始曲線細分成各確實具有對應正則曲線的複數曲線區段或線段(它們是具有一相關聯的正則曲線的一曲線族的成員),例如欲用於渲染輸出的輸入曲線可透過(例如將沿著初始曲線的長度的不同區段定義為分開的輸入曲線而)將定義在世界空間中的一初始曲線細分成二或多條分開的輸入曲線而獲得。例如一條三次或橢圓曲線可細分成複數二次曲線。據此,本發明可用於渲染無法直接對應到直接定義好的(及/或儲存好的)或可用的一正則曲線的曲線。
在這些實施例中,方法可包括步驟(而處理電路可被組態)以將定義在世界空間中的一初始曲線細分成複數輸入曲線,接著以本發明的方式處理一或以上的各輸入曲線,並產生渲染輸出。對於某些原始定義的曲線,例如三次貝茲曲線,當將初始曲線細分成複數輸入曲線時,可重新利用某些計算(從而處理電路可被組態以完成此事),以便找出多重輸入曲線,例如二次貝茲曲線,以提供初始曲線的最佳擬合。例如一條二次貝茲是由其起點及終點及(可由一第三控制點定義的)梯度定義的。這些參數則可與例如具有一標準形式的相鄰貝茲的對應參數作比較,以決定它們是否可加以合併。
在一組較佳實施例中,當利用多重輸入曲線產生渲染輸出時,本發明的方法重複於各輸入曲線(例如片段),例如將各輸入曲線(片段)變換到正則空間,而對於各世界空間中輸入曲線(片段)周圍的複數取樣點,正則曲線的決定好的部分上到變換過的取樣點的最近點是在其中決定的。接著,對於各多重正則曲線周圍的變換過的取樣點的一陣列,對於各變換過的取樣點,
然後回傳決定好的正則曲線(片段)上的最近點,而這些決定好的最近點則可用於當產生渲染輸出時。
申請人已了解到,實務上,若非當產生渲染輸出時所可能必須利用的所有輸入曲線,其大部分將落在一些曲線族之一,故若非可能必須時常繪製的所有曲線,可表示其大部分,例如以利用相對少數輸入曲線,定義複雜形狀,例如字型。輸入曲線可為任何適合的一或多條曲線。較佳地,輸入曲線是平滑曲線。較佳地,一條或各條平滑曲線是連續且(曲線的路徑的)曲線的第一導數是分段連續的一條曲線。較佳地,輸入曲線是一條直線、一條(例如二次或三次)貝茲曲線、一條樣條曲線及/或一(例如橢圓的)弧。
然而,如以下將進一步討論的,輸入曲線可包括更複雜的曲線,例如一橢圓及/或一條雙曲線,而例如不必將曲線細分成複數二次曲線。然而,對於如此定義的輸入曲線,從世界空間到正則空間並沒有唯一的(二維)變換,故曲線的定義可能必須包括額外資訊,例如曲線的離心率,其例如在正則空間中表示成一第三維度。此可儲存成輸入曲線的定義的一部分,或方法可包括步驟(而處理電路可被組態)以當輸入曲線包括一橢圓或一條雙曲線時,決定輸入曲線的離心率。
當輸入曲線包括例如具有二次式的橢圓及雙曲線時,此提供使用者一有用的工具,以供當產生一渲染輸出時,用於定義複雜形狀,其可例如僅透過相對友善於硬體的旋轉、縮放及平移而將一或多條輸入曲線變換成對應正則曲線。
定義在世界空間中而例如為本發明的過程所用於接收成一輸入的輸入曲線,可以任何需要的及適合的方式而定義。例如及較佳地,圖形處理系統可接收定義輸入曲線,例如曲線的位置的資訊,及關於曲線的任何參數。較佳地,輸入曲線具有例如作為一形狀的一部分的一有限長度,因此,較佳地,
輸入曲線定義,從而圖形處理系統所用,例如所接收的資訊,其包括輸入曲線的終點。由於可僅利用旋轉、平移及等比例縮放,將一輸入曲線變換成一對應正則曲線,則如以下將進一步討論的,可隨時決定對應到輸入曲線的正則曲線的部分,例如其起點及終點,以供利用。
輸入曲線較佳地由世界空間中的複數控制點的位置定義,典型地包括一起點、一終點及一或多個中點,連同控制起點及控制終點之間所欲繪製的曲線種類的一指示。例如及較佳地,如上所述,輸入曲線包括下列之一:一條直線、一條二次貝茲曲線(此需要單一控制中點)、一條三次貝茲曲線(此需要二控制中點)、一條樣條曲線及一(例如橢圓或或雙曲線)弧。輸入曲線的定義亦可包括曲線例如在一或多個控制點上的梯度。例如一條二次貝茲曲線可由三控制點或二控制(終)點及此二控制點的梯度定義。
因此,輸入曲線的定義較佳地包括世界空間中的複數控制點及指示曲線種類的資訊。再者,當輸入曲線由圖形處理系統接收時,接收定義在世界空間中的一輸入曲線的步驟較佳地包括(而處理電路被組態以)接收在世界空間中的複數控制點的位置及指示曲線種類的資訊。
對於欲用於產生渲染輸出的一輸入曲線,例如一旦輸入曲線由圖形處理系統接收時,必須決定正則空間中表示輸入曲線的正則曲線的對應部分。此決定可以任何適合及需要的方式實現。
在一較佳實施例中,這是透過將定義在世界空間中的輸入曲線放置到正則空間中的正則曲線的對應部分所需的變換而決定的。如上所述,此變換(世界到正則變換)應該僅需要旋轉、平移及/或等比例縮放。據此,決定將世界空間中的輸入曲線變換成正則曲線適當部分的變換的步驟,較佳地包括(而處理電路較佳地被組態以)有的話,決定變換的一旋轉成分。
變換的旋轉成分可以任何適合及需要的方式決定。然而及同樣地,在一較佳實施例中,當世界空間中的輸入曲線(從而正則空間中的正則曲線)是一條二次曲線時,變換的旋轉成分是透過決定使得輸入曲線的對稱軸平行於正則空間中的正則曲線的對稱軸所需的旋轉而決定的。因此,此旋轉以正則曲線的對稱軸(例如正則空間中的y軸)的方向對齊輸入曲線的對稱軸。
相似地,決定將世界空間中的輸入曲線變換成正則空間中的正則曲線的適當部分的變換的步驟,較佳地包括(而處理電路較佳地被組態以)有的話,決定變換的一平移成分。
變換的平移成分亦可以任何適合及需要的方式決定。然而,在一較佳實施例中,當輸入曲線(從而正則曲線)是一條二次曲線時,變換的平移成分是透過決定將世界空間中的輸入曲線的輸入曲線的天底點(nadir)移動到正則空間中的正則曲線的天底點,例如正則空間的原點所需的平移而決定的。因此,較佳地,必要時,決定變換的平移成分的步驟,必要時,它是隨著決定變換的旋轉成分的步驟。
因此,在一較佳實施例中,決定變換的平移成分的步驟包括(而處理電路較佳地被組態以)決定將輸入曲線天底點映射成正則空間中的正則曲線的天底點所需的平移。
相似地,決定將世界空間中的輸入曲線變換成正則曲線的適當部分的變換的步驟較佳地包括(而處理電路較佳地被組態以)有的話,決定變換的一等比例縮放成分。
變換的等比例縮放成分亦可以任何適合及需要的方式而決定。然而及同樣地,在一較佳實施例中,當世界空間中的輸入曲線(從而正則空間中的正則曲線)為一條二次曲線時,變換的等比例縮放成分是透過將例如旋轉過
的及/或平移過的輸入曲線縮放成正則曲線所需的縮放因數而決定的,例如透過檢查輸入曲線的二次形式為之。
決定旋轉、平移及等比例縮放變換的成分的步驟可以任何需要的順序進行。然而,在本發明的一較佳實施例中,首先決定旋轉成分,接著是平移成分,最終是等比例縮放成分。
當輸入曲線具有一有限長度,例如由起點及終點定義時,一旦將世界空間中的輸入曲線映射成正則空間中的正則曲線所需的變換決定好時,則較佳地,對應到輸入曲線的正則曲線的部分是利用決定好的變換而決定的,以決定正則曲線上而對應到輸入曲線的中央曲線的起點及終點的二位置。然後在正則空間中給出輸入曲線的位置。
一旦對應到世界空間中的輸入曲線的正則空間中的正則曲線決定好,從而變換從世界空間到正則空間的輸入曲線的變換亦然時,則(個別或同時)利用相同變換,世界空間中輸入曲線周圍的各複數取樣點可變換成正則空間中的對應點。
輸入曲線周圍的複數取樣點可以任何適合及需要的方式而選擇,例如將輸入曲線上的決定好的最近點提供成具有充分的一解析度等級,以供渲染輸出所需渲染的細節等級(或涵蓋所欲產生的渲染輸出的預期的最大縮放等級)。或者,對於少數取樣點,輸入曲線上的最近點可例如決定成具有一低解析度,而接著後續必要時,例如若渲染輸出必須產生成具有一放大層次,決定成具有一高解析度(亦即,更細節地)。在一實施例中,輸入曲線周圍的一定界框被繪製,而輸入曲線周圍的複數取樣點定義在其中。
在一實施例中,關於輸入曲線的資訊最終被決定成用於當產生渲染輸出時,對於輸入曲線周圍的各取樣點,正則曲線上的最近點未必都被決定。例如對於各複數額外取樣點所欲決定的資訊可由位在,例如接近來自複數額外
取樣點的一取樣點的一或多個(原始定義的)取樣點推測出來,而不必將各這些額外取樣點變換到正則空間並決定正則曲線上的最近點。
在本實施例中,亦可決定下列之一或多者:曲線上到一取樣點的最近點、從取樣點到曲線上的最近點的距離、及取樣點應該被認為存在於曲線的那側。此資訊可在正則空間中(從而可能必須將取樣點變換到正則空間及/或將在正則空間中決定好的資訊變換回世界空間)或在世界空間中決定。
此外,在本實施例中,可不必利用一或多個鄰近取樣點決定一特別變數的實際值,但決定一變數值是否高於或低於一門檻值。此則可用於例如對於接近輸入曲線的取樣點,決定是否必須獨立地或更精確地決定變數值。例如對於一額外取樣點,可利用決定好其最近點及/或距離的一或多個周圍的取樣點,決定額外取樣點比起一鄰近取樣點,是否更近或更遠。若額外取樣點更遠,則充分地可簡單地儲存鄰近取樣點到曲線的距離(或指出此點更遠的一門檻值或一預設值)。若額外取樣點更近,則可能必須如同對於原始組取樣點,對於正則空間中的取樣點,決定曲線上的最近點。
在本實施例中,較佳地,對於原始組取樣點所決定好的資訊,例如曲線上的一或多個最近點到一取樣點、從樣本到曲線上的最近點距離及取樣點應該被認為存在於曲線的那側,是儲存在例如一快取中,以對於額外取樣點作這些比較。
當存在複數輸入曲線時,世界空間中各輸入曲線周圍的複數取樣點,對於各輸入曲線可能是相同的,例如它們可圍繞所有輸入曲線(從而當渲染時,可給出測試所有輸入曲線的可能性,如以下將進一步討論的),但較佳地,各輸入曲線周圍的複數取樣點對於各輸入曲線是分開選定的,例如僅圍繞輸入曲線,從而較佳地,它們形成世界空間中的取樣點的一子集合。例如(單
一)定界框可被繪製,以環繞所有輸入曲線,但較佳地一分開的定界框被繪製,以圍繞各輸入曲線,而複數取樣點定義在其中。
對於世界空間中變換到正則空間中的一取樣點,正則曲線上到正則空間中變換過的取樣點的最近點可以任何適合及需要的方式而決定。較佳地,正則曲線上到各變換過的取樣點的最近點是在正則空間中解析地決定。最近點可透過決定正則曲線上哪裡是正則曲線的切線垂直於從變換過的取樣點到正則曲線上的點的向量的點而決定。(對於某些正則曲線,此可能回傳曲線上滿足此條件的一以上的點,故可能必須比較從變換過的取樣點到曲線上的點的距離,以決定最近點,例如以捨棄落在正則曲線的有限部分之外的點及/或選擇正則曲線上到變換過的取樣點具有最短距離的點。)取決於輸入曲線的定義,在世界空間中,例如當輸入曲線定義成一貝茲曲線時,這種解析計算未必是可能的,而在正則空間中,例如當對應正則曲線是一拋物線時,它卻是可能的。
當輸入曲線具有一有限長度,例如由起點及終點定義時,正則曲線的部分的起點或終點可比正則曲線上(例如在那部分之外)哪裡是正則曲線的切線垂直於從變換過的取樣點到正則曲線的點的向量的(最近)點更接近,例如曲線的起點及終點可為曲線上到取樣點的最近點。因此,較佳地,決定正則曲線上到一變換過的取樣點的最近點的步驟亦包括(從而較佳地,處理電路被組態以)決定從變換過的取樣點到正則曲線的部分的起點及終點的距離,及決定起點或終點之一是否為正則曲線上到變換過的取樣點的最近點。
較佳地,決定正則曲線上到一特別變換過的取樣點的最近點的步驟包括(從而較佳地,處理電路被組態以)在正則空間中決定變換過的取樣點及正則曲線上到變換過的取樣點的最近點之間的距離,例如在正則空間中決定正則曲線上到變換過的取樣點的最近點的步驟可包括最小化一給定的變換過的取樣點及正則曲線之間的距離。據此,對於曲線周圍的各取樣點,此決定從取
樣點到對於取樣點而在曲線上的對應最近點的距離,並當產生渲染輸出時,可將曲線上到最近點的距離用於例如作為一有向距離場的一部分,而當產生渲染輸出時,不必在世界空間中重新計算此數值。
變換過的取樣點及正則曲線上的最近點之間的距離可利用一查找表而決定。或者,變換過的取樣點及正則曲線上的最近點之間的距離可以解析地計算成例如燒錄到硬體中的一解析運算。若欲利用一查找表,可針對正則曲線的一特別(例如有限)範圍提供之(例如以便最小化儲存在查找表中的資料量,使得大部分的輸入曲線將對應到接近一拋物線的天底點的正則曲線的部分),而在此範圍之外進行一分析計算。此外,需要利用時,可利用例如涵蓋正則曲線的不同部分,而具有來自預先決定好及儲存好的複數取樣點的距離的複數查找表。此有助於減少重新計算這些距離的必要性,從而減少即時處理。
在再一實施例中,除了例如儲存在一紋理中而提供成以決定從一取樣點到曲線上的最近點的距離的查找表之外,對應到輸入曲線的正則曲線(並例如亦包括從世界空間變到正則空間的決定好的變換)亦可預先決定及儲存。額外資訊,例如用於(例如透過定義其中可定義取樣點的(多條)輸入曲線周圍的一定界框而)決定從一取樣點到曲線上的最近點的距離及/或一或多條輸入曲線的最大延伸的公式,亦可以適合及需要的方式預先決定及儲存。
例如當(多條)輸入曲線定義所欲渲染的一字符時,字型格式可包含某些或所有此資訊。
當輸入曲線是一條直線時,較佳地,例如必要時,利用一旋轉、一平移及一縮放的一或多者,將世界空間中的輸入曲線變換到正則空間中的一軸,例如x軸。正則曲線上的最近點則簡單地就是沿著直線變換成的軸的變換過的取樣點的例如x坐標。當輸入曲線具有一有限長度,例如由起點及終點定義時,若變換過的取樣點的例如x坐標就是位在正則曲線的起點及終點的例如x坐
標,則正則曲線上到變換過的取樣點的最近點就是變換過的取樣點的x坐標。當變換過的取樣點的例如x坐標位在正則曲線的起點及終點之外時,正則曲線上到變換過的取樣點的最近點就是起點或終點到變換過的取樣點的較近者。對於具有一有限長度的這種輸入曲線,正則空間中的直線線段可在正則空間中縮放成延伸在x=0及x=1之間,但此並非必要。
一旦在正則空間中決定好正則曲線上到變換過的取樣點的最近點時,可例如利用在世界空間及正則空間之間決定好以供輸入曲線變換的反變換,將最近點從正則空間變換到世界空間。因此,方法可包括步驟(而處理電路可被組態)以對於各複數取樣點:利用世界空間及正則空間之間的變換的反變換,將決定好的最近點從正則空間變換到世界空間;以據此,對於世界空間中輸入曲線周圍的各取樣點,決定在世界空間中輸入曲線上的一對應最近點。產生一渲染輸出的步驟則可當產生渲染輸出時,利用對於世界空間中的取樣點而在輸入曲線上決定好的最近點。然而,如下所述,此並非必要,但亦可在正則空間中利用決定好的最近點,例如決定從一取樣點到曲線的距離及/或決定一取樣點位在曲線的哪側。
當存在例如一起形成一形狀的一輪廓(例如一字符)的多重輸入曲線時,對於各取樣點而在對應正則曲線的最近點可對於各多重輸入曲線而分開決定,例如對於各輸入曲線周圍的分開的一組取樣點為之,而以在正則空間中進行的對於各輸入曲線所決定的決定為之,以決定對於各輸入曲線周圍的一組取樣點而在各多重正則及/或輸入曲線上(亦可能是正則或輸入曲線的一起點或一終點)的一最近點,必要時,其將在正則空間中決定好的最近點變換到世界空間。(同樣地,各輸入曲線的那組取樣點可視需要圍繞一或多個或所有輸入曲線。)
(當一取樣點在正則空間中決定好二條或以上,例如所有多重輸入曲線的最近點時)多重曲線上的這些最近點則可彼此比較,例如透過分別比較從取樣點到多重曲線上的各最近點的距離,以決定多重曲線上到各取樣點的最近點。最近點之間的此比較可例如利用從它們到取樣點的距離,在世界空間中或在正則空間中進行。當在正則空間中進行時,例如若需要不同縮放,以供將不同輸入曲線變換到正則空間,則可能必須利用將輸入曲線變到正則空間的變換。當在世界空間中進行時,應該分別將決定好的最近點及/或從它們到取樣點的距離從正則空間變換到世界空間,必要時,利用對於輸入曲線決定好的反變換為之。
在另一實施例中,對於各取樣點(例如所有多重輸入曲線周圍的一適合地選定的取樣點陣列),可決定到多重曲線全體(或其一子集合)的最近點。此將決定對於各取樣點而在多重曲線上(亦可能是曲線之一的一起點或一終點)的單一最近點。最近點可透過掃視一或多條多重輸入曲線而決定,以決定各取樣點的最近點,亦即,決定最近點位在哪一條或哪幾條多重曲線。
同樣地,在本實施例中,最近點的決定可在世界空間中或在正則空間中進行,必要時,一併進行任何變換及/或縮放。特別地,當在正則空間中運作時,可能必須注意接近一曲線的終點的取樣點,以決定最近點位在哪二條或哪幾條曲線上。例如二條輸入曲線可形成一形狀的一角,使得一取樣點最接近哪條曲線不太明顯。
在上述兩個實施例中,一旦決定好多重曲線上到一取樣點的(單一)最近點時,較佳地,對於各取樣點,決定(並例如儲存)最近點所在的正則或輸入曲線的一識別。
(世界空間或正則空間中的)一相似的決定亦可對於從各取樣點到多重曲線上的(單一)對應最近點的距離全體為之,例如(在正則空間或世界空間中,必要時,利用適當變換)比較各多重輸入曲線的距離。
多重曲線上到一給定的取樣點的一或多個最近點可利用所有多重輸入曲線決定,但較佳地,最近點僅由某些多重輸入曲線,例如從多重輸入曲線預選的一群一或多條輸入曲線決定。來自多重輸入曲線的一或以上的輸入曲線,例如預選群可以任何適合及需要的方式選擇,例如根據關於哪條多重輸入或對應正則曲線最接近各(例如變換好的)取樣點及/或哪條多重輸入曲線位在探討中的取樣點所落在的區塊的一粗略的決定。僅選擇一有限數目的輸入曲線,以用於此決定,有助於減少需要的處理。
(將了解到當渲染輸出包括一字符時,字符的輪廓是由一或多條輸入曲線定義的,而輸入曲線之內的區域必須適當地著色(shaded),以便顯示字符。即使存在圍繞字符中的任何特殊點,或接近字符之外的任何特別點的多重輸入曲線,關於一取樣點是否落在字符之內或之外的決定可簡單地由決定最近點位在哪條多重輸入曲線上而完成。
當在正則空間中決定好變換過的取樣點及正則曲線上到變換過的取樣點的最近點之間的距離時,較佳地,對於各取樣點,利用正則曲線到輸入曲線的反變換,將此距離例如沿著曲線上的最近點,從正則空間變換到世界空間。
當可用時,分別在正則或世界空間中的(正則或輸入曲線上的)最近點,及正則或世界空間中從取樣點到最近點的距離可直接傳送到用於產生渲染輸出的處理電路。(當從變換過的取樣點到正則曲線上的最近點的距離尚未在正則空間中決定好,及/或變換到世界空間時,較佳地,在世界空間中,對於各取樣點,從取樣點到(輸入曲線上的)最近點的距離是例如利用輸入曲
線上的最近點及取樣點而決定的。此可適當地在正則空間或世界空間中決定。)然而,方法可包括步驟(而處理電路被組態),以對於各取樣點,儲存曲線上的最近點。各最近點的儲存值可適當地在正則空間中或在世界空間中。
當基於對於一原始組取樣點而早已決定好的資訊,例如從一取樣點到曲線上的最近點的距離,決定好對於額外一組取樣點的資訊時,較佳地,此資訊亦例如沿著對於原始組取樣點而決定好的對應資訊而儲存。
當(適當地在正則空間或世界空間中)決定好從取樣點到最近點的距離時,較佳地,方法包括步驟(而處理電路被組態),以對於各取樣點,儲存從取樣點到曲線上的最近點的距離,例如沿著對於各取樣點而在輸入曲線上的最近點。各距離的儲存值可存在於正則空間中,但較佳地存在於世界空間中。儲存從取樣點到曲線上的最近點的變換好的距離是為了避免必須重新(例如利用對於各取樣點所儲存的曲線上的最近點)決定此距離。
距離值可以任何適合及需要的方式(適當地在正則空間或世界空間中)儲存。距離值可以它們計算出的例如原始形式儲存。然而,在一實施例中,當距離值大於一門檻值時,距離值受到截切,例如設定到一門檻值或預設值。透過僅將決定好的距離值儲存到一門檻值,儲存空間可最小化。當取樣點接近曲線,使得獲得距離的情報可能很重要,例如使得它可用於產生特別渲染效果時,就可用實際距離值。然而,在此距離範圍之外,例如對於遠離輸入曲線的取樣點,可能不必知道到輸入曲線上的最近點的距離的確切值,只要它至少是門檻值。
當存在多重輸入曲線時,對於多數曲線整體,從一取樣點到曲線的距離(例如連同最近點所位在的曲線的一識別),或對於各多重輸入曲線,從一取樣點到曲線的距離,及同理或反之,(多個)對應最近點,都可以適合及需要的方式儲存。
(多個)距離(同理或反之,(多個)最近點)可(適當地在正則空間及/或世界空間中)以任何適合及需要的形式儲存在任何適合及需要的儲存器中,使得此資訊可用於當產生渲染輸出時。在一較佳實施例中,各取樣點的(多個)距離(及同理或反之(多個)最近點)是以一或多個圖形紋理的形式儲存的。由於不僅圖形紋理試圖儲存關於特別地理位置陣列的資料,且以紋理的形式儲存資料可將既有的紋理映射過程廣泛地實現於用於以本發明的方式產生渲染輸出的圖形處理系統,這是特別有利及有益的。
亦相信此形式的圖形紋理的產生本身是新穎的及有利的。據此,本發明亦涉及這種紋理的建構。
因此,根據一第三觀點,本發明提供一種方法,是當產生一渲染輸出時,利用一輸入曲線產生一圖形紋理,以供在一圖形處理系統中利用,方法包括:對於定義在一世界空間中的一輸入曲線:決定定義在一正則空間中而對應到輸入曲線的一正則曲線的一部分,及將輸入曲線映射成正則曲線的部分所需的變換;對於世界空間中輸入曲線周圍的各複數取樣點:利用世界空間及正則空間之間的決定好的變換,將取樣點從世界空間變換到正則空間;及在正則空間中,決定正則曲線的決定好的部分上到變換過的取樣點的最近點;以據此對於正則空間中正則曲線周圍的各變換過的取樣點,決定正則空間中正則曲線上的一對應最近點;對於各取樣點,決定從取樣點到曲線上決定好的最近點的距離;及
產生一圖形紋理,包括一紋素陣列,其中各紋素對應到至少一取樣點,且對於至少一取樣點,其相關聯於從至少一取樣點到曲線的(多個)決定好的距離。
基於一第四觀點,本發明提供一種設備,是當產生一渲染輸出時,利用一輸入曲線產生一圖形紋理,以供在一圖形處理系統中利用,設備包括:處理電路,其被組態以對於定義在一世界空間中的一輸入曲線:決定定義在一正則空間中而對應到輸入曲線的一正則曲線的一部分,及將輸入曲線映射成正則曲線的部分所需的變換;對於世界空間中輸入曲線周圍的各複數取樣點:利用世界空間及正則空間之間的決定好的變換,將取樣點從世界空間變換到正則空間;及在正則空間中,決定正則曲線的決定好的部分上到變換過的取樣點的最近點;以據此對於正則空間中正則曲線周圍的各變換過的取樣點,決定正則空間中正則曲線上的一對應最近點;對於各取樣點,決定從取樣點到曲線上決定好的最近點的距離;及產生一圖形紋理,包括一紋素陣列,其中各紋素對應到至少一取樣點,且對於至少一取樣點,其相關聯於從至少一取樣點到曲線的(多個)決定好的距離。
本技術領域中具有通常知識者將了解到,本發明的這些觀點及實施例適當時可包括,且較佳確實包括任何一本文所述本發明的較佳及選擇性的特徵。
例如從各取樣點到曲線上的對應決定好的最近點的距離可在正則空間或世界空間中決定。(多個)決定好的距離可儲存在,從而紋理亦儲存在(亦即,紋素可位在)正則空間或世界空間中。然而,較佳地,紋理(及多個紋素),從而亦較佳地決定好的距離是儲存在一中介空間。中介空間可為任何適合及需要的空間。較佳地,中介空間是一縮放及/或平移版的世界空間。此可將原點設定在例如取樣點周圍的一定界框的例如左下角的紋素的一參考點。
相似地,一或多個紋理中的各紋素較佳地相關聯於上述紋素位置在正則曲線上的(多個)解的資訊。換句話說,各紋素將表示正則空間中的至少一位置,並儲存關於正則空間中的位置到正則曲線上的最近點的距離的資訊。例如及較佳地,資訊可包括(多個)最近點的參數值及/或(多個)最近點所位在的(多個)輸入曲線的識別。
當資訊欲以一紋理的形式儲存時,(多個)紋理可具有任何適合及需要的尺寸(亦即,視需要包含任何數目的紋素),而各紋素可具有任何所需數目的其相關聯的資料成分。然而,較佳地,各紋素僅相關聯於關於正則空間中的單一離散位置的資訊。
紋理亦可儲存任何其他適合及需要的幾筆資訊。例如紋理可儲存下列之一或多者:世界空間中的(多條)輸入曲線的定義(包括(多條)輸入曲線的任何控制點)、正則空間中的(多條)正則曲線的定義(包括(多條)正則曲線的任何控制點)、(多條)輸入曲線變成(多條)對應正則曲線的變換、(例如關於決定好的最近點、到最近點的距離及/或關於一取樣點位在輸入曲線的哪側的決定)反鋸齒資訊、及當曲線是一橢圓或一雙曲線時,輸入及/或正則曲線的離心率。紋理亦可儲存關於(多條)輸入曲線的後期處理的資訊,例如一輸入曲線所欲渲染成的一命中的曲線,較佳地連同其寬度(在本例
中,到曲線的距離是用於決定一取樣點是否落在命中的曲線的寬度之內或之外)。
當存在複數輸入曲線時,較佳地,例如如上所詳述關於複數不同輸入曲線的資訊是一起儲存,例如在相同紋理中。此可例如透過在空間上將紋理的輸入曲線分開,並接著對於探討中的輸入曲線,取樣紋理中的適當區域而完成。此外,當(多條)輸入曲線是關於一字符時,較佳地,紋理例如以一字型集的形式儲存關於形成一字型的所有字符的資訊。對於多重輸入曲線,此可例如透過在空間上將紋理中的字符分開,並接著對於探討中的字符,取樣紋理中的適當區域而完成。
如上所述,在本發明的這些觀點及實施例中,表示輸入曲線的紋理被組態,使得輸入曲線周圍的取樣紋理點(紋素)將例如在正則或世界空間中,給出指出從紋理點到曲線上的最近點的距離的取樣紋理值,及可能地,曲線上到世界空間中的紋理點的最近點,及可儲存在紋理中的任何其他資訊。因此,當取樣出紋理時,取樣紋理值可用於決定取樣點位在曲線的哪側,其則可用於利用輸入曲線產生渲染輸出。
同樣或與其在一紋理中儲存必要的資訊,一些或所有決定好的資訊,或作為欲用於產生渲染輸出的決定資訊的過程的一部分,例如作為一中介步驟而決定的資訊,可儲存在圖形處理系統中任何適合及需要的位置,例如在一快取中,如上所述。當資訊正在即時決定時,這是便利的。在另一實施例中,決定好的資訊可儲存在圖形處理系統中的本地例如晶片整合記憶體,例如畫素本地儲存。
一旦最近點陣列決定好(並例如儲存在一紋理中),連同可利用曲線上的最近點決定(並例如儲存在紋理中)的任何其他適合及需要的資訊,例如從取樣點到曲線上的最近點的距離時,利用輸入曲線的渲染輸出則可以任
何適合及需要的方式,利用對於正則空間中的變換過的取樣點而在正則曲線上決定好的最近點而產生。此可透過直接利用正則曲線上的決定好的最近點,或從藉此獲得的資訊,例如當變換回世界空間中的輸入曲線時的最近點,或(適當地在正則空間或世界空間中)從取樣點到曲線上的最近點的距離為之。
如上所述,決定及儲存到曲線的最近點的步驟可離線進行,並儲存在例如一紋理中,以供當產生渲染輸出時後續利用。較佳地,曲線上的最近點是即時決定的,即使較佳地,曲線上的最近點(及/或關於它的資訊,例如距離)亦儲存在例如一紋理中,使得其等可供未來利用,例如若相同輸入曲線將用於在一後續時間產生渲染輸出。
較佳地,(適當地在正則空間或世界空間中)渲染輸出是利用從曲線上決定好的最近點到取樣點的決定好的距離而產生的。因此,在一較佳實施例中,為了利用輸入曲線產生渲染輸出,當對於曲線周圍的各複數取樣點,決定好從曲線上決定好的最近點到一取樣點的距離時,方法包括步驟(而圖形處理系統包括處理電路,其被組態)以:對於世界空間中的各複數取樣點:取樣從輸入曲線上的決定好的最近點到世界空間中對應到取樣點的位置上的取樣點的決定好的距離;及對於世界空間中的取樣點,利用決定好的距離產生渲染輸出。
渲染輸出可利用決定好的最近點,以任何適合及需要的方式產生,例如上述透過利用決定好的距離為之。在較佳實施例中,可決定關於(多個)輸入曲線及取樣點的額外資訊,可當利用決定好的最近點產生渲染輸出時決定它,及/或連同最近點決定它,使得它可儲存在例如一紋理中,並當產生渲染輸出時利用它。
在一較佳實施例中,方法包括步驟(而圖形處理系統包括處理電路,其被組態)以:對於一曲線周圍的各複數取樣點:利用曲線上決定好的最近點,決定取樣點應該被認為存在於曲線的哪側;以據此對於曲線周圍的各取樣點,決定一取樣點應該被認為存在於曲線的哪側;及當產生渲染輸出時,利用關於取樣點將被認為存在於曲線的哪側的決定。決定一取樣點應該被認為存在於曲線的哪側的步驟可以適合及需要的方式在正則空間或世界空間中進行。
因此,一旦決定好(並例如從紋理取樣出)它們時,曲線上的各決定好的最近點較佳地用於決定各取樣點應該被認為存在於曲線的哪側。此決定可以任何適合及需要的方式進行。知道一取樣點位在曲線的哪側,即可利用此資訊產生渲染輸出。例如若一取樣點位在(例如具有至少部分地由輸入曲線定義的一輪廓的)一物體之內,則它可著上物體的顏色,或若一取樣點位在(例如具有至少部分地由輸入曲線定義的一輪廓一物體所投射的)一陰影之中,則它可適當地陰影化。
利用對於各取樣點而在曲線上的決定好的最近點,決定取樣點應該被認為存在於曲線的哪側的步驟可包括關於曲線的取樣點的一切線檢查。當對於取樣點,決定好取樣點及曲線上的對應最近點之間的距離時,決定取樣點應該被認為存在於輸入曲線的哪側的步驟亦可利用從取樣點到曲線上的最近點的距離。較佳地,決定從一取樣點到曲線上的對應最近點的距離的步驟亦包括決定取樣點應該被認為存在於曲線的哪側。同樣地,此可在正則空間或世界空間中進行。
當存在複數輸入曲線,且對於多重輸入曲線全體的各取樣點,決定好(並例如儲存好)曲線上的最近點時,此最近點可用於決定取樣點應該被認為存在於輸入曲線的哪側。或者,當對於各取樣點,決定好各(例如至少一些)多重曲線的一最近點,這些最近點可一起用於決定取樣點應該被認為存在於曲線的哪側。
較佳地,當存在複數輸入曲線時,利用決定好的最近點,決定取樣點應該被認為存在於輸入曲線的哪側的步驟包括(而較佳地,處理電路被組態以)進行關於(例如至少某些)多重曲線的取樣點的一平均切線檢查。平均切線檢查可利用例如一字符的決定好的最近點及所有多重曲線而進行,但較佳地,僅多重曲線的一子集合用於進行平均切線檢查。平均切線檢查可在正則空間或世界空間中進行。
較佳地,欲用於平均切線檢查的多重曲線的子集合是例如利用當決定(可能是最接近取樣點者的)曲線上的最近點時所用的相同子集合而預選的。
當輸入曲線包括一條直線時,較佳地,利用變換過的最近點,決定取樣點應該被認為存在於曲線的哪側的步驟包括(而較佳地,處理電路被組態以)決定取樣點是否高於或低於正則空間中的軸。
當對於各取樣點,取樣點及曲線上的對應最近點之間的距離,及/或取樣點應該被認為存在於曲線的哪側都決定好時,這一或二筆資訊可儲存在例如一紋理中。儲存好的資訊可存在於正則空間及/或在世界空間中。因此,當這二筆資訊都決定好時,它們可(例如以儲存好的樣本所在的曲線的那側決定到曲線的距離的正負號)用於(並例如儲存)一有向距離場的形式。如上所述,較佳地,決定距離的步驟亦決定一取樣點位在曲線的哪側,故各取樣點的這二筆資訊可隨時一起利用及/或儲存。
較佳地,產生渲染輸出的步驟是(而處理電路被組態以)在正則空間或世界空間中利用從取樣點到曲線上的最近點的距離,及/或關於取樣點應該被認為存在於曲線的哪側的決定。當從取樣點到曲線上的最近點的距離先前就決定好時,可利用例如儲存在一紋理中決定好的值。或者,從取樣點到曲線上的最近點的距離可由取樣點及曲線上的最近點決定。
因此,在特別較佳的一組實施例中,在正則空間或世界空間中,從取樣點到曲線上的最近點的距離,及關於取樣點應該被認為存在於曲線的哪側的決定都用於例如以一有向距離場的方式產生渲染輸出。
渲染輸出可在世界空間,例如原始定義取樣點的空間中產生,以便決定曲線上的最近點(它們是從那裡變換到正則空間的),因此,到最近點的距離的空間較佳地儲存在例如一紋理中,或渲染輸出可在一不同「表面」空間,例如對應到所欲輸出的一顯示的空間中產生。當欲將文字渲染到例如並非水平定向於使用者的3D的一表面時,接下來的這個例子就很方便。在虛擬或擴增實境中,這很有用。
在接下來的本實施例中,可直接取樣並利用曲線上的決定好的最近點,產生渲染輸出。然而,較佳地,當對於曲線周圍的各複數取樣點,從曲線上決定好的最近點到一取樣點的距離決定好時,利用輸入曲線產生渲染輸出,較佳地,方法包括步驟(而圖形處理系統包括處理電路,其被組態)以:對於一表面空間中的各複數取樣點:取樣從輸入曲線上的最近點到世界空間中的位置對應到表面空間中的取樣點的取樣點的決定好的距離;及利用對於世界空間中的取樣點的決定好的距離,產生渲染輸出。
當決定好(及例如儲存好)關於取樣點應該被認為存在於曲線的哪側的決定,較佳地,對於表面空間中的各複數取樣點,在世界空間中對應到
表面空間中的取樣點的位置上取樣此資訊,並接著用於產生渲染輸出,例如必要時,利用世界空間到表面空間之間的資訊的一適當變換。在另一實施例中,從取樣點到輸入曲線上的最近點的距離及/或關於取樣點應該被認為存在於曲線的哪側的決定可在表面空間中決定。
當在一表面空間中產生渲染輸出時,較佳地,利用輸入曲線產生渲染輸出的第一步驟是,對於表面空間(渲染輸出所產生在,例如所顯示在的空間)中的各複數取樣點,取樣從曲線上的最近點,到其在世界空間中的位置是對應到取樣點的取樣點的決定好的距離(及較佳地,關於取樣點應該被認為存在於輸入曲線的哪側的決定)。為此,取決於表面空間及世界空間之間的關係,對於取樣點,可能必須進行在表面空間及世界空間之間的一適當變換。例如若對於取樣點所決定好的資訊只在正則空間中決定好,而不變換到世界空間,則亦可能必須進行從世界空間到正則空間的一額外變換。
例如當輸入曲線形成欲渲染的一物體的至少一部分,例如一字符時,例如表面空間可位在平行於世界空間的一平面上,使得渲染輸出可關於一2D影像。在這種情況下,表面空間可能與世界空間是相同(或具有一縮放因數的)空間,使得表面空間中的複數取樣點可直接對應到世界空間中的複數取樣點(即使表面空間中的取樣點可能不是提供成與世界空間中的取樣點具有相同密度,使得它們可能必須適當地映射成世界空間中的對應取樣點)。
在另一實施例中,例如當曲線是用於產生一陰影時,或當文字顯示在曲面(例如虛擬實境)時,由於渲染輸出可能關於一3D畫面,取樣點的一變換可能必須在表面空間及世界空間之間進行。
如同所提到的,輸入曲線(從而所提供的紋理)可例如利用陰影而用於從輸入曲線形成其至少一部分者以渲染一不同物體。然而,較佳地,輸入曲線形成渲染中的物體的至少一部分,例如它形成其輪廓。例如所欲渲染的
物體可包括一字符(作為一字型的一部分)。輸入曲線可以任何曲線表示法的形式定義,例如向量圖形。較佳地,輸入曲線是定義在一可縮放向量圖形(SVG)格式中。
一旦決定好當產生渲染輸出時所欲利用的輸入曲線的資訊,例如輸入曲線上的最近點、從取樣點到輸入曲線上的最近點的距離及/或關於取樣點應該被認為存在於輸入曲線的哪側的決定時,渲染輸出可例如直接在世界空間中或從一表面空間以任何適合及需要的方式產生。當決定好並儲存好一紋理時,此可利用例如任何適合的圖形紋理映射過程進行。
在一較佳實施例中,渲染輸出是透過下列而產生的,例如以供顯示:首先產生涵蓋渲染輸出所欲產生在的例如一表面空間中的畫面區域的一或多個基元(primitive),而接著利用一或多個基元所涵蓋的畫面區域的輸入曲線的決定好的資訊,例如透過將紋理套用到一或多個基元,並據此將一或多個基元著色。
一或多個基元可視需要例如透過定義涵蓋所欲繪製的形狀所欲顯示在的畫面區域,例如涵蓋一字符的一或多個定界框或定界多邊形而產生。
當產生基元時,可能必須確保產生的(多個)基元僅取樣紋理的所需(及適當)區域。(特別地,這可能是多重輸入曲線(或例如字符)表示在相同紋理中的情況。)
產生的基元則可光柵化成產生的基元及片段中的複數取樣點,及例如紋理,以透過取樣紋理中對應到基元取樣點(及/或片段)位置的位置,表示套用到一或多個基元的各取樣點(及/或片段)的輸入曲線。(紋理應該利用適當的紋理濾波過程,例如及較佳地,雙線性濾波取樣。)此可包括產生涵蓋表面空間中的一或多個基元的一取樣點陣列,及將這些取樣點變換到世界空間,以在其中可取樣例如從一紋理決定好的資訊。
取樣的資訊,例如紋理值則用於將(多個)對應取樣位置適當地著色,例如利用關於(多個)取樣位置應該被認為存在於一輸入曲線的哪側的決定,及/或(多個)取樣位置到輸入曲線的距離為之。基於此決定,將資料,例如紅、綠及藍(RGB)色值及一「alpha」透明值指派給複數取樣點,以適當地正確地顯示例如包含字符的畫面。
將了解到,當從取樣點到輸入曲線上的最近點的距離可用於當產生渲染輸出時,比起例如當輸入曲線的邊緣僅有一門檻值可用時,此可用於製造所欲進行的更複雜的渲染效果,例如旋轉、陰影化等。
本發明可應用於渲染器的任何形式或組態,例如具有一「管線式」配置的渲染器(此時,渲染器將具有一渲染管線的形式)。在一較佳實施例中,它是套用到一硬體圖形渲染管線。本發明的多種功能及元件等可視需要,例如及較佳地,由適當功能單元、處理邏輯、處理器、微處理器或配置等實現。在一實施例中,亦設想本發明可在一最小化功能的例如簡化版的圖形處理管線上進行。這種系統在低功率裝置,例如穿戴物、電子紙等中可能是適合的。
本發明可應用於渲染的所有形式,例如即時模式渲染、延遲模式渲染、區塊式渲染等。在一較佳實施例中,其用於延遲模式渲染及區塊式渲染器。
由上可知,本發明雖然不是專門地,但特別可應用於2D或3D圖形處理器及處理裝置,並據此涉及一2D或3D圖形處理器及一2D或3D圖形處理平台,其包括根據本文所述本發明的任何一或多個觀點的設備或據此操作。依照實現上述特定功能所需的任何硬體,這種2D或3D圖形處理器可另外包括2D或3D圖形處理器所包括的任何一或多個或所有一般功能單元等。在一較佳實施例中,系統包括固定功能硬體單元,其例如特定地配置以(例如在正則空間中)決定一曲線上到一取樣點的最近點及/或從取樣點到曲線上的最近點的距離。
本發明可應用於圖形處理器的任何適合的形式或組態。其特別可應用於區塊式圖形處理器及圖形處理系統。因此,在一較佳實施例中,圖形處理系統及圖形處理管線分別是一區塊式系統及管線。
在一特別較佳實施例中,本發明的多種功能是實現在單一圖形處理平台上,其產生並輸出例如寫入到訊框緩衝器,以供顯示裝置的渲染過的例如片段資料。
本發明可以任何適合的系統實現,例如一適合地被組態的微處理器式系統。在一較佳實施例中,本發明是實現在一電腦及/或微處理器式系統上。
本發明的多種功能可以任何需要的及適合的方式實現。例如本發明的功能可視需要實現在硬體或軟體中。因此,例如除了另有所指之外,本發明的多種功能元件、階段及「手段」可包括適合的一或多個處理器、一或多個控制器、功能單元、電路、處理邏輯、微處理器配置等,其可操作以進行多種功能等,例如可以需要的方式編程操作的例如適當地專用硬體元件及/或可編程硬體元件。
此處亦應該注意到的是,本技術領域中具有通常知識者將了解到,本發明的多種功能、階段等可複製及/或平行地實現在一給定的處理器上。同樣地,需要時,多種處理階段分享處理電路等。
依照實現上述特定功能所需的任何硬體,資料處理系統及管線可改以包括資料處理管線所包括的任何一或多個或所有一般功能單元等。
本技術領域中具有通常知識者亦將了解到,本發明所有所述觀點及實施例適當時可包括,且較佳確實包括任何一或多個或全部本文所述較佳及選擇性的特徵。
根據本發明的方法可至少部分地利用軟體,例如電腦程式實現。因此,從進一步的觀點觀察將可明白,本發明提供電腦軟體,其當安裝在資料處理手段上時,特定地適於實現本文所述方法;一電腦程式元件,其當程式元件在資料處理手段上執行時,包括電腦軟體碼部分,以供進行本文所述方法;及一電腦程式,其當程式在一資料處理系統上執行時,包括編碼手段,適於進行本文所述一或多個方法的所有步驟。資料處理器可為一微處理器系統、一可編程FPGA(場可編程閘陣列)等。
本發明亦涉及一電腦軟體載體,其包括當用於操作一圖形處理器、渲染器或微處理器系統時,包括資料處理手段,使得所述處理器、渲染器或系統基於所述資料處理手段實現本發明的方法的步驟的這種軟體。這種電腦軟體載體可為一實體儲存媒體,例如一ROM晶片、CD-ROM、RAM、快閃記憶體或碟片,或可為一訊號,例如線路上的一電子訊號、例如到一衛星或其類似物的一光學訊號或一無線電訊號。
更將了解到,並非本發明的方法的所有步驟必須由電腦軟體實現,從而從一更廣泛的觀點,本發明提供電腦軟體,而這種軟體是安裝在一電腦軟體載體上,以供實現本文所述方法的至少一步驟。
據此,本發明可適合地實施為一電腦程式產品,以供一電腦系統利用。這種實現可包括固定在一有形或非暫態媒體上的一系列電腦可讀指令,例如一電腦可讀媒體,例如磁碟、CD-ROM、ROM、快閃記憶體或硬碟。亦可包括經由一數據機或其他介面裝置,透過一有形媒體,包括但不限於光學或類比通訊線,或無形地利用無線技術,包括但不限於微波、紅外線或其他傳輸技術,而可傳輸於一電腦系統的一系列電腦可讀指令。這系列電腦可讀指令實施本文上述的全部或部分功能性。
本技術領域中具有通常知識者將了解到,這種電腦可讀指令可以多個程式語言寫成,以供許多電腦結構或操作系統利用。進一步地,這種指令可利用任何記憶體技術,現在或未來,包括但不限於半導體、磁性或光學儲存,利用任何通訊技術,現在或未來,包括但不限於光學、紅外線或微波傳輸。可考慮這種電腦程式產品可散布成附隨書面或電子文件組的一可卸除式媒體,例如一系統ROM或固定碟片上的例如拆封授權軟體、一電腦系統的預先載入,或從一網路的一伺服器或電子佈告欄,例如網際網路或全球資訊網而散布。
以下將描述本發明的數個較佳實施例,僅作為範例,並參考附圖,其中:
1:字符
2、3、4、5、6、7、8、9、10:貝茲曲線
10:貝茲曲線
10”:正則曲線的一部分
11:世界空間
12:正則曲線
13:正則空間
14:輸入曲線
16:曲線
20:天底點
22:對應天底點
26、27、28:字符
29:紋理圖集
30:流程圖
31:預定路徑
32:圖形處理管線(SDF產生器)
33:查找表(LUT)
34:路徑快取
35:位置資料
36:固定功能單元
37:紋理管線
38:訊框緩衝器
b 0 :控制起點
b 0 ' :對應起點
b 1 :控制中點
b 2 :控制終點
b 2 ' :對應終點
d:距離
Mr:旋轉矩陣
Mt:平移矩陣
Ms:縮放矩陣
P:取樣點
p0:最近點
TUC:世界到正則變換
xA、xB:參數位置
圖1顯示根據本發明的一實施例的渲染一字串的工作流程的一總覽;圖2顯示作為本發明的一實施例中的過程的一部分,其邊界由一系列輸入曲線定義的欲渲染的一字符;圖3顯示作為本發明的一實施例中的過程的一部分,將一輸入曲線從一世界空間變到一正則空間的一變換;圖4(i)-(iii)顯示作為本發明的一實施例中的過程的一部分,將一輸入曲線從一世界空間變到一正則空間的變換步驟;圖5顯示作為本發明的一實施例中的過程的一部分,決定一正則曲線上到一取樣點的一最近點的步驟;圖6顯示本發明的一實施例中產生的三字符的一有向距離場的一圖形表示;
圖7顯示用於本發明的一實施例的圖形化地表示成一紋理圖集的一字型中的各字符的一有向距離場的一圖形表示;及圖8顯示根據本發明的一實施例的一流程圖,以供進行渲染字符的一過程的步驟。
如上所述,本發明的基本前提是利用一輸入曲線產生一渲染輸出,而輸入曲線上的最近點到各多種取樣點是決定好的,以供在渲染中利用,例如決定一取樣點應該被認為存在於輸入曲線的哪側。輸入曲線可形成所欲渲染的一物體的至少一部分(例如其邊緣的至少一部分),或它可形成欲以某些其他方式利用的一形狀或曲線的至少一部分,以作為渲染輸出的一部分,例如以供陰影化。
本發明的一較佳實施例將描述如下,其脈絡是利用一圖形處理系統,渲染具有其邊緣是由一或多條輸入曲線定義的字符(作為一字型的一部分的字元的圖形表示法)的形式的文字。在本實施例中,表示字符的一紋理是利用一有向距離場產生的,而接著紋理是例如利用決定一取樣點位在形成字符的邊緣的一曲線的哪側的有向距離場而取樣的,以渲染字符。
圖1顯示根據本發明的一實施例的渲染一字串的工作流程的一總覽。當產生包含一字串的一渲染輸出,例如「reinforced」一詞時,第一步驟(步驟1)是定義一組矩形定界框,各字符(詞中的字母)對應一定界框,其劃分成二個三角形,以便定義各字符的紋理。定界框可由字型檔提供,亦即,其被輸
入到圖形處理系統,並在各框之間具有間距,以決定詞中的各字母之間的間距。各個別字符的有向距離場則可加以計算(步驟2,圖1),以下將描述之。
圖2顯示其邊界由一系列輸入曲線定義的一字符1。
為了渲染字符1以供顯示,最初,字符1或典型地定義字符1的資訊被輸入到圖形處理系統。
如圖2所示,字母「O」的一字符1(例如具有一向量圖形物體的形式)是透過曲線的控制起點及終點的位置及控制中點的位置定義為一2D世界空間中的一連串二次貝茲曲線2、3、4、5、6、7、8、9。字符之外由四條二次貝茲曲線2、3、4、5定義,而字符之內由額外四條二次貝茲曲線6、7、8、9定義。當渲染字符1時,內曲線及外曲線2、3、4、5、6、7、8、9之間的區域被適當地著色,以便顯示字符1,以下將更詳細地描述之。
在渲染期間,最初,形成字符1的各成分的二次貝茲曲線2、3、4、5、6、7、8、9是分開處理的。對於各二次貝茲曲線2、3、4、5、6、7、8、9,世界空間中的曲線映射成一正則空間中的一正則曲線的一對應部分,以(在正則空間中)作成關於曲線上到曲線周圍的各複數取樣點的最近點的決定。(決定正則空間中的最近點可進行一額外計算,從而可決定曲線的一精確計算的有向距離場。)
以下將描述將世界空間中原始定義的輸入曲線變換成一正則空間中一正則曲線的過程。
圖3顯示將世界空間11中的一輸入貝茲曲線10變成正則空間13中的一正則曲線12的一對應部分10”的一範例的變換TUC。世界空間11中的輸入貝茲曲線10具有一控制起點b 0 、一控制終點b 2 及一控制中點b 1 ,其等定義世
界空間中,而映射成正則空間13中的正則曲線12的一部分10”,並具有一對應起點b 0 '及一對應終點b 2 '的曲線。
如上所述,作為一曲線族中的所有曲線僅利用旋轉、平移及/或等比例縮放所可轉換成(或其至少一部分)的一條預定、單一或基本曲線,一正則曲線12是定義在一正則空間13中的。例如在本實施例中,若定義在世界空間11中的輸入貝茲曲線10是(由三控制點定義的)一條二次曲線,則正則曲線12是曲線y=x2。
將了解的是,為了實現本發明,必須決定世界到正則變換(TUC),亦即將定義在世界空間11中的輸入貝茲曲線10映射成正則空間13中的正則曲線12的一對應部分10”的變換。
在本實施例中,對於任何給定的二次貝茲曲線,得到將世界空間11中的輸入貝茲曲線10變成正則空間13中的正則曲線12的變換的方式,是如圖4(i)-(iii)所示。
在2D空間的一投影表示中的,2D空間中的點 a 表示為3D中的向量A,而具有分量(ax,ay,1)。此表示是同質的,故A及λA表示相同點。
此等價於多項式ax 2+2hxy+by 2+2gx+2fy+c=0
一廣義二次貝茲曲線是定義在此等式的係數滿足:ab-h 2=0
此處假設二次貝茲曲線的輸入是2D中的三控制點: b 0 、 b 1 及 b 2 ,其中 b 0 及 b 2 是二終點,而 b 1 是中點。據此,必須決定正則曲線y=x 2的一線段的世界到正則變換。
如上所述,世界到正則變換僅由旋轉(其由一矩陣Mr定義)、平移(其由一矩陣Mt定義)及/或等比例縮放(其由一矩陣Ms=kI定義,其中k為一常數,而I為單位矩陣)所組成。
第一階段是從三控制點 b 0 、 b 1 、 b 2 找出多項式的係數(a、b、c、f、g、h)。接著,這些係數可用於計算將輸入貝茲曲線變成正則曲線所需的旋轉、位移及縮放。
透過 b 0 =(x 0 ,y 0 )、 b 1 =(x 1 ,y 1 )及 b 2 =(x 2 ,y 2 ),係數表示成:
a=(y 0 -2y 1 +y 2 )2
b=(x 0 -2x 1 +x 2 )2
c=x 0 2 y 2 2-4x 0 x 1 y 1 y 2 -2x 0 x 2 y 0 y 2 +4x 0 x 2 y 1 2+4x 1 2 y 0 y 2 -4x 1 x 2 y 0 y 1 +x 2 2 y 0 2 h=-(y 0 -2y 1 +y 2 )(x 0 -2x 1 +x 2 )
g=x 0 y 0 y 2 -2x 0 y 1 2+2x 0 y 1 y 2 -x 0 y 2 2+2x 1 y 0 y 1 -4x 1 y 0 y 2 +2x 1 y 0 y 1 -x 2 y 0 2+2x 2 y 0 y 1 +x 2 y 0 y 2 -2x 2 y 1 2
f=-(x 0 2 y 2 -2x 0 x 1 y 1 -2x 0 x 1 y 2 -x 0 x 2 y 0 +4x 0 x 2 y 1 -x 0 x 2 y 2 +2x 1 2 y 0 +2x 1 2 y 2 -2x 1 x 2 y 0 -2x 1 x 2 y 1 +x 2 2 y 0 )
此時必須找出世界到正則變換(TUC),亦即,一3 x 3矩陣,以透過結合的一旋轉、平移及縮放,將世界空間中的點變換到正則空間。此變換的效果是將貝茲曲線的終點映射成正則曲線,y=x 2。
在本實施例中,決定世界到正則變換(TUC)的過程的第一階段是決定變換的旋轉成分(旋轉矩陣Mr)。需要的旋轉是決定成必須將世界空間11中的輸入二次貝茲曲線10的對稱軸21旋轉成平行於正則空間13中的正則曲線12的對稱軸23-請參照圖4(i)。
而signum函數定義為signum(x)=-1若x<0
signum(x)=+1其他
對於輸入二次貝茲曲線10上的一組點,保證成立ab-h 2=0的條件,故以cos θ及sin θ表示的平方根的參數都將是正的。(在a=b=0的情況下,這是一條直線,應該直接識別並分開處理,如下所述。)
一旦決定好世界到正則變換的旋轉成分時,接著決定平移成分(亦即,平移矩陣Mt)。此過程如圖4(ii)所示。
所需的平移是決定成必須在正則空間13中,將旋轉過的輸入曲線14的天底點20平移到原點(0,0),亦即,正則曲線12的對應天底點22。同樣地,此平移是透過操作輸入貝茲曲線10的二次形式而決定的,以計算平移矩陣Mt。首先,一平移矩陣Mt定義為
最終,決定世界到正則變換的等比例縮放成分(亦即,縮放矩陣Ms)。此如圖4(iii)所示。
將了解到,一旦世界空間11中的輸入曲線10適合地旋轉及平移到正則空間13中,亦即,圖4(iii)中的曲線16時,此時具有形式y=x 2/|λ|,其中1/|λ|是欲決定的縮放因數。同樣地,此平移是透過操作輸入貝茲曲線10的二次形式以計算縮放矩陣Ms而定義。首先,一縮放矩陣Ms定義為:
一旦計算出將定義在世界空間11中的輸入貝茲曲線10映射成正則空間13中的正則曲線12的對應部分10”所需的世界到正則變換,亦即,TUC=
MsMtMr=1/|λ|MtMr時,正則曲線12的實際部分10”可透過將決定好的變換套用到輸入貝茲曲線10的參數而決定。此過程圖解於圖3。
如圖3所示,定義在世界空間11中而具有控制點 b 0 、 b 1 、 b 2 的輸入貝茲曲線10是利用世界到正則變換TUC而映射成正則曲線12的對應部分10”。
正則曲線線段10”的起點及終點 b 0 ’、 b 2 ’定義正則空間13中的輸入貝茲曲線10的參數(x)範圍。因此,如圖3所示,正則曲線線段10”具有在正則空間13中延伸於參數位置xA及xB之間的一參數範圍。
在本實施例中,對於形成字符1(例如如圖2所示)的各輸入貝茲曲線2、3、4、5、6、7、8、9,定義世界空間11中的一組取樣點。對於任何給定的輸入貝茲曲線(例如圖3所示定義在世界空間11中的輸入貝茲曲線10),對於輸入貝茲曲線周圍的各取樣點,決定輸入貝茲曲線上的最近點。
對於世界空間11中的一給定的取樣點,輸入貝茲曲線10上的最近點是透過下列而決定的:首先利用先前決定好的將世界空間11中的輸入貝茲曲線10映射成正則空間13中的正則曲線12的部分10”的世界到正則變換TUC,將世界空間中的取樣點變換成正則空間13中的一對應位置。正則曲線12的部分10”上到正則空間13中對應到世界空間11中的取樣點的變換過的取樣點的最近點,是透過將從變換過的取樣點到正則曲線的距離最小化而決定的。
更簡單地,將D 2最小化,則給出
4x 3+(1-2v)2x-2u=0
或x 3+ax+b=0
此處,三次根是定義良好的,因為引數保證是實數,而三次根對於正及負引數都有定義(負數的三次根是負的)。
當b 2/4+a 3/27=0時,即為退化情況,其中三根之二發生重根。然而,為了找出整體最小值,任何反曲點是令人不感興趣的,故對於x 1,上述公式仍成立,而有單一最小值。
中間的根(取決於φ)是一整體最大值,而可忽略。此二個外部的根將對應到局部最小值而是令人感興趣的。絕對最小值(二個局部最小值之一)可不必是正則曲線12的部分10”上到變換過的取樣點的最近點,因為它可能落在正則曲線12的部分10”之外。進行檢查以觀察外部的根之一或二是否落在正則曲線12的部分10”之內,必要時,比較從變換過的取樣點到正則曲線12的部分10”上對應到二個外部的根的點的距離,以決定正則曲線12的部分10”上到變換過的取樣點的最近點。
一旦決定好正則曲線12的部分10”上到變換過的取樣點的此最近點時,在正則空間13中計算出從變換過的取樣點的位置到那點的距離(如上所述,若當決定最近點時並未計算出此距離)。
從變換過的取樣點到曲線上的最近點的距離可以任何適合及需要的方式決定。若已知變換過的取樣點的x坐標及y坐標,則決定最近點的x值,y=x 2(正則曲線)給出最近點的y坐標。距離則簡單地由此二組坐標決定。
計算距離的一方式是將正則曲線12的部分10”的起點 b 0 ’平移到原點,並接著將終點 b 2 ’旋轉到位在正x軸上。
此將終點旋轉到(d,0)。此點可縮放成點(1,0),但如此並無實益。
s=|v|若0<u<d
請注意v的正負號亦決定取樣點位在線的哪側,故此可用於作為有向距離場的正負號。
此距離則與從取樣點到正則曲線的部分的各端的距離作比較。在這三點之外,正則曲線12的部分10”上到變換過的取樣點具有最小距離的點被決定成正則曲線12上到變換過的取樣點的最近點。
圖5顯示點p0,其被決定成正則曲線12的部分10”上到正則空間13中的變換過的取樣點P的最近者。對於此變換過的取樣點P,正則曲線上的
最近點p0被決定成將從變換過的取樣點P到正則曲線12的距離最小化者,亦即,因此決定正則曲線12的點p0是到變換過的取樣點P的最近點。這是因為,對於此取樣點及正則曲線的部分,變換過的取樣點P及最近點p0之間的距離d都小於從變換過的取樣點P到正則曲線的部分的終點的距離。
亦如圖5所示,若尚未從最小化距離以找出最近點p0的過程加以決定,則可簡單地由這些點決定從變換過的取樣點P到正則曲線12的部分10”上的最近點p0的距離d。
當輸入曲線是一條直線時,透過包括一旋轉及一平移的一世界到正則變換,將定義在世界空間中的曲線變換到在正則空間中的x軸(當輸入曲線為有限長度時,亦可將其縮放成例如在正則空間中的x軸而在0及1之間,但此並非必要)。正則曲線上的最近點則簡單地就是在正則空間中的變換過的取樣點的x坐標。當輸入曲線具有一有限長度,而具有起點及終點時,若變換過的取樣點的x坐標位在正則曲線的起點及終點的x坐標之間,則正則曲線上到變換過的取樣點的最近點就是變換過的取樣點的x坐標。當變換過的取樣點的x坐標位在正則曲線的起點及終點之外時,正則曲線上到變換過的取樣點的最近點就是起點或終點到變換過的取樣點的較近者。
一旦決定好時,(從正則空間13中的變換過的取樣點P到正則曲線12上的最近點p0的)距離d及必要時,正則曲線12的部分10”上的最近點p0則利用從世界空間11到正則空間13的變換TUC的反變換而變換到世界空間11,亦即,給出輸入貝茲曲線10上到世界空間11中的取樣點的最近點及這些點之間的距離。決定對於一取樣點而在輸入貝茲曲線10上的最近點及這些點
之間的距離的此過程是重複於世界空間11中輸入貝茲曲線10周圍的陣列中的各取樣點。
額外一組取樣點到輸入貝茲曲線10的距離亦可利用鄰近取樣點的早已決定好的距離而決定,而不必進行變到正則空間的變換,及在其中決定。
一旦對於各取樣點完成此事,使得對於世界空間11中輸入貝茲曲線10周圍的一陣列中的各取樣點,輸入貝茲曲線10上的一最近點及到其的一距離決定好時,此過程是重複於形成字符1的各輸入貝茲曲線2、3、4、5、6、7、8、9。
利用這些多數取樣點陣列,對應到形成字符1的多重輸入貝茲曲線2、3、4、5、6、7、8、9,可決定對於字符1周圍的取樣點的一陣列的各取樣點全體而在多重輸入貝茲曲線2、3、4、5、6、7、8、9全體上的最近點,而各最近點及取樣點之間的距離亦然。對於一給定的取樣點,多重輸入貝茲曲線2、3、4、5、6、7、8、9的最近點及其距離是透過簡單地比較決定好的個別輸入貝茲曲線2、3、4、5、6、7、8、9周圍的取樣點的各陣列中的對應取樣點的距離,及選擇最小距離而決定的。
(多重輸入貝茲曲線2、3、4、5、6、7、8、9上到一給定的取樣點的最近點可僅利用形成字符1的所有多重輸入貝茲曲線2、3、4、5、6、7、8、9的一子集合而決定,例如透過捨棄明顯比其他者更遠的一或多個輸入貝茲曲線2、3、4、5、6、7、8、9。例如對於如圖2所示的字符1,對於位在字符1右邊的一取樣點,可捨棄字符1左邊的輸入曲線3、9。)
若例如作為決定從取樣點到曲線上的最近點的距離的一部分,尚未決定好世界空間11中的各取樣點位在的輸入貝茲曲線10的哪側,則透過針對
對應到多重輸入貝茲曲線2、3、4、5、6、7、8、9的正則曲線,進行正則空間11中的取樣點的一平均切線檢查而決定之。同樣地,用於進行一取樣點的平均切線檢查的多重輸入貝茲曲線2、3、4、5、6、7、8、9可為形成字符1的所有多重輸入貝茲曲線2、3、4、5、6、7、8、9的一子集合,而它們可對應到用於決定多重輸入貝茲曲線2、3、4、5、6、7、8、9上到取樣點的最近點的子集合。
世界空間11中的各取樣點所位在的輸入貝茲曲線10的那側,是透過取樣點及輸入貝茲曲線10上到取樣點的決定好的最近點的距離,而用於給予距離一正負號的:對應到取樣點的距離位在字符之內者,給予其一負號;對應到取樣點的距離,位在字符之外者,給予其一正號。
對於字符1周圍的各取樣點,有向距離,連同輸入貝茲曲線10上到取樣點的決定好的最近點及決定好的最近點所位在的(形成字符1的多重輸入貝茲曲線2、3、4、5、6、7、8、9的)輸入貝茲曲線的一識別,是儲存在一紋理中,亦即,透過紋理中的各紋素,此資訊是對應到一取樣點而儲存的。因此,紋理即將字符1儲存成一有向距離場,其則可用於渲染字符1,如下所述。
對於一特別字型中的各字符,各紋素所欲儲存在紋理中的資訊(有向距離、輸入貝茲曲線上決定好的最近點及決定好的最近點所位在的輸入貝茲曲線的識別)是如上所述而決定的,而具有儲存在紋理中的各字符的此資訊(亦即,包括有向距離場者)。
如圖6所示是表示字元「c」26、「2」27及「,」28的字符的一範例的有向距離場的一圖形表示。顯示為黑色的是字符26、27、28之內的點,其到定義字符26、27、28的邊緣的輸入貝茲曲線上的各最近點具有正距離值(高於某一門檻值)。顯示為白色的是字符26、27、28之外的點,其到定義字符26、
27、28的邊緣的曲線上的各最近點具有負距離值(低於某一門檻值)。接近定義字符26、27、28的邊緣的輸入貝茲曲線的(正負門檻值之間的)點顯示成一陰影或一灰色,其取決於從曲線上的最近點到它們的距離。
有向距離值上的門檻值是使得當值儲存在一紋理中時,若它們高於或低於某一值,則僅儲存適當(負或正)門檻值(或某些其他預設值)。這是因為,當考慮從定義字符26、27、28的邊緣的曲線遠離到某一距離時,確切距離並不重要,由於當產生渲染輸出時,它將不納入考慮。感興趣的,且其從一取樣點到定義字符26、27、28的邊緣的輸入曲線上的最近點的確切距離可用於例如產生特別渲染效果的區域,是對於接近字符26、27、28的邊緣的點而言者。因此,對於正負門檻值之間的這些距離值,為了有向距離場而計算的值不必套用一門檻值即可加以儲存。
欲儲存在紋理中的資訊可加以計算,以供形成一字型,例如字母、數字及標點符號的各字符(字元)。圖7顯示圖形化地表示成一紋理圖集29的一字型中的各字符的有向距離場的一圖形表示。各字符的紋理在紋理圖集29之內而在空間上分開,使得當必須渲染一特別字符時,取樣出紋理圖集29的適當區域。在本例中,紋理圖集29是緊緊打包的,以儲存紋理記憶體,故各字符具有一不同大小。
一旦對於欲渲染的字符(或用於產生如圖7所示的一完整紋理圖集),產生出有向距離場,並將其儲存在一紋理時,需要的字符可透過取樣字符的定界框之內的一取樣點陣列中的紋理而渲染,或當作為渲染過程的一部分,即時計算有向距離場時,利用取樣點陣列中的決定好的有向距離場。此步驟可
如圖1所示的步驟3,利用有向距離場而利用反鋸齒技術,其接著可作為紋理的一部分而儲存在一渲染到紋理操作中。
最終渲染過的字串則可在如圖1所示的「結果」步驟中顯示。
例如若文字將顯示在一個三維曲面上,則字符可在不同於字符的紋理所定義在的世界空間的一「表面」空間(亦即,渲染輸出所產生在的空間)中渲染。在本實施例中,一或多個基元是產生在字符所欲繪製在的表面空間中的畫面(顯示)區域,使得字符是由一或多個基元涵蓋的。
這些基元則以正常方式光柵化成片段,以傳送到著色管線,以供著色。(由於可能發生,若基元的光柵化不產生任何片段(若基元實際上不涵蓋欲顯示的畫面的任何取樣點),則過程可在此停止,而這表示欲顯示的形狀實際上將不在畫面中看到。)
適當的紋理則套用到基元,以繪製字符。這是透過下列而完成的:利用對應到所欲繪製的字符的紋理圖(或紋理圖的一部分),以(透過將表面空間的取樣點變到紋理所儲存在的世界空間所進行的一適當變換)從表示(多個)基元所涵蓋的畫面中的一或多個取樣點的位置的字符的紋理,透過取得紋理樣本,而將紋理套用到一或多個基元。
包括到定義字符的多重輸入曲線上的最近點的有向距離的各取樣紋理值則用於取決於有向距離值,決定是否應該繪製(渲染)取樣位置,若落在字符之內(亦即,實務上,在輸入曲線所定義的字符的邊緣之內),則為之,或若落在字符之外,則捨棄它。
圖8顯示用於在一圖形處理單元(GPU)的一圖形處理管線中進行根據本發明的一實施例的用於渲染字符的上述過程的步驟的一流程圖30。
首先,例如產生在一中央處理單元(CPU)的預定路徑31是從儲存在CPU中的字型檔匯出的。這些路徑利用(例如定義字符邊緣的)直線、貝茲曲線、弧,及顏色及例如世界空間中定義輸入貝茲曲線的起點及終點的其他位置資料而定義字符。
路徑(輸入曲線)接著(以上述方式,即利用將各輸入曲線變到一正則空間的一變換)由圖形處理管線(SDF產生器)32的一處理階段處理,以利用回傳正則空間中變換過的取樣點及正則曲線上的最近點之間的距離的一查找表(LUT)33,產生各字符的一有向距離場。
一路徑快取34則儲存字符的有向距離場,連同關於路徑(輸入曲線)的資訊,而此資訊則結合(利用一紋理管線37存取有向距離場中的值的)一固定功能單元36中的位置資料35,以產生最終紋理到渲染。此可包括一或多個混合、遮罩及剪裁測試操作。
最終紋理到渲染則傳送到一訊框緩衝器38,以供輸出,例如顯示。
由上可知,利用一正則空間以決定一正則曲線上到一取樣點的最近點,例如作為產生一有向距離場的一部分,提供一有效的及方便的機制,以供利用一或多條輸入曲線產生一渲染輸出,其可保留例如利用向量圖形而定義的輸入曲線的數學表示法。這是決定此資訊的一簡單的及精確的方式,其因此提供一快速的及精確的過程,以供利用一輸入曲線產生一渲染輸出。
提供一簡單的過程,以供利用這種輸入曲線產生一渲染輸出,有助於減少執行這種過程的裝置的處理及電力負載,因此,可將其用於更簡單的裝置,例如行動及穿戴裝置,其為電池供電,並可能不實現多功能處理。此外,
過程增加的效率可令其進行更精密的渲染特徵,或當需要時,可即時(重新)計算必要資訊,比起先前技術,在處理及裝置的電力負載中不需要一相關聯的增設。
b 0 :控制起點
b 0 ':對應起點
b 1 :控制中點
b 2 :控制終點
b 2 ':對應終點
10:貝茲曲線
10”:正則曲線的一部分
11:世界空間
12:正則曲線
13:正則空間
TUC:世界到正則變換
Claims (15)
- 一種在一圖形處理系統中利用一輸入曲線產生一渲染輸出的方法,包括:對於定義在一世界空間中的一輸入曲線,其中該輸入曲線定義一物體的一輪廓:決定定義在一正則空間中而對應到該輸入曲線的一正則曲線的一部分,及將該輸入曲線映射成該正則曲線的該部分所需的變換;對於該世界空間中該輸入曲線周圍的各複數取樣點:利用該世界空間及該正則空間之間的該決定好的變換,將該取樣點從該世界空間變換到該正則空間;及在該正則空間中,決定該正則曲線的該決定好的部分上到該變換過的取樣點的最近點;以據此對於該正則空間中該正則曲線周圍的各該等變換過的取樣點,決定該正則空間中該正則曲線上的一對應最近點;及對於該曲線周圍的各該複數取樣點:利用該曲線上決定好的該最近點,決定該取樣點應該被認為存在於該曲線的哪側;以據此對於該曲線周圍的各該等取樣點,決定一取樣點是否被認為落在該物體之內或之外;及當產生一渲染輸出時,利用對於該等取樣點是否被認為落在該物體之內或之外的該等決定。
- 如請求項1所述之方法,其中決定該正則曲線上的該最近點的步驟包括最小化從該變換過的取樣點到該正則曲線的距離。
- 如請求項1或2所述之方法,其中決定該正則曲線上的該最近點的步驟包括決定從該變換過的取樣點到該正則曲線的該部分的該起點及該終點的距離,及決定該起點或該終點之一是否為該正則曲線上到該變換過的取樣點的該最近點。
- 如請求項1或2所述之方法,其中決定該正則曲線上的該最近點的步驟包括在該正則空間中決定該變換過的取樣點及該正則曲線上到該變換過的取樣點的該最近點之間的距離。
- 如請求項4所述之方法,更包括對於各取樣點,儲存該曲線上的該決定好的從取樣點到最近點的距離。
- 一種在一圖形處理系統中利用複數輸入曲線產生一渲染輸出的方法,包括:對於各該等輸入曲線,進行如請求項1或2所述之方法;以據此對於該正則空間中各該複數正則曲線周圍的一變換過的取樣點陣列,分別決定該正則空間中各該複數正則曲線上的對應最近點的一陣列,以供該變換過的取樣點陣列;及當產生一渲染輸出時,利用對於該正則空間中的該等變換過的取樣點陣列而在各該複數正則曲線上決定好的該最近點陣列。
- 一種圖形處理系統,其利用一輸入曲線產生一渲染輸出,該圖形處理系統包括:處理電路,對於定義在一世界空間中的一輸入曲線,其中該輸入曲線定義一物體的一輪廓,其可:決定定義在一正則空間中而對應到該輸入曲線的一正則曲線的一部分,及將該輸入曲線映射成該正則曲線的該部分所需的該變換;對於該世界空間中該輸入曲線周圍的各複數取樣點:利用該世界空間及該正則空間之間的該決定好的變換,將該取樣點從該世界空間變換到該正則空間;及在該正則空間中,決定該正則曲線的該決定好的部分上到該變換過的取樣點的最近點;以據此對於該正則空間中該正則曲線周圍的各該等變換過的取樣點,決定該正則空間中該正則曲線上的一對應最近點;及其中該處理電路可:對於該曲線周圍的各該複數取樣點,利用該曲線上決定好的該最近點,決定該取樣點應該被認為存在於該曲線的哪側;以據此對於該曲線周圍的各該等取樣點,決定一取樣點是否被認為落在該物體之內或之外;及當產生一渲染輸出時,處理電路可利用該等取樣點是否被認為落在該物體之內或之外的該等決定。
- 如請求項7所述之圖形處理系統,其中為了決定該正則曲線上的該最近點,該處理電路可最小化從該變換過的取樣點到該正則曲線的距離。
- 如請求項7或8所述之圖形處理系統,其中為了決定該正則曲線上的該最近點,該處理電路可決定從該變換過的取樣點到該正則曲線的該部分的該起點及該終點的距離,及決定該起點或該終點之一是否為該正則曲線上到該變換過的取樣點的該最近點。
- 如請求項7或8所述之圖形處理系統,其中為了決定該正則曲線上的該最近點,該處理電路可在該正則空間中決定該變換過的取樣點及該正則曲線上到該變換過的取樣點的該最近點之間的距離。
- 如請求項10所述之圖形處理系統,其中對於各取樣點,該處理電路可儲存該曲線上從該取樣點到該最近點的該決定好的距離。
- 如請求項7或8所述之圖形處理系統,用以利用複數輸入曲線產生一渲染輸出,該圖形處理系統包括處理電路可:對於定義在一世界空間中的各複數輸入曲線,決定定義在一正則空間中而對應到該輸入曲線的一正則曲線的一部分,及將該輸入曲線映射成該正則曲線的該部分所需的該變換;對於該世界空間中該輸入曲線周圍的各複數取樣點: 利用該世界空間及該正則空間之間的該決定好的變換,將該取樣點從該世界空間變換到該正則空間;及在該正則空間中,決定該正則曲線的該決定好的部分上到該變換過的取樣點的最近點;以據此對於該正則空間中各該複數正則曲線周圍的一變換過的取樣點陣列,分別決定該正則空間中各該複數正則曲線上的對應最近點的一陣列,以供該變換過的取樣點陣列;及當產生一渲染輸出時,利用對於該正則空間中的該等變換過的取樣點陣列而在各該複數正則曲線上決定好的該最近點陣列。
- 一種在產生一渲染輸出時利用一輸入曲線產生一圖形紋理以供在一圖形處理系統中利用的方法,該方法包括:對於定義在一世界空間中的一輸入曲線,其中該輸入曲線定義一物體的一輪廓:決定定義在一正則空間中而對應到該輸入曲線的一正則曲線的一部分,及將該輸入曲線映射成該正則曲線的該部分所需的變換;對於該世界空間中該輸入曲線周圍的各複數取樣點:利用該世界空間及該正則空間之間的該決定好的變換,將該取樣點從該世界空間變換到該正則空間;及在該正則空間中,決定該正則曲線的該決定好的部分上到該變換過的取樣點的最近點;以據此對於該正則空間中該正則曲線周圍的各該等變換過的取樣點,決定該正則空間中該正則曲線上的一對應最近點; 對於各該等取樣點,決定從該取樣點到該曲線上決定好的該最近點的距離;及對於各該等取樣點,利用該曲線上決定好的該最近點,決定該取樣點應該被認為存在於該曲線的哪側,以據此決定該取樣點是否被認為落在該物體之內或之外;產生一圖形紋理,包括一紋素陣列,其中各紋素對應到至少一該等取樣點,且對於該至少一取樣點,其相關聯於從該至少一取樣點到該曲線的該或該等決定好的距離以及該等取樣點是否被認為落在該物體之內或之外。
- 一種在產生一渲染輸出時利用一輸入曲線產生一圖形紋理以供在一圖形處理系統中利用的設備,該設備包括:處理電路,其被組態以對於定義在一世界空間中的一輸入曲線,其中該輸入曲線定義一物體的一輪廓:對於定義在一世界空間中的一輸入曲線,處理電路可:決定定義在一正則空間中而對應到該輸入曲線的一正則曲線的一部分,及將該輸入曲線映射成該正則曲線的該部分所需的變換;對於該世界空間中該輸入曲線周圍的各複數取樣點:利用該世界空間及該正則空間之間的該決定好的變換,將該取樣點從該世界空間變換到該正則空間;及在該正則空間中,決定該正則曲線的該決定好的部分上到該變換過的取樣點的最近點;以據此對於該正則空間中該正則曲線周圍的各該等變換過的取樣點,決定該正則空間中該正則曲線上的一對應最近點; 對於各該等取樣點,決定從該取樣點到該曲線上決定好的該最近點的距離;及對於各該等取樣點,利用該曲線上決定好的該最近點,決定該取樣點應該被認為存在於該曲線的哪側,以據此決定該取樣點是否被認為落在該物體之內或之外;產生一圖形紋理,包括一紋素陣列,其中各紋素對應到至少一該等取樣點,且對於該至少一取樣點,其相關聯於從該至少一取樣點到該曲線的該或該等決定好的距離以及該等取樣點是否被認為落在該物體之內或之外。
- 一種電腦可讀儲存媒體,其儲存當在一資料處理系統上執行時進行如請求項1或2所述之方法的電腦軟體碼。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1513675.7A GB2541644B (en) | 2015-08-03 | 2015-08-03 | Graphics processing systems |
GB1513675.7 | 2015-08-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201712632A TW201712632A (zh) | 2017-04-01 |
TWI708208B true TWI708208B (zh) | 2020-10-21 |
Family
ID=54063090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105123682A TWI708208B (zh) | 2015-08-03 | 2016-07-27 | 圖形處理系統 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10140736B2 (zh) |
JP (1) | JP6863693B2 (zh) |
CN (1) | CN106408626B (zh) |
GB (1) | GB2541644B (zh) |
TW (1) | TWI708208B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10347016B2 (en) * | 2016-01-12 | 2019-07-09 | Monotype Imaging Inc. | Converting font contour curves |
US10311060B2 (en) * | 2017-06-06 | 2019-06-04 | Espial Group Inc. | Glyph management in texture atlases |
US10936792B2 (en) | 2017-12-21 | 2021-03-02 | Monotype Imaging Inc. | Harmonizing font contours |
CN109166359A (zh) * | 2018-09-28 | 2019-01-08 | 广州狄卡视觉科技有限公司 | 一种孤独症康复训练动作导引教育互动方法及系统 |
US10964088B2 (en) * | 2018-10-31 | 2021-03-30 | Facebook Technologies, Llc | Mipmap with mixed texture types |
US11074724B2 (en) * | 2018-12-07 | 2021-07-27 | Microsoft Technology Licensing Llc | GPU calculation of signed distance fields |
US11037341B1 (en) * | 2020-01-15 | 2021-06-15 | Adobe Inc. | Generative shape creation and editing |
US11875435B2 (en) * | 2021-10-12 | 2024-01-16 | Adobe Inc. | Generating scalable fonts utilizing multi-implicit neural font representations |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714260A (zh) * | 2008-10-06 | 2010-05-26 | Arm有限公司 | 图形处理系统 |
US20110025693A1 (en) * | 2009-07-28 | 2011-02-03 | Bruce Merry | Graphics processing systems |
TW201317937A (zh) * | 2011-10-28 | 2013-05-01 | Hon Hai Prec Ind Co Ltd | 三維影像量測程式生成系統及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7564459B2 (en) * | 2005-10-31 | 2009-07-21 | Microsoft Corporation | Resolution-independent curve rendering using programmable graphics hardware |
GB0818279D0 (en) | 2008-10-06 | 2008-11-12 | Advanced Risc Mach Ltd | Graphics processing systems |
GB0818278D0 (en) * | 2008-10-06 | 2008-11-12 | Advanced Risc Mach Ltd | Graphics processing systems |
-
2015
- 2015-08-03 GB GB1513675.7A patent/GB2541644B/en active Active
-
2016
- 2016-07-27 TW TW105123682A patent/TWI708208B/zh active
- 2016-08-02 US US15/226,538 patent/US10140736B2/en active Active
- 2016-08-02 JP JP2016151823A patent/JP6863693B2/ja active Active
- 2016-08-03 CN CN201610629321.7A patent/CN106408626B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714260A (zh) * | 2008-10-06 | 2010-05-26 | Arm有限公司 | 图形处理系统 |
US20110025693A1 (en) * | 2009-07-28 | 2011-02-03 | Bruce Merry | Graphics processing systems |
TW201317937A (zh) * | 2011-10-28 | 2013-05-01 | Hon Hai Prec Ind Co Ltd | 三維影像量測程式生成系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
GB2541644B (en) | 2017-11-22 |
GB2541644A (en) | 2017-03-01 |
CN106408626B (zh) | 2021-08-17 |
CN106408626A (zh) | 2017-02-15 |
US10140736B2 (en) | 2018-11-27 |
GB201513675D0 (en) | 2015-09-16 |
JP2017073120A (ja) | 2017-04-13 |
US20170039739A1 (en) | 2017-02-09 |
KR20170016305A (ko) | 2017-02-13 |
JP6863693B2 (ja) | 2021-04-21 |
TW201712632A (zh) | 2017-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI708208B (zh) | 圖形處理系統 | |
US11301956B2 (en) | Varying effective resolution by screen location by altering rasterization parameters | |
US10102663B2 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
US8928667B2 (en) | Rendering stroked curves in graphics processing systems | |
JP5721358B2 (ja) | グラフィックス処理システム | |
US8704830B2 (en) | System and method for path rendering with multiple stencil samples per color sample | |
KR101240815B1 (ko) | 그래픽 렌더링을 위한 멀티-스테이지 테셀레이션 | |
US8928668B2 (en) | Method and apparatus for rendering a stroked curve for display in a graphics processing system | |
US8743135B2 (en) | Graphics processing systems | |
US8477148B2 (en) | Graphics processing systems | |
US20180232915A1 (en) | Line stylization through graphics processor unit (gpu) textures | |
US11087511B1 (en) | Automated vectorization of a raster image using a gradient mesh with arbitrary topology | |
US11989807B2 (en) | Rendering scalable raster content | |
KR102666054B1 (ko) | 그래픽 처리 시스템 | |
Ma et al. | Rasterization of geometric primitive in graphics based on FPGA | |
US11776179B2 (en) | Rendering scalable multicolored vector content |