CN109509244B - 一种执行路径渲染的图形处理器及其操作方法 - Google Patents
一种执行路径渲染的图形处理器及其操作方法 Download PDFInfo
- Publication number
- CN109509244B CN109509244B CN201810520788.7A CN201810520788A CN109509244B CN 109509244 B CN109509244 B CN 109509244B CN 201810520788 A CN201810520788 A CN 201810520788A CN 109509244 B CN109509244 B CN 109509244B
- Authority
- CN
- China
- Prior art keywords
- primitive
- wrap
- wrap number
- information
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims description 25
- 238000003672 processing method Methods 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 134
- 238000004804 winding Methods 0.000 claims description 101
- 239000003086 colorant Substances 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本公开提供了用于执行路径渲染的图形处理器和图形处理方法。图形处理方法可以包括接收包括关于对象的基元信息的对象信息;针对各个像素生成基元掩码,所述基元掩码对应于基元信息并且包括多个位;基于所述基元掩码生成关于各个像素的卷绕数;以及基于所述卷绕数来渲染像素。
Description
相关申请的交叉引用
本申请要求于2017年9月12日在韩国知识产权局提交的韩国专利申请第10-2017-0116658号的权益,其公开内容通过引用整体并入本文。
技术领域
本公开涉及一种图形处理器,并且更具体地,涉及执行路径渲染的图形处理器,以及其操作方法。
背景技术
近年来,随着显示分辨率的提高以及显示图形变得越来越复杂,研究了在进行矢量图形或路径描绘时提高图形处理器等硬件的加速性能的技术。对于路径渲染,已经引入了用于计算与各个像素对应的卷绕数(winding numbers)并执行渲染的技术。然而,由于该方法包括计算各个像素的卷绕数,因此相对于所有像素的整体渲染时间增加。因此,这里描述了更快的渲染方法。
发明内容
本公开提供了一种能够通过减少卷绕数计算量来高效地执行渲染的图形处理器。
本公开还提供了一种操作能够通过减少卷绕数计算量来高效地执行渲染的图形处理器的方法。
根据本发明构思的一方面,提供了一种渲染对象的图形处理方法,该图形处理方法包括由一个或多个处理器接收包括关于对象的基元信息(primitive information)的对象信息;由一个或多个处理器生成针对各个像素的基元掩码(primitive mask),该基元掩码对应于基元信息并且包括多个位;由一个或多个处理器基于基元掩码,生成关于各个像素的卷绕数;并基于卷绕数来渲染像素。
根据本发明构思的另一方面,提供了一种图形处理器,其根据基元信息以不同方式生成卷绕数,图形处理器包括被配置为接收包括关于目标的基元信息的目标信息的卷绕数生成器,卷绕数生成器包括用于存储对应于基元信息的卷绕数的第一存储器;以及被配置为基于卷绕数来执行渲染的渲染确定器,其中,卷绕数生成器基于确定与基元信息相对应的卷绕数是否被存储在第一存储器中来以不同的方式分别生成对应于多个像素的卷绕数。
根据本发明构思的另一方面,提供了一种图形处理器,包括被配置为基于基元信息生成包括多个位的基元掩码的卷绕数管理器;以及被配置为存储基元掩码和与基元掩码相对应的卷绕数的第一存储器,其中,卷绕数管理器被配置为响应于基元信息的接收向第一存储器写入或从第一存储器读取对应于基元信息的卷绕数。
附图说明
从以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,在附图中:
图1是示出根据示例实施例的图形处理器的框图;
图2是根据示例实施例的操作图形处理器的方法的流程图;
图3是根据示例实施例的关于生成图2的卷绕数WN的操作的流程图;
图4A是根据示例实施例的卷绕数生成器的框图;
图4B是根据示例实施例的卷绕数生成器的框图;
图5是根据示例实施例的用于描述卷绕数的图;
图6是根据示例实施例的用于描述卷绕数生成器的操作的表格;
图7是根据示例实施例的用于描述卷绕数生成器的操作的表格;
图8是用于描述根据示例性实施例的卷绕数生成器选择不同的边来计算像素的卷绕数WN的示例的图;
图9是根据示例实施例的示出图2的渲染操作的流程图;
图10是用于描述根据示例实施例的渲染确定器确定是否将颜色设置到每个像素的示例的图;
图11是根据示例实施例的图形处理器的框图;
图12是示出根据示例实施例的边界框管理器的操作的示例的图;
图13是根据示例实施例的操作图形处理器的方法的流程图;
图14是示出根据示例实施例的操作图形处理器的方法的图;
图15是根据示例实施例的操作图形处理器的方法的流程图;以及
图16是示出根据示例实施例的图形处理系统的图。
具体实施方式
图1是示出根据示例实施例的图形处理器(GPU)的框图。
参考图1,可以是电路、芯片或处理器形式的图形处理器100可以包括卷绕数生成器110和渲染确定器120。用于生成、分析、比较和/或计算值的各种组件,例如卷绕数生成器110、渲染确定器120和本申请中描述的其他部件可以包括能够执行操作的任何合适的装置,诸如各种硬件和/或软件组件、电路和/或模块。该软件可以包括用于实现逻辑功能的可运行指令的有序列表,并且可以体现在由指令执行系统、装置或设备使用或与其结合使用的任何“处理器可读介质”中,诸如单个或多个核心处理器或包含处理器的系统。
结合本文公开的实施例描述的方法或算法和功能的块或步骤可直接体现在硬件(例如,GPU的硬件)中、由处理器执行的软件模块(例如,由GPU运行的软件)、或两者的组合。软件模块可以驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD ROM或者本领域已知的任何其他形式的存储介质。
卷绕数生成器110可以接收基元信息PI。根据示例实施例,可以从中央处理器(CPU)接收基元信息PI,并且CPU可以使用包括关于包括在要渲染的对象中的顶点的信息的对象信息来生成基元信息PI。对象可以包括至少一个要渲染的基元并且可以包括闭合的多边形或者通过连接至少一个基元形成的闭合路径。这里,基元可以指代从一点延伸到另一点的直线或曲线。对象信息可以包括关于顶点的坐标的信息和用于通过组合顶点来配置基元的命令。这里,顶点可以包括对应于基元的起始位置的顶点或者对应于基元的结束位置的顶点。
例如,当假定从帧中包括的像素中从图像的第一像素到第二像素的直线是基元时,顶点可以指分别对应于帧中第一像素和第二像素的点。因此,对象信息可以包括对应于第一像素的第一顶点的坐标、对应于第二像素的第二顶点的坐标以及指示配置从第一顶点到第二顶点的直线的命令。因此,通过参考对象信息,不仅可以获得关于构成基元的顶点坐标的信息,还可以获得关于基元方向的信息。此外,对象信息可以包括关于要被设置到各个像素的颜色值的信息。
卷绕数生成器110还可以从CPU接收颜色分配规则信息、样本位置信息和颜色信息,并且颜色分配规则信息、基元信息PI、样本位置信息和颜色信息可以构成有关像素的几何结构数据。样本位置信息可以包括关于对应于对象信息的像素的位置的信息,并且颜色信息可以包括关于将被分配给像素的颜色的信息。颜色分配规则信息可以包括用于根据卷绕数WN将颜色分配给像素的规则,并且基元信息PI可以包括关于在相应像素的位置处沿着一个方向延伸的基元的信息。
卷绕数生成器110可以基于所接收的基元信息PI来生成卷绕数WN,并将卷绕数WN输出到渲染确定器120。根据示例实施例,卷绕数生成器110可以基于基元信息PI生成关于右基元的信息,并基于右基元生成卷绕数WN。根据另一示例实施例,基元信息PI可以包括关于右基元的信息,并且卷绕数生成器110可以基于关于右基元的信息来生成卷绕数WN。右基元可以包括关于位于每个像素的右侧的假想线上存在的基元的信息,在整个本说明书中被称为右基元,但是本发明构思不限于此。以下将参照图5和图8详细描述右基元。根据本发明构思的示例实施例,卷绕数生成器110可以包括卷绕数存储器111(例如,存储一个或多个卷绕数的存储器单元),并且可以通过使用卷绕数存储器111来减少卷绕数WN的计算量。
卷绕数存储器111是用于存储对应于基元信息PI的卷绕数WN的存储器。例如,卷绕数存储器111可以包括诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、锁存器、触发器和寄存器之类的易失性存储器或者诸如NAND闪存、垂直NAND(VNAND)闪存、NOR闪存、电阻随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器MRAM)、铁电随机存取存储器(FRAM)和自旋转移随机存取存储器(STT-RAM)的非易失性存储器。在下文中,将描述卷绕数存储器111是高速缓存存储器,但是应该理解,本发明构思不限于此。
卷绕数生成器110可以基于所接收的基元信息PI来检查对应于右基元的卷绕数WN是否被存储在卷绕数存储器111中。当在卷绕数存储器111中存储了对应于右基元的卷绕数WN时,卷绕数生成器110可以从卷绕数存储器111中读取对应于右基元的卷绕数WN,而不计算卷绕数WN。结果,可以减少卷绕数WN的计算量。
当对应于右基元的卷绕数WN没有被存储在卷绕数存储器111中时,卷绕数生成器110可以基于各个像素的位置之间的关系以及至少一个顶点互连顶点的延伸方向来计算分别对应于帧中包括的像素的卷绕数WN。
这里,卷绕数WN可以指代预设值N,预设值N指示了当从特定像素的位置横向观看正在绘制基元时基元被旋转的次数。可以通过在基元顺时针方向旋转时增加预设数N并且在基元逆时针方向旋转时减小预设数N来计算卷绕数WN。然而,本发明构思不限于此。例如,当基元在顺时针方向上旋转一次时,像素的卷绕数WN可以是+1。相反,当基元在逆时针方向上旋转一次时,像素的卷绕数WN可以是-1。在另一示例中,当基元在顺时针方向上旋转一次时,像素的卷绕数WN可以是-1。相反,当基元在逆时针方向上旋转一次时,像素的卷绕数WN可以是+1。
此外,预设值N可以是整数,但不限于此。换言之,卷绕数WN可以无限制地被映射到当从特定像素的位置横向观看正在绘制基元时基元被旋转的次数的任何数字。例如,当基元在顺时针方向上旋转一次时,像素的卷绕数WN可以是+0.1。相反,当基元在逆时针方向上旋转一次时,像素的卷绕数WN可以是-0.1。在另一个例子中,当基元在顺时针方向上旋转一次时,像素的卷绕数WN可以是-0.5。相反,当基元在逆时针方向上旋转一次时,像素的卷绕数WN可以是+0.5。
卷绕数生成器110可以将如上所述生成的卷绕数WN输出到渲染确定器120。渲染确定器120可以基于卷绕数WN确定是否将颜色分配给对应的像素。根据示例实施例,渲染确定器120还可以接收关于颜色分配规则的信息,并且可以基于颜色分配规则和卷绕数WN来确定是否将颜色分配给对应的像素。根据示例实施例,渲染确定器120还可以从卷绕数生成器110接收颜色信息,并将该像素渲染为与接收到的颜色信息相对应的颜色。例如,渲染确定器120可以用硬件(例如,集成电路)和/或软件来实现。
图2是根据示例实施例的操作图形处理器的方法的流程图。
参照图1和图2,图形处理器100可以接收基元信息PI(操作S100)。图形处理器100可以通过使用基元信息PI来生成基元掩码(操作S200)。基元掩码是由多个位组成的数据,其可以对应于每个像素的右基元。图形处理器100可以基于基元掩码生成卷绕数WN(操作S300)。图形处理器100生成卷绕数WN的方法可以根据对应于基元掩码的卷绕数WN是否被存储在卷绕数存储器111中而变化。下面将参照图3、图4A和图4B给出其详细描述。图形处理器100可以基于所生成的卷绕数WN来渲染像素(操作S400)。
图3是关于用于生成图2的卷绕数WN的操作S300的流程图。
参考图1和图3,图形处理器100可以检查对应于基元掩码的卷绕数WN是否被存储在卷绕数存储器111中(操作S310)。例如,图形处理器100可以将对应于基元掩码的地址输出到卷绕数存储器111以读取卷绕数WN,并且当卷绕数存储器111响应于此输出卷绕数WN时,图形处理器100可以确定卷绕数WN存储在卷绕数存储器111中。相反,当卷绕数存储器111不输出对应于基元掩码的卷绕数WN或输出指示没有存储数据的消息(例如“NULL”)时,图形处理器100可以确定对应于基元掩码的卷绕数WN没有被存储在卷绕数存储器111中。
当对应于基元掩码的卷绕数WN被存储在卷绕数存储器111中时(操作S320),图形处理器100可以通过从卷绕数存储器111读取卷绕数WN来生成卷绕数WN(操作S330)。
当对应于基元掩码的卷绕数WN没有被存储在卷绕数存储器111中(操作S320)时,图形处理器100可以通过基于基元信息PI(操作S340)计算卷绕数WN来生成卷绕数WN。图形处理器100可将基元掩码和计算出的卷绕数WN存储在卷绕数存储器111中以便彼此对应。
图4A是根据示例性实施例的卷绕数生成器的框图。卷绕数生成器可以包括用于实现下面讨论的各种特征的硬件和/或软件。详细地说,图4A是示出当在卷绕数存储器111中存储与基元掩码对应的卷绕数WN时的卷绕数生成器110的操作的框图。
参照图1和图4A,卷绕数生成器110可以包括卷绕数存储器111、基元信息存储器112、卷绕数管理器113和卷绕数计算器114。在上面参考图1描述了卷绕数存储器111,因此将省略其详细描述。
基元信息存储器112是用于存储从CPU接收的基元信息PI的存储器。基元信息存储器112可以包括诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、锁存器、触发器和寄存器等的易失性存储器或诸如NAND闪存、垂直NAND(VNAND)闪存、NOR闪存、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)和自旋转移力矩随机存取存储器(STT-RAM)等的非易失性存储器。在下文中,将描述基元信息存储器112是高速缓冲存储器,但是应该理解,本发明构思不限于此。
卷绕数管理器113可以在集成电路上实现并且还可以使用计算机可编程代码来实现,可以读取所存储的基元信息PI,并且基于所读取的基元信息PI生成基元掩码PM。通过参考基元信息PI,卷绕数管理器113可以将对应于从特定像素位置在一个方向延伸的基元的位设置为“1”,并且将对应于不在该方向上延伸的基元的位设置为“0”,从而生成基元掩码PM。根据另一个示例性实施例,卷绕数管理器113可以将对应于从特定像素位置在一个方向延伸的基元的位设置为“0”,对应于不在该方向上延伸的基元的位设置为“1”,从而生成基元掩码PM。以下将参照图6给出其详细描述。
卷绕数管理器113可以检查对应于根据上述方法生成的基元掩码PM的卷绕数WN是否被存储在卷绕数存储器111中。例如,卷绕数管理器113可以将对应于基元掩码PM的地址输出到卷绕数存储器111,卷绕数存储器111可以将卷绕数WN输出到卷绕数管理器113。卷绕数管理器113可以将根据上述方法生成的卷绕数WN输出到渲染确定器120。
图4B是根据示例实施例的卷绕数生成器的框图。详细地说,图4B是示出在卷绕数存储器111中未存储卷绕数WN时的卷绕数生成器110的操作的框图。
参照图1和图4B,卷绕数生成器110可以包括卷绕数存储器111、基元信息存储器112、卷绕数管理器113和卷绕数计算器114。由于以上参照图4A描述了卷绕数存储器111、基元信息存储器112和卷绕数管理器113,将省略其详细描述。
卷绕数管理器113可以基于基元信息PI来生成基元掩码PM,并检查在卷绕数存储器111中是否存储了对应于所生成的基元掩码PM的卷绕数WN。当在卷绕数存储器111中未存储卷绕数WN时,卷绕数管理器113可将基元信息PI输出到卷绕数计算器114。卷绕数计算器114可以以上述方式计算卷绕数WN,并将所生成的卷绕数WN输出到卷绕数管理器113和渲染确定器120。卷绕数管理器113可以将所生成的卷绕数WN和基元掩码PM存储在卷绕数存储器111中以便彼此对应。可以例如通过硬件或硬件以及一个或多个处理器(例如,GPU和/或CPU)的计算机程序代码来执行在本文描述的计算和生成以及其他计算和生成。
图5是用于描述根据示例实施例的卷绕数WN的图。
图5是示出了实施例,示出对应于在帧中包含的第一至第六像素P1至P6的卷绕数WN。在第一至第六像素P1至P6周围示出了第一至第五基元V1至V5,并且第一至第五基元V1至V5可以构成单个闭合路径。虽然图5示出了通过使用位于第一像素P1至第六像素P6的右侧的基元来计算第一像素P1至第六像素P6的卷绕数WN,但这仅仅是示例,本发明构思不限于此。此外,第一至第六像素P1至P6的右基元可以指的是与从第一至第六像素P1至P6向右引出的假想半直线(imaginary semi-straight)相交(meet)的基元。
当从第一像素P1向右水平地延伸假想半直线时,假想半直线可以与第二基元V2相交。第二基元V2可以在假想半直线与第二基元V2相交的交点处从第一像素P1沿顺时针方向延伸。因此,可以将对应于第一像素P1的卷绕数WN计算为“+1”。同样,第二基元V2可以在从第二像素P2延伸假想半直线与第二基元V2相交的交点处从第二像素P2沿顺时针方向延伸,对应于第二像素P2的卷绕数WN也可以计算为“+1”。
当从第三像素P3向右水平地延伸假想半直线时,假想半直线可以与第二基元V2和第五基元V5相交。第二基元掩码V2可以在假想半直线与第二基元V2相交的交点处从第三像素P3沿顺时针方向延伸,并且第五基元V5可以在假想半直线与第五基元V5相交的交点处从第三像素P3沿顺时针方向延伸。因此,与第三像素P3相对应的卷绕数WN可以被计算为“1+1=2”。类似地,在第四像素P4的情况下,因为由从第四像素P4向右水平延伸的假想半直线相交的基元和基元在交点处延伸的方向与第三像素P3的情况相同,所以与第四像素P4对应的卷绕数WN也可以计算为“1+1=2”。
当从第五像素P5向右水平地延伸假想半直线时,假想半直线可以与第二基元V2、第三基元V3和第五基元V5相交。第二基元V2在假想半直线与第二基元V2相交的交点处延伸的方向可以是从第五像素P5开始的顺时针方向,第三基元V3在假想半直线与第三基元V3相交的交点处延伸的方向可以是从第五像素P5开始的逆时针方向,并且第五基元V5在假想半直线与第五基元V5相交的交点处延伸的方向可以是从第五像素P5开始的顺时针方向。因此,可以将与第五像素P5对应的卷绕数WN计算为“1-1+1=+1”。类似地,在第六像素P6的情况下,由于与从第六像素P6向右水平延伸的假想半直线相交的基元和基元在交点延伸的方向与第五像素P5的情况相同,对应于第六像素P6的卷绕数WN也可以计算为“1-1+1=+1”。
由于由包括在第一区域(a)中的所有像素水平地向右延伸的假想半直线相交的基元和基元在交点延伸的方向是相同的,所以对应于包含在第一区域(a)中的所有像素中的卷绕数WN可以彼此相同,或者“+1”。此外,类似地,从包括在第二区域(b)中的所有像素水平地向右水平延伸的假想半直线相交的基元与基元在交点处延伸的方向相同,对应于包括在第二区域(b)中的所有像素的卷绕数WN可以彼此相同,或者“+2”。同样地,对应于包括在第三区域(c)中的所有像素的卷绕数WN可以彼此相同,或者“+1”。
具有相同右基元的像素可以具有相同的卷绕数WN。因此,根据所公开的实施例,对于具有与像素的右基元相同的右基元的像素,可以利用关于任何一个像素的卷绕数WN的计算结果。
根据示例实施例,卷绕数生成器(图1中的110)可以基于基元信息PI来生成右基元。根据另一示例实施例,卷绕数生成器(图1中的110)可以从外部单元(例如,CPU)接收作为基元信息PI的右基元。
图6是用于描述根据示例实施例的卷绕数生成器的操作的表格。
参照图1、图5和图6,第一像素P1和第二像素P2都可以具有作为右基元RP的第二基元V2。根据示例实施例,卷绕数生成器110可以基于基元信息PI将第二基元V2确定为第一像素P1和第二像素P2的右基元RP。根据另一示例实施例,卷绕数生成器110可以从外部单元(例如,CPU)接收右基元RP。卷绕数生成器110可以基于右基元RP来生成基元掩码PM。例如,基元掩码PM的位置可以对应于各个基元,其中,卷绕数目生成器110可以仅将对应于具有第二基元V2的第一像素P1和第二像素P2的基元掩码PM设置为右基元RP,使得来自右侧的基元掩码PM的第二数字是“1”,而其余数字是“0”。结果,对应于第一像素P1和第二像素P2基元掩码PM可以被设置为“00010”。
例如,卷绕数生成器110可以接收关于第一像素P1的基元信息P1,并且卷绕数生成器110可以确定对应于第一像素P1的基元掩码PM的卷绕数WN“00010”没有被存储在卷绕数存储器111中。因此,卷绕数生成器110可以计算对应于第一像素P1的卷绕数WN为“+1”,并将计算出的卷绕数WN和基元掩码PM存储在卷绕数存储器111(例如,将计算出的卷绕数WN保存到高速缓存),使得计算出的卷绕数WN和基元掩码PM彼此对应。
接下来,卷绕数生成器110可以接收关于具有与第一像素P1相同的右基元的第二像素P2的基元信息PI。由于与第一像素P2的基元掩码PM“00010”相对应的卷绕数WN被存储在卷绕数存储器111中(例如,被保存到高速缓存中),因此卷绕数生成器110可以通过从卷绕数存储器111中读出卷绕数WN来生成对应于第二像素P2的卷绕数WN,而无需计算卷绕数WN。
类似地,在第三像素P3和第四像素P4的情况下,卷绕数生成器110可以经由计算生成对应于第三像素P3的卷绕数WN,并将计算出的卷绕数WN和基元掩码PM存储在卷绕数存储器111中以便彼此对应。卷绕数生成器110可以从卷绕数存储器111读出对应于之后接收的第四像素P4的卷绕数WN而不计算卷绕数WN,从而生成对应于第四像素P4的卷绕数WN。
类似地,在第五像素P5和第六像素P6的情况下,卷绕数生成器110可以经由计算生成对应于第五像素P5的卷绕数WN,并将计算出的卷绕数WN和基元掩码PM存储在卷绕数存储器111中以便彼此对应。卷绕数生成器110可以从卷绕数存储器111读出对应于之后接收的第六像素P6的卷绕数WN而不计算卷绕数WN,从而生成对应于第六像素P6的卷绕数WN
图7是用于描述根据示例实施例的卷绕数生成器的操作的表格。
参考图1和图7,在第一示例(a)中,卷绕数生成器110可以生成“00010”作为第一基元掩码(PM1)。卷绕数生成器110可以检查在卷绕数存储器111中是否存储了对应于“00010”的卷绕数WN。由于对应于“00010”的第一卷绕数WN WN1在卷绕数存储器中被存储为“+1”,卷绕数生成器110可以从卷绕数存储器111读出第一卷绕数WN WN1而不需要单独的计算,从而生成第一卷绕数WN WN1。
在第二示例(b)中,卷绕数生成器110可以生成“10000”作为第二基元掩码PM2。卷绕数生成器110可以检查在卷绕数存储器111中是否存储了对应于“10000”的卷绕数WN。由于对应于“10000”的卷绕数WN没有存储在卷绕数存储器111中,所以卷绕数生成器110可以通过使用右基元来计算第二卷绕数WN WN2为“+1”。卷绕数生成器110还可以将计算出的第二卷绕数WN WN2存储在卷绕数存储器111中,以对应于作为第二基元掩码PM2的“10000”。
图8是用于描述其中根据示例实施例的卷绕数生成器选择不同的边来计算像素的卷绕数WN的示例的图。
参考图1和图8,图8A至图8D示出了每个包括顶点1到顶点5的对象。在图8A至图8D中示出的对象是具有星形形状的相同的闭合多边形。参考图8A,卷绕数生成器110可以确定路径是否位于像素P的右侧。具体地,卷绕数生成器110可以确定从顶点2到顶点3的路径以及从顶点5到顶点1的路径存在于像素P的右侧(例如,从像素P向右侧水平延伸的假想半直线上的位置)。因为从顶点2到顶点3的路径延伸的方向和从顶点5到顶点1的路径延伸的方向都是顺时针方向,所以卷绕数生成器110可以计算像素P的卷绕数为+2。
参考图8B,卷绕数生成器110可以确定路径是否位于像素P的左侧。具体地,卷绕数生成器110可以确定从顶点1到顶点2的路径以及从顶点3到顶点4的路径存在于像素P的左侧(例如,从像素P向左侧水平延伸的假想的半直线上的位置)。因为从顶点1到顶点2的路径延伸的方向和从顶点3到顶点4的路径延伸的方向都是顺时针方向,所以卷绕数生成器110可以计算像素P的卷绕数为+2。
参考图8C,卷绕数生成器110可以确定路径是否位于像素P的上侧。可以例如通过硬件或一个或多个处理器(例如,GPU和/或CPU)的硬件和软件来执行在此描述的确定和其它确定。具体而言,卷绕数生成器110可以确定从顶点2到顶点3的路径和从顶点4到顶点5的路径存在于像素P的上侧(例如,从像素P向上侧水平延伸的假想半直线上的位置)。因为从顶点2到顶点3的路径延伸的方向和从顶点4到顶点5的路径延伸的方向都是顺时针方向,所以卷绕数生成器110可以计算像素P为+2。
参考图8D,卷绕数生成器110可以确定路径是否位于像素P的下侧。具体地,卷绕数生成器110可以确定从顶点5到顶点1的路径和从顶点3到到顶点4的路径存在于像素P的下侧(例如,从像素P向下水平延伸的假想半直线上的位置)。因为从顶点5到顶点1的路径延伸的方向和从顶点3到顶点4的路径延伸的方向都是顺时针方向,所以卷绕数生成器110可以计算像素P为+2。
如上所述,即使卷绕数生成器110选择像素P周围的任何一侧并计算卷绕数,其结果也可以全部相同。而且,如在图8A至图8D中所示,存在于由路径分离的区域之中的相同区域中的像素的卷绕数WNs可以相同。
图9是示出图2的渲染操作(操作S400)的流程图。详细地说,图9是示出操作渲染确定器的方法的流程图。
参照图1和图9,渲染确定器120可以接收对应于像素的卷绕数WN和颜色分配规则FR(操作S410)。渲染确定器120可以确定颜色分配规则FR是否是非零规则(操作S420)。当颜色分配规则FR是非零规则时,可以确定像素的卷绕数WN是否不是“0”(操作S430)。当像素的卷绕数WN不是“0”时,渲染确定器120可以将像素渲染为所确定的颜色(操作S460)。例如,渲染确定器120可以从外部单元(例如,CPU)接收关于所确定的颜色的更多信息并将像素渲染为所确定的颜色。当像素的卷绕数WN是“0”时,渲染确定器120可以不渲染像素。
当颜色分配规则FR不是非零规则时,渲染确定器120可以确定颜色分配规则FR是否是奇偶规则(操作S440)。当颜色分配规则FR是奇偶规则时,可以确定像素的卷绕数WN是否是奇数(操作S450)。例如,渲染确定器120可以通过检查卷绕数WN除以2的余数是否为1来确定卷绕数WN是否是奇数。当像素的卷绕数WN是奇数时,渲染确定器120可以将该像素呈现为所确定的颜色(操作S460)。例如,渲染确定器120可以从外部单元(例如,CPU)接收关于所确定的颜色的更多信息并且将像素渲染为所确定的颜色。当像素的卷绕数WN不是奇数(即,当像素的卷绕数WN是偶数时),渲染确定器120可以不渲染像素。
当颜色分配规则FR不是奇偶规则时(操作S440),当颜色分配规则FR是非零规则并且卷绕数WN是零时(操作S430),或者当颜色分配规则FR是奇偶规则并且卷绕数WN不是奇数时(操作S450),渲染确定器120可以确定是否渲染了从卷绕数生成器110接收的所有像素(操作S470)。当不是从卷绕数生成器110接收的所有像素都被渲染时,渲染确定器120可以通过重复操作S410到S460来渲染像素。当从卷绕数生成器110接收的所有像素被渲染时,渲染确定器120可以终止渲染。
图10是用于描述其中根据示例实施例的渲染确定器确定是否将颜色设置到多个像素中的每一个的示例的图。
如图1和图10所示,图10(a)示出了卷绕数生成器110计算对应于帧610中包括的像素的各个卷绕数WN的结果,图10(b)示出了根据非零规则将颜色值分配给各个像素的结果。此外,图10(c)示出了根据奇偶规则将颜色值分配给各个像素的结果。
参考图10(a),可以如图10(a)所示计算帧610中包括的每个像素的卷绕数WN。具体而言,包括在第一区域611中的每个像素的卷绕数WN可以被计算为0,包括在第二区域612中的每个像素的卷绕数WN可以被计算为+1,并且包括在第三区域613中的像素中的每个像素的卷绕数WN可以被计算为+2。
例如,渲染确定器120可以基于非零规则来确定是否为每个像素设置颜色。这里,非零规则可以指代用于将颜色值分配给与不为零的卷绕数WN相对应的像素的规则。参考图10(b),在符合非零规则的情况下,渲染确定器120可以确定将颜色设置为包括在图10(a)所示的第二区域612和第三区域613中的像素,并且不对第一区域611所包含的像素设置颜色。
在另一个示例中,渲染确定器120可以基于奇偶规则来确定是否为每个像素设置颜色。这里,奇偶规则可以指代用于将颜色值分配给对应于奇数卷绕数WN的像素的规则。这里,奇数卷绕数WN可以指具有奇数绝对值的像素的卷绕数WN。例如,当卷绕数WN为+3时,可以将其确定为奇数卷绕数WN,并且当卷绕数WN为-3时,也可以将其确定为奇数卷绕数WN。参考图10(c),根据奇偶规则,渲染确定器120可以确定对包括在图10(a)中所示的第二区域612中的像素设置颜色,并且不对第一区域611和第三区域613所包含的像素设置颜色。
根据示例实施例,渲染确定器120还可以从外部单元(例如,CPU)接收关于所确定的颜色的信息,并且渲染确定器120可以分配对应于所确定的颜色的值。根据另一示例实施例,渲染确定器120可将关于被确定为设置颜色的像素的信息传输到像素着色器,并且像素着色器可确定由渲染确定器120确定的要分配颜色的像素的预设颜色值。
图11是根据示例实施例的图形处理器的框图。下面将省略以上已经参照图1给出了的描述。
参考图11,图形处理器100a可以包括卷绕数生成器110a和渲染确定器120a。卷绕数生成器110a可以包括卷绕数存储器111a和边界框管理器112a。卷绕数存储器111a和渲染确定器120a可以分别与图1的卷绕数存储器111和渲染确定器120相同或相似。因此,将省略其详细描述。
边界框管理器112a可以通过使用多个顶点中的每个顶点的坐标分量来在帧中设置边界框。例如,边界框管理器112a可以通过使用顶点的水平方向坐标分量中的最大值和最小值以及垂直方向坐标分量的最大值和最小值来在帧中设置边界框。此外,卷绕数生成器110a可以为由边界框管理器112a设定的边界框中包括的每个像素计算卷绕数WN。
虽然边界框管理器112a被示出为图11中的图形处理器100a的组件,但根据另一示例实施例,边界框管理器112a可被包括在图形处理器100a外部的设备(例如,CPU)中。在本实施例中,图形处理器100a可以仅接收关于位于边界框中的像素的信息并基于该信息执行渲染。
图12是示出根据示例实施例的边界框管理器的操作的示例的图。详细地说,图12是示出边界框管理器112a设定边界框的示例的图。
参考图11和图12,图12(a)示出了帧810中包括的对象840(例如,该帧可以是用于在屏幕上显示的视频帧或图像帧)。对象840是星形的。卷绕数生成器110a可以计算与帧810中包括的多个像素中的每一个相对应的卷绕数WN。因此,当对象840占据帧810中的小面积时,即使卷绕数生成器110a不计算对于包括在帧810中的所有像素的卷绕数WN,也可以执行路径渲染。例如,卷绕数生成器110a可以通过计算对应于靠近对象840的像素812的卷绕数WN来获得相同的结果,而不需要如同通过计算对应于帧中的所有像素的卷绕数WN那样计算对应于远离对象840的像素11的卷绕数WN。这可以提高整体的处理速度。
参考图12(b),边界框管理器112a可以在帧810中设置边界框830。卷绕数生成器110a可以仅对位于边界框830内的像素831计算卷绕数WN。此时,边界框管理器112a可以通过使用对象840中包含的顶点1的坐标(x1,y1)、顶点2的坐标(x2,y2)、顶点3的坐标(x3,y3)、坐标(x4,y4)和顶点5的坐标(x5,y5)来设定边界框830。
例如,边界框管理器112a可以通过使用从顶点1的坐标(x1,y1)、顶点2的坐标(x2,y2)、顶点3的坐标(x3,y3)、顶点4的坐标(x4,y4)、顶点5的坐标(x5,y5)中的水平方向坐标分量的最大值和最小值以及垂直方向坐标分量的最大值和最小值来在帧中设置边界框。首先,边界框管理器112a可以从顶点的x坐标分量(x1,x2,x3,x4和x5)中选择最大值(x5)和最小值(x4)。此外,边界框管理器112a可以从顶点的y坐标分量(y1,y2,y3,y4和y5)中选择最大值(y2)和最小值(y1或y3)。边界框管理器112a可以通过使用x坐标分量的最大值和y坐标分量的最大值来设置第一坐标(x5,y2)。此外,边界框管理器112a可以通过使用x坐标分量的最小值和y坐标分量的最小值来设置第二坐标(x4,y1)。边界框管理器112a可以将具有互连第一坐标(x5,y2)和第二坐标(x4,y1)的对角线的矩形设置为边界框830。
如上所述,边界框管理器112a可以设置包括用于执行路径渲染的最少像素的边界框,并且因此卷绕数生成器110a可以仅计算对应于最少像素数的卷绕数WN。因此,图形处理器100a可以更快速地执行路径渲染。
图13是根据示例实施例的操作图形处理器的方法的流程图。
参照图1和图13,图形处理器100可以接收作为关于对象中存在的所有基元的信息的基元集合信息(操作S510)。图形处理器100可以生成作为可以基于基元集合(操作S520)生成的所有基元掩码的集合的基元掩码集合。图形处理器100可以计算基元掩码集合中包括的所有基元掩码PM的卷绕数WN(操作S530)。图形处理器100可以将基元掩码集和对应于基元掩码集的卷绕数WN存储在卷绕数存储器111中(操作S540)。
与图1的实施例不同,根据本实施例,代替计算对应于各个像素的卷绕数WN,计算对应于所有可能的基元掩码PM的卷绕数WN并存储在卷绕数存储器111中,并且因此图形处理器100可以直接读取对应于所接收的像素的基元掩码PM,而无需检查基元掩码PM是否存储在卷绕数存储器111中。
图14是示出根据示例实施例的操作图形处理器的方法的图。详细地说,图14示出了根据图13的实施例的操作图形处理器的方法的示例。
如图1和图14所示,图形处理器100可以接收基元集信息PSI{V1,V2,V3}以便渲染图14A所示的基元。响应于此,图形处理器100可以通过生成所有可能的基元掩码PM来生成基元掩码集。在图14中所示的例子中,由于基元的数量是3,所以基元掩码PM的数量可以是2*2*2=8。因此,可以如图14B所示生成八个基元掩码PM“001”至“111”。
图形处理器100可以为基元掩码集合中包括的所有基元掩码PM计算卷绕数WN。在示例(1)中,当基元掩码PM是“010”时,可以指示仅第二基元V2作为右基元存在。当假想的半直线仅与第二基元V2相交时,第二基元V2从假想半直线与第二基元V2的交点处的原点沿顺时针方向延伸,卷绕数WN可被计算为“+1”。
在示例(2)中,当基元掩码PM是“110”时,它可以指示第二基元V2和第三基元V3同时作为右基元存在。然而,由于向右延伸的假想半直线不会同时与第二基元V2和第三基元V3相交,所以不可以存储卷绕数WN或者可以存储“NULL”。
以上述方式可以生成对应于所有基元掩码PM的卷绕数WN,并且可以将包括所有的基元掩码PM和与其对应的卷绕数WN存储在卷绕数存储器111中以便彼此对应。根据示例性实施例,可以不计算的卷绕数WN,如图14B中所示的“X”,可以不被存储在卷绕数存储器111中。
图15是根据示例实施例的操作图形处理器的方法的流程图。详细地说,图15是根据图13的实施例的当在存储基元集和与其对应的卷绕数WN之后接收到关于像素的基元信息时,操作图形处理器的方法的流程图。
参考图1和图15,图形处理器100可以接收关于像素的基元信息P1(操作S610)。图形处理器100可以基于基元信息PI生成基元掩码(操作S620)。图形处理器100可以从卷绕数存储器111读取对应于所生成的基元掩码的卷绕数WN(操作S630)。图形处理器100可以基于所读取的卷绕数WN来执行渲染(操作S640)。
如上参考图13所述,不同于图1中的实施例,所有基元掩码和与其对应的卷绕数WN可被存储在卷绕数存储器111中。因此,图形处理器100可以读取对应于基元掩码的卷绕数WN,而无需检查对应于所接收的基元信息PI的基元掩码是否被存储在卷绕数存储器111中。
图16是示出根据示例实施例的图形处理系统的图。
参考图16,图形处理系统10b可以包括中央处理器(CPU)200b和图形处理器100b。图形处理系统可以连接到具有多个像素的显示屏幕。CPU 200b可以包括卷绕数生成器210b,并且图形处理器100b可以包括渲染确定器120b。卷绕数生成器210b还可以包括卷绕数存储器211b、基元信息存储器212b、卷绕数管理器213b和卷绕数计算器214b。
与图1的实施例不同,图16的实施例是其中将卷绕数生成器210b包括在CPU 200b中而不是图形处理器100b中的实施例。因此,由各个功能块执行的操作可以与图1的实施例中的操作相同或相似。通常,一个或多个处理器(例如单独的GPU或与CPU组合的GPU)可以包括卷绕数生成器和渲染确定器,每个处理器可以使用硬件或者硬件和软件的组合来实现。
在一个实施例中,卷绕数生成器210b包括在CPU 200b中,基于对象信息生成卷绕数WN和颜色分配规则FR,并将卷绕数WN和颜色分配规则FR输出到渲染确定器120b。因此,卷绕数管理器213b可以从基元信息存储器212b接收基元信息,并且基于基元信息来生成基元掩码。卷绕数管理器213b可以检查在CPU 200b中包括的卷绕数存储器211b中是否存储了对应于基元掩码的卷绕数WN。此外,卷绕数管理器213b可以基于检查结果以不同的方式来生成卷绕数WN,并将卷绕数WN输出到渲染确定器120b。渲染确定器120b可以基于接收到的卷绕数WN来执行渲染。
与图16的实施例中不同,本发明构思可以应用于图形处理器100b中包括卷绕数存储器211b、基元信息存储器212b、卷绕数管理器213b和卷绕数计算器214b中的至少一个的实施例。
根据示例实施例,基元信息存储器212b可以被包括在CPU 200b中,并且卷绕数存储器211b、卷绕数管理器213b和卷绕数计算器214b可以被包括在图形处理器100b中。根据本实施例,卷绕数管理器213b可以从CPU 200b接收基元信息并基于基元信息来执行渲染。
根据示例实施例,卷绕数管理器213b可以被包括在CPU 200b中,并且卷绕数存储器211b、基元信息存储器212b和卷绕数量计算器214b可以被包括在图形处理器100b中。根据另一示例实施例,基元信息存储器212b和卷绕数管理器213b可以被包括在CPU 200b中,并且卷绕数存储器211b和卷绕数计算器214b可以被包括在图形处理器100b中。根据本实施例,CPU 200b可以直接生成基元掩码并确定在图形处理器100b中包括的卷绕数存储器211b中是否存储了与所生成的基元掩码相对应的卷绕数WN。取决于与所生成的基元掩码相对应的卷绕数WN是否被存储在卷绕数存储器211b中,CPU 200b可以通过向卷绕数存储器211b输出读取命令或者将计算命令输出到卷绕数计算器214b来执行渲染。
根据示例实施例,基元信息存储器212b、卷绕数管理器213b和卷绕数计算器214b可以被包括在CPU 200b中,并且卷绕数存储器211b可以位于图形处理器100b中。根据该实施例,CPU 200b可以基于基元信息生成基元掩码,并确定在基元处理器100b中包括的卷绕数存储器211b中是否存储了对应于基元掩码的卷绕数WN。当对应于基元掩码的卷绕数WN存储在卷绕数存储器211b中时,CPU 200b可以通过向卷绕数存储器211b输出读取命令来执行渲染。当与基元掩码相对应的卷绕数WN没有被存储在卷绕数存储器211b中时,CPU 200b可以通过计算卷绕数WN并将计算出的卷绕数WN输出到渲染确定器120b来执行渲染。
根据示例实施例,基元信息存储器212b和卷绕数存储器211b中的至少一个可以作为位于CPU 200b和图形处理器100b外部的外部存储器而存在。根据本实施例,图形处理器100b可以检查基于基元信息生成的基元掩码是否被存储在图形处理器100b外部存在的卷绕数存储器211b中。当基元掩码被存储在图形处理器100b外部存在的卷绕数存储器211b中时,图形处理器100b可以通过向卷绕数存储器211b输出读取命令来执行渲染。当基元掩码不被存储在存在于图形处理器100b外部的卷绕数存储器211b中时,图形处理器100b可以通过计算卷绕数WN并将计算出的卷绕数WN输出到渲染确定器120b来执行渲染。
如先前所讨论的,除了上面讨论的其他特征之外,通过使用上面关于基元信息、卷绕数和像素渲染所描述的方法,可以提高GPU和/或CPU的处理速度,由此加速屏幕上的图像显示。
尽管已经参照其实施例具体示出和描述了本发明构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
Claims (22)
1.一种图形处理器,取决于基元信息以不同方式生成卷绕数,所述图形处理器包括:
卷绕数生成器,被配置为接收包括关于对象的基元信息的对象信息,所述卷绕数生成器包括用于存储对应于基元信息的卷绕数的第一存储器;以及
渲染确定器,被配置为基于所述卷绕数来执行渲染,
其中,所述卷绕数生成器基于确定对应于基元信息的卷绕数是否被存储在第一存储器中,以不同方式分别生成对应于多个像素的卷绕数,
其中,所述第一存储器存储基元掩码,所述基元掩码对应于基元信息并包括多个位,并存储对应于基元掩码的卷绕数,以及
所述卷绕数生成器包括:
卷绕数管理器,被配置为检查对应于基元掩码的卷绕数是否被存储在第一存储器中;以及
卷绕数计算器,被配置为基于基元信息来计算对应于基元掩码的卷绕数。
2.如权利要求1所述的图形处理器,其中,卷绕数管理器基于基元信息来生成包括多个位的基元掩码。
3.如权利要求1所述的图形处理器,其中,当对应于基元掩码的卷绕数被存储在第一存储器中时,卷绕数管理器输出用于从第一存储器读出对应于基元掩码的卷绕数的信号。
4.如权利要求1所述的图形处理器,其中,当与基元掩码相对应的卷绕数未被存储在第一存储器中时,卷绕数管理器将所述基元信息输出到卷绕数计算器。
5.如权利要求1所述的图形处理器,其中,所述对象信息还包括颜色分配规则,所述颜色分配规则包括关于根据卷绕数分配颜色的规则的信息,以及
渲染确定器基于卷绕数和颜色分配规则执行渲染。
6.如权利要求5所述的图形处理器,其中,所述颜色分配规则包括奇偶规则或非零规则,以及
当所述颜色分配规则包括奇偶规则时,渲染确定器针对多个像素分别向具有奇数卷绕数的像素输出颜色,并且不向具有偶数卷绕数的像素输出颜色,以及
当所述颜色分配规则包括非零规则时,渲染确定器针对多个像素分别向具有不是0的卷绕数的像素输出颜色,并且不向具有是0的卷绕数的像素输出颜色。
7.如权利要求1所述的图形处理器,其中,所述卷绕数生成器还包括被配置为存储基元信息的第二存储器,
卷绕数生成器从所述第二存储器中读出基元信息。
8.一种图形处理器,包括:
卷绕数管理器,被配置为基于基元信息生成包括多个位的基元掩码;
第一存储器,被配置为存储所述基元掩码和对应于所述基元掩码的卷绕数;以及
渲染确定器,被配置为基于对应于基元掩码的卷绕数来执行渲染,
其中,所述卷绕数管理器被配置为响应于基元信息的接收而向第一存储器写入或从第一存储器读取对应于所述基元信息的卷绕数。
9.如权利要求8所述的图形处理器,还包括卷绕数计算器,所述卷绕数计算器被配置为基于所述基元信息计算卷绕数。
10.如权利要求9所述的图形处理器,其中,当与所接收的基元信息相对应的卷绕数未被存储在第一存储器中时,卷绕数管理器通过将所述基元信息输出到所述卷绕数计算器并将所生成的卷绕数写入第一存储器来生成对应于所接收的基元信息的卷绕数。
11.如权利要求9所述的图形处理器,其中,当与所接收的基元信息相对应的卷绕数被存储在第一存储器中时,卷绕数管理器从第一存储器中读出对应于所接收的基元信息的卷绕数。
12.一种渲染对象的图形处理方法,所述图形处理方法包括:
由一个或多个处理器接收包括关于对象的基元信息的对象信息;
由一个或多个处理器针对各个像素来生成基元掩码,所述基元掩码对应于基元信息并且包括多个位;
由一个或多个处理器基于所述基元掩码来生成针对各个像素的卷绕数;以及
基于所述卷绕数渲染像素,
其中,生成所述卷绕数包括由一个或多个处理器检查对应于基元掩码的卷绕数是否被存储在第一存储器中,并且基于对应于基元掩码的卷绕数是否被存储在第一存储器中来以不同的方式来生成卷绕数。
13.如权利要求12所述的图形处理方法,其中,生成所述卷绕数还包括,当对应于基元掩码的卷绕数被存储在第一存储器中时,读出所存储的卷绕数。
14.如权利要求12所述的图形处理方法,其中,生成所述卷绕数还包括,当对应于基元掩码的卷绕数未被存储在第一存储器中时,基于所述基元信息计算与所述基元掩码相对应的卷绕数。
15.如权利要求14所述的图形处理方法,还包括,将在卷绕数的计算中计算出的卷绕数存储在第一存储器中,以便对应于所述基元掩码。
16.如权利要求14所述的图形处理方法,其中,在所述计算中,通过使用其中至少一个基元所位于的每个像素的一侧的方向来计算卷绕数。
17.如权利要求12所述的图形处理方法,其中,在生成所述基元掩码中,基于关于在从每个像素的至少一个横向上存在的基元的信息,通过将对应于存在的基元的位设置为“1”并将对应于不存在的基元的位设置为“0”来生成所述基元掩码。
18.如权利要求12所述的图形处理方法,其中,所述接收包括接收作为关于对象中存在的所有基元的信息的基元集合信息,
以及所述方法还包括:
由所述一个或多个处理器基于基元集合信息来生成作为所有可能的基元掩码的集合的基元掩码集合;
由所述一个或多个处理器计算关于包括在基元掩码集合中的所有基元掩码的卷绕数;以及
将卷绕数存储在高速缓冲存储器中,以便对应于基元掩码集合。
19.如权利要求12所述的图形处理方法,其中,所述对象信息还包括颜色分配规则,所述颜色分配规则包含关于根据卷绕数分配颜色的规则的信息,
在所述渲染中,基于由所述一个或多个处理器生成的卷绕数和颜色分配规则来渲染像素。
20.如权利要求19所述的图形处理方法,其中,所述颜色分配规则包括奇偶规则或非零规则,其中,
在所述渲染中,当所述颜色分配规则包括奇偶规则时,对具有奇数卷绕数的像素设置颜色,并且对具有偶数卷绕数的像素不设置颜色,以及,
在所述渲染中,当所述颜色分配规则包括非零规则时,对其对应卷绕数不为0的像素设置颜色,并且对其对应卷绕数为0的像素不设置颜色。
21.如权利要求12所述的图形处理方法,还包括:
将所述基元信息存储在第二存储器中;以及
从第二存储器读出所述基元信息。
22.如权利要求12所述的图形处理方法,其中,还包括设置待渲染的边界框,
其中,在所述接收中,接收关于存在于所述边界框中的像素的基元信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0116658 | 2017-09-12 | ||
KR1020170116658A KR102446865B1 (ko) | 2017-09-12 | 2017-09-12 | 경로 렌더링을 수행하는 그래픽 처리 장치 및 그래픽 처리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109509244A CN109509244A (zh) | 2019-03-22 |
CN109509244B true CN109509244B (zh) | 2023-11-14 |
Family
ID=63042756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810520788.7A Active CN109509244B (zh) | 2017-09-12 | 2018-05-28 | 一种执行路径渲染的图形处理器及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10776896B2 (zh) |
KR (1) | KR102446865B1 (zh) |
CN (1) | CN109509244B (zh) |
DE (1) | DE102018113275A1 (zh) |
GB (2) | GB2566349B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102699047B1 (ko) | 2018-12-14 | 2024-08-27 | 삼성전자주식회사 | 경로를 포함하는 객체를 렌더링하는 장치, 이를 포함하는 컴퓨팅 장치 및 이의 렌더링 방법 |
CN111881152B (zh) * | 2020-07-17 | 2024-04-02 | 珠海格力电器股份有限公司 | 组态软件的模块的连接方法及系统 |
CN113934491B (zh) * | 2021-09-30 | 2023-08-22 | 阿里云计算有限公司 | 一种大数据处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560797A (zh) * | 2003-08-25 | 2005-01-05 | ��ʢ���ӹɷ�����˾ | 减少z缓冲区流量的三维图形处理机制 |
US7408553B1 (en) * | 2005-12-15 | 2008-08-05 | Nvidia Corporation | Inside testing for paths |
CN102667814A (zh) * | 2009-10-15 | 2012-09-12 | 辉达公司 | 一种保序分布式光栅化器 |
CN103871019A (zh) * | 2012-12-17 | 2014-06-18 | 辉达公司 | 优化三角形拓扑用于路径渲染 |
CN104520901A (zh) * | 2012-08-09 | 2015-04-15 | 高通股份有限公司 | 具有虚线模式的路径的gpu加速再现 |
CN105006010A (zh) * | 2014-04-23 | 2015-10-28 | 三星电子株式会社 | 执行路径渲染的方法和设备 |
CN105335994A (zh) * | 2014-08-11 | 2016-02-17 | 三星电子株式会社 | 执行基于图块的路径渲染的方法和设备 |
KR20160063079A (ko) * | 2014-11-26 | 2016-06-03 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100953637B1 (ko) | 2003-07-07 | 2010-04-20 | 엘지전자 주식회사 | 광디스크 및 광디스크의 디스크정보 기록방법 |
JP4199159B2 (ja) * | 2004-06-09 | 2008-12-17 | 株式会社東芝 | 描画処理装置、描画処理方法、及び描画処理プログラム |
US7817512B1 (en) | 2006-10-30 | 2010-10-19 | Marvell International, Ltd. | Method and apparatus to correct wobble phase slip in optical recorders |
US7872648B2 (en) | 2007-06-14 | 2011-01-18 | Microsoft Corporation | Random-access vector graphics |
US20110285736A1 (en) | 2010-05-21 | 2011-11-24 | Kilgard Mark J | Decomposing cubic bèzier segments for tessellation-free stencil filling |
US9437014B2 (en) | 2013-07-16 | 2016-09-06 | Mitsubishi Electric Research Laboratories, Inc. | Method for labeling segments of paths as interior or exterior |
KR102423767B1 (ko) * | 2014-08-11 | 2022-07-22 | 삼성전자주식회사 | 타일 기반 경로 렌더링을 수행하는 방법 및 장치. |
JP6642964B2 (ja) | 2015-01-05 | 2020-02-12 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム |
KR102426669B1 (ko) | 2015-08-03 | 2022-07-28 | 삼성전자주식회사 | 경로 렌더링을 수행하는 방법 및 장치. |
-
2017
- 2017-09-12 KR KR1020170116658A patent/KR102446865B1/ko active IP Right Grant
-
2018
- 2018-05-28 CN CN201810520788.7A patent/CN109509244B/zh active Active
- 2018-06-05 DE DE102018113275.1A patent/DE102018113275A1/de active Pending
- 2018-06-13 US US16/007,628 patent/US10776896B2/en active Active
- 2018-06-26 GB GB1810476.0A patent/GB2566349B/en active Active
- 2018-06-26 GB GB2007726.9A patent/GB2586696B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560797A (zh) * | 2003-08-25 | 2005-01-05 | ��ʢ���ӹɷ�����˾ | 减少z缓冲区流量的三维图形处理机制 |
US7408553B1 (en) * | 2005-12-15 | 2008-08-05 | Nvidia Corporation | Inside testing for paths |
CN102667814A (zh) * | 2009-10-15 | 2012-09-12 | 辉达公司 | 一种保序分布式光栅化器 |
CN104520901A (zh) * | 2012-08-09 | 2015-04-15 | 高通股份有限公司 | 具有虚线模式的路径的gpu加速再现 |
CN103871019A (zh) * | 2012-12-17 | 2014-06-18 | 辉达公司 | 优化三角形拓扑用于路径渲染 |
CN105006010A (zh) * | 2014-04-23 | 2015-10-28 | 三星电子株式会社 | 执行路径渲染的方法和设备 |
CN105335994A (zh) * | 2014-08-11 | 2016-02-17 | 三星电子株式会社 | 执行基于图块的路径渲染的方法和设备 |
KR20160063079A (ko) * | 2014-11-26 | 2016-06-03 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
GB202007726D0 (en) | 2020-07-08 |
US20190080428A1 (en) | 2019-03-14 |
CN109509244A (zh) | 2019-03-22 |
GB2586696B (en) | 2022-05-04 |
GB2566349B (en) | 2021-01-06 |
DE102018113275A1 (de) | 2019-03-14 |
GB2586696A (en) | 2021-03-03 |
KR20190029279A (ko) | 2019-03-20 |
GB201810476D0 (en) | 2018-08-08 |
GB2566349A (en) | 2019-03-13 |
US10776896B2 (en) | 2020-09-15 |
KR102446865B1 (ko) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8217962B2 (en) | Single-pass bounding box calculation | |
KR101820621B1 (ko) | 광선 추적 어플리케이션들에서 트리 순회를 위한 시작 노드 결정 | |
CN109509244B (zh) | 一种执行路径渲染的图形处理器及其操作方法 | |
US11636643B2 (en) | Normal offset smoothing | |
US9818221B2 (en) | Start node determination for tree traversal for shadow rays in graphics processing | |
US10019802B2 (en) | Graphics processing unit | |
EP3420537B1 (en) | Single pass bounding volume hierarchy rasterization | |
CN111063032B (zh) | 模型渲染方法、系统及电子装置 | |
US10078911B2 (en) | System, method, and computer program product for executing processes involving at least one primitive in a graphics processor, utilizing a data structure | |
US9905037B2 (en) | System, method, and computer program product for rejecting small primitives | |
CN113256764A (zh) | 一种光栅化装置、方法及计算机存储介质 | |
KR100806345B1 (ko) | 3차원 그래픽 가속기 그리고 텍스쳐 데이터 독출 방법 | |
EP3929880A2 (en) | Hierarchical acceleration structures for use in ray tracing systems | |
KR102699047B1 (ko) | 경로를 포함하는 객체를 렌더링하는 장치, 이를 포함하는 컴퓨팅 장치 및 이의 렌더링 방법 | |
US11755336B2 (en) | Distributed geometry | |
JP2006171760A (ja) | グラフィック処理機能を有するメモリコントローラ | |
EP3929877A1 (en) | Hierarchical acceleration structures for use in ray tracing systems | |
Guillemot et al. | Software rendering methods to display wafer scale integrated circuit dataset | |
KR20170107160A (ko) | 그래픽 처리 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |