执行基于图块的路径渲染的方法和设备的制造方法

文档序号:9579881阅读:230来源:国知局
执行基于图块的路径渲染的方法和设备的制造方法
【专利说明】执行基于图块的路径渲染的方法和设备
[0001]本申请要求于2014年8月11日提交到韩国知识产权局的第10-2014-0103626号韩国专利申请以及2015年7月13日提交到韩国知识产权局的第10-2015-0099232号韩国专利申请的优先权,所述申请的公开通过引用全部包含于此。
技术领域
[0002]本公开涉及执行基于图块的路径渲染的方法和设备。
【背景技术】
[0003]近来已对在执行矢量图形或路径渲染时提高图形处理单元(GPU)的加速性能的方法进行了研究。设计GPU的硬件结构基于这样的假设:所有的输入数据被配置为三角形以便加速三维图形。然而,对于路径渲染,输入数据不被配置为三角形,而是被配置为命令和顶点的组合。因此,当执行路径渲染时难以提高GPU的加速性能。
[0004]例如,为了通过使用GPU来绘制曲线,控制处理单元(CPU)首先通过使用曲线的开始点作为中心来将曲线划分为多个三角形,并指导GPU将划分的三角形重新配置为曲线。因此,当将曲线划分为多个三角形时,CPU消耗大量的时间。此外,每当CPU调用多个OpenGLAPI时都与GPU通信,并且GPU的状态发生很多变化。
[0005]关于这一点,已提出了在GPU中使用模板缓冲器的基于模板的路径渲染方法。然而,根据基于模板的路径渲染方法,在渲染期间过多地产生了输入到存储器的数据/从存储器输出的数据,从而模板缓冲器不能够进行并行处理。因此,GPU的加速性能的提高受到限制。

【发明内容】

[0006]提供一种执行路径渲染的方法和设备。此外,提供一种存储有程序的非暂时性计算机可读存储介质,当所述程序被计算机运行时执行上述方法。
[0007]将在接下来的描述中部分阐述另外的方面,部分通过描述将是清楚的,或者可以通过本实施例的实施而得知。
[0008]根据本发明构思的一方面,一种渲染包括路径的对象的方法包括:获取路径数据,其中,路径数据包括关于包括在所述路径中的顶点的信息和与所述路径相应的命令;基于路径数据计算包括在帧中的每个图块的卷绕数;基于图块的卷绕数来确定是否执行着色。
[0009]根据本发明构思的另一方面,一种计算像素的卷绕数的方法包括:从图形处理单元接收关于至少一条路径的信息和关于为包括在帧中的每个图块设置的第一卷绕数的信息;基于接收的信息计算与包括在帧中的每个像素相应的卷绕数;将计算的卷绕数输出到图形处理单元。
[0010]根据本发明构思的另一方面,一种渲染对象的方法包括:将包括路径的图像划分为多个图块,每个图块包括多个像素;经由不同的方法为所述多个图块之中的没有路径存在的图块所包括的像素和所述多个图块之中的路径存在的图块所包括的像素分配卷绕数。
[0011]根据本发明构思的另一方面,提供一种存储有程序的非暂时性计算机可读存储介质,当所述程序被计算机运行时执行上述方法。
[0012]根据本发明构思的另一方面,一种渲染包括路径的对象的设备包括:运算单元,被配置为获取路径数据,其中,路径数据包括关于包括在所述路径中的顶点的信息和与所述路径相应的命令;确定单元,被配置为基于图块的卷绕数来确定是否执行着色。
[0013]根据本发明构思的另一方面,一种产生包括在帧中的每个像素的卷绕数的设备,所述设备连接到被配置为渲染形成对象的至少一条路径的图形处理单元,所述设备被配置为:从图形处理单元接收关于至少一条路径的信息和关于为包括在帧中的每个图块设置的第一卷绕数的信息;基于接收的信息计算与包括在帧中的每个像素相应的卷绕数;将计算的卷绕数输出到图形处理单元。
【附图说明】
[0014]结合附图,根据下面的实施例的描述,这些和/或其他方面将变得清楚并更易于理解,其中:
[0015]图1是示出根据实施例的渲染设备的示例的框图;
[0016]图2是根据实施例的执行路径渲染的方法的示例的流程图;
[0017]图3示出根据实施例的卷绕数;
[0018]图4示出根据实施例的运算单元计算图块的卷绕数的示例;
[0019]图5示出根据实施例的运算单元使用路径来设置第一卷绕数的示例;
[0020]图6A和图6B是根据实施例的用于解释运算单元从包括在帧中的图块选择第一路径穿过的图块的示例的示图;
[0021]图7A至图7E示出根据实施例的运算单元从包括在帧中的图块之中选择路径穿过的图块的示例;
[0022]图8是根据实施例的用于解释运算单元获取每个图块的第一初始值的示例的示图;
[0023]图9A至图9C示出根据实施例的运算单元针对一条路径分配第一初始值的规则的示例;
[0024]图1OA和图1OB是根据实施例的用于解释运算单元从包括在帧中的图块之中选择第二路径穿过的图块并且获取每个图块的第二初始值的示例的示图;
[0025]图1lA至图1lC示出根据实施例的由运算单元执行的考虑两条或更多条路径的前进方向来分配初始值的规则的示例;
[0026]图12是根据实施例的用于解释当存在三条路径时运算单元设置图块的初始值的示例的示图;
[0027]图13A和图13B是根据实施例的用于解释运算单元从包括在帧中的图块之中选择第三路径穿过的图块并且获取每个图块的第三初始值的示例的示图;
[0028]图14示出根据实施例的运算单元使用路径来设置第一卷绕数的示例;
[0029]图15示出根据实施例的运算单元设置第一卷绕数的示例;
[0030]图16A至图16C是根据实施例的用于解释运算单元计算路径穿过的每个图块的第二卷绕数的示例的示图;
[0031]图17A至图17C是根据实施例的用于解释确定单元基于包括在帧中的每个像素的卷绕数来确定是否执行着色的示例的示图;
[0032]图18是示出根据另一实施例的渲染设备的结构的框图;
[0033]图19A至图19B是根据实施例的用于解释划分单元进行操作的示例的示图;
[0034]图20是根据实施例的包括在路径数据中的非单调曲线的示例的曲线图;
[0035]图21A和图21B是根据实施例的用于解释运算单元通过使用图20的第一单调曲线将每个预定图块的初始卷绕值更新为第一初始值的示例的示图;
[0036]图22A和图22B是根据实施例的用于解释运算单元通过使用图20的第二单调曲线将每个预定图块的第一初始值更新为第二初始值的示例的示图;
[0037]图23A和图23B是根据实施例的用于解释运算单元通过使用图20所示的从顶点P2到顶点P c的路径将每个预定图块的第二初始值更新为第三初始值的示例的示图;
[0038]图24A和图24B是根据实施例的用于解释划分单元将圆形路径转换为三次曲线的示例的示图;
[0039]图25是根据另一实施例的渲染设备的结构的框图;
[0040]图26是根据实施例的用于解释卷绕数产生器的示例的框图;
[0041]图27A和图27B是用于解释在图像处理单元(GPU)中实施的路径渲染方法的示例的示图;
[0042]图28是根据实施例的用于解释顶点着色器的操作的示例的流程图;
[0043]图29是根据实施例的用于解释顶点着色器执行图块合并(binning)的示例的流程图;
[0044]图30是根据实施例的用于解释顶点着色器计算每个像素的卷绕数并确定是否执行像素的着色的示例的流程图;
[0045]图31是根据实施例的用于解释计算像素的卷绕数的方法的示例的流程图。
【具体实施方式】
[0046]现在,将详细参照实施例,实施例的示例在附图中示出。
[0047]图1是示出根据实施例的渲染设备100的示例的框图。
[0048]参照图1,渲染设备100可包括运算单元110和确定单元120。在图1中,仅示出了与根据本实施例的执行路径渲染的渲染设备100相关的构成元件。因此,除图1中示出的构成元件之外,其他普通构成元件也可包括在执行路径渲染的渲染设备100中。
[0049]另外,图1中示出的渲染设备100的运算单元110和确定单元120可与一个处理器或多个处理器相应。可通过多个逻辑门的阵列来实现处理器,或者可通过普通微处理器和存储可由微处理器运行的程序的存储器的组合来实现处理器。另外,本领域中的普通技术人员将理解,可按照不同的硬件形式来实现处理器。
[0050]运算单元110获取路径数据,其中,路径数据包括关于包括在路径中的顶点的信息和与所述路径相应的命令。运算单元110基于路径数据来确定包括在帧中的每个图块的卷绕数。
[0051]例如,运算单元110可从渲染设备100的外部设备接收路径数据,并基于包括在路径数据中的关于路径的位置和前进方向的信息来为每个图块设置第一卷绕数。外部设备可以是在渲染设备100之外的存储器或中央处理单元(CPU)。运算单元110可基于第一卷绕数确定包括在帧中的图块之中的所述路径穿过的每个图块的第二卷绕数。
[0052]确定单元120基于图块的卷绕数来确定是否执行着色。
[0053]渲染设备100以图块为单位来确定卷绕数,并基于确定的卷绕数来确定是否执行着色。具体地说,运算单元110将第一卷绕数确定为包括在帧中的图块之中的所述路径没有穿过的图块的卷绕数,并第二卷绕数确定为所述路径穿过的图块的卷绕数。因此,由于仅针对包括在帧中的图块之中的所述路径穿过的图块来精确地计算卷绕数,因此渲染设备100的性能可被提尚。
[0054]下面将参照图2来详细描述渲染设备100的操作的示例。
[0055]图2是根据实施例的执行路径渲染的方法的示例的流程图。
[0056]参照图2,执行路径渲染的方法包括由图1的渲染设备100按时间连续地处理的操作。
[0057]在操作210,运算单元110获取路径数据,其中,路径数据包括关于包括在路径中的顶点的信息和与所述路径相应的命令。
[0058]路径可以是构成将被渲染设备100渲染的目标(例如,对象)的元素。例如,路径可以是从一个点连接至另一点的直线或曲线。对象可包括通过连接至少一条路径形成的闭合多边形或闭合路径。渲染设备100可通过将图像或图像的部分划分为连续的小图块来执行渲染。例如,渲染设备100可将显示运动图像或静止图像的帧的整个屏幕或屏幕的部分划分为连续的小图块来执行渲染。例如,一个图块可包括32X32的像素,但是本实施例不限于此。
[0059]路径数据包括关于包括在路径中的多个顶点的每个顶点的坐标的信息以及用于通过组合顶点来形成路径的命令。顶点包括与路径的起始位置对应的顶点和与路径的结束位置对应的顶点。
[0060]例如,假设包括在帧(未示出)中的像素之中的第一像素至第二像素的直线被定义为路径,则顶点表示与第一像素和第二像素对应的点。因此,路径数据包括与第一像素对应的第一顶点的坐标、与第二像素对应的第二顶点的坐标、以及用于形成从第一顶点至第二顶点的直线的命令。因此,除了关于形成路径的顶点的每个的坐标的信息,还通过参照路径数据来获取关于路径的位置和前进方向的信息。此外,路径数据可包括关于为每个像素设置的颜色值的信息。
[0061]在操作220,运算单元110基于路径数据确定包括在帧中的每个图块的卷绕数。
[0062]运算单元110基于包括在路径数据中的关于路径的位置和前进方向的信息,针对每个图块设置第一卷绕数。运算单元110基于第一卷绕数,确定包括在帧中的图块之中的所述路径穿过的每个图块的第二卷绕数。
[0063]图块的卷绕数是包括在图块中的每个像素的卷绕数。根据路径对图块的穿过情况,图块的所有像素可具有相同的卷绕数或不同的卷绕数。
[0064]卷绕数可以是指示针对特定像素的一侧在路径的渲染期间进行的旋转的数量的预定值。
[0065]可通过在路径顺时针方向地形成完整的圆时增大预定值并在路径逆时针方向地形成完整的圆时减小所述预定值,确定卷绕数。在另一实施例中,可以按与上面相反的方式(即,通过在路径顺时针方向地形成完整的圆时减小预定值并在路径逆时针方向地形成完整的圆时增大所述预定值),确定卷绕数。
[0066]在一个示例中,当路径顺时针方向地形成完整的圆时,像素的卷绕数可以是+1。另夕卜,当路径逆时针方向地形成完整的圆时,像素的卷绕数可以是-1。
[0067]在另一示例中,当路径顺时针方向地形成完整的圆时,像素的卷绕数可以是-1。另夕卜,当路径逆时针方向地形成完整的圆时,像素的卷绕数可以是+1。
[0068]另外,预定值可以是整数,但本示例不限于此。换言之,当从特定像素的位置观看一侧时,卷绕数可(不进行限制地)相应于映射到在路径的渲染期间被渲染的旋转的数量的任何数。
[0069]在下面的描述中,为了方便解释,假设当路径顺时针方向地形成完整的圆时卷绕数是+1,当路径逆时针方向地形成完整的圆时卷绕数是-1。参照图3详细描述卷绕数。
[0070]图3是根据实施例的用于解释卷绕数的示图。
[0071]图3示出用于解释与包括在帧510中的像素的像素P相应的卷绕数的示图。在图3中,为了方便解释,像素P被示为人的形状。为了方便解释,图3示出沿一个方向观看像素P的人的形状。
[0072]参照图3,路径330被示出为在像素P的周围,并且路径330被示出为闭合的路径。
[0073]当虚构的射线320从像素P开始并朝向像素P的右侧在水平方向上被渲染时,虚构的射线320与路径330在总共四个顶点331、332、333和334处相交。因此,基于路径230在四个顶点331、332、333和334中的每个顶点处被渲染的方向来确定像素P的卷绕数。
[0074]详细地讲,路径330在第一顶点331处被渲染的方向是逆时针方向。因此,像素P的卷绕数首先被计算为-1。路径330在第二顶点332处被渲染的方向是顺时针方向(即,从顶部向底部),因此像素P的卷绕数第二次被计算为O (-1+1)。路径330在第三顶点333处被渲染的方向是逆时针方向,因此像素P的卷绕数第三次被计算为-1 (-1+1-1)。路径330在第四顶点334处被渲染的方向是逆时针方向,因此像素P的卷绕数被最终计算为-2(-1+1-1-1)。
[0075]根据上面参照图3的描述,尽管像素P的卷绕数被描述为考虑位于像素P的右侧的路径进行计算,但是本实施例不限于此。换言之,运算单元110可考虑位于相对于像素P的位置的左侧、右侧、上侧和下侧中的至少一个的路径来计算像素P的卷绕数。
[0076]运算单元110可在不使用模板缓冲器的情况下计算包括在图块中的每个像素的卷绕数。换言之,运算单元110在不在模板缓冲器中对包括对象的三角形进行渲染的情况下,并行计算每个图块的卷绕数。因此,可防止在基于模板缓冲器的渲染过程中发生的输入/输出的数据量的增加和渲染时间的增加。
[0077]另外,运算单元110可通过使用多个线程来计算卷绕数。单个线程可被用于计算单个像素的卷绕数。由于可对多个线程进行并行处理,因此运算单元110可通过使用多个线程来同时运算多个像素的卷绕数。因此,渲染设备100可高速执行路径渲染。
[0078]返回参照图2,运算单元110仅针对路径穿过的图块详细地计算卷绕数。换言之,运算单元110针对包括在帧中的所有图块设置第一卷绕数,并仅针对包括在帧中的图块之中的路径穿过的图块,基于第一卷绕数来计算第二卷绕数。由于包括在路径不穿过的图块中的像素的卷绕数被确定为第一卷绕数,因此,包括在路径不穿过的图块中的所有像素具有相同的卷绕数。因此,渲染设备100可高速执行路径
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1