執(zhí)行路徑渲染的方法和設(shè)備的制造方法
【專利說明】執(zhí)行路徑渲染的方法和設(shè)備
[0001]本申請(qǐng)要求于2014年4月23日在韓國知識(shí)產(chǎn)權(quán)局提交的第10-2014-0048879號(hào)韓國專利申請(qǐng)的優(yōu)先權(quán),該申請(qǐng)的全部公開通過所有目的的引用合并于此。
技術(shù)領(lǐng)域
[0002]下面的描述涉及一種執(zhí)行路徑渲染的方法和設(shè)備。
【背景技術(shù)】
[0003]近來已對(duì)在執(zhí)行矢量圖形或路徑渲染時(shí)提高圖形處理單元(GPU)的加速性能的方法進(jìn)行了研究。設(shè)計(jì)GPU的硬件結(jié)構(gòu)基于這樣的假設(shè):所有輸入數(shù)據(jù)被配置為三角形以便加速三維圖形。然而,對(duì)于路徑渲染,輸入數(shù)據(jù)不是用三角形配置,而是用命令和頂點(diǎn)的組合來配置。因此,當(dāng)執(zhí)行路徑渲染時(shí)難以提高GPU的加速性能。
[0004]例如,為了通過使用GPU來繪制曲線,控制處理單元(CPU)首先通過使用曲線的開始點(diǎn)作為中心來將曲線劃分為多個(gè)三角形,并指導(dǎo)GPU將劃分的三角形重新配置為曲線。因此,當(dāng)將曲線劃分為多個(gè)三角形時(shí),CPU消耗大量的時(shí)間。此外,每當(dāng)CPU調(diào)用多個(gè)OpenGLAPI時(shí)都與GPU通信,并且GPU的狀態(tài)發(fā)生很多變化。
[0005]關(guān)于這一點(diǎn),已提出了在GPU中使用模板緩沖器的基于模板的路徑渲染方法。然而,根據(jù)基于模板的路徑渲染方法,在渲染期間過多地產(chǎn)生了輸入到存儲(chǔ)器的數(shù)據(jù)/從存儲(chǔ)器輸出的數(shù)據(jù),從而模板存儲(chǔ)器不能夠進(jìn)行并行處理。因此,GPU的加速性能的提高受到限制。
【發(fā)明內(nèi)容】
[0006]提供
【發(fā)明內(nèi)容】
以用簡(jiǎn)化的形式介紹構(gòu)思的選擇,其中,所述構(gòu)思在以下【具體實(shí)施方式】中被進(jìn)行進(jìn)一步描述。該
【發(fā)明內(nèi)容】
不是意在確定聲明的主題的主要特征或必要特征,也不是意在用作協(xié)助確定聲明的主題的范圍。
[0007]在一總體方面,提供了一種執(zhí)行路徑渲染的方法,所述方法包括:獲取幀中的將被渲染的對(duì)象中的多個(gè)頂點(diǎn)的信息;基于幀中的像素的位置和連接所述多個(gè)頂點(diǎn)的路徑的行進(jìn)方向之間的關(guān)系,計(jì)算像素的卷繞數(shù);基于所述卷繞數(shù),確定是否將顏色分配給像素。
[0008]所述路徑可位于像素的一側(cè)。
[0009]所述一側(cè)可包括像素的位置的左側(cè)、右側(cè)、上側(cè)或下側(cè)。
[0010]所述方法還可包括:基于像素的位置和所述路徑的位置,確定所述一側(cè)。
[0011]計(jì)算步驟可包括:檢查所述路徑是否位于像素的一側(cè);基于檢查的結(jié)果,確定所述路徑的行進(jìn)方向是順時(shí)針方向還是逆時(shí)針方向;響應(yīng)于所述行進(jìn)方向被確定為順時(shí)針方向,使所述卷繞數(shù)增大預(yù)定值;響應(yīng)于所述行進(jìn)方向被確定為逆時(shí)針方向,使所述卷繞數(shù)減小所述預(yù)定值。
[0012]所述預(yù)定值可以為I。
[0013]計(jì)算的步驟可包括:檢查所述路徑是否位于像素的一側(cè);基于檢查的結(jié)果,確定所述路徑的行進(jìn)方向是順時(shí)針方向還是逆時(shí)針方向;響應(yīng)于所述行進(jìn)方向被確定為順時(shí)針方向,使所述卷繞數(shù)減小預(yù)定值;響應(yīng)于所述行進(jìn)方向被確定為逆時(shí)針方向,使所述卷繞數(shù)增大所述預(yù)定值。
[0014]所述方法還可包括:基于所述多個(gè)頂點(diǎn)中的每個(gè)頂點(diǎn)的坐標(biāo),在幀中設(shè)置邊界框。計(jì)算步驟可包括計(jì)算邊界框中的像素的卷繞數(shù)。
[0015]設(shè)置步驟可包括:基于所述坐標(biāo)的水平坐標(biāo)的最大值和最小值以及垂直坐標(biāo)的最大值和最小值,設(shè)置邊界框。
[0016]邊界框可以是包括連接第一坐標(biāo)和第二坐標(biāo)的對(duì)角線的矩形,其中,第一坐標(biāo)包括所述水平坐標(biāo)的最大值和所述垂直坐標(biāo)的最大值,第二坐標(biāo)包括所述水平坐標(biāo)的最小值和所述水平坐標(biāo)的最小值。
[0017]所述多個(gè)頂點(diǎn)可包括與至少一個(gè)路徑中的每個(gè)路徑的開始位置相應(yīng)的頂點(diǎn)和與所述每個(gè)路徑的結(jié)束位置相應(yīng)的頂點(diǎn)。
[0018]確定步驟可包括:基于預(yù)設(shè)規(guī)則,確定是否將顏色分配給像素。
[0019]所述預(yù)設(shè)規(guī)則可包括第一規(guī)則或第二規(guī)則,其中,在第一規(guī)則中將顏色分配給具有不為O的卷繞數(shù)的每個(gè)像素,在第二規(guī)則中將顏色分配給具有為奇數(shù)的卷繞數(shù)的每個(gè)像素。
[0020]所述方法還可包括:基于確定的結(jié)果,將顏色分配給像素;存儲(chǔ)像素的顏色。
[0021]一種非暫時(shí)性計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)可存儲(chǔ)包括使計(jì)算機(jī)執(zhí)行所述方法的指令的程序。
[0022]在另一總體方面,提供了一種被配置為執(zhí)行路徑渲染的設(shè)備,所述設(shè)備包括:獲取單元,被配置為獲取幀中的將被渲染的對(duì)象中的多個(gè)頂點(diǎn)的信息;運(yùn)算單元,被配置為基于幀中的像素的位置和連接所述多個(gè)頂點(diǎn)的路徑的行進(jìn)方向之間的關(guān)系,計(jì)算像素的卷繞數(shù);確定單元,被配置為基于所述卷繞數(shù),確定是否將顏色分配給像素。
[0023]運(yùn)算單元還可被配置為:基于像素的位置和所述路徑的位置,確定所述一側(cè)。
[0024]運(yùn)算單元可被配置為:檢查所述路徑是否位于像素的一側(cè);基于檢查的結(jié)果,確定所述路徑的行進(jìn)方向是順時(shí)針方向還是逆時(shí)針方向;響應(yīng)于所述行進(jìn)方向被確定為順時(shí)針方向,使所述卷繞數(shù)增大預(yù)定值;響應(yīng)于所述行進(jìn)方向被確定為逆時(shí)針方向,使所述卷繞數(shù)減小所述預(yù)定值。
[0025]運(yùn)算單元可被配置為:檢查所述路徑是否位于像素的一側(cè);基于檢查的結(jié)果,確定所述路徑的行進(jìn)方向是順時(shí)針方向還是逆時(shí)針方向;響應(yīng)于所述行進(jìn)方向被確定為順時(shí)針方向,使所述卷繞數(shù)減小預(yù)定值;響應(yīng)于所述行進(jìn)方向被確定為逆時(shí)針方向,使所述卷繞數(shù)增大所述預(yù)定值。
[0026]所述設(shè)備還可包括:設(shè)置單元,被配置為基于所述多個(gè)頂點(diǎn)中的每個(gè)頂點(diǎn)的坐標(biāo),在幀中設(shè)置邊界框。運(yùn)算單元可被配置為計(jì)算邊界框中的像素的卷繞數(shù)。
[0027]設(shè)置單元可被配置為:基于所述坐標(biāo)的水平坐標(biāo)的最大值和最小值以及垂直坐標(biāo)的最大值和最小值,設(shè)置邊界框。
[0028]確定單元可被配置為:基于預(yù)設(shè)規(guī)則,確定是否將顏色分配給像素。
[0029]所述設(shè)備還可包括:像素著色器,被配置為基于確定的結(jié)果,將顏色分配給像素;幀緩沖器,被配置為存儲(chǔ)像素的顏色。
[0030]在另一總體方面,提供了一種被配置為產(chǎn)生幀中的像素的卷繞數(shù)的設(shè)備,所述設(shè)備被連接到執(zhí)行路徑渲染的圖形處理單元,所述設(shè)備包括:處理器,被配置為從圖形處理單元接收路徑的頂點(diǎn)的坐標(biāo)的信息以及像素的坐標(biāo)的信息,基于路徑的頂點(diǎn)的坐標(biāo)的信息以及像素的坐標(biāo)的信息,計(jì)算像素的卷繞數(shù),將所述卷繞數(shù)輸出到圖形處理單元。
[0031]在另一總體方面,提供了一種被配置為執(zhí)行路徑渲染的設(shè)備,所述設(shè)備包括:運(yùn)算單元,被配置為基于連接對(duì)象的多個(gè)頂點(diǎn)的路徑的方向來計(jì)算像素的卷繞數(shù),其中,所述路徑在像素的一側(cè);確定單元,被配置為基于卷繞數(shù)確定是否將顏色分配給像素。
[0032]運(yùn)算單元可被配置為:響應(yīng)于所述方向被確定為順時(shí)針方向,使所述卷繞數(shù)增大預(yù)定值;響應(yīng)于所述方向被確定為逆時(shí)針方向,使所述卷繞數(shù)減小所述預(yù)定值。
[0033]確定單元可被配置為:響應(yīng)于所述卷繞數(shù)不為0,將顏色分配給像素;或響應(yīng)于卷繞數(shù)是奇數(shù),將顏色分配給像素。
[0034]其他特征和方面將從下面的詳細(xì)描述和附圖中變得明顯。
【附圖說明】
[0035]圖1是示出執(zhí)行路徑渲染的設(shè)備的示例的框圖;
[0036]圖2是示出卷繞數(shù)的示例的示圖;
[0037]圖3A和圖3B是示出運(yùn)算單元計(jì)算卷繞數(shù)的示例的示圖;
[0038]圖4A、圖4B、圖4C和圖4D是示出運(yùn)算單元通過選擇不同側(cè)來計(jì)算像素的卷繞數(shù)的示例的示圖;
[0039]圖5是示出運(yùn)算單元計(jì)算像素的卷繞數(shù)的算法的示例的示圖;
[0040]圖6A、圖6B和圖6C是示出確定單元確定是否將顏色分配給每個(gè)像素的示例的示圖;
[0041]圖7是示出執(zhí)行路徑渲染的設(shè)備的另一示例的框圖;
[0042]圖8A和圖8B是示出設(shè)置單元設(shè)置邊界框的示例的示圖;
[0043]圖9是示出卷繞數(shù)產(chǎn)生設(shè)備的示例的框圖;
[0044]圖10是示出運(yùn)算單元和卷繞數(shù)產(chǎn)生設(shè)備進(jìn)行操作的示例的框圖;
[0045]圖11是示出在GPU中實(shí)現(xiàn)計(jì)算像素的卷繞數(shù)的方法的示例的框圖;
[0046]圖12是示出執(zhí)行像素所有權(quán)測(cè)試的方法的示例的流程圖;
[0047]圖13是示出計(jì)算卷繞數(shù)的方法的示例的流程圖;
[0048]圖14是示出確定路徑是否位于像素的一側(cè)的方法的示例的流程圖;
[0049]圖15是示出執(zhí)行路徑渲染的方法的示例的流程圖。
[0050]在整個(gè)附圖和詳細(xì)的描述中,除非另有描述或規(guī)定,否則相同的附圖標(biāo)號(hào)將被理解為表示相同的元件、特征和結(jié)構(gòu)。附圖可能不按照比例,并且為了清楚、說明和方便,可夸大附圖中的元件的相對(duì)大小、比例和描述。
【具體實(shí)施方式】
[0051]提供下面的詳細(xì)描述以協(xié)助讀者獲得對(duì)這里描述的方法、設(shè)備和/或系統(tǒng)的全面理解。然而,這里描述的系統(tǒng)、設(shè)備和/或方法的各種改變、修改和等同物對(duì)于本領(lǐng)域中的普通技術(shù)人員將是明顯的。描述的處理步驟和/或操作的進(jìn)度是示例,然而,除了步驟和/或操作有必要按照特定順序發(fā)生外,否則如本領(lǐng)域公知的那樣,步驟和/或操作的順序不限于這里闡述的步驟和/或操作的順序,并且可被改變。另外,為了更清楚和簡(jiǎn)潔,將省略本領(lǐng)域中的普通技術(shù)人員公知的功能和結(jié)構(gòu)的描述。
[0052]這里描述的功能可被以不同的形式實(shí)現(xiàn),并將不被解釋為限于這里描述的示例。相反,已提供這里描述的示例,使得本公開將是全面且完整的,并將向本領(lǐng)域中的普通技術(shù)人員充分表達(dá)本公開的全部范圍。
[0053]圖1是示出執(zhí)行路徑渲染的設(shè)備100的示例的框圖。參照?qǐng)D1,執(zhí)行路徑渲染的設(shè)備100包括獲取單元110、運(yùn)算單元120和確定單元130。在圖1中,僅示出了執(zhí)行路徑渲染的設(shè)備100的構(gòu)成元件。因此,除圖1中示出的構(gòu)成元件之外,其他普通構(gòu)成元件也可包括在執(zhí)彳丁路徑值染的設(shè)備100中。
[0054]另外,圖1中示出的執(zhí)行路徑渲染的設(shè)備100的獲取單元110、運(yùn)算單元120和確定單元130可與一個(gè)處理器或多個(gè)處理器相應(yīng)??赏ㄟ^多個(gè)邏輯門陣列來實(shí)現(xiàn)處理器,或者可通過普通微處理器和存儲(chǔ)可由微處理器運(yùn)行的程序的存儲(chǔ)器的組合來實(shí)現(xiàn)處理器。另夕卜,本領(lǐng)域中的普通技術(shù)人員將理解,可按照不同