專利名稱:渲染裝置和方法,以及形狀數(shù)據(jù)生成裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像渲染裝置和方法,以及形狀數(shù)據(jù)生成裝置和方法。
背景技術(shù):
根據(jù)高清晰度(HD)過程,認(rèn)為用于在高清晰度的計(jì)算機(jī)圖形(CG)圖像中有效地渲染高品質(zhì)矢量圖形數(shù)據(jù)或輪廓字體(outlinefont)數(shù)據(jù)的技術(shù)的需求將會(huì)增長(zhǎng)。
已經(jīng)公開了使用圖形處理單元(GPU)作為圖形LSI來有效地渲染矢量圖形數(shù)據(jù)的方法,例如,在Proc.of ACM SIGGRAPH2005的1000-1009頁中的C.Loop和J.Blinn的“Resolution Independent CurveRendering using Programmable Graphics Hardware”。在該方法中,使用GPU執(zhí)行對(duì)由兩種類型的輪廓(即線段輪廓和二次貝塞爾曲線輪廓)所形成的封閉曲線的渲染,這是基于在GPU中所整合的像素渲染器能夠以像素為單位執(zhí)行關(guān)于該二次貝塞爾曲線的內(nèi)部/外部確定的事實(shí)。更具體地,該封閉曲線被分割成由單個(gè)二次貝塞爾曲線組成的一部分和僅由直線(linear line)(沒有曲線)組成的輪廓部分,并且使用三角形分割來渲染該線性輪廓部分。使用像素渲染器以像素為單位執(zhí)行的關(guān)于二次貝塞爾曲線的內(nèi)部/外部確定,使得能夠渲染平滑曲線,而無需考慮顯示分辨率。
然而,當(dāng)使用上述方法顯示輪廓字體字符時(shí),必須為每個(gè)字符渲染幾十個(gè)乃至幾百個(gè)三角形多邊形。如果使用上述方法渲染屏幕上顯示的所有字符,必須渲染太多的三角形多邊形。這會(huì)不可避免地降低渲染效率。
此外,當(dāng)顯示筆劃數(shù)極大的字符的縮小圖像時(shí),在每個(gè)像素中都要渲染多個(gè)三角形多邊形的直線,其結(jié)果是導(dǎo)致發(fā)生失真,生成難以辨識(shí)的字符。類似的問題也會(huì)發(fā)生在通用圖形數(shù)據(jù)的情況中。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種渲染裝置,包括形狀數(shù)據(jù)輸入單元,配置為輸入矢量圖形數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量(featurequantity)表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;獲取單元,配置為獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);像素?cái)?shù)量計(jì)算單元,配置為基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;第一轉(zhuǎn)換單元,配置為當(dāng)像素?cái)?shù)量小于形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第一渲染單元,配置為渲染所述位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為當(dāng)像素?cái)?shù)量不小于形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線—參數(shù)的多邊形模型數(shù)據(jù);第二渲染單元,配置為渲染所述多邊形模型數(shù)據(jù);選擇單元,配置為根據(jù)所述輸入矢量圖形數(shù)據(jù),通過比較像素?cái)?shù)量和形狀特征量,在第一轉(zhuǎn)換單元和第二轉(zhuǎn)換單元中選擇一個(gè),并且在第一渲染單元和第二渲染單元中選擇一個(gè);以及呈現(xiàn)(presentation)單元,配置為呈現(xiàn)所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
根據(jù)本發(fā)明的第二方面,提供了一種形狀數(shù)據(jù)生成裝置,包括形狀數(shù)據(jù)輸入單元,配置為輸入矢量圖形數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;第一轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線—參數(shù)的多邊形模型數(shù)據(jù);以及生成單元,配置為通過將形狀特征量、位圖紋理數(shù)據(jù)和多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化形狀數(shù)據(jù)。
根據(jù)本發(fā)明的第三方面,提供了一種渲染裝置,包括字符串輸入單元,配置為輸入文本字符串;存儲(chǔ)單元,配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼數(shù)據(jù)和輪廓字體數(shù)據(jù);形狀數(shù)據(jù)生成單元,配置為訪問所述存儲(chǔ)單元,生成與所述文本字符串相對(duì)應(yīng)的矢量圖形數(shù)據(jù)作為輪廓字體數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;獲取單元,配置為獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);像素?cái)?shù)量計(jì)算單元,配置為基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;第一轉(zhuǎn)換單元,配置為當(dāng)像素?cái)?shù)量小于形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第一渲染單元,配置為渲染所述位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為當(dāng)像素?cái)?shù)量不小于形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線—參數(shù)的多邊形模型數(shù)據(jù);第二渲染單元,配置為渲染所述多邊形模型數(shù)據(jù);選擇單元,配置為根據(jù)所述矢量圖形數(shù)據(jù),通過比較像素?cái)?shù)量和形狀特征量,在第一轉(zhuǎn)換單元和第二轉(zhuǎn)換單元中選擇一個(gè),并且在第一渲染單元和第二渲染單元中選擇一個(gè);以及呈現(xiàn)單元,配置為呈現(xiàn)所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
根據(jù)本發(fā)明的第四方面,提供了一種形狀數(shù)據(jù)生成裝置,包括字符串輸入單元,配置為輸入文本字符串;存儲(chǔ)單元,配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼數(shù)據(jù)和輪廓字體數(shù)據(jù);形狀數(shù)據(jù)生成單元,配置為訪問所述存儲(chǔ)單元,生成與所述文本字符碼串相對(duì)應(yīng)的矢量圖形數(shù)據(jù)作為輪廓字體數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;第一轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線—參數(shù)的多邊形模型數(shù)據(jù);以及生成單元,配置為通過將形狀特征量、位圖紋理數(shù)據(jù)和多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化形狀數(shù)據(jù)。
根據(jù)本發(fā)明的第五方面,提供了一種形狀數(shù)據(jù)生成裝置,包括字符碼輸入單元,配置為輸入字符碼;存儲(chǔ)單元,配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼和輪廓字體數(shù)據(jù)項(xiàng);形狀數(shù)據(jù)生成單元,配置為訪問所述存儲(chǔ)單元,生成與所述輸入字符碼相對(duì)應(yīng)矢量圖形數(shù)據(jù)作為輪廓字體數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;第一轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線—參數(shù)的多邊形模型數(shù)據(jù);以及結(jié)構(gòu)化字體形狀數(shù)據(jù)生成單元,配置為通過將輸入字符碼、形狀特征量、位圖紋理數(shù)據(jù)和多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化字體形狀數(shù)據(jù)。
圖1是根據(jù)本發(fā)明第一實(shí)施例的渲染裝置的方框圖;圖2是圖1所示的輸入單元輸入的矢量圖形形狀數(shù)據(jù)的視圖;圖3是圖1所示的形狀特征量計(jì)算單元的運(yùn)行實(shí)例的流程圖;圖4是使用圖1所示的形狀特征量計(jì)算單元,計(jì)算直線和矢量圖形形狀數(shù)據(jù)之間的交叉點(diǎn)數(shù)量的過程實(shí)例的流程圖;圖5是使用圖1所示的形狀特征量計(jì)算單元,計(jì)算直線和矢量圖形形狀數(shù)據(jù)之間的交叉點(diǎn)數(shù)量的另一個(gè)過程實(shí)例的流程圖;圖6是輸入到圖1所示的渲染方法選擇單元的渲染參數(shù)實(shí)例的視圖;圖7是圖1所示的渲染方法選擇單元的運(yùn)行實(shí)例的流程圖;圖8是圖1所示的附帶曲線—參數(shù)的多邊形模型生成單元的運(yùn)行實(shí)例的流程圖;圖9的視圖有助于解釋使用附帶曲線—參數(shù)的多邊形模型渲染單元填充凸面貝塞爾區(qū)域和凹面貝塞爾區(qū)域的方法;圖10是根據(jù)第二實(shí)施例的形狀數(shù)據(jù)生成裝置的方框圖;圖11是結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù)的實(shí)例的視圖;圖12的視圖有助于解釋由矢量圖形形狀形成單個(gè)矢量圖形形狀;圖13是根據(jù)第二實(shí)施例的圖像數(shù)據(jù)輸出裝置的方框圖;圖14是根據(jù)第三實(shí)施例的渲染裝置的方框圖;圖15是圖14所示的矢量圖形形狀生成單元的運(yùn)行實(shí)例的流程圖;圖16是根據(jù)第四實(shí)施例的形狀數(shù)據(jù)生成裝置的方框圖;圖17是根據(jù)第五實(shí)施例的形狀數(shù)據(jù)生成裝置的方框圖;圖18是圖17所示的輸出單元所輸出的結(jié)構(gòu)化字體形狀數(shù)據(jù)實(shí)例的視圖;圖19是根據(jù)第六實(shí)施例的渲染裝置的方框圖;以及圖20是根據(jù)第七實(shí)施例的渲染裝置的方框圖。
具體實(shí)施例方式
下面將參照附圖,詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的渲染裝置和方法、形狀數(shù)據(jù)生成裝置和方法。
首先,將給出對(duì)根據(jù)實(shí)施例的渲染裝置和方法、形狀數(shù)據(jù)生成裝置和方法的大致描述。實(shí)施例提出了渲染裝置和方法,以及形狀數(shù)據(jù)生成裝置和方法,其中,選擇性地使用了在Proc.of ACMSIGGRAPH2005的1000-1009頁中的C.Loop和J.Blinn的“ResolutionIndependent Curve Rendering using Programmable Graphics Hardware”中提出的方法(在下文稱作“多邊形模型渲染方法”)和用于顯示紋理的方法(在下文稱作“紋理渲染方法”)來作為矢量圖形渲染方法,其中,紋理渲染方法在位圖中預(yù)先渲染矢量圖形數(shù)據(jù)。
在實(shí)施例中,預(yù)先計(jì)算要渲染的矢量圖形數(shù)據(jù)的形狀或者指示要渲染的表示為矢量圖形形狀的字符的復(fù)雜度的形狀特征量,并且基于形狀特征量與渲染過程中所使用的參數(shù)的比較結(jié)果,確定應(yīng)當(dāng)使用上述渲染方法中的哪個(gè)方法。
這使渲染所需的多邊形數(shù)量能夠減小,并實(shí)現(xiàn)很高的交互性。此外,當(dāng)顯示筆劃數(shù)很大的字符的縮小圖像時(shí),采用紋理映射方法來防止該字符變得難以辨認(rèn)。
根據(jù)本發(fā)明的渲染裝置和方法、形狀數(shù)據(jù)生成裝置和方法能夠使用很少數(shù)量的多邊形提供渲染得很清晰的圖像。
希望實(shí)施例的渲染裝置能夠安裝在執(zhí)行矢量圖形顯示的下一代圖形處理引擎或中間件中。
(第一實(shí)施例)將要參照?qǐng)D1描述根據(jù)本發(fā)明第一實(shí)施例的渲染裝置。圖1是有助于解釋第一實(shí)施例的渲染裝置配置的視圖。該裝置獲得矢量圖形形狀數(shù)據(jù)和渲染參數(shù),并輸出作為矢量圖形渲染結(jié)果的圖像數(shù)據(jù)。
如圖1所示,第一實(shí)施例的渲染裝置包括輸入單元101、形狀特征量計(jì)算單元102、渲染方法選擇單元103、位圖紋理生成單元104、位圖紋理渲染單元105、附帶曲線—參數(shù)的多邊形模型生成單元106、附帶曲線—參數(shù)的多邊形模型渲染單元107和呈現(xiàn)單元108。
輸入單元101允許輸入矢量圖形形狀數(shù)據(jù)。稍后將參照?qǐng)D2描述矢量圖形形狀數(shù)據(jù)。
形狀特征量計(jì)算單元102計(jì)算由輸入單元所輸入的形狀數(shù)據(jù)的形狀特征量。稍后將參照?qǐng)D3、4和5詳細(xì)描述單元102。
渲染方法選擇單元103獲得渲染參數(shù)和形狀特征量,比較兩者,并選擇多邊形模型渲染方法和紋理渲染方法中的一個(gè),來渲染矢量圖形形狀數(shù)據(jù)。稍后將參照?qǐng)D6描述渲染參數(shù)。稍后將參照?qǐng)D7詳細(xì)描述渲染方法選擇單元103。
位圖紋理生成單元104將矢量圖形形狀數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù)。位圖紋理生成單元104確保紋理存儲(chǔ)器(未示出)具有一定大小,該大小由例如在平行于x軸的線與圖形形狀數(shù)據(jù)的輪廓之間的交叉點(diǎn)的最大數(shù)量以及在平行于y軸的線與圖形形狀數(shù)據(jù)的輪廓之間的交叉點(diǎn)的最大數(shù)量確定,并且位圖紋理生成單元104將圖形形狀數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù)。
位圖紋理渲染單元105在指定位置處渲染由位圖紋理生成單元104生成的位圖紋理數(shù)據(jù)。所述指定位置是例如圖6中的(Px,Py)。附帶曲線—參數(shù)的多邊形模型生成單元106將圖形形狀數(shù)據(jù)轉(zhuǎn)換成具有曲線參數(shù)的多邊形模型數(shù)據(jù)。稍后將參照?qǐng)D8詳細(xì)描述附帶曲線—參數(shù)的多邊形模型生成單元106。
附帶曲線—參數(shù)的多邊形模型渲染單元107使用由附帶曲線—參數(shù)的多邊形模型生成單元106所生成的曲線參數(shù)來渲染多邊形模型。稍后將參照?qǐng)D9詳細(xì)描述附帶曲線—參數(shù)的多邊形模型渲染單元107。
呈現(xiàn)單元108呈現(xiàn)由位圖紋理渲染單元105或附帶曲線—參數(shù)的多邊形模型渲染單元107所渲染的圖像數(shù)據(jù)。
下面將參照?qǐng)D2描述輸入單元101所輸入的矢量圖形形狀數(shù)據(jù)的實(shí)例。如圖2的左半部分所示,矢量圖形形狀數(shù)據(jù)包括,例如,輪廓開始碼、線段碼、二次貝塞爾曲線碼、輪廓結(jié)束碼和坐標(biāo)。此外,如圖2右半部分所示,矢量圖形形狀數(shù)據(jù)表示通過連接直線和曲線所形成的封閉曲線。
下面將參照?qǐng)D3描述圖1中的形狀特征量計(jì)算單元102的運(yùn)行實(shí)例。
首先,檢測(cè)由輸入單元101輸入的在平行于x軸的線與圖形形狀數(shù)據(jù)的輪廓之間的交叉點(diǎn)的最大數(shù)量,并且用該最大數(shù)量代替形狀數(shù)據(jù)的特征量Cx(步驟S301)。接下來,檢測(cè)由輸入單元101輸入的在平行于y軸的線與圖形形狀數(shù)據(jù)的輪廓之間的交叉點(diǎn)的最大數(shù)量,并且用該最大數(shù)量代替形狀數(shù)據(jù)的特征量Cy(步驟S302)。在圖2的實(shí)例中,Cx=2,Cy=4。
下面參照?qǐng)D4,描述圖1中的形狀特征量計(jì)算單元102的運(yùn)行實(shí)例,該運(yùn)行實(shí)例被執(zhí)行用于檢測(cè)交叉點(diǎn)的數(shù)量。圖4的流程圖用于檢測(cè)在平行于x軸的線與形狀數(shù)據(jù)之間的交叉點(diǎn)數(shù)量以及檢測(cè)在平行于y軸的線與形狀數(shù)據(jù)之間的交叉點(diǎn)數(shù)量。
首先,將平行于x軸或y軸的線設(shè)置成L(步驟S401)。接下來,將交叉點(diǎn)的數(shù)量C(C=Cx或Cy)初始化為0(步驟S402)。在這之后,將矢量圖形形狀數(shù)據(jù)設(shè)置成V(步驟S403)。對(duì)與V相關(guān)的所有輪廓圖元(直線或曲線)執(zhí)行處理(交叉點(diǎn)確定)。如果還存在未經(jīng)過交叉點(diǎn)確定的輪廓圖元,則讀取上述輪廓圖元之一并將其設(shè)置成CP(步驟S405)。確定CP是否是直線(步驟S406)。如果確定其是直線,對(duì)直線CP和直線L執(zhí)行交叉點(diǎn)確定。如果兩者彼此交叉,則數(shù)量C加1(步驟S408)。反之,如果CP不是直線,則將CP看作貝塞爾曲線,確定貝塞爾曲線CP和直線L之間的交叉點(diǎn)數(shù)量,由此將所確定的交叉點(diǎn)數(shù)量加到C上(步驟S407)。對(duì)所有輪廓圖元執(zhí)行了交叉點(diǎn)確定之后,輸出交叉點(diǎn)的數(shù)量C(步驟S409)。
<使用關(guān)于直線與通過連接貝塞爾曲線的控制點(diǎn)所獲得的多邊形的交叉點(diǎn)確定來代替關(guān)于貝塞爾曲線與直線的交叉點(diǎn)確定的方法>
可以執(zhí)行圖5中的步驟S501來代替圖4中的步驟S407。在圖5中的步驟S501中,執(zhí)行關(guān)于直線與通過連接貝塞爾曲線的控制點(diǎn)所獲得的多邊形的交叉點(diǎn)確定。如果多邊形與直線有交叉點(diǎn),則將貝塞爾曲線的次數(shù)(order)加到交叉點(diǎn)數(shù)量上。關(guān)于多邊形的邊與直線的交叉點(diǎn)確定,與關(guān)于曲線與直線的交叉點(diǎn)確定相比較而言是更有利的,因?yàn)榍罢咝枰^少的計(jì)算量。在圖2的實(shí)例中,Cx=2,Cy=4。
將參照?qǐng)D6描述輸入到渲染方法選擇單元103的渲染參數(shù)實(shí)例。圖6示出了渲染參數(shù)的數(shù)據(jù)結(jié)構(gòu)。
渲染參數(shù)包括,例如,屏幕上的位置,以及參照該位置的指示旋轉(zhuǎn)和縮放(仿射變換)的矩陣。在圖6中,Px和Py表示屏幕上的位置,2×2矩陣表示仿射變換。
將參照?qǐng)D7描述圖1的渲染方法選擇單元103的運(yùn)行實(shí)例。圖7示出了渲染方法選擇單元103所執(zhí)行的處理。
假定在區(qū)域0≤x≤xm、0≤y≤ym中定義了矢量圖形數(shù)據(jù)的形狀,并且假設(shè)使用圖6所示的渲染參數(shù)的仿射變換矩陣M使該矢量圖形數(shù)據(jù)形狀變形。
計(jì)算渲染區(qū)域的x軸方向排列的像素?cái)?shù)量Sx,Sx=|M11xm|+|M21ym|(步驟S701)。標(biāo)志||表示絕對(duì)值。此外,“M11xm”表示“M11”×xm。類似地,計(jì)算渲染區(qū)域的y軸方向排列的像素?cái)?shù)量Sy,Sy=|M21xm|+|M22ym|(步驟S702)。接下來分別將Sx、Sy與形狀特征量計(jì)算單元102獲得的Cx、Cy進(jìn)行比較(步驟S703和S704)。如果不滿足條件Sx>Cx或Sy>Cy,則采用位圖紋理渲染方法作為矢量圖形渲染方法并由單元104和單元105執(zhí)行(步驟S705)。如果滿足條件Sx>Cx和Sy>Cy,則采用使用具有曲線參數(shù)的多邊形模型數(shù)據(jù)的渲染方法作為矢量圖形渲染方法并由單元106和單元107執(zhí)行(步驟S706)。
此外,如果圖7的過程不是在幀的單元中執(zhí)行的,而是渲染方法選擇單元103使用在先前幀中執(zhí)行的選擇結(jié)果作為接下來幾個(gè)幀的選擇結(jié)果,則能夠減少過程的執(zhí)行數(shù)量。
下面將參照?qǐng)D8,描述圖1所示的附帶曲線—參數(shù)的多邊形模型生成單元106的運(yùn)行實(shí)例。圖8示出了附帶曲線—參數(shù)的多邊形模型生成單元106所執(zhí)行的過程。在該過程中,依次讀取輪廓信息和坐標(biāo)從而輸出三角形區(qū)域。
首先,讀取輪廓數(shù)據(jù)的開始碼,讀取開始坐標(biāo)并將其設(shè)置為Pa(步驟S801)。接下來,讀取下一個(gè)碼(步驟S802)。確定所述下一個(gè)碼是否是表示線段輪廓的線段碼(步驟S803)。如果其是線段碼,則讀取連續(xù)定義的坐標(biāo)并將其設(shè)置為Pb,由此線段PaPb被記錄為線性部分的輪廓(步驟S804)。此后,用Pb代替Pa(步驟S805),程序返回到步驟S802。如果在步驟S803確定所述下一個(gè)碼不是線段碼,則確定所述下一個(gè)碼是否是二次貝塞爾碼(步驟S806)。如果所述下一個(gè)碼是二次貝塞爾碼,則將聯(lián)系定義的兩對(duì)坐標(biāo)設(shè)置為Pb和Pc(步驟S807)。計(jì)算矢量PbPa和PcPa的外積(Pb-Pa)×(Pc-Pa)(步驟S808)。如果該外積是正值,則將線段PaPc記錄為另一個(gè)線性部分的輪廓,并且將三角形PaPbPc作為凸貝塞爾區(qū)域添加到附帶曲線—參數(shù)的多邊形模型數(shù)據(jù)中(步驟S809)。其后,用Pc代替Pa(步驟S811),程序返回到步驟S802。
如果在步驟S808確定外積是負(fù)值,則將線段PaPb記錄為線性部分的輪廓,然后將線段PbPc記錄為另一個(gè)線性部分的輪廓,并且將三角形PaPbPc作為凹貝塞爾區(qū)域添加到附帶曲線—參數(shù)的多邊形模型數(shù)據(jù)中(步驟S810)。其后,用Pc代替Pa(步驟S811),程序返回步驟S802。
如果在步驟S806讀取的碼不是二次貝塞爾曲線碼,則確定其為輪廓結(jié)束碼,從而從記錄為線性輪廓的輪廓內(nèi)部提取三角形,并將所提取的三角形設(shè)置為三角形區(qū)域,并將其添加到附帶曲線—參數(shù)的多邊形模型數(shù)據(jù)中(步驟S812)。
附帶曲線—參數(shù)的多邊形模型渲染單元107填充在由附帶曲線—參數(shù)的多邊形模型生成單元106所輸出的附帶曲線—參數(shù)的多邊形模型數(shù)據(jù)中包含的部分三角形區(qū)域的內(nèi)部。具體地,如圖9所示,填充在附帶曲線—參數(shù)的多邊形模型數(shù)據(jù)中包括的、被記錄為凸貝塞爾區(qū)域和凹貝塞爾區(qū)域的那些區(qū)域。
例如,附帶曲線—參數(shù)的多邊形模型渲染單元107向像素渲染器輸入圖9所示的紋理坐標(biāo)P4、P5和P6,從而獲得二次貝塞爾曲線。
注意,附帶曲線—參數(shù)的多邊形模型生成單元106和附帶曲線—參數(shù)的多邊形模型渲染單元107采用在Proc.of ACMSIGGRAPH2005的1000-1009頁中的C.Loop和J.Blinn的“ResolutionIndependent Curve Rendering using Programmable Graphics Hardware”中所公開的方法執(zhí)行處理。
<用于明確指定所選擇的渲染方法的方法>
圖1所示的裝置能夠使用形狀特征量計(jì)算單元102和渲染方法選擇單元103,來根據(jù)矢量圖形數(shù)據(jù)的形狀和渲染尺寸,自動(dòng)地切換兩種渲染方法。然而,還可以使用一種設(shè)備(未示出),該設(shè)備從該裝置的外部明確地指定應(yīng)當(dāng)使用兩種渲染方法中的哪一個(gè)。
例如,根據(jù)特定圖形形狀是顯示為近景還是遠(yuǎn)景,可以從外部向該裝置輸入指定適當(dāng)渲染方法的信息。也就是說,如果特定矢量圖形形狀顯示為近景,則采用在附帶曲線—參數(shù)的多邊形模型生成單元106和附帶曲線—參數(shù)的模型渲染單元107中所使用的渲染方法。反之,如果特定矢量圖形形狀顯示為遠(yuǎn)景,則采用在位圖紋理生成單元104和位圖紋理渲染單元105中所使用的渲染方法。
此外,可以采用一種根據(jù)矢量圖形數(shù)據(jù)的顯示位置與鼠標(biāo)的顯示位置之間的距離來切換渲染方法的方法。鼠標(biāo)的顯示位置是由,例如,用戶來操作的。
<計(jì)算矢量圖形數(shù)據(jù)的特征量的方法>
由于矢量圖形數(shù)據(jù)具有由封閉曲線的輪廓所定義的形狀,因此形成輪廓的輪廓圖元的數(shù)量、輪廓的長(zhǎng)度、頂點(diǎn)的數(shù)量和線段的數(shù)量等等以及直線與輪廓之間的交叉點(diǎn)數(shù)量可以用作特征量。形狀特征量計(jì)算單元102和渲染方法選擇單元103的處理內(nèi)容會(huì)根據(jù)所使用的特征量而改變。
<本實(shí)施例的優(yōu)點(diǎn)>
在本實(shí)施例中,預(yù)先獲得要渲染對(duì)象的形狀的復(fù)雜度作為特征量。當(dāng)采用很少數(shù)量的像素渲染在幀存儲(chǔ)器中渲染的圖像時(shí),顯示通過在具有足夠存儲(chǔ)能力的幀存儲(chǔ)器中渲染矢量圖形而得到的位圖紋理(使用單元104和105),這代替了在Proc.of ACM SIGGRAPH20051000-1999頁的C.Loop和J.Blinn的“Resolution Independent CurveRendering using Programmable Graphics Hardware”中公開的方法。這能夠避免在一個(gè)像素中渲染多邊形的輪廓從而產(chǎn)生難以辨認(rèn)的符號(hào)的問題。
此外,在Proc.of ACM SIGGRAPH2005 1000-1999頁的C.Loop和J.Blinn的“Resolution Independent Curve Rendering usingProgrammable Graphics Hardware”中公開的渲染方法需要極大數(shù)量的多邊形用于渲染,因此成本大于利用紋理的渲染方法,盡管該方法能夠提供較高質(zhì)量的顯示。因此,如果使用前一種方法僅用于要高質(zhì)量地顯示的形狀,則能夠減少顯示極大數(shù)量的矢量圖形形狀的處理成本,同時(shí)不會(huì)降低顯示質(zhì)量,從而改善交互性。
(第二實(shí)施例)根據(jù)第二實(shí)施例的圖像渲染裝置包括形狀數(shù)據(jù)生成裝置和與其分離的圖像數(shù)據(jù)輸出裝置。形狀數(shù)據(jù)生成裝置接收矢量圖形形狀數(shù)據(jù),并在渲染該矢量圖形形狀數(shù)據(jù)之前輸出結(jié)構(gòu)化的矢量圖形形狀數(shù)據(jù)。圖像數(shù)據(jù)輸出裝置接收所輸出的結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù)和渲染參數(shù),并輸出作為結(jié)構(gòu)圖形形狀渲染結(jié)果的圖像數(shù)據(jù)。
下面將參照?qǐng)D10、圖11和圖12描述第二實(shí)施例中使用的形狀數(shù)據(jù)生成裝置。
形狀數(shù)據(jù)生成裝置包括輸入單元101、形狀特征量計(jì)算單元102、位圖紋理生成單元104、附帶曲線—參數(shù)的多邊形模型生成單元106和輸出單元1001。在下面的描述中,與上述元件類似的元件用相應(yīng)的附圖標(biāo)記來標(biāo)識(shí),而且不對(duì)其進(jìn)行詳細(xì)描述。
輸出單元1001接收形狀特征量計(jì)算單元102所計(jì)算的形狀特征量,位圖紋理生成單元104所生成的位圖紋理數(shù)據(jù)和附帶曲線—參數(shù)的多邊形模型生成單元106所生成的附帶曲線—參數(shù)的多邊形模型,并輸出如圖11所示的結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù)。
當(dāng)如圖12所示在一個(gè)幀中存在多個(gè)矢量圖形對(duì)象時(shí),輸出單元1001輸出與各個(gè)矢量圖形對(duì)象相關(guān)的結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù)。在該情況下,形狀特征量計(jì)算單元102計(jì)算與各個(gè)矢量圖形對(duì)象相對(duì)應(yīng)的形狀特征量。
下面將參照?qǐng)D13描述第二實(shí)施例中使用的圖像數(shù)據(jù)輸出裝置。圖像數(shù)據(jù)輸出裝置接收?qǐng)D11中定義的結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù),并輸出作為矢量圖形渲染結(jié)果的圖像數(shù)據(jù)。
第二實(shí)施例的圖像數(shù)據(jù)輸出裝置包括輸入單元1301、渲染方法選擇單元103、位圖紋理渲染單元105、附帶曲線—參數(shù)的多邊形模型渲染單元107和呈現(xiàn)單元108。
輸入單元1301接收結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù),并將與該數(shù)據(jù)相對(duì)應(yīng)的形狀特征量傳送到渲染方法選擇單元103?;阡秩痉椒ㄟx擇單元103的確定結(jié)果,將位圖紋理數(shù)據(jù)傳送到位圖紋理渲染單元105,或者將附帶曲線—參數(shù)的多邊形模型數(shù)據(jù)傳送到附帶曲線—參數(shù)的多邊形模型數(shù)據(jù)渲染單元107。
當(dāng)將單個(gè)矢量圖形形狀定義為圖12所示的多個(gè)結(jié)構(gòu)化矢量圖形數(shù)據(jù)項(xiàng)時(shí),對(duì)于不同的組成區(qū)域,可以選擇不同的渲染單元(105、107)。
在每秒顯示幾幀乃至幾十幀圖像的交互式系統(tǒng)中,存在這樣的情況即想要將其中預(yù)先定義模型形狀的預(yù)處理,從其中顯示所定義的模型形狀的渲染過程中分離出來。第二實(shí)施例針對(duì)將第一實(shí)施例實(shí)現(xiàn)為交互式系統(tǒng)的情況,其中所述預(yù)處理和渲染過程相互分離。
(第三實(shí)施例)下面將參照?qǐng)D14描述根據(jù)第三實(shí)施例的渲染裝置。例如,第三實(shí)施例針對(duì)一種裝置,該裝置接收文本字符串,并且輸出表示對(duì)與該文本字符串相對(duì)應(yīng)的輪廓字體的渲染結(jié)果的圖像數(shù)據(jù)。
第三實(shí)施例的渲染裝置包括輸入單元1401、輪廓字體數(shù)據(jù)庫1402、矢量圖形形狀生成單元1403、形狀特征量計(jì)算單元102、渲染方法選擇單元103、位圖紋理生成單元104、位圖紋理渲染單元105、附帶曲線—參數(shù)的多邊形模型生成單元106、附帶曲線—參數(shù)的多邊形模型渲染單元107和呈現(xiàn)單元108。
輸入單元1401接收文本字符串,而且將該字符串中包括的字符逐個(gè)地傳送到矢量圖形形狀生成單元1403。
輪廓字體數(shù)據(jù)庫1402使用字符碼作為自變量(argument),輸出每個(gè)輪廓字體的形狀數(shù)據(jù)。
矢量圖形形狀生成單元1403生成與在文本字符串中包括的各個(gè)字符相對(duì)應(yīng)的輪廓字體的形狀數(shù)據(jù)。
下面將參照?qǐng)D15描述圖14所示的矢量圖形形狀生成單元1403的運(yùn)行實(shí)例。圖15示出了矢量圖形形狀生成單元1403所執(zhí)行的過程。在該過程中,從輸入單元1401所輸入的文本字符串中生成輪廓字體矢量圖形形狀數(shù)據(jù)。
首先,用來自上一級(jí)單元的文本數(shù)據(jù)字符串代替隊(duì)列Q(步驟S1501)。接下來,初始化矢量圖形形狀數(shù)據(jù)的存儲(chǔ)區(qū)域V(步驟S1502)。在步驟S1503確定隊(duì)列Q中是否存在一個(gè)或多個(gè)字符。如果存在一個(gè)或多個(gè)字符,則提取出第一個(gè)字符并用其代替變量C(步驟S1504)。此后,從輪廓字體數(shù)據(jù)庫1402讀取與變量C的字符碼相對(duì)應(yīng)的輪廓字體數(shù)據(jù),并且將其添加到存儲(chǔ)區(qū)域V,隨后程序返回到步驟S1503(步驟S1505)。如果在步驟S1503確定隊(duì)列Q中沒有字符,則將存儲(chǔ)區(qū)域V中的內(nèi)容輸出到下一級(jí)單元(位圖紋理生成單元104、附帶曲線—參數(shù)的多邊形模型生成單元106)(步驟S1506)。
<第三實(shí)施例的優(yōu)點(diǎn)>
由于輪廓字體也是矢量圖形形狀,因此對(duì)于字符渲染,第三實(shí)施例也能夠使用在第一實(shí)施例中所使用的渲染方法選擇單元。
(第四實(shí)施例)
第四實(shí)施例針對(duì)一種形狀數(shù)據(jù)生成裝置,該裝置用于接收文本字符串,并且在渲染與該文本字符串相對(duì)應(yīng)的輪廓字體形狀之前,輸出圖11中所定義的結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù)。
如圖16所示,第四實(shí)施例的形狀數(shù)據(jù)生成裝置包括輸入單元1401、輪廓字體數(shù)據(jù)庫1402、矢量圖形形狀生成單元1403、形狀特征量計(jì)算單元102、位圖紋理生成單元104、附帶曲線—參數(shù)的多邊形模型生成單元106和輸出單元1001。
第四實(shí)施例所執(zhí)行的過程對(duì)應(yīng)于當(dāng)將第三實(shí)施例實(shí)現(xiàn)為交互式系統(tǒng)時(shí)所執(zhí)行的預(yù)處理。
(第五實(shí)施例)第五實(shí)施例針對(duì)一種形狀數(shù)據(jù)生成裝置,該裝置用于接收文本字符串或字符碼,并輸出結(jié)構(gòu)化字體形狀數(shù)據(jù)。
如圖17所示,第五實(shí)施例的形狀數(shù)據(jù)生成裝置包括輸入單元1401、輪廓字體數(shù)據(jù)庫1402、矢量圖形形狀生成單元1403、形狀特征量計(jì)算單元102、位圖紋理生成單元104、附帶曲線—參數(shù)的多邊形模型生成單元106和輸出單元1701。第五實(shí)施例是通過用輸出單元1701代替第四實(shí)施例的輸出單元1001而得到的。
輸出單元1701輸出結(jié)構(gòu)化字體形狀數(shù)據(jù)。如圖18所示,結(jié)構(gòu)化字體形狀數(shù)據(jù)包括結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù)(圖11)和對(duì)其添加的字體字符串信息(文本字符串或字符碼)。
<第五實(shí)施例的優(yōu)點(diǎn)>
由于在第五實(shí)施例中,每個(gè)輪廓字體不是定義為單個(gè)矢量圖形形狀,而是定義為與文檔中的字符串、句子或段落的完整部分或者表格中的單元(這些都能夠被存儲(chǔ)為一個(gè)數(shù)據(jù)項(xiàng))相對(duì)應(yīng)的結(jié)構(gòu)化字體形狀數(shù)據(jù)。例如,電子程序表格中包括的單個(gè)程序信息字符串能夠被定義為一個(gè)數(shù)據(jù)項(xiàng)。
(第六實(shí)施例)第六實(shí)施例針對(duì)一種渲染裝置,該裝置用于接收文本字符串或字符碼,并顯示字符形狀。提供該渲染裝置用于渲染第五實(shí)施例所輸出的數(shù)據(jù),下面將參照?qǐng)D19對(duì)其進(jìn)行描述。
如圖19所示,第六實(shí)施例的渲染裝置包括輸入單元1401、結(jié)構(gòu)化字體形狀數(shù)據(jù)庫1901、形狀特征量輸出單元1902、位圖紋理輸出單元1903、附帶曲線—參數(shù)的多邊形模型輸出單元1904、位圖紋理渲染單元105、附帶曲線—參數(shù)的多邊形模型渲染單元107和呈現(xiàn)單元108。
結(jié)構(gòu)化字體形狀數(shù)據(jù)庫1901存儲(chǔ)結(jié)構(gòu)化字體形狀數(shù)據(jù),并使用指定文本字符串或字符碼作為自變量,輸出在與該文本字符串或字符碼相對(duì)應(yīng)的結(jié)構(gòu)化矢量圖形形狀數(shù)據(jù)中所包括的形狀特征量、位圖紋理數(shù)據(jù)或附帶曲線—參數(shù)的多邊形模型。
形狀特征量讀取單元1902接收由輸入單元1401輸入到結(jié)構(gòu)化字體形狀數(shù)據(jù)庫1901的文本字符串或字符碼作為自變量,并讀取與該自變量相對(duì)應(yīng)的形狀特征量。
位圖紋理讀取單元1903接收由輸入單元1401輸入到結(jié)構(gòu)化字體形狀數(shù)據(jù)庫1901的文本字符串或字符碼作為自變量,并讀取與該自變量相對(duì)應(yīng)的位圖紋理數(shù)據(jù)。
附帶曲線—參數(shù)的多邊形模型讀取單元1904接收由輸入單元1401輸入到結(jié)構(gòu)化字體形狀數(shù)據(jù)庫1901的文本字符串或字符碼作為自變量,并讀取與該自變量相對(duì)應(yīng)的附帶曲線—參數(shù)的多邊形模型。
<第六實(shí)施例的優(yōu)點(diǎn)>
在第六實(shí)施例中,在第五實(shí)施例的形狀數(shù)據(jù)生成與在電子程序表格中包括的每個(gè)程序信息字符串相對(duì)應(yīng)的結(jié)構(gòu)化字體形狀數(shù)據(jù)并且將所生成的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中之后,從數(shù)據(jù)庫中讀出顯示所必需的程序信息并進(jìn)行顯示。
(第七實(shí)施例)第七實(shí)施例的渲染裝置是通過使用字符特征量計(jì)算單元2001來代替在第三實(shí)施例中的用于計(jì)算形狀特征量的形狀特征量計(jì)算單元102和使用該形狀特征量的渲染方法選擇單元103而得到的,其中,字符特征量計(jì)算單元2001使用字符自身的特征量。由于輪廓字體與各個(gè)字符相關(guān),因此每個(gè)字符的筆劃數(shù)都可以用作形狀特征量,從而替代圖4所示的在直線與輪廓之間的交叉點(diǎn)數(shù)量。
下面將參照?qǐng)D20描述根據(jù)第七實(shí)施例的渲染裝置。
如所示,該渲染裝置包括輸入單元1401、輪廓字體數(shù)據(jù)庫1402、矢量圖形形狀生成單元1403、字符特征量計(jì)算單元2001、字符信息數(shù)據(jù)庫2002、渲染方法選擇單元2003、位圖紋理生成單元104、位圖紋理渲染單元105、附帶曲線—參數(shù)的多邊形模型生成單元106、附帶曲線—參數(shù)的多邊形模型渲染單元107和呈現(xiàn)單元108。
字符特征量計(jì)算單元2001計(jì)算輸入單元1001所輸入的文本字符串的筆劃數(shù)。
字符信息數(shù)據(jù)庫2002使用與字符相對(duì)應(yīng)的字符碼作為自變量,輸出該字符的筆劃數(shù)。
渲染方法選擇單元2003接收為筆劃數(shù)設(shè)置的并作為渲染參數(shù)的閾值,用該閾值與每個(gè)字符特征量進(jìn)行比較,以選擇渲染單元。
<第七實(shí)施例的優(yōu)點(diǎn)>
在第七實(shí)施例中,不計(jì)算與字符的真實(shí)形狀相關(guān)的形狀特征量,而是利用了與字符相對(duì)應(yīng)的相應(yīng)筆劃數(shù),從而省略了計(jì)算形狀特征量的過程。
在第七實(shí)施例中,當(dāng)獲得每個(gè)要渲染的對(duì)象的形狀的復(fù)雜度作為形狀特征量并且用很小數(shù)量的像素在幀存儲(chǔ)器中渲染該對(duì)象時(shí),使用紋理渲染方法來代替多邊形模型渲染方法,所述紋理渲染方法用于顯示通過在具有足夠容量的幀存儲(chǔ)器中渲染矢量圖形形狀而預(yù)先生成的位圖紋理。這能夠克服這樣的難題即在一個(gè)像素中渲染多個(gè)多邊形的輪廓從而產(chǎn)生難以辨認(rèn)的字符。
而且,多邊形模型渲染方法需要極大數(shù)量的多邊形用于渲染,因此其成本比紋理渲染方法高,雖然多邊形模型渲染方法能夠提供較高質(zhì)量的顯示。因此,如果僅對(duì)于需要高質(zhì)量顯示的特定形狀采用多邊形模型渲染方法,則能夠減少顯示極大數(shù)量的矢量圖形形狀的成本,從而提高交互性。
因此,能夠渲染清晰的圖像,同時(shí)減少了渲染所必需的多邊形的數(shù)量。
權(quán)利要求
1.一種渲染裝置,包括形狀數(shù)據(jù)輸入單元,配置為輸入矢量圖形數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;獲取單元,配置為獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);像素?cái)?shù)量計(jì)算單元,配置為基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;第一轉(zhuǎn)換單元,配置為當(dāng)所述像素?cái)?shù)量小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第一渲染單元,配置為渲染所述位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為當(dāng)所述像素?cái)?shù)量不小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);第二渲染單元,配置為渲染所述多邊形模型數(shù)據(jù);選擇單元,配置為根據(jù)所述輸入的矢量圖形數(shù)據(jù),通過比較所述像素?cái)?shù)量和所述形狀特征量,在所述第一轉(zhuǎn)換單元和所述第二轉(zhuǎn)換單元中選擇一個(gè),并且在所述第一渲染單元和所述第二渲染單元中選擇一個(gè);以及呈現(xiàn)單元,配置為呈現(xiàn)在所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
2.一種形狀數(shù)據(jù)生成裝置,包括形狀數(shù)據(jù)輸入單元,配置為輸入矢量圖形數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;第一轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);以及生成單元,配置為通過將所述形狀特征量、所述位圖紋理數(shù)據(jù)和所述多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化形狀數(shù)據(jù)。
3.如權(quán)利要求2所述的裝置,還包括獲取單元,配置為獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);像素?cái)?shù)量計(jì)算單元,配置為基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;第一渲染單元,配置為當(dāng)所述像素?cái)?shù)量小于所述形狀特征量時(shí),渲染所述位圖紋理數(shù)據(jù);第二渲染單元,配置為當(dāng)所述像素?cái)?shù)量不小于所述形狀特征量時(shí),渲染所述多邊形模型數(shù)據(jù);選擇單元,配置為根據(jù)所述輸入的矢量圖形數(shù)據(jù),通過比較所述像素?cái)?shù)量和所述形狀特征量,在所述第一轉(zhuǎn)換單元和所述第二轉(zhuǎn)換單元中選擇一個(gè),并且在所述第一渲染單元和所述第二渲染單元中選擇一個(gè);以及呈現(xiàn)單元,配置為呈現(xiàn)在所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
4.一種渲染裝置,包括字符串輸入單元,配置為輸入文本字符串;存儲(chǔ)單元,配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼數(shù)據(jù)和輪廓字體數(shù)據(jù);形狀數(shù)據(jù)生成單元,配置為訪問所述存儲(chǔ)單元,生成矢量圖形數(shù)據(jù)作為與所述文本字符串相對(duì)應(yīng)的輪廓字體數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;獲取單元,配置為獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);像素?cái)?shù)量計(jì)算單元,配置為基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;第一轉(zhuǎn)換單元,配置為當(dāng)所述像素?cái)?shù)量小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第一渲染單元,配置為渲染所述位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為當(dāng)所述像素?cái)?shù)量不小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);第二渲染單元,配置為渲染所述多邊形模型數(shù)據(jù);選擇單元,配置為根據(jù)所述矢量圖形數(shù)據(jù),通過比較所述像素?cái)?shù)量和所述形狀特征量,在所述第一轉(zhuǎn)換單元和所述第二轉(zhuǎn)換單元中選擇一個(gè),并且在所述第一渲染單元和所述第二渲染單元中選擇一個(gè);以及呈現(xiàn)單元,配置為呈現(xiàn)在所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
5.一種形狀數(shù)據(jù)生成裝置,包括字符串輸入單元,配置為輸入文本字符串;存儲(chǔ)單元,配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼數(shù)據(jù)和輪廓字體數(shù)據(jù);形狀數(shù)據(jù)生成單元,配置為訪問所述存儲(chǔ)單元,生成矢量圖形數(shù)據(jù)作為與所述文本字符碼串相對(duì)應(yīng)的輪廓字體數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;第一轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);以及生成單元,配置為通過將所述形狀特征量、所述位圖紋理數(shù)據(jù)和所述多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化形狀數(shù)據(jù)。
6.一種形狀數(shù)據(jù)生成裝置,包括字符碼輸入單元,配置為輸入字符碼;存儲(chǔ)單元,配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼和輪廓字體數(shù)據(jù)項(xiàng);形狀數(shù)據(jù)生成單元,配置為訪問所述存儲(chǔ)單元,生成矢量圖形數(shù)據(jù)作為與所述輸入字符碼相對(duì)應(yīng)的輪廓字體數(shù)據(jù);特征量計(jì)算單元,配置為計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;第一轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,配置為將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);以及結(jié)構(gòu)化字體形狀數(shù)據(jù)生成單元,配置為通過將所述輸入字符碼、所述形狀特征量、所述位圖紋理數(shù)據(jù)和所述多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化字體形狀數(shù)據(jù)。
7.如權(quán)利要求6所述的裝置,還包括結(jié)構(gòu)化字體存儲(chǔ)單元,配置為只要輸入了字符碼,就存儲(chǔ)由所述結(jié)構(gòu)化字體形狀數(shù)據(jù)生成單元所生成的結(jié)構(gòu)化字體形狀數(shù)據(jù);特征量獲取單元,配置為訪問所述結(jié)構(gòu)化字體存儲(chǔ)單元,獲得與所述輸入字符碼相對(duì)應(yīng)的形狀的形狀特征量;渲染參數(shù)獲取單元,配置為獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);像素?cái)?shù)量計(jì)算單元,配置為基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;位圖紋理獲取單元,配置為當(dāng)所述像素?cái)?shù)量小于所述形狀特征量時(shí),訪問所述結(jié)構(gòu)化字體存儲(chǔ)單元,獲取與所述輸入字符碼相對(duì)應(yīng)的位圖紋理數(shù)據(jù);第一渲染單元,配置為渲染所述位圖紋理數(shù)據(jù);多邊形模型獲取單元,配置為當(dāng)所述像素?cái)?shù)量不小于所述形狀特征量時(shí),訪問所述結(jié)構(gòu)化字體存儲(chǔ)單元,獲取附帶曲線-參數(shù)的多邊形模型數(shù)據(jù),所述多邊形模型數(shù)據(jù)對(duì)應(yīng)于所述輸入字符碼;第二渲染單元,配置為渲染所述多邊形模型數(shù)據(jù);選擇單元,配置為根據(jù)所述矢量圖形數(shù)據(jù),通過比較所述像素?cái)?shù)量和所述形狀特征量,在所述第一轉(zhuǎn)換單元和所述第二轉(zhuǎn)換單元中選擇一個(gè),并且在所述第一渲染單元和所述第二渲染單元中選擇一個(gè);以及呈現(xiàn)單元,配置為呈現(xiàn)所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中的一個(gè)。
8.一種渲染方法,包括輸入矢量圖形數(shù)據(jù);計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;準(zhǔn)備第一轉(zhuǎn)換單元,所述第一轉(zhuǎn)換單元配置為當(dāng)所述像素?cái)?shù)量小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);準(zhǔn)備第一渲染單元,所述第一渲染單元配置為渲染所述位圖紋理數(shù)據(jù);準(zhǔn)備第二轉(zhuǎn)換單元,所述第二轉(zhuǎn)換單元配置為當(dāng)所述像素?cái)?shù)量不小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線一參數(shù)的多邊形模型數(shù)據(jù);準(zhǔn)備第二渲染單元,所述第二渲染單元配置為渲染所述多邊形模型數(shù)據(jù);根據(jù)所述輸入矢量圖形數(shù)據(jù),通過比較所述像素?cái)?shù)量和所述形狀特征量,在所述第一轉(zhuǎn)換單元和所述第二轉(zhuǎn)換單元中選擇一個(gè),并且在所述第一渲染單元和所述第二渲染單元中選擇一個(gè);以及呈現(xiàn)在所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
9.一種形狀數(shù)據(jù)生成方法,包括輸入矢量圖形數(shù)據(jù);計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);以及通過將所述形狀特征量、所述位圖紋理數(shù)據(jù)和所述多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化形狀數(shù)據(jù)。
10.一種渲染方法,包括輸入文本字符串;準(zhǔn)備存儲(chǔ)單元,所述存儲(chǔ)單元配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼數(shù)據(jù)和輪廓字體數(shù)據(jù);訪問所述存儲(chǔ)單元,生成矢量圖形數(shù)據(jù)作為與所述文本字符串相對(duì)應(yīng)的輪廓字體數(shù)據(jù);計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;獲取所述形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為多個(gè)渲染參數(shù);基于所述渲染參數(shù),計(jì)算在所述形狀的渲染區(qū)域中包括的像素?cái)?shù)量;準(zhǔn)備第一轉(zhuǎn)換單元,所述第一轉(zhuǎn)換單元配置為當(dāng)所述像素?cái)?shù)量小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);準(zhǔn)備第一渲染單元,所述第一渲染單元配置為渲染所述位圖紋理數(shù)據(jù);準(zhǔn)備第二轉(zhuǎn)換單元,所述第二轉(zhuǎn)換單元配置為當(dāng)所述像素?cái)?shù)量不小于所述形狀特征量時(shí),將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);準(zhǔn)備第二渲染單元,所述第二渲染單元配置為渲染所述多邊形模型數(shù)據(jù);根據(jù)所述矢量圖形數(shù)據(jù),通過比較所述像素?cái)?shù)量和所述形狀特征量,在所述第一轉(zhuǎn)換單元和所述第二轉(zhuǎn)換單元中選擇一個(gè),并且在所述第一渲染單元和所述第二渲染單元中選擇一個(gè);以及呈現(xiàn)所渲染的位圖紋理數(shù)據(jù)和所渲染的多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
11.一種形狀數(shù)據(jù)生成方法,包括輸入字符串?dāng)?shù)據(jù);準(zhǔn)備存儲(chǔ)單元,所述存儲(chǔ)單元配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼數(shù)據(jù)和輪廓字體數(shù)據(jù);訪問所述存儲(chǔ)單元,生成矢量圖形數(shù)據(jù)作為與所述文本字符碼串相對(duì)應(yīng)的輪廓字體數(shù)據(jù);計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);以及通過將所述形狀特征量、所述位圖紋理數(shù)據(jù)和所述多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化形狀數(shù)據(jù)。
12.一種形狀數(shù)據(jù)生成方法,包括輸入字符碼;準(zhǔn)備存儲(chǔ)單元,所述存儲(chǔ)單元配置為存儲(chǔ)相互關(guān)聯(lián)的字符碼和輪廓字體數(shù)據(jù)項(xiàng);訪問所述存儲(chǔ)單元,生成矢量圖形數(shù)據(jù)作為與所述輸入字符碼相對(duì)應(yīng)的輪廓字體數(shù)據(jù);計(jì)算與所述矢量圖形數(shù)據(jù)相關(guān)的形狀特征量,所述形狀特征量表示由所述矢量圖形數(shù)據(jù)所代表的形狀的復(fù)雜度,或表示由所述矢量圖形數(shù)據(jù)的形狀所代表的字符的復(fù)雜度;將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);將所述矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);以及通過將所述輸入字符碼、所述形狀特征量、所述位圖紋理數(shù)據(jù)和所述多邊形模型數(shù)據(jù)構(gòu)成一個(gè)組來生成結(jié)構(gòu)化字體形狀數(shù)據(jù)。
全文摘要
圖像渲染裝置和方法,以及形狀數(shù)據(jù)生成裝置和方法。渲染裝置包括輸入單元,輸入矢量圖形數(shù)據(jù);計(jì)算單元,計(jì)算與矢量圖形數(shù)據(jù)相關(guān)的形狀特征量;獲取單元,獲取形狀在屏幕上的位置和用于表示到所述位置的仿射變換的矩陣作為渲染參數(shù);第一轉(zhuǎn)換單元,當(dāng)像素?cái)?shù)量小于形狀特征量時(shí),將矢量圖形數(shù)據(jù)轉(zhuǎn)換成位圖紋理數(shù)據(jù);第一渲染單元,渲染位圖紋理數(shù)據(jù);第二轉(zhuǎn)換單元,當(dāng)像素?cái)?shù)量不小于形狀特征量時(shí),將矢量圖形數(shù)據(jù)轉(zhuǎn)換成附帶曲線-參數(shù)的多邊形模型數(shù)據(jù);第二渲染單元,渲染多邊形模型數(shù)據(jù);選擇單元,通過比較像素?cái)?shù)量和形狀特征量,在第一轉(zhuǎn)換單元和第二轉(zhuǎn)換單元中選擇一個(gè),在第一渲染單元和第二渲染單元中選擇一個(gè);以及呈現(xiàn)單元,呈現(xiàn)渲染位圖紋理數(shù)據(jù)和渲染多邊形模型數(shù)據(jù)中所選擇的一個(gè)。
文檔編號(hào)G06T11/00GK101046888SQ200710086240
公開日2007年10月3日 申請(qǐng)日期2007年3月9日 優(yōu)先權(quán)日2006年3月30日
發(fā)明者杉田馨, 三原功雄 申請(qǐng)人:株式會(huì)社東芝