国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用可程式化遮光器的反圖形失真線像素覆蓋計算的制作方法

      文檔序號:6429379閱讀:178來源:國知局
      專利名稱:使用可程式化遮光器的反圖形失真線像素覆蓋計算的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種電腦繪圖技術(shù),特別是涉及一種可從一個有限解析度的輸出裝置中,降低或最小化圖形失真效應(yīng)的直線繪制技術(shù)的使用可程式化遮光器的反圖形失真線像素覆蓋計算。
      背景技術(shù)
      直線繪制(drawing lines)是電腦繪圖系統(tǒng)(computer graphicssystems)的一種基本動作。一般而言,這些電腦繪圖系統(tǒng)會使用顯示器(displays)來展示物件,且顯示器會具有決定顯示解析度(resolution)的有限個數(shù)的圖形元件,也就是像素(pixels)。然而,因為顯示器的每一像素,事實上是為用來繪制直線的一個空間取樣點(spatial samplingpoint),所以顯示器的有限解析度,會對直線繪制造成影響。已知當(dāng)存在于包括一直線的即將顯示的物件中的空間頻率(spatial frequency)的取樣點太少時,會造成顯示器的有限解析度,可能會以低品質(zhì)展示,錯誤展示,或是完全遺漏展示物件。這種現(xiàn)象稱為圖形失真(aliasing),而且不只會發(fā)生在空間取樣物件上,也會發(fā)生在時間取樣事件(events)上。
      當(dāng)在一個電腦繪圖顯示器上繪制直線時,圖形失真的結(jié)果會是在某些直線,一般會在特定角度的直線,而非水平或垂直的直線的邊緣(edges)產(chǎn)生鋸齒(ragged)。這種在直線上出現(xiàn)的鋸齒,會造成使用者不悅,并且使在顯示器或有限解析度的列印裝置上的著色變得更加困難,且更細(xì)的線會使影像更加惡化。增加圖形顯示螢?zāi)换蚱渌敵鲅b置的解析度,可減輕此問題。然而,所增加的像素個數(shù),卻需較長的處理時間,以及較大的記憶體來儲存像素。因此,需要在各種反圖形失真技術(shù),例如在前過濾處理(pre-filtering)、強(qiáng)力取樣(supersampling)、以及后過濾處理(post-filtering)的各種技術(shù)中,找到一種可降低或消除在直線外觀所發(fā)生的扭曲現(xiàn)象的方法。
      前過濾處理包括使用一個非零厚度線(non-zero thickness line),計算一個像素的部分覆蓋面積(fractional coverage);以及使用該分部(faction),決定像素強(qiáng)度(pixel intensity)應(yīng)該為何。為決定一個像素的部分覆蓋面積,用來繪制直線的法則(algorithm),必須決定包含在要在螢?zāi)簧现?rendering)的直線的像素。
      用來決定一像素是否應(yīng)包含在所要著色的一直線的其中一種方法,是將一像素當(dāng)成具有一中心點的一個具單位大小(unit-size)的長方形,并且決定該中心點是否位于該直線的邊界之內(nèi)。圖1是根據(jù)這種像素-中心規(guī)則(pixel-center rule),包含在所繪制的一直線片段(line segment)10中的復(fù)數(shù)個像素(pixels)12-54。如圖1所示,包含在直線片段10中的像素12-54,會讓直線片段產(chǎn)生鋸齒。因此需要一種方法,以在不增加輸出裝置的像素個數(shù)的前提之下,改善這種直線片段的外貌(appearance)。
      由此可見,上述現(xiàn)有的反圖形失真線像素覆蓋計算在方法與使用上,顯然仍存在有不便與缺陷,而亟待加以進(jìn)一步改進(jìn)。為了解決反圖形失真線像素覆蓋計算存在的問題,相關(guān)廠商莫不費盡心思來謀求解決之道,但長久以來一直未見適用的設(shè)計被發(fā)展完成,而一般方法又沒有適切的方法能夠解決上述問題,此顯然是相關(guān)業(yè)者急欲解決的問題。
      有鑒于上述現(xiàn)有的反圖形失真線像素覆蓋計算存在的缺陷,本發(fā)明人基于從事此類產(chǎn)品設(shè)計制造多年豐富的實務(wù)經(jīng)驗及專業(yè)知識,并配合學(xué)理的運用,積極加以研究創(chuàng)新,以期創(chuàng)設(shè)一種新的使用可程式化遮光器的反圖形失真線像素覆蓋計算,能夠改進(jìn)一般現(xiàn)有的反圖形失真線像素覆蓋計算,使其更具有實用性。經(jīng)過不斷的研究、設(shè)計,并經(jīng)反復(fù)試作及改進(jìn)后,終于創(chuàng)設(shè)出確具實用價值的本發(fā)明。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于,克服現(xiàn)有的反圖形失真線像素覆蓋計算存在的缺陷,而提供一種新的使用可程式化遮光器的反圖形失真線像素覆蓋計算,所要解決的技術(shù)問題是使其可以降低或最小化直線片段的圖形失真,而在輸出裝置上,表現(xiàn)出更精確及更好的直線,從而更加適于實用。
      本發(fā)明的另一目的在于,提供一種使用可程式化遮光器的反圖形失真線像素覆蓋計算,所要解決的技術(shù)問題是使其可降低執(zhí)行本發(fā)明的反圖形失真動作所需的計算成本,從而更加適于實用。
      本發(fā)明的目的及解決其技術(shù)問題是采用以下技術(shù)方案來實現(xiàn)的。依據(jù)本發(fā)明提出的一種用來在一電腦繪圖系統(tǒng)的一有限像素的輸出裝置上著色一非零厚度線片段的降低圖形失真的方法,其包括以下步驟延伸該直線片段的一邊緣,使其原接觸,但并不覆蓋將在該輸出裝置上著色的該直線片段的一像素中心點,以使得該延伸直線片段,可覆蓋所接觸的該像素的該中心點;使用該些像素中心點,決定該些像素是否應(yīng)包含在該延伸直線片段中,且該直線片段是使用與一背景的陰影不同的一陰影,藉此與該背景分隔;以及對包含在該非零厚度線延伸直線片段中的每一像素,決定被該直線片段所部分或完全覆蓋的該像素的一面積;以及根據(jù)所覆蓋的該像素的該面積,藉由在該直線片段的該陰影與該背景的該陰影之間,執(zhí)行一內(nèi)插運算,決定該像素的一陰影值。
      本發(fā)明的目的及解決其技術(shù)問題還可采用以下技術(shù)措施進(jìn)一步實現(xiàn)。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),并且該輸出裝置的每一該些像素,都具有可用一x-y坐標(biāo)標(biāo)示的中心點;以及其中,延伸一邊緣的該步驟,包括將該直線片段的該邊緣,在該x方向上,移動一(a+b)/2a的量,以使其包括具有被該直線片段的一邊緣所穿越的一角落的一像素的中心點,其中a是大于或等于零,且b是大于或等于零。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),并且該輸出裝置的每一該些像素,都具有可用一x-y坐標(biāo)標(biāo)示的中心點;其中,該直線片段的一邊緣,具有一等式ax+by+c=0;以及其中,延伸一邊緣的該步驟,包括將一(|a|+|b|)/2的量,與該等式的參數(shù)c相加,藉此改變該直線片段的一邊緣的該等式。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該輸出裝置的每一該些像素,都具有可用一x-y坐標(biāo)標(biāo)示的中心點;以及其中,決定包含在該非零厚度線中的該些像素的該步驟包括以每一像素的該中心點的該x及該y坐標(biāo),計算該延伸直線片段的一邊緣的等式;以及測試該計算結(jié)果是否大于或等于零。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中該覆蓋像素的該陰影,及該背景的該陰影,是各以一數(shù)位值所代表;以及其中藉由內(nèi)插決定該像素的該陰影值的該步驟包括產(chǎn)生將該直線片段的該陰影數(shù)位值,與代表該覆蓋像素的該面積的一分部(fraction)f相乘之后的一第一乘積;產(chǎn)生將該背景的該陰影數(shù)位值,與代表不被覆蓋的該像素的該面積的一分部(1-f)相乘之后的一第二乘積;以及將該第一乘積與該第二乘積相加。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該直線片段具有與該直線片段的一斜率相關(guān)的一斜率系數(shù)sf,以及與在穿越一像素的該直線片段的一邊緣和一像素邊界之間的一x方向上的距離成正比的一參數(shù)p;以及其中,對穿越一部分覆蓋像素的該直線片段的一邊緣而言,決定一部分覆蓋像素的該面積的該步驟包括決定該覆蓋面積是否小于或等于一第一預(yù)定限制值;以及計算由該直線片段所覆蓋的該三角形面積。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該直線片段具有與該直線片段的一斜率相關(guān)的一斜率系數(shù)sf,以及與在穿越一像素的該直線片段的一邊緣和一像素邊界之間的一x方向上的距離成正比的一參數(shù)p;以及其中,對穿越一部分覆蓋像素的該直線片段的一邊緣而言,決定一部分覆蓋像素的該面積的該步驟包括決定該覆蓋面積是否大于一第一預(yù)定限制值;計算由該直線片段所覆蓋的該最大三角形面積;計算由該直線片段所覆蓋的一平行四邊形面積;以及計算該最大三角形面積及該平行四邊形面積之和。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中對穿越一部分覆蓋像素的該直線片段的一邊緣而言,其特征在于,計算一部分覆蓋像素的該面積的該步驟包括決定該覆蓋面積是大于一第二預(yù)定限制值,并且保留一未被覆蓋的三角形面積;計算未被該直線片段覆蓋的該三角形面積;以及計算數(shù)值1與該未被覆蓋的三角形面積之間的差,以求得該覆蓋像素的該面積。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中當(dāng)該直線片段的兩平行邊緣穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積;計算未被該第二邊緣所覆蓋的該像素的一第二面積;以及將該第一面積與該第二面積相加,并且將其和以數(shù)值1相減。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中當(dāng)沿著該直線片段的一第一邊緣,和與該直線片段正交的一第二邊緣,穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積,并且以數(shù)值1減去該第一面積,以產(chǎn)生一第一差;計算未被該第二邊緣所覆蓋的該像素的一第二面積,并且以數(shù)值1減去該第二面積,以產(chǎn)生一第二差;以及將該第一差與該第二差相乘,以產(chǎn)生一乘積。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中當(dāng)該直線片段的兩平行邊緣和一第三正交邊緣,穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積;計算未被該第二平行邊緣所覆蓋的該像素的一第二面積;以及將該第一面積與該第二面積相加,并且以數(shù)值1減去該和,以產(chǎn)生一第一差;計算未被該第三正交邊緣所覆蓋的該像素的一第三面積,并且以數(shù)值1減去該第三面積,以產(chǎn)生一第二差;以及將該第一差與該第二差相乘,以產(chǎn)生一乘積。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中當(dāng)該直線片段的兩平行邊緣和一第三及一第四正交邊緣,穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積;計算未被該第二平行邊緣所覆蓋的該像素的一第二面積;以及將該第一面積與該第二面積相加,并且以數(shù)值1減去該和,以產(chǎn)生一第一差;計算未被該第三正交邊緣所覆蓋的該像素的一第三面積;計算未被該第四正交邊緣所覆蓋的該像素的一第四面積;將該第三面積與該第四面積相加,并且以數(shù)值1減去該和,以產(chǎn)生一第二差;以及將該第一差與該第二差相乘,以產(chǎn)生一乘積。
      本發(fā)明的目的及解決其技術(shù)問題是采用以下技術(shù)方案來實現(xiàn)的。依據(jù)本發(fā)明提出的一種著色一非零厚度線片段于一有限像素的輸出裝置上的圖形管路,該圖形管路包括一內(nèi)插處理器,用來計算與一位移量成正比的一參數(shù),且該位移量是代表在該直線片段的一邊緣,和被該直線片段部分覆蓋的一像素邊界之間的一x方向的距離,其中該直線片段的該邊緣具有用來定義該邊緣的一斜率系數(shù)的一已知邊緣關(guān)聯(lián)式,且該像素具有其x坐標(biāo)與y坐標(biāo)為已知的一中心點;以及一遮光處理器,根據(jù)該位移量參數(shù)、該直線片段的該斜率系數(shù)、該邊緣關(guān)聯(lián)式、以及該像素中心點的該x坐標(biāo)及該y坐標(biāo),計算被該直線所覆蓋的該像素的該區(qū)域。
      本發(fā)明的目的及解決其技術(shù)問題還可采用以下技術(shù)措施進(jìn)一步實現(xiàn)。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中所述的x方向距離,是以ax0+by0+c+(a+b)/2及a的商數(shù)計算,其中x0及y0是為該像素的該中心點的該坐標(biāo),該邊緣關(guān)聯(lián)式為ax+by+c≥0,且該斜率系數(shù)為a/(a+b)。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中所述的位移量參數(shù),是以sf*x0+(1-sf)*y0+sf*c/a+1/2計算,其中x0及y0是為該像素的該中心點的該坐標(biāo),該邊緣關(guān)聯(lián)式為ax+by+c≥0,且該斜率系數(shù)為a/(a+b)。
      前述的使用可程式化遮光器的反圖形失真線像素覆蓋計算,其中,該像素的該中心點坐標(biāo)為(x0,y0),該直線片段的該邊緣關(guān)聯(lián)式為ax+by+c≥0,且該斜率系數(shù)為a/(a+b);其中該內(nèi)插處理器估算內(nèi)插函數(shù)Ps+Px*x+Py*y,以執(zhí)行內(nèi)插計算;以及其中該位移量參數(shù),是以設(shè)定Ps為(sf*c/a+1/2),Px為sf,Py為(1-sf),并且計算在(x0,y0)上的內(nèi)插函數(shù)所計算而得。
      本發(fā)明與現(xiàn)有技術(shù)相比具有明顯的優(yōu)點和有益效果。由以上技術(shù)方案可知,為了達(dá)到前述發(fā)明目的,本發(fā)明的技術(shù)內(nèi)容如下本發(fā)明提出一種使用可程式化遮光器的反圖形失真線像素覆蓋計算,可在一個電腦繪圖系統(tǒng)具有限個數(shù)像素的輸出裝置上,對圖形著色,及包括經(jīng)過圖形失真降低處理的一個非零厚度線。該方法包括延伸直線片段的邊緣,使其接觸但并不覆蓋即將在輸出裝置上著色的直線片段的一像素中心點,以使延伸直線片段可覆蓋所接觸的像素中心點。接下來,使用像素中心點,決定包含在延伸直線片段中的像素。其中,該直線片段是使用與背景的陰影(shade)或色彩(color)不同的陰影或色彩所繪制。對包含在該非零厚度線延伸片段中的每個像素,決定被直線片段所部分或完全覆蓋的像素面積,并且根據(jù)所覆蓋的像素面積,藉由在直線片段的陰影,與背景的陰影或色彩之間,執(zhí)行內(nèi)插(interpolating),以決定像素的陰影或色彩值。
      借由上述技術(shù)方案,本發(fā)明使用可程式化遮光器的反圖形失真線像素覆蓋計算至少具有下列優(yōu)點1、本發(fā)明的一優(yōu)點為可降低或最小化直線片段的圖形失真,因此可在輸出裝置上,表現(xiàn)出更精確及更好的直線。
      2、本發(fā)明的另一優(yōu)點為可降低執(zhí)行本發(fā)明的反圖形失真動作所需的計算成本。
      綜上所述,本發(fā)明特殊的使用可程式化遮光器的反圖形失真線像素覆蓋計算,具有上述諸多的優(yōu)點及實用價值,并在同類方法見有類似的設(shè)計公開發(fā)表或使用而確屬創(chuàng)新,其不論在方法上或功能上皆有較大的改進(jìn),在技術(shù)上有較大的進(jìn)步,并產(chǎn)生了好用及實用的效果,且較現(xiàn)有的反圖形失真線像素覆蓋計算具有增進(jìn)的多項功效,從而更加適于實用,誠為一新穎、進(jìn)步、實用的新設(shè)計。
      上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實施,以下以本發(fā)明的較佳實施例并配合附圖詳細(xì)說明如后。


      圖1是根據(jù)一個現(xiàn)有習(xí)知的像素-中心規(guī)則,在一個有限解析度的輸出裝置上,繪制一條非零厚度線時的直線外觀。
      圖2是在一個有限解析度的輸出裝置上,繪制一條非零厚度線時的直線外觀,其中該非零厚度線是延伸以包括接觸但其中心點并不位于原始直線邊界之內(nèi)的像素。
      圖3是繪示在輸出裝置中的一條非零厚度線,且該非零厚度線是覆蓋像素,以使得只有該直線的一邊緣可穿越任何像素。
      圖4A是繪示在輸了出裝置中的一條非零厚度線,且該非零厚度線是覆蓋像素,以使得該直線的兩或三個邊緣可穿越該些像素的至少其中之一。
      圖4B是一個放大圖,用來說明三個邊緣穿越該些像素的其中之一的一個范例。
      圖5是繪示在輸出裝置中的一條非零厚度線,且該非零厚度線是覆蓋像素,以使得該直線的四個邊緣可存在于該些像素的至少其中之一中。
      圖6是一個輸出裝置的放大區(qū)域,用來描繪根據(jù)本發(fā)明的一組像素、線邊界移動、以及用來計算線像素覆蓋的基本三角形(primitive triangles)與平行四邊形(parallelogram)。
      圖7是用來實現(xiàn)上述計算的圖形管路的方框圖。
      圖8是一個流程圖,用來說明根據(jù)本發(fā)明的一種以降低圖形失真的方式,在輸出裝置上繪制直線片段的方法。
      圖9是一個流程圖,用來說明執(zhí)行直線片段邊緣調(diào)整的步驟。
      圖10是一個流程圖,用來說明決定將包含在繪制延伸直線片段中的像素的步驟。
      圖11是一個流程圖,用來說明決定由延伸直線片段所覆蓋的像素面積的步驟。
      圖12A是一個流程圖,用來說明決定由穿越一像素的一邊緣所覆蓋的面積的步驟。
      圖12B是一個流程圖,用來說明決定由穿越一像素的一邊緣所覆蓋的面積的另一方法的步驟圖13是一個流程圖,用來說明在決定直線片段所覆蓋的像素面積之后,決定像素陰影或色彩值的步驟。
      12~54像素 56~78像素80直線片段 82像素86位移 90單一邊緣92正交邊緣 94邊緣96正交邊緣 98邊緣202~212流程步驟220~222流程步驟224~234流程步驟240~258流程步驟262~278流程步驟261~271流程步驟282~284流程步驟具體實施方式
      為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明提出的使用可程式化遮光器的反圖形失真線像素覆蓋計算其具體實施方式
      、方法、步驟、特征及其功效,詳細(xì)說明如后。
      在下述說明中,假設(shè)已知直線方程式(equation)為ax+by+c=0,且在輸出裝置上的坐標(biāo)系統(tǒng),為x軸向右延伸,y軸向下延伸。此外,為方便說明起見,在此假設(shè)直線為向右傾斜,也就是a≥b≥0。在此定義直線的各個參數(shù)。首先,直線的斜率(slope)m定義為|a|/|b|,而且直線的斜率系數(shù)(slope-factor)sf定義為m/(m+1)。因為斜率的范圍是從0到∞,斜率系數(shù)的范圍是從0到1,所以使用后者的定義會幫助較大。直線的斜率m可以用一個斜率系數(shù)的函數(shù)m=sf/(1-sf)代表。此外,再加上本身為直線片段的邊緣方程式(edge equation)的斜率系數(shù)sf,與一個x方向的位移(displacement)Δx的乘積會更有用。
      根據(jù)本發(fā)明的一觀點,必須決定即將包含在所著色的一個非零厚度線中的像素。假設(shè)像素P的坐標(biāo)為(x0,y0),且直線邊緣關(guān)聯(lián)式(line edgerelation)為ax+by+c≥0,為決定像素P是否在邊緣之內(nèi),必須計算在像素坐標(biāo)(x0,y0)上的直線片段邊緣關(guān)聯(lián)式。如果其結(jié)果為大于或等于0,則該像素是位于邊緣之內(nèi)。如果該像素是位于直線片段的所有四個邊緣之內(nèi),則該像素會被包含在所著色的直線中。
      請參閱圖2所示,是當(dāng)使用像素中心點決定像素是否包含在其中的方法,在一個有限解析度的輸出裝置上,繪制非零厚度線時的一條直線片段80的外觀。為改善圖1所示的直線片段80的外觀,較偏好可使其包含與非零厚度線接觸,但其中心點并不包含在直線片段邊界之內(nèi)的復(fù)數(shù)個像素56-78。如上所述,該些像素56-78并不包含在直線繪制法則中,且該法則的基本原理,為根據(jù)像素中心點是否被非零厚度線所覆蓋,而決定是否應(yīng)該包含該像素。為在著色直線片段時包含該些像素,根據(jù)本發(fā)明的一觀點,必須延伸直線片段的邊界,以使其包含直線片段邊緣所接觸的像素。上述的直線片段邊緣的延伸,可以在直線邊緣方程式中的c參數(shù)的一個變量Δc代表。
      請參閱圖2到圖6所示,在此以一邊緣做為范例,假設(shè)在圖2中的原始直線80的左邊緣,剛好接觸像素82中心點的右下角,則其會部分覆蓋該像素。根據(jù)本發(fā)明的一觀點,直線片段的邊緣會向左延伸,以使其包含剛好接觸到像素82的一中心點。在x方向上,該延伸量為如圖6所示,在x軸上從x’到x0的一個位移86。位移x&prime;-x0=&Delta;x=b2a+12=a+b2a,]]>式中的第一項為在x方向上,從x’到像素邊界的距離,第二項為在x方向上,從像素邊界到像素中心點x0的距離。在此必須調(diào)整c參數(shù)的位移量,以移動直線邊緣,使其包括部分覆蓋該像素的中心點。值得注意的是,在此直線的斜率并未改變,只有直線邊緣的y被切斷。因為x&prime;-x0=a+b2a,]]>所以新的直線邊緣關(guān)聯(lián)式會變?yōu)閍x0+by0+c+a+b2&GreaterEqual;0.]]>為決定像素是否包含在所著色的直線中,必須計算在(x0,y0)上的直線邊緣關(guān)聯(lián)式ax+by+c+a+b2&GreaterEqual;0.]]>在此假設(shè)a≥0,b≥0,對所有其他范例而言,可輕易證明相同的調(diào)整量&Delta;c=|a|+|b|2,]]>亦可應(yīng)用于其他邊緣。
      在調(diào)整完所有非零厚度線的邊緣之后,接下來要計算該直線所覆蓋的區(qū)域所包含像素的分部面積(fractional area)f,在此假設(shè)一像素的面積為一。在算出分部面積之后,接下來可根據(jù)本發(fā)明的一觀點,藉由在直線的陰影或色彩CLINE,與背景的陰影或色彩CBG之間,以f*CLINE+(1-f)*CBG執(zhí)行內(nèi)插,以決定像素的陰影或色彩。
      為決定像素覆蓋的分部面積f,必須考慮下列多種不同個數(shù)邊緣的情況如圖3所示,穿越一像素的直線的一單一邊緣90(范例1);如圖4A及圖4B所示,穿越一像素的直線的兩個平行邊緣92、94(范例2);如圖4A及圖4B所示,穿越像素的直線的兩個正交邊緣92、96(范例3);如圖4B所示,穿越一像素的三個邊緣92、94、96(范例4);以及如圖5所示,穿越一像素的四個邊緣92、94、96、98(范例5)。如果c0為當(dāng)一邊緣是穿越一像素時,未被直線所覆蓋的面積,則1-c0就是在范例1中所覆蓋的面積。如果c0及c1為當(dāng)兩個平行邊緣分別穿越像素時,未被直線所覆蓋的面積,則其所覆蓋的面積即為(1-(c0+c1))。如果c0及c1為當(dāng)兩個正交邊緣分別穿越像素時,未被直線所覆蓋的面積,則其所覆蓋的面積大約為(1-c0)*(1-c2)。在接近直線片段終點的像素上,如圖4B所示,直線的三個邊緣可能會一起穿越一像素。在此例中,如果c2為不被第三邊緣所覆蓋的面積,且c0及c1是如在范例1及范例2中所定義,則其所覆蓋的面積大約為(1-(c0+c1))*(1-c2)。最后,在很少發(fā)生的如圖5所示的范例中,當(dāng)直線的四個邊緣一起穿越一像素,且c3是定義為不被第四邊緣所覆蓋的面積,而且其他邊緣是如范例1、2及3中所定義,則其所覆蓋的面積大約為(1-(c0+c1))*(1-(c2+c3))。在范例3、4及5中,計算覆蓋面積的公式,是為足以提供所需精確度的近似公式。較偏好可將面積c0、c1、c2及c3的范圍,限制在
      的區(qū)間之內(nèi)。該限制可讓此公式可應(yīng)用在所有四個邊緣上,而不需用一個SIMD(單指令多資料)處理器,來決定邊緣是否與直線方向平行或垂直,且不需用到分支或測試條件。在如上述實施例的一個簡化范例中,會假設(shè)可跳過計算垂直于直線方向的兩個邊緣的覆蓋面積的步驟,而且當(dāng)性能比直線外觀品質(zhì)還重要時,其對應(yīng)面積是為0。
      從上述說明可知,如果可決定被一個單一直線邊緣所覆蓋的像素,則因其與被一直線邊緣所覆蓋的像素的應(yīng)用范例相似,所以可算出在其他范例中的覆蓋面積。
      當(dāng)一單一直線邊緣穿越像素時,需要考慮兩個范例,才能決定由一條直線所覆蓋的像素。其中,第一范例為當(dāng)邊緣穿越像素以覆蓋如圖6所示的像素的一個三角形部分100。第二范例為當(dāng)邊緣穿越像素以覆蓋如圖6所示的一個三角形部分100及一個平行四邊形部分102。
      當(dāng)該直線邊緣切割該像素的一三角形部分時,由直線所覆蓋的面積A0為 如圖6所示,其中Δx為三角形100的底,Δy為三角形100的高。當(dāng)然,Δx及Δy是與直線的邊緣方程式相關(guān)。且較特別的是,如果Δy=mΔx,則Δx=p/sf,接下來該面積的方程式變?yōu)锳0=12m&CenterDot;(p/sf)2,]]>或是A0=12p2&CenterDot;(1-sf)-1&CenterDot;sf-1,]]>上述公式特別適用于下述在一圖形管路(graphics pipeline)中的計算。
      當(dāng)非零厚度線的邊緣同時切割一個三角形100及一個平行四邊形102時,必須決定平行四邊形的面積,并且將其與三角形的最大面積相加,以決定所覆蓋的面積。當(dāng)p=(1-sf)時,假設(shè)1/2≤sf≤1,則三角形100的最大面積為max(A0)=12m=12(1-sf)&CenterDot;sf-1,]]>在此假設(shè)整個像素面積為一,且該像素的每一邊皆為一。平行四邊形102的面積A1為&Delta;x||=&Delta;xTOT-1m=p&CenterDot;sf-1+(1-sf-1),]]>因其高度為一,所以平行四邊形102的最大面積(A1)為1-1/m。因此,兩者的最大面積為max(A0)+max(A1)=1-(1+sf)(2sf)-1另一方面,上列公式亦可以p的條件函數(shù)表示如果0≤p≤(1-sf),則A(p)=12p2&CenterDot;(1-sf)-1&CenterDot;sf-1]]>如果(1-sf)<p≤1,則A(p)=12(1-sf)2&CenterDot;(1-sf)-1&CenterDot;sf-1+p&CenterDot;sf-1+(1-sf-1).]]>該像素的剩余區(qū)域,剛好是剩余的三角形A2 104部分,其面積為 因此,如果覆蓋面積是大于max(A0)+max(A1),則藉由下列公式計算三角形面積,可得其覆蓋面積A2=12r2&CenterDot;(1-sf)-1&CenterDot;sf-1]]>且再由1減去該值,得到1-A2,其中在參數(shù)r中的距離Δx,是從像素的左邊開始測量起,因此r=1-p。接下來可得覆蓋面積A3=(1-A2)=1-12(1-p)2&CenterDot;(1-sf)-1&CenterDot;sf-1]]>當(dāng)0≤sf≤1/2時,該范例的條件公式為如果0≤p≤sf,則A(p)=12p2&CenterDot;(1-sf)-1&CenterDot;sf-1,]]>以及如果sf<p≤1,則A(p)=12sf2&CenterDot;(1-sf)-1&CenterDot;sf-1+p&CenterDot;sf-1+(1-sf-1).]]>由以上公式可看出,如果sf大于1/2,則在條件式中的p的極限值為(1-sf),如果sf小于1/2,則p的極限值為sf。因此,p的極限值是為min(sf,1-sf)??蓪蓚€范例的條件公式結(jié)合如下如果0≤p≤min(sf,1-sf),則A(p=min(sf,1-sf))=12p2&CenterDot;(1-sf)-1&CenterDot;sf-1,]]>以及如果min(sf,1-sf)<p≤1,則A(p=min(sf,1-sf))=12sf2&CenterDot;(1-sf)-1&CenterDot;sf-1+p&CenterDot;sf-1+(1-sf-1).]]>請參閱圖6所示,在本發(fā)明的一實施例中,當(dāng)一條直線片段的一邊緣,通過像素82中的坐標(biāo)(xc,yc)時,計算像素在x方向上的位移,會包括計算在(x′,y′)上的邊緣關(guān)聯(lián)式ax+by+c≥0。
      P(x′,y′)=ax′+by′+c,其中,y′=y(tǒng)c,而且x′=xc+Δx,因此,P(x′,y′)=axc+byc+c+aΔx。
      因為穿越像素的直線邊緣,事實上就是穿越像素中的坐標(biāo)(xc,yc),axc+byc+c=0。
      因此,可將所計算的邊緣關(guān)聯(lián)式簡化為P(x′,y′)=aΔx。
      在(x′,y′)上所計算的邊緣關(guān)聯(lián)式ax+by+c≥0,可以像素的中心點坐標(biāo)(x0,y0)的方式表示如下P(x&prime;,y&prime;)=ax0+by0+c+a+b2.]]>其中等式x′=x0+(a+b)/2a已由上式取代,且y值保持不變。因此,將邊緣關(guān)聯(lián)式的兩個版本設(shè)定為相同,可得P(x&prime;,y&prime;)=a&Delta;x=ax0+by0+c+a+b2,]]>由此可求出Δx,&Delta;x=ax0+by0+c+(a+b)/2a,]]>在此例中,假設(shè)a>0,b≥0。因此,給定像素的位移Δx,是為常數(shù)和參數(shù)a、b及c的一個函數(shù)。
      當(dāng)邊緣穿越(或接觸)像素時,假設(shè)a>0,b≥0,則位移Δx是在范圍
      之內(nèi),且aΔx是在范圍
      之內(nèi)。在此較偏好可調(diào)整(P(x′,y′)=aΔx)的大小,使其被限制在范圍
      之內(nèi),在將上列公式乘以(1/(a+b)),可得p=Pscaled=aΔx/(a+b)=ax0/(a+b)+by0/(a+b)+c/(a+b)+1/2。
      藉此可更加容易地使用既有的內(nèi)插邏輯執(zhí)行計算。對所有其他范例而言,p=ax0/(|a|+|b|)+by0/(|a|+|b|)+c/(|a|+|b|)+1/2,再以sf代入,可得p=sf·x0+(1-sf)·y0+sf·c/a+1/2請參閱圖7所示,是一個用來執(zhí)行上述計算的圖形管路的方框圖。該圖形管路包括一個內(nèi)插器(interpolator),用來計算參數(shù)p=sf·Δx,其為一個根據(jù)基本公式P=Ps+Px·x+Py·y,在直線邊緣所覆蓋面積的x方向上距離的函數(shù),且可用該內(nèi)插器來計算三角形的陰影。在內(nèi)插器的公式中,Px=sf,Py=(1-sf),且Ps=sfca+1/2.]]>如果所計算的參數(shù)p為負(fù)值,則會將其值箝位(clamped)在0,且該像素不會被直線邊緣覆蓋或接觸。如果結(jié)果是位于范圍
      之內(nèi),則該邊緣會接觸該像素,且會使用該結(jié)果計算像素遮光器(pixel shader)所覆蓋的面積。如果結(jié)果大于1,則會將其值箝位在1,且該像素會百分之百被該直線邊緣覆蓋。
      上述的內(nèi)插器是為一種可以相同指令在數(shù)個資料元件上執(zhí)行動作的一種固定功能式SIMD處理器。接下來會使用一種指令驅(qū)動型遮光器(instruction-based shader),配合上述公式,根據(jù)在x方向上的距離,計算其覆蓋面積。
      請參閱圖8所示,是一個用來說明根據(jù)本發(fā)明的一種以降低圖形失真的方式的流程圖,在輸出裝置上對直線片段著色的方法。該方法包括兩個主回路(loops)。其中,第一回路202將直線片段的邊緣延伸,以使其包括與直線片段接觸,但其中心點不被直線片段所覆蓋的復(fù)數(shù)個像素。第二回路204決定包含在延伸直線片段中的每一像素的陰影或色彩。
      第一回路202包括在步驟206中,調(diào)整直線片段的邊緣,使其穿越部分被覆蓋的像素的中心點;以及在步驟208中,根據(jù)像素的中心點,決定輸出裝置的那些像素,必須被包含在非零厚度線片段中。第二回路204包括在步驟210中,決定包含在延伸直線片段中的每一像素所覆蓋的面積;以及在步驟212中,根據(jù)該面積,決定該像素的陰影或色彩。
      請參閱圖9所示,是一個用來說明執(zhí)行直線片段邊緣調(diào)整的步驟206的流程圖。在圖9中,標(biāo)志A是代表入口,標(biāo)志A′是代表返回。首先,在步驟220中,求得所選定邊緣的邊緣關(guān)聯(lián)式,并且在步驟222中,藉由將(|a|+|b|)/2的值與該邊緣關(guān)聯(lián)式相加,調(diào)整該邊緣。藉此可有效地延伸該邊緣,以使其包括與像素接觸但其中心點不被覆蓋的像素。
      請參閱圖10所示,是一個用來說明決定包含在繪制延伸直線片段中的像素的步驟208的流程圖。首先在步驟224中,選定一個像素,并且決定其中心點坐標(biāo)。接下來在步驟226中,使用該坐標(biāo)計算延伸直線片段的邊緣關(guān)聯(lián)式。如果在步驟228的決定步驟的結(jié)果為真,則代表所計算的表示式(expression),是大于或等于零,在步驟230中會決定該像素會被包含在直線片段中。如果結(jié)果不為真,則在步驟232中決定不包含該像素。接下來在步驟234中,繼續(xù)對所有選定像素執(zhí)行相同動作。
      請參閱圖11所示,是一個用來說明決定由原始直線片段所覆蓋的像素面積的步驟210的流程圖。首先在步驟242中,計算所有四個參數(shù)c0、c1、c2及c3。接下來在步驟248中,根據(jù)穿越像素的邊緣個數(shù)(也就是根據(jù)那些參數(shù)不為零),計算覆蓋面積。在步驟240中,計算當(dāng)一個邊緣跨越該像素時所覆蓋的面積。在步驟244中,計算當(dāng)兩個平行邊緣跨越該像素時所覆蓋的面積。在步驟246中,計算當(dāng)一邊緣及另一正交邊緣跨越該像素時所覆蓋的面積。在步驟250中,計算當(dāng)三個邊緣跨越該像素時所覆蓋的面積。在步驟258中,計算當(dāng)四個邊緣跨越該像素時所覆蓋的面積。其中,每一該些步驟240、244、246、250及258,都依賴圖12的步驟,以計算該相關(guān)面積。
      請參閱圖12A所示,是一個用來說明決定由穿越一像素的一邊緣所覆蓋的面積的步驟的流程圖。首先,像素計算方塊(固定功能式內(nèi)插器)會先計算p。接下來,可程式化像素遮光器會根據(jù)四個參數(shù)c0、c1、c2及c3計算像素覆蓋面積。圖11的每一步驟都會用圖12的步驟,來決定邊緣所覆蓋的面積。首先在步驟262中,計算一個斜率系數(shù)sf,接下來在步驟264中,計算參數(shù)p。其中,計算參數(shù)p的過程是使用上述公式p=ax0/(|a|+|b|)+by0/(|a|+|b|)+c/(|a|+|b|)+1/2。接下來,如果在步驟266中決定該面積是小于最大三角形面積,則在步驟268中,使用參數(shù)p及斜率系數(shù)sf,計算三角形面積。如果在步驟270中決定該面積是大于最大三角形面積,但是卻小于最大三角形面積與最大四邊形面積之和,或如果0<=p<(1-sf),則在步驟274中,會計算平行四邊形面積,并且在步驟276中,將其與在步驟272中計算所得的最大三角形面積相加。如果在步驟270中決定該面積是大于最大三角形面積與最大四邊形面積之和,則在步驟278中,計算剩余的三角形面積,并且將其以1相減。該結(jié)果即為由一個穿越該像素的邊緣所覆蓋的像素面積。
      請參閱圖12B所示,是一個用來說明決定由穿越一像素的一邊緣所覆蓋的面積的另一方法的步驟的流程圖。在步驟261中,首先計算斜率系數(shù)sf,并且在步驟263中計算參數(shù)p。接下來在步驟265中,決定參數(shù)p是否位于0與min(sf,1-sf)之間。如果結(jié)果為真,則根據(jù)步驟267,計算覆蓋面積。如果結(jié)果不為真,也就是p是位于min(sf,1-sf)與1之間(由步驟269決定),則根據(jù)步驟271,計算覆蓋面積。
      請參閱圖13所示,是一個用來說明在決定直線片段所覆蓋的像素面積之后,決定像素陰影或色彩值的步驟流程圖。首先在步驟282中,計算該部分覆蓋面積,以及直線與背景的色彩或陰影。接下來在步驟284中,執(zhí)行一個線性內(nèi)插計算,以獲得該像素的陰影或色彩。
      上述如此結(jié)構(gòu)構(gòu)成的本發(fā)明使用可程式化遮光器的反圖形失真線像素覆蓋計算的技術(shù)創(chuàng)新,對于現(xiàn)今同行業(yè)的技術(shù)人員來說均具有許多可取之處,而確實具有技術(shù)進(jìn)步性。
      以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的方法及技術(shù)內(nèi)容作出些許的更動或修飾為等同變化的等效實施例,但是凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
      權(quán)利要求
      1.一種用來在一電腦繪圖系統(tǒng)的一有限像素的輸出裝置上著色一非零厚度線片段的降低圖形失真的方法,其特征在于其包括以下步驟延伸該直線片段的一邊緣,使其原接觸,但并不覆蓋將在該輸出裝置上著色的該直線片段的一像素中心點,以使得該延伸直線片段,可覆蓋所接觸的該像素的該中心點;使用該些像素中心點,決定該些像素是否應(yīng)包含在該延伸直線片段中,且該直線片段是使用與一背景的陰影不同的一陰影,藉此與該背景分隔;以及對包含在該非零厚度線延伸直線片段中的每一像素,決定被該直線片段所部分或完全覆蓋的該像素的一面積;以及根據(jù)所覆蓋的該像素的該面積,藉由在該直線片段的該陰影與該背景的該陰影之間,執(zhí)行一內(nèi)插運算,決定該像素的一陰影值。
      2.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其特征在于其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該輸出裝置的每一該些像素,都具有可用一x-y坐標(biāo)標(biāo)示的中心點;以及其中,延伸一邊緣的該步驟,包括將該直線片段的該邊緣,在該x方向上,移動一(a+b)/2a的量,以使其包括具有被該直線片段的一邊緣所穿越的一角落的一像素的中心點,其中a是大于或等于零,且b是大于或等于零。
      3.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其特征在于其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該輸出裝置的每一該些像素,都具有可用一x-y坐標(biāo)標(biāo)示的中心點;其中,該直線片段的一邊緣,具有一等式ax+by+c=0;以及其中,延伸一邊緣的該步驟,包括將一(|a|+|b|)/2的量,與該等式的參數(shù)c相加,藉此改變該直線片段的一邊緣的該等式。
      4.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其特征在于其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該輸出裝置的每一該些像素,都具有可用一x-y坐標(biāo)標(biāo)示的中心點;以及其中,決定包含在該非零厚度線中的該些像素的該步驟包括以每一像素的該中心點的該x及該y坐標(biāo),計算該延伸直線片段的一邊緣的等式;以及測試該計算結(jié)果是否大于或等于零。
      5.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其特征在于其中該覆蓋像素的該陰影,及該背景的該陰影,是各以一數(shù)位值所代表;以及其中藉由內(nèi)插決定該像素的該陰影值的該步驟包括產(chǎn)生將該直線片段的該陰影數(shù)位值,與代表該覆蓋像素的該面積的一分部(fraction)f相乘之后的一第一乘積;產(chǎn)生將該背景的該陰影數(shù)位值,與代表不被覆蓋的該像素的該面積的一分部(1-f)相乘之后的一第二乘積;以及將該第一乘積與該第二乘積相加。
      6.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其特征在于其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該直線片段具有與該直線片段的一斜率相關(guān)的一斜率系數(shù)sf,以及與在穿越一像素的該直線片段的一邊緣和一像素邊界之間的一x方向上的距離成正比的一參數(shù)p;以及其中,對穿越一部分覆蓋像素的該直線片段的一邊緣而言,決定一部分覆蓋像素的該面積的該步驟包括決定該覆蓋面積是否小于或等于一第一預(yù)定限制值;以及計算由該直線片段所覆蓋的該三角形面積。
      7.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其特征在于其中,該輸出裝置具有一建立在其上的x-y坐標(biāo)系統(tǒng),且該直線片段具有與該直線片段的一斜率相關(guān)的一斜率系數(shù)sf,以及與在穿越一像素的該直線片段的一邊緣和一像素邊界之間的一x方向上的距離成正比的一參數(shù)p;以及其中,對穿越一部分覆蓋像素的該直線片段的一邊緣而言,決定一部分覆蓋像素的該面積的該步驟包括決定該覆蓋面積是否大于一第一預(yù)定限制值;計算由該直線片段所覆蓋的該最大三角形面積;計算由該直線片段所覆蓋的一平行四邊形面積;以及計算該最大三角形面積及該平行四邊形面積之和。
      8.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其中對穿越一部分覆蓋像素的該直線片段的一邊緣而言,其特征在于,計算一部分覆蓋像素的該面積的該步驟包括決定該覆蓋面積是大于一第二預(yù)定限制值,并且保留一未被覆蓋的三角形面積;計算未被該直線片段覆蓋的該三角形面積;以及計算數(shù)值1與該未被覆蓋的三角形面積之間的差,以求得該覆蓋像素的該面積。
      9.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其中當(dāng)該直線片段的兩平行邊緣穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積;計算未被該第二邊緣所覆蓋的該像素的一第二面積;以及將該第一面積與該第二面積相加,并且將其和以數(shù)值1相減。
      10.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其中當(dāng)沿著該直線片段的一第一邊緣,和與該直線片段正交的一第二邊緣,穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積,并且以數(shù)值1減去該第一面積,以產(chǎn)生一第一差;計算未被該第二邊緣所覆蓋的該像素的一第二面積,并且以數(shù)值1減去該第二面積,以產(chǎn)生一第二差;以及將該第一差與該第二差相乘,以產(chǎn)生一乘積。
      11.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其中當(dāng)該直線片段的兩平行邊緣和一第三正交邊緣,穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積;計算未被該第二平行邊緣所覆蓋的該像素的一第二面積;以及將該第一面積與該第二面積相加,并且以數(shù)值1減去該和,以產(chǎn)生一第一差;計算未被該第三正交邊緣所覆蓋的該像素的一第三面積,并且以數(shù)值1減去該第三面積,以產(chǎn)生一第二差;以及將該第一差與該第二差相乘,以產(chǎn)生一乘積。
      12.根據(jù)權(quán)利要求1所述的對一非零厚度線片段著色的方法,其中當(dāng)該直線片段的兩平行邊緣和一第三及一第四正交邊緣,穿越一部分覆蓋像素時,其特征在于,決定該部分覆蓋像素的該面積的該步驟包括計算未被該第一平行邊緣所覆蓋的該像素的一第一面積;計算未被該第二平行邊緣所覆蓋的該像素的一第二面積;以及將該第一面積與該第二面積相加,并且以數(shù)值1減去該和,以產(chǎn)生一第一差;計算未被該第三正交邊緣所覆蓋的該像素的一第三面積;計算未被該第四正交邊緣所覆蓋的該像素的一第四面積;將該第三面積與該第四面積相加,并且以數(shù)值1減去該和,以產(chǎn)生一第二差;以及將該第一差與該第二差相乘,以產(chǎn)生一乘積。
      13.一種著色一非零厚度線片段于一有限像素的輸出裝置上的圖形管路,其特征在于該圖形管路包括一內(nèi)插處理器,用來計算與一位移量成正比的一參數(shù),且該位移量是代表在該直線片段的一邊緣,和被該直線片段部分覆蓋的一像素邊界之間的一x方向的距離,其中該直線片段的該邊緣具有用來定義該邊緣的一斜率系數(shù)的一已知邊緣關(guān)聯(lián)式,且該像素具有其x坐標(biāo)與y坐標(biāo)為已知的一中心點;以及一遮光處理器,根據(jù)該位移量參數(shù)、該直線片段的該斜率系數(shù)、該邊緣關(guān)聯(lián)式、以及該像素中心點的該x坐標(biāo)及該y坐標(biāo),計算被該直線所覆蓋的該像素的該區(qū)域。
      14.根據(jù)權(quán)利要求13所述圖形管路,其特征在于其中所述的x方向距離,是以ax0+by0+c+(a+b)/2及a的商數(shù)計算,其中x0及y0是為該像素的該中心點的該坐標(biāo),該邊緣關(guān)聯(lián)式為ax+by+c≥0,且該斜率系數(shù)為a/(a+b)。
      15.根據(jù)權(quán)利要求13所述的圖形管路,其特征在于其中所述的位移量參數(shù),是以sf*x0+(1-sf)*y0+sf*c/a+1/2計算,其中x0及y0是為該像素的該中心點的該坐標(biāo),該邊緣關(guān)聯(lián)式為ax+by+c≥0,且該斜率系數(shù)為a/(a+b)。
      16.根據(jù)權(quán)利要求13所述的圖形管路,其特征在于其中,該像素的該中心點坐標(biāo)為(x0,y0),該直線片段的該邊緣關(guān)聯(lián)式為ax+by+c≥0,且該斜率系數(shù)為a/(a+b);其中該內(nèi)插處理器估算內(nèi)插函數(shù)Ps+Px*x+Py*y,以執(zhí)行內(nèi)插計算;以及其中該位移量參數(shù),是以設(shè)定Ps為(sf*c/a+1/2),Px為sf,Py為(1-sf),并且計算在(x0,y0)上的內(nèi)插函數(shù)所計算而得。
      全文摘要
      本發(fā)明是關(guān)于一種使用可程式化遮光器的反圖形失真線像素覆蓋計算,提供一種在一有限像素的輸出裝置上,以可降低直線圖形失真的方式,對一非零厚度線著色的系統(tǒng)與方法。其中,定義一直線片段的復(fù)數(shù)個邊緣延伸,以確保任何被該直線片段所接觸的像素的中心點,會包含在該直線片段的邊界之內(nèi)。在該方法中,首先決定被該延伸直線部分或完全覆蓋的像素的面積。如果該直線的一邊緣跨越該像素,則會根據(jù)其是否覆蓋一三角形或三角形加上平行四邊形面積,而決定該面積。如果該直線片段的一個以上的邊緣穿越一像素,則會根據(jù)單一邊緣的范例,計算該覆蓋面積。如果被直線片段所覆蓋的面積為已知,則可藉由在直線與背景之間,執(zhí)行線性內(nèi)插,而決定該像素的色彩或陰影。
      文檔編號G06T11/00GK1696976SQ200410080129
      公開日2005年11月16日 申請日期2004年9月23日 優(yōu)先權(quán)日2003年9月25日
      發(fā)明者焦陽, 洪州 申請人:旭上繪圖股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1