两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于將二維對象轉(zhuǎn)換成二維距離場的方法

文檔序號:2606769閱讀:360來源:國知局
專利名稱:用于將二維對象轉(zhuǎn)換成二維距離場的方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及計算機制圖領(lǐng)域,以及更具體地說,涉及將二維對象轉(zhuǎn)換成距離場(distance field)。
背景技術(shù)
在計算機制圖領(lǐng)域中,繪制二維對象十分重要。將二維對象,諸如字符形狀、公司標(biāo)志以及包含在文檔中示例說明的要素繪制成靜態(tài)圖象或包含動畫的幀序列。有許多用于二維對象的表示,以及通常對于特定的操作,諸如繪制和編輯,一種表示優(yōu)于另一種表示。在這些情況下,執(zhí)行用于從一種形式到另一種的轉(zhuǎn)換。
盡管現(xiàn)在集中在數(shù)字類型(可能是最普通和重要的二維對象),但下述論述適用于所有類型的二維對象。
從數(shù)字類型的一些基本背景開始。典型的拉丁文字體體系,諸如Times New Roman或Arial,包括字體集,諸如常規(guī)、斜體、粗體和粗斜體。每種字體包括稱為圖示符的單個字符形狀集合。每種圖示符按其不同的設(shè)計特點,諸如基本幾何結(jié)構(gòu)、筆劃粗度、襯線、接合度(joinery)、輪廓的位置和數(shù)量、淡與粗筆劃的比率以及大小來區(qū)別。
有許多方法來表示字體,包括位圖、輪廓,例如Type 1[AdobeSystem,Inc.1990]和TrueType[Apple Computer,Inc.1990]以及具有突出的輪廓的程序字體,例如Knuth的Metafont。已經(jīng)由Cambridge,Mass.的Bitstream Inc.、Calif.,Mountain View的AdobeSystem,INc.、Calif.,Cupertino的Apple Computer,Inc.、Bellevue,Wash.的Microsoft Corportion、德國的Hamburg的URW以及Wilmington,Mass.的Agfa Compugraphic采用并普及基于輪廓的表示。
Hersch,“Visual and Technical Aspects of Type”,劍橋大學(xué)出版社,1993以及Knuth,“TEX and METAFONTNew Directions inTypesetting,”數(shù)字出版社,Bford,MA 1997,包含字體的歷史和研究的綜合回顧。
特別重要的是兩類字號體型大小和顯示字號。以相對小的點大小,例如14pt或更小繪制體型中的字體,以及用在文檔的主體中,如在本段中。體型要求用于清晰性和閱讀舒適性的高質(zhì)量繪制。體型的大小、字體以及基線方向在單個文檔中很少變化。
以相對大的點大小,例如36pt或更高繪制顯示類型中的字體,以及用于標(biāo)題、大標(biāo)題以及設(shè)計和廣告中以便設(shè)置基調(diào)或引起注意。與體型相比,顯示類型強調(diào)美學(xué),其中缺少空間和時間走樣(temporalaliasing)很重要而不是清晰度,其中對比度比反走樣(antialiasing)更重要。用于表示和繪制類型的框架通過沖突需求很好地處理這兩種是至關(guān)緊要的。
可將類型繪制到輸出設(shè)備,諸如打印機或顯示器上,作為雙層(bilevel)、灰度級或彩色。一些繪制引擎使用用于非常小字號的雙層繪制來實現(xiàn)更好的對比度。然而,非常微量的灰度級字體正好是清晰的。
微調(diào)(hint)是與每個圖示符一起存儲的一組規(guī)則或過程以便指定在繪制期間應(yīng)當(dāng)如何修改圖示符的輪廓,從而保留特征,諸如字體中所有圖示符上的對稱、筆劃粗細(xì)度以及統(tǒng)一外觀。
當(dāng)試圖設(shè)計自動和半自動微調(diào)系統(tǒng)時,微調(diào)過程在設(shè)計用于低分辨率顯示設(shè)備的新字體和現(xiàn)有字體的微調(diào)中仍然存在主要的瓶頸。另外,解釋微調(diào)規(guī)則的復(fù)雜性排除用于字體繪制的硬件。缺少硬件支持迫使在軟件光柵化,諸如每個像素使用更小的樣本期間,特別是當(dāng)實時動畫類型時進(jìn)行折衷。
灰度級字體繪制通常涉及一些形式的反走樣。反走樣是使在雙層字體中出現(xiàn)的鋸齒邊緣或階梯效應(yīng)平滑的過程。盡管一些字體繪制引擎是專用的,但大多數(shù)使用超級采樣(supersampling),在格柵調(diào)整和微調(diào)后,在用2×2或4×4盒式濾波器(box filter)進(jìn)行下采樣(down-sampling)后,每個像素分別具有4或16個采樣。
通過用于繪制速度的需要,調(diào)整基本濾波,諸如盒式濾波。然而,即使那個方法對于實時繪制(如動畫類型所需要的)也太慢,且所繪制的圖示符經(jīng)受空間和時間走樣。
印刷術(shù)中的兩個重要趨勢揭示了現(xiàn)有技術(shù)字體表示的一些固有局限,從而提供用于變化的需要。
第一種趨勢是由于辦公室中計算機的顯著作用、在家Internet瀏覽的普及上升以及PDA和其他手持電子設(shè)備的激增,越來越強調(diào)閱讀屏幕上的文本。這些顯示器通常具有每英寸72-100點的分辨率,其顯著地低于印刷設(shè)備的分辨率。
當(dāng)光柵化類型以便確保閱讀舒適和清晰度時,這種低分辨率要求特殊的處理,正如由公司諸如Microsoft和Bitstream在它們各自的ClearType和Font Fusion技術(shù)中投資的資源所證明的。
第二種趨勢是使用動畫類型,或動態(tài)印刷術(shù)。使用動畫類型來傳達(dá)感情、增加興趣以及可視地吸引閱讀者的注意。動畫類型的重要性由其在電視和Internet廣告中的廣泛使用所論證。
不幸的是,傳統(tǒng)的基于輪廓的字體在這些領(lǐng)域中都具有局限。在低分辨率顯示器上的繪制類型要求仔細(xì)處理以便平衡用于清晰度的良好對比度的需要,以及降低用于閱讀舒適的空間和/或時間走樣。
如上所述,基于輪廓的字體通常微調(diào)以便向用于最佳外觀的繪制引擎提供指示。字體微調(diào)是勞動密集的并且很昂貴。例如,開發(fā)用于可能具有大于上萬圖示符的日語或中文字體的微調(diào)良好的字體會花費很多年。因為微調(diào)的焦點在于改進(jìn)字體的繪制質(zhì)量,所以微調(diào)對沿任意路徑放置的類型和用于動畫類型易于低效。
盡管高質(zhì)量濾波能用來對具有有限多個字體大小和字體的靜態(tài)文檔中的灰度級類型進(jìn)行反走樣,通常實時繪制需求限制在動畫類型中使用濾波。

發(fā)明內(nèi)容
本發(fā)明提供一種用于將二維對象轉(zhuǎn)換成二維距離場的方法。對象表示為邊界描述符集合和填充規(guī)則。預(yù)處理邊界描述符集合以及由預(yù)處理的邊界描述符集合構(gòu)成空間層次。初始化各交點的高速緩存。查詢一組位置處的空間層次以便確定各位置處的距離集合。該查詢調(diào)用在每個位置處的距離函數(shù)以便確定無符號距離。根據(jù)各交點的高速緩存、位置和填充規(guī)則來確定無符號距離的符號。使用距離集合來構(gòu)成二維距離場。


圖1A和1B是用于圖示符的現(xiàn)有技術(shù)距離場表示的框圖;圖2A和2B是根據(jù)本發(fā)明的一個優(yōu)選實施例的距離場表示的框圖;圖3是根據(jù)本發(fā)明的一個優(yōu)選實施例的距離場的雙二次單元的框圖;圖4是根據(jù)本發(fā)明,用于按圖象順序反走樣對象的方法的流程圖;圖5是由本發(fā)明使用的線性濾波器的圖;圖6A、6B和6C是接近像素分量的各采樣的圖;圖7是根據(jù)本發(fā)明,用于按對象順序反走樣對象的方法的流程圖;圖8是根據(jù)本發(fā)明,用于基于距離的自動微調(diào)的方法的流程圖;圖9是根據(jù)本發(fā)明,用于將筆劃轉(zhuǎn)換成距離場的方法的流程圖;圖10是根據(jù)本發(fā)明,用于將二維對象轉(zhuǎn)換成距離場的方法的流程圖;圖11是根據(jù)本發(fā)明,用于將距離場轉(zhuǎn)換成邊界描述符的方法的流程圖;圖12是根據(jù)本發(fā)明,用于動畫制作對象的方法的流程圖;以及圖13是根據(jù)本發(fā)明,用于在包圍二維對象的角的單元內(nèi),生成二維距離場的方法的流程圖。
具體實施例方式
圖示符的距離場表示本發(fā)明將封閉的二維形狀S,諸如圖示符、公司標(biāo)志或?qū)ο蟮娜魏螖?shù)字化表示,表示為二維標(biāo)記的距離場D。為描述目的,使用圖示符。
非正式地,圖示符的距離場測量從場中的任何一個點到圖示符的邊緣的最小距離,其中如果該點在圖示符外,距離的符號為負(fù),以及如果該點在圖示符內(nèi)則為正。邊緣上的點具有零距離。
正式地,距離場是對所有p∈R2的映射DR2→R,以便D(p)=sign(p)·min{‖p-q‖對S的零值等值表面上,即邊緣上的所有點q},sign(p)={-1,如果p在S外,+1,如果p在S內(nèi)},以及‖·‖為歐幾里得范數(shù)。
使用用于每個像素的單個離散樣本的現(xiàn)有技術(shù)的基于覆蓋的繪制方法可能完全遺漏圖示符,即使當(dāng)樣本任意接近輪廓時。所繪制的圖示符具有鋸齒狀邊緣并且遺失信息,這是空間走樣的兩種形式。如果動畫圖示符,那么時間走樣在運動期間導(dǎo)致好像“圖象抖動”的閃爍輪廓和鋸齒狀邊緣。取每個像素的另外的樣本以便產(chǎn)生反走樣繪制能降低這些走樣效應(yīng),但對可接受的結(jié)果,需要許多樣本。
與此相反,根據(jù)本發(fā)明的連續(xù)采樣的距離值表示圖示符的鄰近,即使當(dāng)樣本在形狀之外時。事實上,能使用單個樣本值來估計有多少圖示符處于位于每個像素中央的濾波器覆蓋區(qū)(filter footprint)內(nèi)。
此外,因為距離場平滑地改變,即,它是C0連續(xù),采樣值隨圖示符移動而緩慢改變,這降低了空間走樣假象。
距離場具有其他優(yōu)點。因為它們是隱式表示,所以它們共享隱函數(shù)的好處。特別地,距離場允許用于設(shè)計字體的直觀界面。例如,能單獨地設(shè)計圖示符的單個分量,諸如詞干、條、圓形和襯線。在設(shè)計后,使用隱式混合方法來將這些分量混合在一起以便組成相同字體的不同圖示符。
距離場還具有許多優(yōu)點以便在動態(tài)印刷術(shù)或動畫類型中提供,因為距離場提供對模擬對象間的相互作用很重要的信息。
在優(yōu)選實施例中,使用自適應(yīng)樣本距離場,即ADF,見U.S.專利No.6,396,492,“Detail-directed hierarchical distance fields”,F(xiàn)risken,Perry以及Jones,在此引用以供參考。
ADF是距離場的有效數(shù)字表示。ADF使用針對細(xì)節(jié)(detaildirected)的采樣以便降低表示場所需的樣本數(shù)量。將樣本存儲在單元的空間層次,例如四叉樹中,用于有效處理。另外,ADF提供用于由采樣值重新構(gòu)造距離場的方法。
針對細(xì)節(jié)或自適應(yīng)采樣根據(jù)場中的局部偏差(local variance)來采樣距離場當(dāng)局部偏差高時,使用越多樣本,以及當(dāng)局部偏差低時,使用越少樣本。自適應(yīng)采樣顯著地降低在整個場中以統(tǒng)一速率采樣的規(guī)律采樣距離場,以及在邊緣附近總是以最大速率采樣的3色四叉樹的存儲需求。
圖1A-1B將用于Times Roman“a”和“D”的3色四叉樹所需的單元的數(shù)量與在相同精確度的圖2A-2B中的雙二次ADF所需的單元的數(shù)量進(jìn)行比較。單元的數(shù)量與存儲需求直接相關(guān)。四叉樹都具有等于512×512圖象的距離值的分辨率。用于“a”和“D”的3色四叉樹分別具有17,393和20,813個單元,而它們相應(yīng)的雙二次ADF具有457和399個單元。雙二次ADF通常要求少于Frisken等的現(xiàn)有技術(shù)的雙線性表示(“Adaptively Sampled Distance Fieldsa General Representaion ofShape for Computer Graphics”,論文集ACM SIGGRAPH2000,pp.249-254,2000)5-20倍的單元。
雙二次重構(gòu)方法Frisken等使用用于ADF空間層次的四叉樹,以及根據(jù)經(jīng)雙線性內(nèi)插在每個單元的四個角處采樣的距離來重構(gòu)每個單元內(nèi)的距離和梯度。他們建議“可以采用更高次重構(gòu)方法以便進(jìn)一步增加壓縮,但大多數(shù)已經(jīng)建議減少用于額外努力的回報的觀點”。
然而,根據(jù)本發(fā)明,雙線性ADF對表示、繪制、編輯和動畫制作字符圖示符是不夠的。特別地,它們要求太多存儲器,數(shù)量太多以致于處理低效,以及在非邊緣單元中重構(gòu)的場的質(zhì)量不足以操作諸如動態(tài)模擬。
“有界表面”方法通過要求在離表面,即邊緣的有界距離內(nèi)的非邊緣單元通過誤差謂項(error predicate)測試,能迫使進(jìn)一步在非邊緣單元中細(xì)分,見Perry等的“KizamuA System for Sculpting DigitalCharacters”,論文集ACM SIGGRAPH 2001,pp.47-56,2001。盡管那降低了這一有界區(qū)域內(nèi)距離場中的誤差,已經(jīng)發(fā)現(xiàn)對雙線性ADF來說,那個方法導(dǎo)致單元數(shù)量不可接受的增加。
為解決那些局限,用雙二次重構(gòu)方法替代雙線性重構(gòu)方法。典型的圖示符的雙二次ADF易于要求比雙線性ADF少5-20倍的單元。當(dāng)要求非邊緣單元中的精確距離場用于操作,諸如動態(tài)模擬和動畫制作類型時,所需單元數(shù)減少越多。
這一顯著的存儲減少允許用于典型動畫所需的圖示符適合現(xiàn)代CPU的芯片上高速緩存。這對處理時間具有顯著的效果,因為主要消除了系統(tǒng)存儲器存取,易于補償由較高次重構(gòu)方法所需的另外的計算。
圖3示例說明根據(jù)本發(fā)明的優(yōu)選實施例的雙二次ADF單元300。雙二次ADF中的每個單元包含九個距離值301。根據(jù)下面的等式1-3,由這九個距離值重構(gòu)在點(x,y)302處的距離和梯度。
有多個雙二次重構(gòu)方法變量可用。我們使用沿相同大小的相鄰單元的共享邊緣,保證C0連續(xù)性的多變量內(nèi)插多項式。通過雙線性方法,使用誤差謂項,能將不同大小的相鄰單元之間的距離場的連續(xù)性維持到特定的容差。在ADF生成期間,誤差謂項控制單元細(xì)分,見上述Perry等的論文。
如下確定在點(x,y)302處的距離和梯度,其中在單元坐標(biāo)中表示x和y,即(x,y)∈
×令xv1=x-0.5以及xv2=x-1令yv1=y(tǒng)-0.5以及yv2=y(tǒng)-1令bx1=2xv1·xv2,bx2=-4x·xv2以及bx3=2x·xv1令by1=2yv1·yv2,by2=-4y·yv2以及by3=2y·yv1dist=by1·(bx1·d1+bx2·d2·+bx3·d3)+by2·(bx1·d4+bx2·d5·+bx3·
d6)+by3·(bx1·d7+bx2·d8·+bx3·d9) (1)gradx=-[by1·(4x·(d1-2d2+d3)-3d1-d3+4d2)+by2·(4x·(d4-2d5+d6)-3d4-d6+4d5)+by3·(4x·(d7-2d8+d9)-3d7-d9+4d8)] (2)grady=-[(4y-3)·(bx1·d1+bx2·d2+bx3·d3)-(8y-4)·(bx1·d4+bx2·d5+bx3·d6)+(4y-1)·(bx1·d7+bx2·d8+bx3·d9)] (3)使用浮點算法重構(gòu)距離可能需要~35浮點運算(浮點運算率(flops)),以及使用浮點算法重構(gòu)梯度可能要求~70浮點運算率。因為本發(fā)明的重構(gòu)方法不包含分支以及圖示符能完全駐留在芯片上的高速緩存中,能通過利用專用的CPU指令以及現(xiàn)代CPU的高深的指令流水線,進(jìn)一步優(yōu)化這些重構(gòu)方法。另外,可使用定點算法重構(gòu)距離和梯度。
用于傳輸和存儲的壓縮線性四叉樹對一些處理,例如沖突檢測,要求ADF四叉樹的空間層次,但對其他的處理例如基于單元的繪制則不需要,如下所述。
為提供用于ADF圖示符的傳輸和存儲的壓縮,使用線性四叉樹結(jié)構(gòu),其將雙二次ADF存儲為葉單元(leaf cell)列表。根據(jù)需要,能由葉單元重新生成樹結(jié)構(gòu)。
對總共每個單元15個字節(jié),線性ADF四叉樹中的每個葉單元包括分別為二字節(jié)的單元的x和y位置、一個字節(jié)的單元等級、兩個字節(jié)的單元中央處的距離值、以及分別為一個字節(jié)的離中央距離值的八個距離偏差值。
通過從中央距離值減去其相應(yīng)的樣本距離值、按單元大小縮放以便降低量化誤差以及截取到八位,從而確定每個距離偏差。每個單元位置的兩個字節(jié)以及用于單元等級的一個字節(jié)在分辨率方面能表示達(dá)到216×216的ADF。這對于表示將以顯示器屏幕分辨率繪制的圖示符來說不只是適當(dāng)而已。
通過16位距離值能精確地表示圖示符。將八個距離值編碼成8位距離偏差比存儲這些2字節(jié)值的每一個上提供實質(zhì)的節(jié)省。盡管在理論上,這可能導(dǎo)致大的單元的距離場的一些誤差,但我們未觀測到任何可視惡化。
高分辨率圖示符通常要求500-1000個葉單元。無損熵編碼能獲得另外的35-50%壓縮。因此,高分辨率ADF的整個字體能用300-500K字節(jié)表示。如果僅要求體型或目標(biāo)分辨率非常粗糙,例如就蜂窩電話來說,那么能使用要求1/4至1/2的單元的較低分辨率ADF。
這些大小顯著地小于灰度級位圖字體(其對每個點大小要求每個字體~0.5M字節(jié)),以及在大小上可與微調(diào)很好的基于輪廓的字體相比。用于True Type字體的大小的范圍從10K字節(jié)到10M字節(jié),根據(jù)圖示符的數(shù)量和微調(diào)的總量以及微調(diào)方法而定。來自MonotypeCorportion的兩種微調(diào)良好的字體,Arial以及Times New Roman分別要求266K字節(jié)和316K字節(jié)。
根據(jù)輪廓的運動時間生成根據(jù)本發(fā)明,以及如下面詳細(xì)所述,由現(xiàn)有的輪廓或邊界描述符,例如Bezier曲線,使用由Perry等的論文所述的平鋪生成器(tiledgenerator),能快速地生成ADF。使用Bezier剪取,能有效地計算到圖示符的輪廓或邊界的最小距離,見Sederberg等的“GeometricHermite Approximation of Surface Patch Intersecion Curves”,CAGD8(2),pp.97-144,1991。
在2GHz Pentium IV處理器上,每個圖示符生成需要0.04-0.08秒。在約四秒內(nèi)生成全部字體。因為不需要傳統(tǒng)的微調(diào),生成ADF所需的邊界描述符基本上小于它們相應(yīng)的微調(diào)對等物。
因此,存儲這些最小的輪廓,并根據(jù)需求由這些輪廓動態(tài)地生成ADF圖示符,而不是存儲ADF。這些最小輪廓的降低的大小對具有有限存儲器的設(shè)備以及對在帶寬有限的網(wǎng)絡(luò)上傳送圖示符的應(yīng)用來說非常重要。
圖10表示用于將二維對象,諸如圖示符轉(zhuǎn)換成二維距離場的方法1000。對象1001表示為邊界描述符,例如樣條的集合,以及填充規(guī)則,例如奇-偶規(guī)則或非零繞組(non-zero winding)規(guī)則。
首先預(yù)處理邊界描述符集合1010。該預(yù)處理細(xì)分邊界描述符以便降低它們的空間度。還可合并邊界描述符以便降低邊界描述符集合的基數(shù)。當(dāng)確定無符號的距離時,預(yù)處理允許降低對每個位置需要查詢的邊界描述符的數(shù)量,如下所述。
由預(yù)處理的邊界描述符集合1011重構(gòu)1020空間層次1021,例如四叉樹。初始化1030交點(intersection)1031的高速緩存。交點1031的高速緩存存儲邊界描述符與距離場的線集,例如水平、垂直和對角線等相交的位置以及交點的方向。這消除了當(dāng)確定無符號的距離的符號時的冗余計算。通過間隔能對交點排序。
然后,在位置集合處查詢1040空間層次1021以便確定在那些位置處的距離集合。使用該距離集合來構(gòu)造二維距離場1041。查詢在每個位置調(diào)用距離函數(shù),例如Bezier剪取,以便確定無符號的距離。交點的高速緩存、位置和填充規(guī)則能用來確定用于該距離的符號。
經(jīng)基于分量的字體壓縮通過使用如在字形中的基于分量的表示,能實現(xiàn)用于能包含10,0000或更多圖示符的漢字、日語和朝鮮語字體的顯著壓縮。那種表示將圖示符分解成通用的筆劃以及字根,即對多個圖示符共用的復(fù)雜形狀,將筆劃和字根存儲在字體庫中,然后在字體繪制引擎中重新組合它們。
因為距離場是隱式表示,使用混合或CSG操作,能容易地組合ADF,從而非常適合經(jīng)過那種基于分量的方法來壓縮。
表示二維距離場中的角通過雙線性或雙二次重構(gòu)方法的針對細(xì)節(jié)的采樣允許ADF表示具有少量距離值的二維對象的邊界的相對平滑的部分。然而,在角的附近,距離場具有通過這些重構(gòu)方法難以很好近似的高的偏差。為精確地表示角附近的距離場,這些ADF需要包含被高度細(xì)劃分的角的單元,這顯著地增加了存儲需求。另外,如在Perry等的論文中所述,在ADF生成期間強加的ADF的最大細(xì)分度限制了可使用雙線性和雙二次ADF單元來表示角的精度。
為解決這一問題,本發(fā)明提供用于在封閉二維對象,諸如圖示符的角的單元內(nèi),生成二維距離場的方法1300。
方法1300由二維對象確定邊界描述符1311的有序集合1310,以及由邊界描述符1311的有序集合識別1320單元內(nèi)的角點1321。然后,將單元分成兩個區(qū)1330,第一區(qū)最接近角以及第二區(qū)最接近對象的邊界。方法1300還指定1340重構(gòu)方法以及采樣距離值集合1371,用于重構(gòu)單元內(nèi)的距離以及將角點1321、用于為區(qū)域定界的線、重構(gòu)方法以及采樣距離值集合1371存儲在存儲器中1380。
該重構(gòu)方法根據(jù)點所處的區(qū)域,確定單元內(nèi)的該點處的距離。將第一區(qū)中用于查詢點的距離確定為從該查詢點到角點的距離。
為確定第二區(qū)中的距離,將邊界描述符1311的有序集合分成兩個子集,一個包括角點1321前的邊界描述符,一個包括在角點1321后的邊界描述符。然后擴展1360每個邊界描述符的子集以便形成將單元劃分成內(nèi)部和外部部分的擴展曲線。對每個部分,能由從相應(yīng)的擴展曲線確定1370的采樣距離值集合1371重構(gòu)單元內(nèi)的距離場。雙二次重構(gòu)方法要求對兩個部分的每一個存儲九個距離值。
注意兩個內(nèi)部部分的交點形成對象的角。因此,可通過重構(gòu)到第一內(nèi)部部分的距離和到第二內(nèi)部部分的距離,然后選擇兩個確定的距離的最小值,從而確定第二區(qū)中的距離。
能從通過角點的兩條定向線來規(guī)定這兩個區(qū),每條線垂直于邊界描述符的兩個子集的一個。能通過角點和在角點處相應(yīng)的邊界描述符的相應(yīng)子集的面向外的法線來指定每條線。當(dāng)由此定義線時,能通過確定從查詢點到角點的矢量的叉積以及面向外的法線,來確定查詢點位于線條的哪一側(cè)。位于兩條線的外側(cè)上的各點處于第一區(qū)中,而位于任一線條的內(nèi)側(cè)的各點處于第二區(qū)中。
字體繪制在當(dāng)今的字體繪制引擎中,字體主要表示為輪廓,根據(jù)需要縮放輪廓以便匹配所需輸出大小。盡管大多數(shù)高分辨率打印機使用雙層繪制,現(xiàn)代的顯示器設(shè)備更通用地使用按小的點大小的灰度級繪制或灰度級和雙層繪制的組合。
用于光柵化灰度級圖示符的通用方法包含縮放和微調(diào)它們的輪廓。能將縮放和微調(diào)輪廓掃描轉(zhuǎn)換成高分辨率圖象,通常大于所需分辨率的4或16倍。然后,通過應(yīng)用濾波方法,例如盒式濾波,對高分辨率圖象進(jìn)行下采樣,以便產(chǎn)生最終灰度級圖象。
對于體型,能一次光柵化單個圖示符并存儲在高速緩存中,作為在預(yù)處理步驟中重新使用的灰度級位圖。對于圖示符的子像素布局的需要可能要求將被光柵化的每個圖示符的幾個版本。使用用于體型的高速緩存允許在任務(wù),諸如通過Adobe Acrobat PDF文檔進(jìn)行分頁(paging)期間,用短的延遲,例如1/2秒進(jìn)行更高質(zhì)量的繪制。
然而,在任意路徑和動畫類型上繪制的類型消除了使用高速緩存,因此,必須根據(jù)需要產(chǎn)生。實時繪制需求迫使使用較低分辨率濾波,通常每個像素四個樣本以及盒式濾波。這可能導(dǎo)致空間和時間走樣。使用駐留在系統(tǒng)存儲器中的微調(diào)設(shè)備字體能降低走樣。然而,維持實時幀率對如何使用微調(diào)設(shè)備字體產(chǎn)生嚴(yán)重約束,例如,不能動態(tài)縮放或旋轉(zhuǎn)微調(diào)設(shè)備字體。
Microsoft有關(guān)ClearType的最近研究已經(jīng)產(chǎn)生用于LCD彩色顯示器的特殊處理,包含可尋址彩色子像素,即分量的重復(fù)模型,Platt在“Optimal Filtering for Patterned Displays,”IEEE Signal ProcessingLatters,7(7),pp,179-180,2000描述了用于每個彩色分量的一組感性的最佳濾波器。實際上,最佳濾波器實現(xiàn)為一組三移位盒式濾波器,每個用于一種顏色。
ClearType使用現(xiàn)有技術(shù)的基于覆蓋的反走樣方法以便確定每個像素的每個分量的強度。相比而言,本發(fā)明的基于距離場的方法使用距離場來確定每個像素的每個分量的強度,以及使用更少樣本來完成它。下文描述的本發(fā)明的ADF反走樣方法能代替盒式濾波器以便通過對每個像素更少樣本來提供更好的最佳濾波器的模擬。
反走樣理解繪制字體中的外觀假象需要理解走樣。通常,像素由離散分量組成,例如彩色打印機或顯示器中的紅、綠和藍(lán)分量。在灰度級設(shè)備中,像素是單個離散分量。因為像素是離散的,所以繪制到輸出設(shè)備自然是采樣處理。采樣率由設(shè)備的分辨率而定。除非采樣率至少是源信號中的最高(尼奎斯特)頻率的兩倍,否則采樣信號顯示出走樣。
邊緣例如圖示符輪廓具有無窮多個頻率分量。因此,不能由采樣數(shù)據(jù)精確地表示邊緣。邊緣的不充分采樣導(dǎo)致鋸齒狀圖形,這導(dǎo)致沿運動圖象中的采樣邊緣的蠕動現(xiàn)象。如果源信號也包含空間模型,例如“m”的重復(fù)垂直詞干或“i”的單個垂直詞干,它們的頻率分量對采樣率來說太高,那么采樣數(shù)據(jù)可顯示出漏失、波紋模型以及時間閃爍(temporal flicker)。
為避免走樣,必須預(yù)先濾波輸入信號以便去除采樣率所允許的那些頻率以上的頻率分量。通常,有兩種方法來預(yù)先濾波。
第一種方法稱為分析濾波。在采樣前,將空間平均值的一些形式應(yīng)用于源信號的連續(xù)表示。不幸的是,分析濾波通常是不可能的,因為源數(shù)據(jù)不提供作為用于圖象處理的正常情形的連續(xù)信號,或因為在濾波器覆蓋內(nèi)確定信號的分析描述太復(fù)雜。這是用于除計算機制圖中的簡單幾何形狀以外的情形,當(dāng)然也是用于基于樣條的輪廓的情形。
第二種方法稱為離散濾波。在這種方法中,通常以高于目標(biāo)速率的速率采樣源信號以便獲得超級采樣圖象。然后,應(yīng)用離散濾波器以便在下采樣圖象之前將超極采樣圖象中的高頻降低到目標(biāo)速率。離散方法稱為計算機圖形中的常規(guī)超級采樣。
根據(jù)處理預(yù)算、硬件考慮和用于輸出圖象中對比度與平滑度的個人喜好,可以應(yīng)用各種離散濾波器。通常用來繪制類型的盒式濾波器簡單地用它們的算術(shù)平均值代替超級采樣值的矩陣列并且通常認(rèn)為在信號處理領(lǐng)域中是低級的。
在另一種方法中,自適應(yīng)超級采樣將用于采樣和濾波的可用資源集中在具有較高局部頻率分量的圖象的區(qū)域上。由圖象中的局部可變性確定最佳自適應(yīng)采樣。然而,這一技術(shù)的有效性受估計圖象的局部偏差計算上很昂貴的過程的需要的限制。
由于高頻模型的不充分的規(guī)則采樣,波紋模型對人的視覺系統(tǒng)來說特別令人不愉快。在一般的圖象處理中,已經(jīng)使用隨機或抖動采樣來解決這一問題。通過隨機采樣,將樣本隨機地放在稍微離開它們額定位置。隨機采樣易于用高頻噪聲代替波紋模型走樣,因此在降低時間走樣方面顯示出特別有效。
通過基于距離的反走樣繪制由圖示符的邊緣引起的無窮多頻率分量是現(xiàn)有技術(shù)字體繪制中導(dǎo)致走樣的主要原因。相比而言,根據(jù)本發(fā)明通過使用2D距離場來表示2D對象,然后采樣2D距離場,因為表示C0是連續(xù)的,所以避免了這種邊緣。相反,最大頻率取決于圖示符本身的空間模型,例如“m”的重復(fù)垂直詞干或“i”的單個垂直詞干。
通過按其2D距離場表示圖示符,將分析預(yù)濾波有效地應(yīng)用于圖示符。如下所述的用于繪制距離場的反走樣方法產(chǎn)生不同于傳統(tǒng)的分析預(yù)濾波的輸出的輸出。
通過距離場反走樣圖4表示用于按圖象序列反走樣對象401,例如表示為二維距離場411的圖示符410的方法400。每個像素402能包括一個或多個分量404,通常是用于輸出設(shè)備的“RGB”類型的紅、綠和藍(lán)分量。這一方法能使用用于每個像素402的每個分量404的一個或多個樣本。該方法400提供基于距離的自適應(yīng)超級采樣、基于距離的自動微調(diào)以及基于距離的格柵調(diào)整。能在CRT或類似LCD的顯示器上將得到的反走樣的像素強度繪制為圖象的一部分。該方法對繪制運動模糊特別有用。
表示對象401的二維距離場411中的采樣點407集合403與每個像素402的每個分量404相關(guān)402。由二維距離場411和采樣點集合403來確定430距離(D)405。然后,將距離405映射到440像素402的分量404的反走樣強度(I)406。
在優(yōu)選實施例中,用雙二次ADF 411表示410圖示符401,如上所述。這使得在字體繪制期間應(yīng)用基于距離的反走樣很有效。也能使用其他表示,諸如二維距離圖、二維距離對象以及過程距離場。
對圖象中的每個像素402的每個分量404,使用如2001年7月31日申請的,名為“Method for Traversing Quadtrees,Octrees andN-Dimensional Bi-trees”的U.S.專利申請?zhí)?0/209,302中所述的四叉樹遍歷方法,定位包含分量404的單元,例如葉單元,其內(nèi)容在此引入以供參考。盡管能與本發(fā)明一起使用在現(xiàn)有技術(shù)中所知的其他遍歷方法,但上述方法無需比較,因此能有效執(zhí)行。由單元距離值重構(gòu)分量404的距離并映射440到反走樣強度(I)406。
能使用不同映射,包括線性、高斯和∑形函數(shù)。選擇最佳映射函數(shù)是主觀的。在一個實施例中,我們的映射是兩個函數(shù)的組合。第一函數(shù)描述如上,第二函數(shù)是對比度增強函數(shù)。合成這兩個函數(shù)以便將距離場(D)405映射440到分量404的反走樣強度(I)406。
圖5將強度501,例如
的線性映射500表示為距離502的函數(shù)。該映射將距離轉(zhuǎn)換成用于像素的每個分量的反走樣圖象強度。距離在對象內(nèi)為正以及在對象外為負(fù)。不同截止值503和504影響邊緣對比度和筆畫加權(quán)。通過用于顯示類型的(-0.75,0.75)和用于本體類型的(-0.5,0.625)的外側(cè)503和內(nèi)側(cè)504濾波器截止值實現(xiàn)良好結(jié)果。
基于最佳距離的自適應(yīng)超級采樣上述的基于距離的反走樣方法由于圖示符邊緣而減少走樣。然而,當(dāng)圖示符分量間的詞干寬度或間隔對顯示的采樣率來說太小時,也會出現(xiàn)走樣假象。在這些情況下,應(yīng)用如下所述的基于距離的自適應(yīng)超級采樣來進(jìn)一步減少空間和時間走樣。
在最佳實施例中,通過本發(fā)明的新穎的基于距離的自適應(yīng)超級采樣,使用雙二次ADF來提供比現(xiàn)有技術(shù)的基于輪廓的表示和基于覆蓋的自適應(yīng)超級采樣方法更顯著的優(yōu)點。因為ADF使用針對細(xì)節(jié)的采樣,用較小的葉單元表示具有較高局部偏差的距離場的區(qū)域。因此,ADF四叉樹的結(jié)構(gòu)提供實現(xiàn)基于最佳距離的自適應(yīng)采樣所需的局部偏差的映射,克服了現(xiàn)有技術(shù)中如上所述用于確定局部偏差的自適應(yīng)超級采樣反走樣方法中的困難。
對圖象中的每個像素402的每個分量404來說,定位包含分量404的單元,以及將分量的濾波半徑r內(nèi)的采樣點407的集合403與像素分量404關(guān)聯(lián)420。每個分量的采樣點407的數(shù)量(spc)由單元到r的相對大小(cellSize)而定。濾波在采樣點407處的采樣距離以便確定430單個加權(quán)平均距離405,然后,將其映射440到像素402的分量404的反走樣強度406。
各種濾波器和采樣策略都是可能的。在優(yōu)選實施例中,使用高斯濾波器的通用形式,按W-12-3(d/r)2加權(quán)每個距離樣本,其中d是從采樣點到像素的分量的距離,以及W是用于該分量的加權(quán)和。通過盒式濾波器、錐形濾波器、負(fù)波瓣濾波器以及其他形式的濾波器也能實現(xiàn)類似的結(jié)果。
圖6A-C表示本發(fā)明的采樣策略。將樣本407放在靠近分量601的同心圓610中,用于有效計算加權(quán)以及加權(quán)和。使用像素間隔1.3倍的濾波器半徑r602以及當(dāng)cellSize>r(圖6A)時,用1spc采樣,當(dāng)r/2<cellSize≤r(圖6B)時,用5spc采樣,以及當(dāng)cellSize≤r/2(圖6C)時,用13spc采樣。
除同心圓外,本發(fā)明還能使用許多其他的策略來將采樣點407與像素分量404關(guān)聯(lián)。本發(fā)明的方法對精確采樣策略不是特別靈敏。
如下所述的另一自適應(yīng)采樣策略將采樣點放在包含于濾波器半徑r內(nèi)的所有單元上。這一策略具有同樣良好的結(jié)果。
基于單元的反走樣能用軟件,使用基于掃描線的光柵化來實現(xiàn)如上所述的距離場反走樣方法。另外,能逐個單元,即按對象順序反走樣分成各單元的距離場。基于單元的繪制消除了用于定位包含采樣點的單元的樹遍歷,消除了用于計算單個單元內(nèi)的距離和梯度的冗余設(shè)置,以及減少了單元數(shù)據(jù)的重復(fù)檢索,即存儲器提取。
另外,因為繪制所需的單元能表示為固定大小、自包含單元的順序框,即,用于單元內(nèi)的點的距離和梯度由單元的距離值確定,因此本發(fā)明的基于單元的方法能用硬件實現(xiàn),允許實時繪制。
圖7表示用于反走樣目標(biāo)701的方法700,例如按對象順序表示為二維距離場711的圖示符710。方法700提供自適應(yīng)的基于距離的超級采樣,基于距離的自動微調(diào),以及基于距離的格柵調(diào)整。能在類似CRT和LCD顯示器上將合成的反走樣的像素強度顯示為圖象的一部分。該方法對繪制運動模糊特別有用。當(dāng)按空間層次組織二維距離場711的各單元時,能使用MIP映射以便減少所需的距離采樣的數(shù)量。
將二維距離場711分成各單元712。在優(yōu)選實施例中,使用雙二次、自適應(yīng)采樣距離場,每個單元的大小由二維距離場的局部偏差而定。每個單元包括用于在單元內(nèi)重構(gòu)二維距離場的方法(M)713。識別將要繪制的包含距離場的區(qū)域(虛線)722的單元集合721。
使用區(qū)域722來定位730與該區(qū)域有關(guān)的像素731的集合。指定740在像素集合731內(nèi)用于每個像素的分量集合741。然后,通過單元集合中的距離,確定用于每個像素的每個分量的反走樣強度751。在這里,由單元集合重構(gòu)距離。然后,將距離映射到反走樣強度,如上所述。
在一個實施例中,能通過定位單元集合內(nèi)接近像素的分量的單個采樣點,以及在單個采樣點處由單元集合重構(gòu)距離來確定距離。在優(yōu)選實施例中,使用二次自適應(yīng)采樣距離場,通過小于用于基于距離的自適應(yīng)超級采樣的濾波半徑的單元的特殊處理,擴充該方法。因為在距離場中有高的偏差的地方出現(xiàn)小單元,在將距離映射到強度前,可預(yù)先濾波接近這些單元的像素中的距離。
初始化元素的合成緩沖器,其中每個元素對應(yīng)于像素集合的每個像素的分量??瑟毩⒌靥幚韱卧现忻總€單元。在優(yōu)選實施例中,每個元素包含均初始化為零的加權(quán)距離和累積加權(quán)。當(dāng)處理一個單元時,按對應(yīng)于存在于單元內(nèi)或單元中心的濾波半徑內(nèi)的像素分量的緩沖器元件遞增這些加權(quán)距離和累積加權(quán)。
在處理所有單元后,按用于每個像素的每個分量的累積加權(quán),規(guī)格化加權(quán)距離以便產(chǎn)生距離,然后將距離映射到反走樣分量強度。在優(yōu)選實施例中,使用如上所述,同樣的高斯加權(quán)和濾波半徑。
迄今,所述本發(fā)明的基于單元的繪制總是處理單元集合中的每個葉單元,而與每個單元到濾波半徑的相對大小無關(guān)。理論上,這提供了基于距離的最佳自適應(yīng)的超級采樣。實際上,能將ADF四叉樹用作MIP映射以便減少單元的數(shù)量。
ADF四叉樹結(jié)構(gòu)允許用它們的祖先替換小的葉單元,按一些預(yù)定的單元大小有效地截取四叉樹。只要這一單元大小小于或等于像素間間隔的1/4,在基于距離的自適應(yīng)超級采樣結(jié)果中沒有視覺惡化。這減少了繪制區(qū)域的單元數(shù)。
處理像素分量像素包括一個或多個分量。例如,有關(guān)典型的CRT或LCD彩色監(jiān)視器的像素包含紅、綠和藍(lán)分量。在本發(fā)明中,當(dāng)像素包含多個分量時,如上所述,能單獨地處理它們,或作為單個分量處理。當(dāng)將多個分量作為單個分量處理時,能由單個分量的反走樣強度確定像素的顏色和α值。
將多個分量作為單個分量處理有兩個原因。首先,它減少了繪制次數(shù)。第二,當(dāng)不能單獨地尋址多個分量時或當(dāng)各個分量的相對位置未知時,各個分量的單獨處理是不可能的。
當(dāng)顯示設(shè)備,諸如LCD具有可尋址像素分量時,在現(xiàn)有技術(shù)中,單獨地處理多個分量能增加設(shè)備的有效分辨率是公知的。本發(fā)明能使用這些設(shè)備的這一特征來提供具有比現(xiàn)有技術(shù)更高質(zhì)量的基于距離的反走樣。
動畫制作二維對象圖12表示根據(jù)動畫腳本1202,將對象1201動畫制作為幀序列的方法1200的流程圖。動畫腳本1202控制幀序列中每個幀的對象的狀態(tài),例如對象的位置、大小、方向和變形。對象表示為二維距離場。根據(jù)動畫腳本1202,更新1210用于幀序列1221中的每個幀的對象1201的姿勢1211。使用更新的姿勢1211和基于距離的反走樣繪制方法1212繪制對象1201。
能從對象的不同表示,例如對象的輪廓描述或?qū)ο蟮奈粓D描述來獲得表示對象1201的二維距離場。
通過將不同操作應(yīng)用于對象,包括剛體變換、自由形狀變形、軟體沖擊變形、階層集合方法、微粒模擬以及改變其繪制屬性,可執(zhí)行用于特定對象1201的姿勢1211的更新1210。
當(dāng)繪制1220對象時,將表示對象的二維距離場中的采樣點集合與幀序列1221中的幀中的像素的分量相關(guān)聯(lián)。通過由二維距離場和采樣點集合來確定距離,能將距離映射到像素的分量的反走樣強度上。
在優(yōu)選實施例中,將表示對象1201的二維距離場劃分成各單元,每個單元包括用于在單元內(nèi)重構(gòu)二維距離場的方法。為在這一實例中繪制1220,識別表示包含有將繪制的二維距離場的區(qū)域的對象1201的二維距離場的單元集合,以及定位與該區(qū)域相關(guān)的像素集合。指定用于像素集合中每個像素的分量集合。由單元集合確定用于像素的每個分量的距離,以及將距離映射到像素的分量的反走樣強度,以便確定用于像素集合中的每個像素的每個分量的反走樣強度。
基于距離的自動微調(diào)標(biāo)準(zhǔn)字體表示中的微調(diào)是耗時的手動處理,其中,類型設(shè)計者和微調(diào)專家產(chǎn)生用于使各個圖示符更好地適應(yīng)于像素格柵的一套規(guī)則。良好的微調(diào)以良好間隔的、具有很好對比度并且在外觀上統(tǒng)一的小字號產(chǎn)生圖示符。
這些規(guī)則提供具有相同對比度分布的垂直詞干,具有最高可能對比度的左和底邊緣、對話框和圖示符的淡圓部分的圖示符具有用于將可視結(jié)構(gòu)傳送到眼睛的充分的對比度,以及綁在一起并提供由人眼俘獲到的足夠加重的襯線,見Hersch等“Perceptually TunedGeneration of Grayscale Fonts”,IEEE CG&A,Nov,pp 78-89,1995。
注意,現(xiàn)有技術(shù)濾波方法產(chǎn)生模糊字符以及將不同對比度配置文件指定到不同字符部分,從而違反類型設(shè)計的重要規(guī)則。為克服這些限制,對每個字體的每個圖示符開發(fā)了微調(diào)?,F(xiàn)有技術(shù)微調(diào)方法存在許多問題它們的開發(fā)是勞動密集的、繪制慢并且復(fù)雜,從而排除了硬件實現(xiàn)方式。
對基于輪廓的字體,通過微調(diào)繪制是三步處理。第一,縮放圖示符的輪廓并與像素格柵對準(zhǔn)。第二,修改輪廓以便控制詞干、條和襯線的對比度以及增加非常淡的部分和弧的厚度。第三,在通過濾波進(jìn)行下采樣后,進(jìn)行對修改的輪廓超級采樣。
盡管如上所述的本發(fā)明的未微調(diào)的基于距離的反走樣繪制方法與使用微調(diào)的現(xiàn)有技術(shù)的字體繪制方法具有相當(dāng)可比性,已知感性微調(diào)能以小字號提高閱讀舒適。
因此,如圖8所示,本發(fā)明利用距離場來提供用于以小的點大小繪制圖示符的基于距離的自動微調(diào)。微調(diào)中的第一步810是縮放距離場并將其與像素格柵對齊。這能由指定或?qū)С龅淖煮w規(guī)格,例如帽高、X高以及基線的位置來自動完成。
在應(yīng)用格柵調(diào)整的這一形式后,使用距離場以及其梯度場來提供感性微調(diào)。
在一個實施例中,使用距離場的梯度的方向來檢測820對象的左和底邊緣上的像素。通過使這些像素變暗830以及使相反邊緣上的像素變亮840,實現(xiàn)左和底邊緣上的更高對比度,而不改變外在的筆畫加權(quán)。這能通過減少和增加相應(yīng)的像素強度來實現(xiàn)。
在另一實施例中,使用梯度場來提供用于對話詞干和淡弧的更好對比度。我們注意到當(dāng)像素位于圖示符的淡區(qū)域上或其附近時,在像素的任何一側(cè)上的相鄰元素具有相反的梯度方向,即,它們的點乘積為負(fù)。通過檢測梯度方向中的突然變化,可使這些淡區(qū)域上的像素變暗850。
這些僅是如何使用距離場來自動提供感性微調(diào)的兩個例子。還能使用距離場來提供最佳字符間隔和均勻筆畫加權(quán)。
產(chǎn)生和編輯字體存在用于設(shè)計字體的兩個基本方法。第一是手動。在這里,用手畫出圖示符、數(shù)字化,然后將輪廓調(diào)整成數(shù)字化位圖。第二是通過計算機。
在后一情況下,有三種工具可用。能將直接可視工具用于曲線操作。過程設(shè)計工具通過執(zhí)行過程指令構(gòu)成圖示符的形狀。過程定義形狀的輪廓并填充它,或通過許多屬性,包括幾何結(jié)構(gòu)和方位來定義用筆尖劃出的路徑。基于分量的設(shè)計工具允許設(shè)計者構(gòu)建基本分量,諸如詞干、弧以及其他循環(huán)形狀,然后將這些分量組合以便產(chǎn)生圖示符。
本發(fā)明使用造型編輯器來提供基于筆畫的設(shè)計。這是2D副本到3D雕刻,如在2001年3月16日提交的U.S.專利申請?zhí)?9/810,261,“System and Method for Sculpting Digital Models”中所述,其內(nèi)容在此引入以供參考。能交互地實現(xiàn)筆劃或能手寫以便模擬可編程設(shè)計工具。
也能利用使用了與在Adobe Illustrator中類似的Bezier曲線操作工具的基于曲線的設(shè)計。基于曲線的設(shè)計能與用于將輪廓轉(zhuǎn)換成距離場以及將距離場轉(zhuǎn)換成輪廓的方法相結(jié)合以便提供設(shè)計范例之間的無縫接口。
基于分量的設(shè)計使用隱式距離場上的CSG和混合操作。這允許單獨地設(shè)計分量以及在編輯期間或在繪制期間相組合。
本發(fā)明還提供用于由模擬和數(shù)字字體正本自動地生成ADF的方法。
對基于分量的設(shè)計,本發(fā)明的字體編輯器使用四叉樹操作提供有效地反映和旋轉(zhuǎn)ADF的能力,以便模型化圖示符所共有的對稱性。另外的特征包括ADF縮放、變換以及操作以便組合多個ADF,例如CSG和混合。
對基于筆畫的設(shè)計,本發(fā)明提供具有幾何配置文件的雕刻工具以便模擬筆尖。所模擬的筆尖的方位和大小能沿筆畫改變以便模仿書法。
圖9表示用于由筆畫生成二維距離場931的方法900。在筆劃期間采樣筆狀態(tài),筆狀態(tài)包括在筆劃期間的筆的位置。這一筆狀態(tài)也可以包括方向和幾何結(jié)構(gòu)。從筆狀態(tài)樣本901,沿筆劃生成910筆狀態(tài)的順序列表911。然后,由筆狀態(tài)的有序列表產(chǎn)生920邊界描述符921集合。最后,由邊界描述符集合921生成二維距離場931。
在優(yōu)選實施例中,邊界描述符921是諸如立方Bezier曲線的曲線。
在優(yōu)選實施例中,應(yīng)用曲線擬合過程以便通過用戶規(guī)定的精確度來將最小G2連續(xù)曲線集合擬合到筆的路徑。還使用工具大小和方向,由這一路徑生成另外兩個偏移點的有序列表,以及將曲線擬合到這些偏移點以便生成筆劃輪廓。輪廓曲線處于空間層次,用于有效處理。使用平鋪生成器,由這一層次生成二維ADF,見2001年3月16日提交的U.S.專利申請No.09/810,983,其內(nèi)容在此引入以供參考。
使用Bezier剪取有效地計算到輪廓的最小距離。將筆劃轉(zhuǎn)換成ADF,而對用戶沒有感性延遲。對于曲線操作,本發(fā)明提供Bezier曲線編輯器。
如圖11所示,本發(fā)明還提供將距離場轉(zhuǎn)換成邊界描述符,例如Bezier曲線的能力,以便提供所有三個設(shè)計范例之間的無縫接口。
在優(yōu)選實施例中,使用雙二次ADF,其中這一轉(zhuǎn)換使用用于快速鄰近搜索的ADF層次來遍歷各葉單元,沿ADF的0值等值線生成各點的有序列表,然后如下參考圖11所述,擬合曲線以便生成邊界描述符。
與現(xiàn)有技術(shù)(其中,由點的列表計算邊界描述符誤差)相比,本發(fā)明直接由距離場計算計算邊界描述符誤差。本發(fā)明特別注意到銳角轉(zhuǎn)角。本發(fā)明的方法快到足以允許用戶在范例之間無縫切換,而沒有可覺察到的延遲。
圖11表示用于將二維距離場1101轉(zhuǎn)換成邊界描述符集1131的方法1100。首先,選擇1110二維距離場1101的等值線1111,例如具有零值的距離或一些偏移量。
接著,由等值線1111和二維距離場1101生成1120點的有序列表1121。在優(yōu)選實施例中,使用二次自適應(yīng)采樣距離場,這一步驟使用鄰近搜索技術(shù),順序地訪問自適應(yīng)采樣距離場1101的相鄰各單元。該搜索技術(shù)利用自適應(yīng)采樣距離場1101的空間層次以便沿等值線1111有效地定位下一鄰近值。
在另一實施例中,通過選擇ADF 1101中的邊界單元,用有序點集合播種(seeding)每個邊界單元,以及使用ADF 1101的距離場和梯度場,將每個點移動到ADF 1101的等值線1111,從而生成1120點的有序集合1121。
然后,初始化1130邊界描述符集合1131以便調(diào)整有序點列表1121。通過結(jié)合有序點列表1121的相鄰點,初始化邊界描述符1131以便形成構(gòu)成初始邊界描述符1131的線段集合。
在另一實施例中,通過定位拐角點、將有序點列表細(xì)分成由拐角點定界的各段、以及確定段邊界描述符以便調(diào)整每個段,從而初始化1130邊界描述符集合1131。段邊界描述符的并集形成初始邊界描述符1131。
通過測量由距離場確定的曲率可定位拐角點。在優(yōu)選實施例中(其中距離場是雙二次ADF),用ADF中的小單元表示高曲率的區(qū)域,因此,通過使用ADF單元大小來定位拐角點。
只要初始化1130邊界描述符1131,更新1140邊界描述符1131。更新1140通過由等值線重構(gòu)距離場和測量邊界描述符的平均或最大偏差,從而確定用于每個邊界描述符的誤差。
更新1140邊界描述符1131,直到用于每個邊界描述符的誤差可接受,或預(yù)定時間已過去,或邊界描述符集合1131的基數(shù)最小為止。
為了包含以非數(shù)字形式(即作為模擬原圖),或以作為位圖的數(shù)字形式(即作為數(shù)字原圖)存儲的字體的當(dāng)前遺產(chǎn)(legacy),本發(fā)明的編輯系統(tǒng)提供用于由高分辨率二值位圖生成ADF的方法。
首先掃描模擬原圖以便以高于目標(biāo)ADF分辨率至少四倍的分辨率產(chǎn)生二值數(shù)字原圖,例如4096×4096數(shù)字原圖適合于當(dāng)前的顯示分辨率以及顯示大小。然后將精確的歐幾里德距離變換應(yīng)用于位圖以便生成表示圖示符的規(guī)則采樣場。
然后,使用平鋪生成器,由這一規(guī)則采樣距離場生成ADF。在2GHz Pentium IV處理器上,由位圖到ADF的轉(zhuǎn)換每個圖示符需要~10秒。
為從現(xiàn)有技術(shù)圖示符的描述符變換成距離場(其中用邊界描述符集合描述圖示符),應(yīng)用參考圖10所述的方法。
用于動態(tài)印刷術(shù)的計算襯底還能將本發(fā)明的ADF圖示符框架的距離場和空間層次屬性用于2D對象,例如圖示符、公司徽標(biāo),或任何2D形狀的計算機模擬。例如,兩種屬性能用在沖突檢測和避免中,用于計算互相貫穿體之間的力,以及用于模擬軟體變形。
可利用使用有符號的距離場的階層集合(level set)方法來模擬許多效果,諸如熔化和流體動力。ADF是能被有效地查詢以便計算距離值和梯度、用于上述列出的方法所需的兩個重要計算的簡潔的隱式表示。
比較起來,由正運動或變形的輪廓確定距離值和梯度對于實時交互作用的軟件是不實際的,見Hoff等,“Fast and Simple 2D GeometricProximity Queries Using Graphics Hardware”Proc.Interactive 3DGraphics′01,2001。Hoff等的論文使用圖形硬件在飛行中產(chǎn)生規(guī)則的采樣2D距離場,用于變形按線段接近的曲線。
距離場的隱式特性允許復(fù)雜的拓?fù)涓淖?,諸如很難通過基于輪廓的字體模擬的表面偏移。另外,能使用距離場來提供動畫對象的非寫實(photorealistic)繪制以便增加藝術(shù)效果。
本發(fā)明的效果本發(fā)明提供用于表示、繪制、編輯和動畫制作字符圖示符、公司標(biāo)志或任何其他二維對象的新穎框架。在優(yōu)選實施例中,本發(fā)明使用二維雙二次ADF來表示二維對象。該雙二次重構(gòu)方法提供存儲器使用和計算負(fù)擔(dān)之間的最佳平衡。
本發(fā)明包括用于在包圍二維對象的拐角的單元內(nèi)生成二維距離場的方法。該方法比現(xiàn)有技術(shù)提供存儲器需求的顯著降低以及精確度的顯著改進(jìn)。
本發(fā)明的基于距離的反走樣繪制方法使用每個像素的單個未微調(diào)距離樣本,提供比用在現(xiàn)有技術(shù)中的超級采樣方法更好的反走樣。
本發(fā)明的基于距離的方法利用ADF的空間層次來提供導(dǎo)致超級空間和時間反走樣的有效的最佳基于距離的自適應(yīng)超級采樣。本發(fā)明的方法還提供用于基于距離的自動微調(diào)、用于基于距離的格柵調(diào)整、用于統(tǒng)一三個通用數(shù)字字體設(shè)計范例、以及用于生成用于動態(tài)印刷術(shù)的多種特殊效果的計算襯底。
盡管已經(jīng)通過優(yōu)選實施例的例子描述了本發(fā)明,將理解到能在本發(fā)明的精神和范圍內(nèi)做出各種其他適應(yīng)變化和改進(jìn)。因此,附后權(quán)利要求的目的是覆蓋落在本發(fā)明的真實精神和范圍內(nèi)的所有這些變化和改進(jìn)。
權(quán)利要求
1.一種用于將二維對象轉(zhuǎn)換成二維距離場的方法,所述對象表示為邊界描述符的集合和填充規(guī)則,該方法包括預(yù)處理邊界描述符集合;由預(yù)處理的邊界描述符集合構(gòu)成空間層次;初始化交點的高速緩存;以及查詢一組位置處的空間層次以便確定所述位置處的距離集合,所述距離集合用來構(gòu)成二維距離場,所述查詢進(jìn)一步包括調(diào)用在每個位置處的距離函數(shù)以便確定無符號距離;以及使用所述交點的高速緩存、所述位置和所述填充規(guī)則,確定所述無符號距離的符號。
2.如權(quán)利要求1所述的方法,其中,所述邊界描述符集合是樣條集合。
3.如權(quán)利要求1所述的方法,其中,所述填充規(guī)則是偶-奇規(guī)則。
4.如權(quán)利要求1所述的方法,其中,所述填充規(guī)則是非零繞組規(guī)則。
5.如權(quán)利要求1所述的方法,其中,所述預(yù)處理進(jìn)一步包括細(xì)分所述邊界描述符以便減少它們的空間廣度。
6.如權(quán)利要求1所述的方法,其中,所述預(yù)處理進(jìn)一步包括合并所述邊界描述符以便減少所述邊界描述符集合的基數(shù)。
7.如權(quán)利要求1所述的方法,其中,所述空間層次是四叉樹。
8.如權(quán)利要求1所述的方法,其中,所述空間層次是kd-樹。
9.如權(quán)利要求1所述的方法,其中,所述距離函數(shù)使用Bezier剪取來確定最小無符號距離。
10.如權(quán)利要求1所述的方法,其中,所述交點的高速緩存用于存儲所述邊界描述符與線集合相交的位置。
11.如權(quán)利要求10所述的方法,其中,所述線集合的方向為水平。
12.如權(quán)利要求10所述的方法,其中,所述線集合的方向為垂直。
13.如權(quán)利要求10所述的方法,其中,所述二維距離場是自適應(yīng)采樣距離場,以及所述線集合位于所述自適應(yīng)采樣距離場的格柵線上。
14.如權(quán)利要求1所述的方法,其中,確定所述無符號距離的符號進(jìn)一步包括選擇通過所述位置的線;如果所述線在所述高速緩存中,則檢索用于該線的線交點;確定用于所述線與所述邊界描述符集合的線交點,以及,如果所述線不在所述高速緩存中,則將用于所述線的線交點存儲在所述高速緩存中;以及使用用于所述線的線交點、位置和填充規(guī)則來確定無符號距離的符號。
15.如權(quán)利要求14所述的方法,其中,用于所述線的線交點包括所述線與所述邊界描述符集合的交點的排序的間隔。
16.如權(quán)利要求14所述的方法,其中,用于所述線的線交點包括用于每個交點的方向。
全文摘要
將二維對象轉(zhuǎn)換成二維距離場的方法。對象表示為邊界描述符集合和填充規(guī)則。預(yù)處理邊界描述符集合以及由預(yù)處理的邊界描述符集合構(gòu)成空間層次。初始化交點的高速緩存。查詢一組位置處的空間層次以便確定所述位置處的距離集合。該查詢調(diào)用在每個位置處的距離函數(shù)以便確定無符號距離。由交點的高速緩存、位置和填充規(guī)則,確定無符號距離的符號。距離集合用來構(gòu)成二維距離場。
文檔編號G09G5/28GK1698070SQ2004800000
公開日2005年11月16日 申請日期2004年3月22日 優(yōu)先權(quán)日2003年3月25日
發(fā)明者羅納德·N.·佩利, 莎拉·F·弗里斯肯 申請人:三菱電機株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
峨边| 自治县| 含山县| 贵阳市| 普兰店市| 鄂伦春自治旗| 沅陵县| 宣化县| 盱眙县| 湖口县| 夹江县| 岚皋县| 马边| 德保县| 永寿县| 金塔县| 溆浦县| 宁安市| 公主岭市| 库伦旗| 洛浦县| 罗源县| 南通市| 尚志市| 天柱县| 长沙市| 宁安市| 邛崃市| 新郑市| 汾西县| 合阳县| 紫金县| 台北县| 车险| 盐津县| 临武县| 萝北县| 渭源县| 宁河县| 汤阴县| 武威市|