CN101116111A - 使用3d光栅化算法的2d/3d线条渲染 - Google Patents
使用3d光栅化算法的2d/3d线条渲染 Download PDFInfo
- Publication number
- CN101116111A CN101116111A CNA200580047959XA CN200580047959A CN101116111A CN 101116111 A CN101116111 A CN 101116111A CN A200580047959X A CNA200580047959X A CN A200580047959XA CN 200580047959 A CN200580047959 A CN 200580047959A CN 101116111 A CN101116111 A CN 101116111A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- isosceles triangle
- pel
- area
- define
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
-
- 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
Abstract
本发明揭示一种编辑一组显示点的系统和方法,所述一组显示点使用三维光栅化算法来界定直线图形对象的二维表示。在一实施例中,三维(3D)图形加速器可接收数据。所述数据可界定三角形图元的三个顶点(x0,y0,K0)、(x1,y1,K1)、及(x2,y2,K2)。属性K2=(K0+K1)/2和坐标(x0,y0),(x1,y1)、及(x2,y2)形成一等腰三角形图元。坐标(x0,y0)和(x1,y1)界定所述等腰三角形图元的底边。可使用所述三维光栅化算法来渲染所述等腰三角形图元,以获得一组界定所述等腰三角形图元的底边的二维表示的显示点。
Description
技术领域
本发明的技术领域大体而言包括计算机图形处理,且更具体而言包括其中一组显示点使用三维光栅化算法来界定一直线图形对象的二维表示的标的物。
背景技术
目前,计算的每一方面,从创作动画到简单任务(例如文字处理和电子邮件),均使用许多图形来为用户创造一个更直观的工作环境。视频适配器是图形卡,其用于插入个人计算机中来给计算机提供显示图形图像的能力。包括其自身的图形处理器的视频适配器通常被称为图形加速器。
由于它们包含自身的存储器和处理器,图形加速器使计算机能够在显示屏上更快地显示复杂图像。图形加速器可比计算机使用的通用中央处理器(CPU)获得更好的结果,因为其处理器专门用于计算图形变换。此外,当图形加速器正在处理图形计算时,图形加速器会释放计算机的CPU,以便其执行其他命令。
在计算机的早期,图形由二维图像一点、线和方块组成,其只需要二维(2-D)图形加速器。对显示深度和其他属性的需求推动了三维(3-D)图形加速器的发展。连接至显示屏的装置通常包括2-D图形加速器和3-D图形加速器,其中系统根据需要在两者之间切换。然而,作为一种节约成本的措施,如今市场上销售的装置淘汰了2-D图形加速器,使3-D图形加速器来执行以前由2-D图形加速器和3-D图形加速器联合执行的所有任务,包括绘制线条。
由3-D图形加速器绘制的传统线条通常由两个完全相同的长三角形构成,其中一个三角形倒置,且底边与另一三角形底边邻靠,以形成一非常长而细的长方形。有时称为三角形四边(四边形)线条,这种直线具有许多用途。例如,用于文字处理程序和互联网浏览器程序的下拉式菜单通常由直线界定边的文本组成。蜂窝电话屏幕显示的菜单选项可包括由直线界定及分隔的文本。带角度的直线具有许多图形应用,例如给予在装置显示屏上所显示的房子或大量架子的线框图深度。
对于采用3-D图形加速器来绘制直线的装置而言,当在计算机屏幕上的屏幕空间中数字化地表示模拟线段时使用三角形四边线条会产生问题。例如,组成三角形四边线条的两个三角形中的每一个均具有三个顶点,于是总共有六个顶点。这六个顶点需要许多存储空间来存储,而且需要许多处理时间来渲染所有六个顶点。数字化表示的三角形四边线条可具有一粗度,而其对应的模拟线条却不需要粗度。此外,大量的处理时间专用于对将不会渲染成三角形四边线条的一部分的像素进行光栅化。因此,在所属技术领域中需要一种使用现有的3-D图形加速器来渲染直线段的有效技术。
发明内容
通过利用直线数据作为特定三角形图元的一部分以使渲染三角形图元会产生一组使用三维光栅化算法来界定直线图形对象的二维表示的显示点,本文所揭示的实施例解决了上文所述的需求。
在一实施例中,三维(3D)图形加速器可接收数据。所述数据可界定三角形图元的三个顶点(x0,y0,K0)、(x1,y1,K1)、及(x2,y2,K2)。属性K2=(K0+K1)/2和座标(x0,y0),(x1,y1)、及(x2,y2)形成一等腰三角形图元。座标(x0,y0)和(x1,y1)界定所述等腰三角形图元的底边。所述等腰三角形图元可使用所述三维光栅化算法来渲染,以获得一组界定所述等腰三角形图元的底边的二维表示的显示点。
附图说明
图1是系统100,在系统100中可实施一些实施例;
图2表示要绘制成显示装置118上的屏幕空间中的直线的模型空间直线200;
图3是从直线200构造三角形图元的方法300的流程图;
图4是等腰三角形400的平面图;
图5是直线200重画为直线500的平面图;
图6A是处于垂直位置的直线602的平面图;
图6B是处于水平位置的直线606的平面图;
图6C是在一位置上往右下方倾斜的直线610的平面图;
图6D是在一位置上往左下方倾斜的直线612的平面图;
图7是使用如上述方程式(35)中设定在(x2,y2)=(3.90,2.21)处的第三点704绘制的等腰三角形702的平面图;
图8是用于绘制等腰三角形图元702的方法800;
图9是具有位于直线500周围的边框902的三角形702的平面图;
图10是等腰三角形702的平面图;及
图11是可用来实施一些实施例的计算机系统1100。
具体实施方式
图1是系统100,在系统100中可实施一些实施例。系统100可包括系统处理器102、系统存储器104、输入装置106(例如键盘和鼠标)、以及3D图形加速器108。各装置可通过总线110通信。
系统处理器102可以是主计算机(例如台式或膝上型计算机、服务器、游戏控制台、或蜂窝电话)的中央处理器(CPU)。系统存储器104可包括各种形式的存储器资源,例如永久性存储装置、大容量存储装置、可移动存储装置、和易失性读写存储器(例如随机存取存储器(RAM))。与系统存储器104相结合,系统处理器102可处理程序化指令并执行任务。
3D图形加速器108可给予系统100快速而有效地显示图形图像的能力。例如,当3D图形加速器108正在处理图形计算时,3D图形加速器108可释放系统处理器102,以便执行其他命令。3D图形加速器108可包括绘图存储器112、绘图处理器114和帧缓冲器116,且显示装置118可连接至3D图形加速器108。
绘图存储器112可接收来自系统处理器102的数据和指令,并存储所述数据和指令以供绘图处理器114使用。绘图处理器112可包括一些组件,例如一加法器、一乘法器、以及多个多路复用器,以处理绘图存储器112中的数据和指令。在该过程中,绘图处理器114可根据所存储的指令将数据光栅化。在一实施例中,绘图存储器112可作为各种各样的颜色、深度、模板等的便笺式存储器。
计算机屏幕和其他显示屏,例如用在蜂窝手机上的显示屏,可通过选择性地照亮像素网格(或阵列)来显示图像。这些位图或光栅图像完全由用于特定显示装置屏幕中的像素位置的一组强度来确定。光栅处理可包括将由一些形状构成的面向对象的图像转换成位图图像,将每一位设计成用特定强度照亮显示装置118上的一像素。为了将数据光栅化,绘图处理器114可装载并分析数据来产生位图,其中位图可存储在帧缓冲器116中。位图可以是一个文件或图像结构,该图像结构位对位地表示要在显示装置118上显示的图像。此外,帧缓冲器116可直接附连至总线110。
图2表示要绘制成显示装置118上的屏幕空间中的直线的模型空间直线200。直线200可从起点202延伸至终点204。起点202可用座标(x0,y0,z0)来指定,且终点204可用座标(x1,y1,z1)来指定。因为在该实例中的直线200位于与显示装置118上的屏幕空间平行的一平面中,所以可用座标(x0,y0)来指定起点202,并用座标(x1,y1)来指定终点204。
图3是用于从直线200构造三角形图元的方法300的流程图。在步骤302处,系统处理器102可接收关于生成和定位一直线的输入。所述输入可来自人员用户,例如使用计算机辅助制图程序包来绘制飞机机翼的线框模型的人,或可来自应用程序请求,例如为下拉式菜单绘制一线条的请求、绘制要在蜂窝电话的观看屏上显示的邮件信封的后视图轮廓的请求、或绘制出现在计算机游戏中的一个或多个线条的请求。在两种方式的任一方式中,均可使用图1所示输入装置106将输入发送至系统处理器102,其中所述输入包括关于生成和定位直线200的信息。
在步骤304处,系统处理器102可将所接收的输入转换成指令。所述指令可包括一命令,例如绘制线条(draw_line),后面跟有直线200的两个端点的x、y座标。该线条的起点可用零(“0”)来指定,例如(x0,y0),且该线条的终点可用一(“1”)来指定,例如(x1,y1)。通常从一左上像素开始由左至右及然后由上至下地对三角形进行光栅化。如果在到达所拟定的三角形中的任何其他像素之前,光栅化处理到达了包含起点(x0,y0)的像素,则该处理可确定直线200的位置。
为了确保所拟定的三角形中的第一像素是起点(x0,y0),直线200的起点(x0,y0)可以是直线200的下述端点:其中y0≥y1且其中x0是最靠近x轴的座标(其中x0≤x1)。换句话说,起点可以是具有y模型空间座标最小值的端点,且当两个y模型空间座标相等时,起点则可以是具有x模型空间座标最小值的端点。
除其位置以外,可由其他属性来界定直线200的每一端点,例如漫射颜色(阿尔法(“α”)、R、G、B)(例如,α、红、绿、蓝)、高光颜色(RS、GS、BS)、纹理座标(u,v)、及雾化。因此,系统处理器102的一般指令可作为以下命令字符串(1)出现:
draw_line(x0,y0,K0,x1,y1K1) (1)
或
draw_line(x0,y0,n0α,n0R,n0G,n0B,n0RS,n0GS,n0BS,n0u,n0v,x1,y1,n1α,n1R,n1G,n1B,n1RS,n1GS,n1BS,n1u,n1v) (1)
最后的数字或字符可标识特定属性。用于x、y位置的数值可以是任何数字,且用于其他属性的数值可以从0至255(例如0至28)。作为一数字实例,指令可如以下命令字符串(2)所示:
draw_line(1.51,2.21,8α,240R,0G,56B,23RS,0GS,0BS,4u,256v,3.15,4.48,45α,210R,0G,7B,99RS,180GS,45BS,0u,16v) (2)
根据命令字符串(2)绘制的直线可以是从起点(x0,y0)=(1.51,2.21)到终点(x1,y1)=(3.15,4.48)的直线,属性的数值如规定所述。
2D图形加速器可设计成通过向量图形处理命令字符串(2)。然而,3D图形加速器处理通常称为图元的微小几何对象。四边形、三角形、n边形是图元的实例,而线条不是图元。现有的3D图形加速器未设计成直接处理命令字符串(2)。
如果一装置缺乏2D图形加速器而包括3D图形加速器,则在装置的屏幕上看到的所有对象实际上均由图元组成。图元的边框由直线段组成。仅将图元边框的一条线段光栅化可产生一直线。因此,假如命令字符串(2)包括形成一图元的信息,则3D图形加速器可处理所述图元以获得一直线来拟合命令字符串(2)的直线。
在评估了各种图元之后,三角形图元看起来是通过3D图形加速器108处理成直线的好的候选者。每一3D对象可分割成多个三角形,而三角形却不能分割成除三角形以外的任何东西。3D空间中的三角形也是2D空间中的三角形。因为处理的事情少了,所以绘制三角形比绘制更高阶的多边形要简单得多。这就是为什么将三角形普遍用于计算机图形中的一些原因。
三角形具有三条边,且因此由三个点或顶点构成。除其他信息(例如颜色值(或指数)或纹理指数)之外,三角形的每一顶点可包含三角形的点的坐标。为了将3D空间中界定的三角形转换至2D(屏幕)空间,可将三角形的顶点从3D投射到2D空间,并然后进行光栅化。
如果3D图形加速器只能处理图元,则可随实例性起点(1.51,2.21)和终点(3.15,4.48)一起提供第三点,以使所述三点可形成三角形图元。在306处,系统处理器102可开始选择第三点来加入至步骤304的指令,以使所述三点形成三角形。
在将位于三角形中的像素光栅化时,在三角形顶点处提供的值实质上为每一经光栅化的像素提供一加权平均值。例如,在一给定像素处所计算(和显示)的颜色红色可受到所述给定像素距三个顶点中的每一顶点的距离以及受到在每一顶点处的漫射颜色红色(R)的属性值的影响。像素越靠近一顶点,则该顶点的红色属性对该像素的影响可越大。像素越远离一顶点,则该顶点的红色属性对该像素的影响可越小。
较佳地,选择第三点的属性值,以使它们对沿直线200的像素的经计算的属性值几乎没有影响甚至毫无影响。例如,如果选择的第三点的属性值是直线200的起点和终点的属性值的平均值,则第三点的属性值可对沿直线200的像素的所计算的属性值几乎没有影响甚至毫无影响。此外,第三点的座标值应离直线200的起点和终点等距,以使其位置对沿直线200上的像素的所计算的属性值几乎没有影响甚至毫无影响。
等腰三角形是至少两侧边长度相等的三角形。由这两侧边形成的顶点面对底边。等腰三角形的顶点座标(x2,y2)与等腰三角形底边的起点(x0,y0)和终点(x1,y1)等距。此外,平分该顶点的一条线经过底边的中点,且该线垂直于底边。当这条线从底边的中点开始并垂直延长时,它同时平分了三角形的周长和面积,且可称为“B-线”。
通过将直线200安置到一等腰三角形图元中,并通过选择顶点(x0,y0)和顶点(x1,y1)的属性值的平均值作为顶点(x2,y2)的属性值,顶点(x2,y2)的座标和属性值可对沿直线200上的像素的所计算属性值几乎没有影响甚至毫无影响。如果成立,则可通过将命令字符串(2)并入所述等腰三角形中而由3D图形加速器108根据命令字符串(2)来绘制直线。这一实际情况可由下文的数学方式来显示。
图4是一等腰三角形的平面图。等腰三角形400可包括底边402、侧边404和侧边406,其中侧边404的长度“b”等于侧边406的长度“b”。等腰三角形400进一步可包括顶点408、顶点410和顶点412,其中顶点412可面向底边402,底边402具有长度“a”。中点(xm,ym)414可精确位于沿顶点408和顶点410之间的长度“a”的中间位置。此外,B-线416可从中点414沿高度“h”延长至顶点412。在图4所示实例中,底边402可以是由3D图形加速器108渲染的并显示在显示装置118上的直线段。
位于等腰三角形400中的每一像素可具有属性K,包括属性α、R、G、B、RS、GS、BS、u、及v。在顶点408、顶点410和顶点412中每一顶点的属性值可分别由K0、K1和K2表示。因此,在等腰三角形400之内存在屏幕空间中x、y位置的线性二元函数K使得:
K(x,y)=(Ak)(x)+(Bk)(y)+Ck (3)
其中,
K=α,R,G,B,RS,GS,BS,u和v;
(x,y)表示一个屏幕像素的屏幕空间座标;且Ak、Bk和Ck表示线性系数。
可通过与顶点408、410和412相关的方程式来获得用于一给定的x,y屏幕空间座标的线性系数Ak、Bk和Ck。通过采用光栅化算法并确定用于给定的x,y屏幕空间座标的线性系数Ak、Bk和Ck,可根据方程式(3)来获得在对应的x,y屏幕空间座标中的特定像素属性的值。
与顶点408、410和412相关联的线性系数Ak、Bk和Ck的方程式包括以下方程式:
Ak=[(A0)(K0)+(A1)(K1)+(A2)(K2)]/面积 (4)
Bk=[(B0)(K0)+(B1)(K1)+(B2)(K2)]/面积 (5)
Ck=[(C0)(K0)+(C1)(K1)+(C2)(K2)]/面积 (6)
其中,等腰三角形的面积是:
面积=(1/2)(a)(h)=(1/2)(a)[(b^2)-(1/4)(a^2)]^(1/2) (7)
且其中所述线性系数可表示为:
A0=y1-y2 A1=y2-y0 A2=y0-y1 (8)
B0=x2-x1 B1=x0-x2 B2=x1-x0 (9)
C0=(x1)(y2)-(x2)(y1)C1=(x2)(y0)-(x0)(y2)C2=(x0)(y1)-(x1)(y0) (10)
三维光栅化算法包括方程式(3)、(4)、(5)和(6)。如上文所述,如果将K0和K1的属性值的平均值选择作为K2的属性值(例如,第三点的属性值),则K2的属性值可对沿底边402上的像素的所计算属性值K(x,y)几乎没有影响甚至毫无影响。其可用数学方程表达为:
K2=(K0+K1)/2 (11)
因为选择用于渲染的三角形是一等腰三角形,方程式(8)、(9)和(10)中的y2的值可采用y0和y1来表达。通过将等腰三角形400进行定向,以使如图4中所示x0=x1,y2可简单地表示为:
y2=(y0+y1)/2 (12)
如上文所述,
Ak=[(A0)(K0)+(A1)(K1)+(A2)(K2)]/面积 (4)
将方程式(8)代入方程式(4)中,
Ak=[(y1-y2)(K0)+(y2-y0)(K1)+(y0-y1)(K2)]/面积 (13)
将方程式(11)代入方程式(13)中,
Ak=[(y1-y2)(K0)+(y2-y0)(K1)+(y0-y1)((K0+K1)/2)]/面积 (14)
将方程式(12)代入方程式(14)中,
Ak=[(y1-(y0+y1)/2)(K0)+
((y0+y1)/2-y0)(K1)+
(y0-y1)((K0+K1)/2]/面积 (15)
相乘和相除得到:
Ak=[(K0)(y1)-.5(K0)(y0)-.5(K0)(y1)+
.5(K1)(y0)+.5(K1)(y1)-(K1)(y0)+
.5(K0)(y0)-.5(K0)(y1)+.5(K1)(y0)-.5(K1)(y1)]/面积 (16)
重新排列,
Ak=[-.5(K0)(y0)+.5(K0)(y0)+
(K0)(y1)-.5(K0)(y1)-.5(K0)(y1)+
.5(K1)(y0)-(K1)(y0)+.5(K1)(y0)+
.5(K1)(y1)-.5(K1)(y1)]/面积 (17)
或
Ak=[0]/面积=0 (18).
如上所述,
K(x,y)=(Ak)(x)+(Bk)(y)+Ck (3)
将方程式(18)代入方程式(3)中,
K(x,y)=(0)(x)+(Bk)(y)+Ck (19)
或
K(x,y)=(Bk)(y)+Ck (20).
通过使用等腰三角形并设定K2的值等于K0和K1的平均值,去掉方程式(3)中的量(Ak)(x)而使K(x,y)的值成为仅含y的一元函数,如方程式(20)中所示。这就是所需要的结果:(x2,y2)离(x0,y0)或(x1,y1)的距离及K2的属性值均不会影响沿底边402(选择要绘制的直线段)的属性值。
如上文所述,系统处理器102可在步骤306处首先选择第三点来加入至步骤304的指令,以使这三点形成三角形。
对于来自命令字符串(2)的直线200的起点(x0,y0)=(1.51,2.21)且终点(x1,y1)=(3.15,4.48),则直线200(xm,ym)的中点是
(xm,ym)=(x1+x0)/2,(y1+y0)/2) (21)
(xm,ym)=(2.33,3.35)=((1.51+3.15)/2,(2.21+4.48)/2).
使用直线方程式的斜率、起点(1.51,2.21)和终点(3.15,4.48),直线200的斜率是
m=(y1-y0)/(x1-x0) (22)
1.38=(2.21-4.48)/(1.51-3.15)
为了找到直线200的y截距“b”,可使用通用的直线方程式:
y=mx+b or b=y-mx
b=2.21-1.38(1.51)
b=0.12 (23)
由于斜率m=1.38,直线200的直线方程式是
y=1.38x+0.12 (24)
直线200的长度(底边之长)是
长度=[(x1-x0)^2+(y1-y0)^2)]^(1/2)
2.80=((1.51-3.15)^2+(2.214.48)^2))^(1/2)) (25)
经过直线200中点的垂直线的斜率m是直线200的斜率的负倒数,在此m=1.38。因此,经过直线200中点的垂直线的斜率m是-0.72(=-(1/1.38))。可从方程式(23)得到经过直线200中点的垂直线的y截距,即3.35=(-.072)(2.33)+b,或b=5.03。因此,第三点(x2,y2)可以是沿以下方程式表示的直线上的一点:
y2=-0.72(x2)+5.03 (26)
图5是直线200重画为直线500的平面图。直线500位于起点502与终点504之间并包含中点506(xm,ym)。直线508定位经过中点504,作为直线200的垂直平分线。如上文所述,第三点(x2,y2)可以是沿根据方程式(26)的直线上的一点:y2=-0.72(x2)+5.03。此外,如果光栅化从图1所示显示装置118的左上角由右至左然后由上至下进行,则可能需要使光栅化处理能够确定直线500的位置。确定直线500的起点502所在位置的一种方式是沿直线508选择第三点,以使由光栅化处理所识别出的位于所计划的等腰三角形之内的第一像素是与直线500的起点(x0,y0)(即点502)相关联的像素。
图6A、6B、6C和6D图解说明四种可能的布置,所要渲染的直线可以这些布置进行定位。图6A是直线602处于垂直位置的平面图。图6B是直线606处于水平位置的平面图。图6C是直线610处于往右下方倾斜位置的平面图。图6D是直线612处于往左下方倾斜位置的平面图。
在图6A中,直线602的起点(x0,y0)的x座标和终点(x1,y1)的x座标是相等的(即x0=x1)。在此,如果y2沿垂直平分直线602的直线(即其中y2=(y1+y0)/2)来定位,则可形成一等腰三角形。此外,如果x2大于直线602的起点(x0,y0)的x座标值,则所述由左至右、由上至下的光栅化处理将在到达所拟定的等腰三角形之内的任何其他像素之前首先到达与起点(x0,y0)(图6A中所示的点604)相关联的像素。
因为光栅化处理需要一面积来起作用,所以如下文所示x2≠x0成立。在图6A中,x0=x1。如果x2=x0,则x0=x1=x2,从而提供一直线供3D图形加速器108来处理。由于下列原因,处理三角形的3D图形加速器108不能处理这一直线。如果x2=x0,则x0=x1=x2且三角形图元的面积将等于零(明确地说,h=0)。如果面积等于零,则对于方程式(4)、(5)和(6)而言,这会导致除以零的错误,且因此会阻止对直线进行任何渲染。因此,x2≠x0。
可存在x2可小于直线602的起点(x0,y0)的x座标值的情况,此将允许光栅化处理在到达所拟定的等腰三角形之内的任何其他像素之前首先到达与起点(x0,y0)(图6A所示起点604)相关联的那一像素。然而,针对x2<x0确定可允许的x2值可能需要额外的计算时间和处理器时间。因此,作为如图6A中所示在具有一直线的情况中选择第三点的一部分,x2较佳大于x0(即x2>x0)。
可进一步改进如图6A中所示在具有一直线的情况中对第三点的选择。如果选择第三点的x2座标会使方程式(4)、(5)和(6)的面积计算相对简单,则此可节省处理时间,且因此节省功耗。从上文的方程式(7)得出,等腰三角形的面积是
面积=(1/2)(a)(h) (7)
其中,“a”可以是直线602的长度,且h可以是从直线602的中点延长至第三点的B-线的长度。如果h设定为等于2/a,则面积可等于1.00。因此,一种节省功率的方式可以是将面积设定为等于1,而无需实际计算面积。
图6A所示直线602的长度“a”等于y1-y0。此外,图6A所示的所拟定的等腰三角形的高度“h”等于x2-x0。换句话说,使
h=2/a (27)
以得到,
x2-x0=2/(y1-y0) (28)
或,
x2=x0÷2/(y1-y0) (29)
总结上文
如果x0=x1,则使x2=x0+2/(y1-y0)且y2=(y1+y0)/2 (30)
在图6B中,直线602的起点(x0,y0)的y座标和终点(x1,y1)的y座标相等(或y0=y1)。在此,如果沿垂直平分直线602的直线定位x2(即x2=(x1+x0)/2),则可形成一等腰三角形。此外,如果y2大于直线602的起点(x0,y0)的y座标值,则由左至右、由上至下的光栅化处理将在到达所拟定的等腰三角形之内的任何其他像素之前首先到达与起点(x0,y0)(图6B中所示点608)相关联的像素。沿用如图6A所采用的同一逻辑,
如果y0=y1,则使y2=y0+2/(x1-x0)且x2=(x1+x0)/2 (31)
在图6C中,直线610的起点(x0,y0)的y座标与终点(x1,y1)的y座标不相等(或y0≠y1)。此外,x0<x1。与图6A和图6B类似,如果沿垂直平分直线610的线来定位第三点(x2,y2),则可形成一等腰三角形。为了确保在任何其他像素之前首先光栅化包含图6C所示的点612的像素,则y2不得小于y0,且x2不得小于x0。换句话说,
如果y0≠y1&x0<x1,则使y2≥y0且x2≥x0 (32)
可能需要使为图6C中所布置的直线拟定的等腰三角形的面积相对便于计算,以节省功率。根据方程式(27),这可意味着
H=2/a (27)
图5所示的直线500适合图6C所示的直线情况,并用作开发该建议的好实例。
应记得,从方程式(25)计算得来的直线200(直线500)的长度“a”为2.80。如果h=2/(2.80),则这一等腰三角形的面积具有值“1”。此外,根据方程式(24),直线500由直线方程式y=1.38x+0.12来界定,且直线500的垂直平分线508由来自方程式(26)的直线方程式y2=-0.72(x2)+5.03来界定。
由于h=2/(2.80)、直线方程式y2=-0.72(x2)+5.03、且位于经过直线500中点的垂直线上的一点为(2.33,3.35)=(xm,ym)(参见图5),因而可利用方程式(25)来得到(x2,y2),改写如下
h=[(x2-xm)^2+(y2-ym)^2)]^(1/2) (33)
2/(2.80)=[(x2-2.33)^2+(y2-3.35)^2)]^(1/2) (34)
将
y2=0.72x2+5.03
代入方程式(34)中,
(2/(2.80))^2=(x2-2.33)^2+((-0.72x2+5.03)-3.35)^2
0.51=(x2-2.33)^2+((-0.72x2+1.68)^2
0.51=[(x2)^2..4.66x2+5.43]+[0.52(x2)^2-2.42x2+2.82]
0.51=1.52(x2)^2-7.08x2+8.25
0=1.52(x2)^2-7.08x2+7.74
在方程式两侧均除以1.52,
0=(x2)^2-4.66x2+5.09
用整数来因式分解该多项式,得到以下结果:
0=(x2-2.91)(x2-1.75)
x2=2.91 or x2=1.75
应记得,对于布置在图6C中的直线而言,x2≥x0。对于图5所示的直线500,x0=1.51。因此,在此情形下,x2可以是2.91或1.75。如果将x2设定成等于2.91(x2=2.91),y2=2.93=-0.72(2.91)+5.03,则
(x2,y2)=(2.33,2.93) (35)
一种节省计算功率的替代方式是使图6C中的布置为x2=x0或y2=y0。对于图5中所示直线200(y2=y0),然后可从直线508的方程式简单地计算得到x2,如下所示:
y2=2.21=-0.72x2+5.03
x2=3.90=(2.21-5.03)/(-0.72)
因此
(x2,y2)=(3.90,2.21)
作为对于图6C中的布置的第三点座标(x2,y2)的简单计算的一个交换是在确定图6C所示等腰三角形的面积时需要更多计算。对于图6C,上文可总结为
如果y0≠y1且x0<x1,使y2≥y0且x2≥x0
并使(面积=1或y2=y0或x2=x0) (36)
图7是用如上述方程式(35)中设定为(x2,y2)=(3.90,2.21)的第三点704绘制的等腰三角形702的平面图。等腰三角形702包括在起点502与终点504之间的直线500。
在图6D中,直线610的起点(x0,y0)的y座标和终点(x1,y1)的y座标不相等(即y0≠y1)。并且,x0>x1。与图6C类似,如果沿垂直平分直线614的直线来定位第三点(x2,y2),则可形成等腰三角形。为了确保在任何其他像素之前首先光栅化包含图6D所示点616的像素,y2应大于ym,且x2应大于xm。换句话说,
如果y0≠y1且x0>x1,使y2>(y1+y0)/2且x2>(x1+x0)/2 (37)
对于处理图6D中的直线而言,可如图6C直线中一样作出节省计算功率的类似选择。除方程式(37)之外,将面积设定为等于1(面积=1)可减轻在计算面积的处理器上的计算负载,但是可增加在确定第三点座标(x2,y2)的处理器上的计算负载。或者,除方程式(37)以外,设定x2=x0或设定y2=y1可减轻在计算第三点座标(x2,y2)的处理器上的计算负载,但是可增加在计算面积的处理器上的计算负载。这可总结为
如果y0≠y1 且x0>x1,使y2>(y1+y0)/2且x2>(x1+x0)/2
并使(面积=1或y2=y1或x2=x0) (38)
通常,图1所示系统处理器102既可确定该三角形图元的第三点的座标(x2,y2)又可确定三角形图元的面积。一个系统处理器在计算三角形图元面积方面可比计算三角形图元的第三点的座标方面更有效率,且可通过使面积=1作为方程式(38)的默认值来利用这一效率。在步骤302处,如果系统处理器102接受输入以生成并定位三条线,其中y0≠y1且x0>x1,则系统处理器102可经编程以使对于第一线面积=1,对于第二线y2=y1,对于第三线x2=x0。通过这种方式,与对于所有三条直线面积=1相比,系统处理器102可使用更多的处理电路。
可将图6A至图6D的方程式总结成包括用于选择第三点(x2,y2)的下列方程式:
如果x0=x1,则使x2=x0+2/(y1-y0)且y2=(y1+y0)/2 (30)
如果y0=y1,则使y2=y0+2/(x1-x0)且x2=(x1+x0)/2 (31)
如果y0≠y1且x0<x1,则使y2≥y0且x2≥x0
并使(面积=1或y2=y0或x2=x0) (36)
如果y0≠y1且x0>x1,则使y2>(y1+y0)/2且x2>(x1+x0)/2
并使(面积=1或y2=y1或x2=x0) (38)
应记得,在图3所示方法300中的步骤306处,系统处理器102可开始选择第三点以加入至步骤304的指令,以使所述三点形成三角形。在308处,方法300可开始选择第三点的座标(x2,y2)。
在选择第三点座标(x2,y2)时可使用方程式(30)、(31)、(36)和(38)。在310处,方法300可确定是否x0=x1。如果x0=x1,则在步骤312处方法300可使x2=x0+2/(y1-y0)且y2=(y1+y0)/2。如果x0≠x1,则在步骤314处方法300可确定是否y0=y1。如果y0=y1,则在步骤316处方法300可使y2=y0+2/(x1-x0)且x2=(x1+x0)/2。如果y0≠y1,则方法300可进行到步骤3 18,并得到直线500的垂直平分线的方程式。方法300也可以继续从步骤314进行至步骤320。
在步骤320处,y0≠y1且方法300可确定是否x0<x1。如果在步骤320处x0<x1,则在步骤322处方法300可使y2≥y0且x2≥x0。在324处,方法300进一步可使面积=1或y2=y0或x2=x0。如果在步骤320处x0不小于x1,则方法300可进行到步骤326。在326处,y0≠y1且x0>x1。在步骤328处,方法300可使y2>(y1+y0)/2且x2>(x1+x0)/2。在330处,方法300可使面积=1或y2=y1或x2=x0。
方法300可从步骤318、步骤324和步骤330进行到步骤332。在步骤332处,方法300可采用在步骤318中获得的直线方程式、以及来自324或330的合适输入来获得第三点的座标值(x2,y2)。方法300可从步骤312、步骤316和步骤332进行到步骤334。在步骤334处,方法300可存储第三点的座标值(x2,y2)。
除了从步骤306进行到步骤308处开始选择第三点的座标(x2,y2)以外,方法300也可从步骤306进行到步骤336。在步骤336处,方法300可选择第三点(x2,y2,K2)的属性值K2。方法300可选择第三点(x2,y2,K2)的属性值K2,以使所选定的属性值可对沿直线200上的像素的经计算的属性值几乎没有影响甚至毫无影响。例如,为了确定要赋给顶点(x2,y2)的属性K2,可使用命令字符串(2)每一属性的平均值以及方程式(11)。
draw_line(x0,y0,K0,x1,y1 K1) (1)
draw_line(1.51,2.21,8α,240R,0G,56B,23RS,0GS,0BS,4u,256v,3.15,4.48,45α,210R,0G,7B,99RS,180GS,45BS,0u,16v) (2)
K2=(K0+K1)/2 (11)
来自命令字符串(2)的漫射颜色阿尔法(“α”)平均值是26.5(=(8+45)/2)。来自命令字符串(2)的漫射颜色红色(“R”)平均值是275(=(240+210)/2)。来自命令字符串(2)的漫射颜色绿色(“G”)平均值是0(=(0+0)/2)。通过采用来自方程式(35)的座标并计算其余属性,第三点(K2)的顶点命令字符串可以是:
Vertex_K2(3.90,2.21,26.5α,275R,0G,31.5B,61RS,90GS,22.5BS,2u,136v) (39)
在一替代实施例中,如果在步骤302处,系统处理器102接收到界定三角形(x0,y0,K0)、(x1,y1,K1)、(x2′,y2′,K2′)的信息、以及要将三角形的一边渲染成直线的请求,则可调节K2′属性值以获得K2,使K2=(K0+K1)/2。
在步骤338处,方法300可将具有从步骤336获得的属性K2的来自步骤334的座标(x2,y2)结合到vertex_K2命令字符串中。命令字符串(2)和命令字符串(39)共同构成图7所示等腰三角形702。在步骤340处,方法300可将来自步骤304的指令与vertex_K2命令字符串相结合以构成一等腰三角形图元。在步骤342处,绘图处理器114可接收等腰三角形图元702。
图8是绘制等腰三角形图元702的方法800。可采用一边框算法来渲染图7所示等腰三角形图元702。边框902可定位在直线500的周围。可通过基于直线500的起点502与终点504获得位置(Xmin,Ymin)和(Xmax,Ymax)来定位边框902。(Xmin,Ymin)和(Xmax,Ymax)可以是四舍五入的按比例缩放的整数(x0,y0)和(x1,y1)。在802处,方法800可获得(Xmin,Ymin)和(Xmax,Ymax)。在804,使用(Xmin,Ymin)和(Xmax,Ymax)可将边框902定位在直线500周围。
图9是三角形702的平面图,其中边框902定位在直线500周围。将x与y的最小值和最大值四舍五入,并将模型空间座标按比例缩放到屏幕空间座标,则得到位于(Xmin,Ymin)(=(15,22))904和(Xmax,Ymax)(=(32,45))906处的边框902。
渲染图9所示直线500本质上是一插值处理,该插值处理可照亮直线500可经过的那些像素。然而,将模型空间座标值四舍五入成屏幕空间整数会引起直线以阶梯状外观显示(有时称为“锯齿状图形”),尤其是在低分辨率的显示屏上,例如具有相对较少像素的蜂窝电话屏幕。因此,照亮直线500可经过的那些像素附近的像素以提供将锯齿状图形最小化的着色或融合可能是重要的。
在图9所示的等腰三角形702中,存在屏幕空间中的x、y位置的线性函数K使得
K(x,y)=(Ak)(x)+(Bk)(y)+Ck (3)
其中
K=α,R,G,B,RS,GS,BS,u和v;
(x,y)表示一个屏幕像素的屏幕空间座标;且
Ak、Bk和Ck表示线性系数。可通过方程式(4)、(5)和(6)来获得线性系数A、B、C,方程式(4)、(5)和(6)与三个顶点502、504和704相关联。通过获得系数A、B、C,可根据方程式(3)获得在任何所需屏幕空间(x,y)位置处的属性值。
根据方程式(3)直接求每一像素的每一属性值可能需要两个乘法器和两个加法器,这是一个极其昂贵的解决方案。较佳地,可仅通过加法(“+”)运算使用基于算法的边框来渲染像素的简洁的直线500。一个基于仅采用加法运算的算法的边框使用边方程式。可通过平面(仿射)函数来表示三角形的三条边,这些平面(仿射)函数在边的左侧为负,在边的右侧为正,且在边上为零:
E0(x,y)=(A0)(x)+(B0)(y)+C0 (39)
E1(x,y)=(A1)(x)+(B1)(y)+C1 (40)
E2(x,y)=(A2)(x)+(B2)(y)+C2 (41)
以上三个方程式(39)、(40)和(41)需要六个乘法运算和六个加法运算,这是极其昂贵的。通过针对方程式(39)、(40)和(41)的每一方程式求出点(x+1,y)减去点(x,y)的值,所产生的方程式仅使用加法运算。例如,对于方程式(39):
E0(x+1,y)=(A0)(x)+(A0)+(B0)(y)+C0
-E0(x,y)=-(A0)(x) -(B0)(y)-C0
E0(x+1,y)-E0(x,y)=A0 (42)
类似地可获得B0的方程式:
E0(x,y+1)-E0(x,y)=B0 (43)
换句话说,一旦为像素(Xmin,Ymin)确定初始边函数E0、E1、E2,则通过添加A0可获得在同一水平扫描线上的右侧在+x方向上的下一像素的边函数,或通过添加B0可获得在同一垂直线之下在+y方向上的下一像素的边函数:
Ei(Xmin,Ymin)=(Ai)(Xmin)+(Bi)(Ymin)+C0,其中(i=0,1,2) (44)
及
Ei(Xmin+1,Ymin)=Ei+A0,其中(i=0,1,2) (45)
Ei(Xmin,Ymin+1)=Ei+B0,其中(i=0,1,2) (46)
通过附加的方程式,渲染处理也可移动至左方或上方:
Ei(Xmin-1,Ymin)=Ei-A0,其中(i=0,1,2) (47)
Ei(Xmin,Ymin-1)=Ei-B0,其中(i=0,1,2) (48)
返回至方法800,在步骤806处,方法800可计算在边框902的左上像素处的三个边方程式的初始值。在本实例中,边框902的左上像素是像素904。可采用方程式(44)来计算在像素904处的三个边方程式的初始值。
在步骤808处,方法800可从边框902的左上像素904向右移动至下一像素908。在810处,方法800可确定像素的E0是否等于零。如果该像素的E0不等于零,则在步骤812处,方法800可移动至右侧的像素,并返回至步骤810。
应记得,可通过在该边上的平面(仿射)函数为零来表示三角形的E0边。如果E0=0,则方法800已到达包含(x0,y0)的像素。如果该像素的E0等于零,则在步骤814处方法800 断定该像素包含直线500的起点502(x0,y0)。在步骤816处,方法800可确定是否将该像素光栅化。
并不是所有像素都将对直线500照明。一些像素可提供着色或融合,且其他像素可提供直线500的直接表示。然而,边框902中的大多数像素极可能不会给直线500任何照明,且从而将不会被进行光栅化。通过跳过边框902中的像素,可提高可渲染直线500的速度。
图10是等腰三角形702的平面图。应记得,可通过平面(仿射)函数表示三角形的三条边,该函数在边的左侧为负,在边的右侧为正,且在边上为零。在等腰三角形702之外的像素用负号“-”显示,在相对于直线500(边E0)处于等腰三角形702之中的像素用正号“+”显示。在等腰三角形702的边E0周边上的像素用零“0”显示。可使用方程式(39)、(40)和(41)来确定每一像素的-、+、0。
对于任何给定的水平或垂直扫描线,只有紧靠零(“0”)像素附近的负像素或正像素可给予直线500照明。同样包括在图10中的是边界1002。在边界1002之中的可能是所有潜在地可影响直线500的显示的所有像素。在边界1002之外的可能是所有可不影响直线500的显示的像素。直线500的高效率的光栅化可仅对位于边界1002之中的那些像素进行求值来进行光栅化。
在步骤814处定位了起点(x0,y0)之后,方法800可对紧靠该零(“0”)像素附近的负像素及/或正像素求值来进行光栅化。在步骤818处,方法800可计算Ei((x0)-1,y0)的三个边方程式的值,并可确定是否光栅化该像素。在步骤820处,方法800可计算Ei(x0,(y0)-1)的三个边方程式的值,并确定是否光栅化该像素。在步骤822处,方法800可计算Ei((x0)+1,y0)的三个边方程式的值,并确定是否光栅化该像素。
在步骤824处,方法800可设定水平增量值f=0及垂直增量值g=1。通过设定水平增量值f=0及垂直增量值g=1,方法800可垂直下移一个像素以对该像素求值。在步骤826处,方法800可确定是否(x0+f,y0+g)=(x1,y1)。如果(x0+f,y0+g)确实等于(x1,y1),则方法800已到达包含直线500的终点504的像素,并转到步骤854。如果(x0+f,y0+g)不等于(x1,y1),则方法800尚未到达包含直线500的终点504的像素。
如果(x0+f,y0+g)不等于(x1,y1),则在步骤828处,方法800可确定边方程式Ei(x0+f,y0+g)的值是负数、零、还是正数。
如果边方程式Ei(x0+f,y0+g)的值是负数,则在步骤830处,方法800可计算边方程式Ei(x0+f,y0+g)的值,并可确定是否将该像素光栅化。在步骤832处,方法800可计算边方程式Ei(x0+f+l,y0+g)的值,并可确定是否将该像素光栅化。在步骤834处,方法800可计算边方程式Ei(x0+f+2,y0+g)的值,并可确定是否将该像素光栅化。
在步骤836处,设定f=f+1且g=g+1,且方法800可返回至步骤826。
如果边方程式Ei(x0+f,y0+g)的值是零,则在步骤838处,方法800可计算边方程式Ei(x0+f-l,y0+g)的值,并可确定是否将该像素光栅化。在步骤840处,方法800可计算边方程式Ei(x0+f,y0+g)的值,并可确定是否将该像素光栅化。在步骤842处,方法800可计算边方程式Ei(x0+f+l,y0+g)的值,并可确定是否将该像素光栅化。
在步骤844处,设定g=g+1,且方法800可返回步骤826。
如果边方程式Ei(x0+f,y0+g)的值为正数,则在步骤846处,方法800可计算边方程式Ei(x0+f,y0+g)的值,并可确定是否将该像素光栅化。在步骤848处,方法800可计算边方程式Ei(x0+f-1,y0+g)的值,并可确定是否将该像素光栅化。在步骤850处,方法800可计算边方程式Ei(x0+f-2,y0+g)的值,并可确定是否将该像素光栅化。
在步骤852处,设定f=f-1和g=g+1,且方法800可返回至步骤826。
如果在步骤826处(x0+f,y0+g)等于(x1,y1),则光栅化处理可能已经到达包含直线500的终点504的像素,且在步骤854处,方法800可断定该像素包含直线500的终点504(x1,y1)。
在步骤856处,方法800可计算Ei(x1,y1)的三个边方程式的值,并可确定是否将该像素光栅化。在步骤858处,方法800可计算Ei((x1)-1,y0)的三个边方程式的值,并可确定是否将该像素光栅化。在步骤860处,方法800可计算Ei(x1,(y0)+1)的三个边方程式的值,并可确定是否将该像素光栅化。在步骤862处,方法800可计算Ei((x1)+1,y0)的三个边方程式的值,并可确定是否将该像素光栅化。
如果方法800确定不将一给定像素光栅化,则在绘图存储器112中不存储该给定像素的光栅化信息。如果方法800确定要光栅化一给定像素,则可在绘图存储器112中存储光栅化信息。所存储的光栅化信息可包括界定直线图形对象的二维表示的一组经编辑的显示点。在本实例中,直线图形对象是图7所示底边500。
在将相关的像素完全光栅化并将位图信息存储在绘图存储器112中之后,在步骤864处方法800可将位图信息传递至图1所示的帧缓冲器116。在步骤866处,帧缓冲器116可将位图信息传递至显示屏118,其中可显示模型空间线500的屏幕空间直线。
除上述情况以外,方法800可采用其他装置级技术以使光栅直线段的阶梯状外观变平滑,例如数字微分分析器(DDA)算法和Bresenahm直线算法。DDA算法和Bresenahm直线算法均是基于沿直线路径调节像素的强度。
并不必测试三角形702的所有三条边。在测试之前,已知边E0是三角形702的底边,且因此是所需的线条。其余两边是预先确定的,并从而关于三角形702的这两个其余边的信息是已知的。在测试边E0时,该处理实质上仅跨过所述直线,且该处理是否跨越其余两边在该处理中可能几乎不存在区别。跨越其余两边之一可告知该处理其已到达线条的端点,但是边框提供一种已做出这种决定的技术。因此,可能只需要测试边E0来将所述线条光栅化。
图11是可用来实施一些实施例的计算机系统1100。在一些实施例中,可将所揭示的技术硬编码到专用于图形产生的硬件装置中,及/或实施在存储于计算机可读媒体(软件)中的计算机可执行指令中。
计算机系统1100可包括总线1105、处理器1110、系统存储器1115、只读存储器1120、永久性存储装置1125、输入装置1130、输出装置1135、和替代处理器1140。
总线1105可笼统地表示所有系统总线、外围总线及芯片组总线,其在通信上连接计算机系统1100的众多内部装置。例如,总线1105可使处理器1110在通信上连接只读存储器1120、系统存储器1115及永久性存储装置1125。
只读存储器(ROM)1120可存储由处理器1110及计算机系统中其他模块所需的静态数据和指令。另一方面,永久性存储装置1125可以是读写存储器装置。此装置是一即使在计算机系统1100关闭时也能存储指令和数据的非易失性存储器单元。某些实施例可使用一大容量存储装置(例如一磁盘或光盘及其对应的磁盘驱动器)作为永久性存储装置1125。其他实施例可使用一可移动存储装置(例如软磁盘或zip磁盘及其对应的磁盘驱动器)作为永久性存储装置。
如永久性存储装置1125一样,系统存储器1115可是一读写存储器装置。然而,不同于存储装置1125,系统存储器可是一易失性读写存储器,例如一随机存取存储器(RAM)。系统存储器可存储处理器在运行时所需要的指令和数据。
在一些实施例中,需用来执行本文所揭示方法的一些指令及/或数据可存储在系统存储器1115、永久性存储装置1125、只读存储器1120、或这三者的任意组合中。例如,各种存储器单元可包含应用程序的指令及/或由应用程序产生的图形数据。在一些实施例中,系统存储器1115及/或永久性存储装置1125可包括一缓存器及/或缓冲器。
从这些各种存储器单元,处理器1110可检索要执行的指令以及要处理的数据以执行本文所揭示的处理。在一些实施例中,处理器1110可使用单片高速缓存器1112来保留最近由处理器1110存取或产生的数据。在一些实施例中,替代处理器1140可执行指令并处理数据以执行本文所揭示的处理。
总线1105还可连接至输入和输出装置1130和1135。输入装置1130可使使用者能够传送信息及选择命令至计算机系统1100。输入装置1130可包括字母数字键盘及光标控制器。输出装置1135可打印或显示由计算机系统1100产生的图像。输出装置可包括打印机和显示装置,例如阴极射线管(CRT)或液晶显示器(LCD)。
最后,如图11中所示,总线1105还可通过(例如)网络适配器(未示出)将计算机系统1100耦连至网络1165。通过这种方式,计算机系统1100可成为一计算机网络(例如局域网(“LAN”)、广域网(“WAN”)、或内部网)或一由众多网络形成的网络(例如互联网)的一部分。可使用计算机系统1100的任何或所有组件。然而,所属技术领域中的技术人员将了解,还可使用任何其他系统配置。
使用现有的3D图形加速器路由会将产生一线条所需的功率最小化。在低功率资源系统(例如蜂窝电话和手表)中这尤为重要。
尽管已参照众多的具体细节进行了详细说明,但是所属技术领域的技术人员将认识到,所述细节可采用其他具体形式来实施,而此并不违背本发明的精神。因此,所属技术领域中的一般技术人员将了解,所揭示的细节不受前述例示细节的约束,而是受随附权利要求书的界定。
所属技术领域中的技术人员将了解,可使用各种不同技术及技法中的任一种来表示信息及信号。举例而言,整个上述说明中可能提及的数据、指令、命令、信息、信号、位、符号和芯片可由电压、电流、电磁波、磁场或粒子、光场或粒子、或其任一组合来表示。
所属技术领域中的技术人员将进一步了解,结合本文所揭示实施例而阐述的各种例示性逻辑块、模块、电路、及算法步骤可构建为电子硬件、计算机软件、或二者的组合。为例示硬件和软件的此种可互换性,上文就其功能总体阐释了各种例示性组件、块、模块、电路及步骤。此种功能实施作为硬件还是软件取决于特定应用及施加于整个系统的设计制约条件。所属技术领域的技术人员可针对每一特定应用以不同方式构建上述功能,但是,此等构建决不应被解释为背离本发明的范围。此外,在不背离本发明范围的情况下可互换各方法步骤。
结合本文所揭示实施例加以阐释的各例示性逻辑块、模块及电路均可由下列装置构建或实施:通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、分立门或晶体管逻辑、分立硬件组件、或设计用于实施本文所述各功能的其任何组合。通用处理器可为微处理器,但另一选择为,处理器可为任何传统处理器、控制器、微控制器或状态机。处理器还可作为计算装置的一组合形式实施,例如:DSP与微处理器的组合,多个微处理器,一个或多个微处理器结合DSP核心的组合,或任何其它此种配置。
结合本文所揭示实施例所述的方法或算法的步骤可直接实施于硬件中、实施于由一处理器执行的软件模块中、或实施于两者的组合中。软件模块可驻留于RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM、或所属技术领域中已知的任何其它形式的存储媒体中。实例性存储媒体耦连至处理器,以使所述处理器可自所述存储媒体读取信息且能够将信息写至所述存储媒体。或者,所述存储媒体可集成到所述处理器中。所述处理器及所述存储媒体可驻留在ASIC中。所述ASIC则可驻留于一用户终端机中。另一选择为,所述处理器及所述存储媒体可作为分立组件驻留在用户终端机中。
提供上述所揭示实施例的说明意在使所属技术领域中的任何技术人员都能够制作或使用本发明。所属技术领域中的技术人员将容易得知对这些实施例的各种修改,且本文所界定的一般原理可应用于其它实施例,此并不背离本发明的精神或范围。因此,本发明并非旨在限定于本文所示的实施例,而是要赋予其与本文所揭示的原理及新颖特征相一致的最宽广范围。
Claims (26)
1.一种计算机可读媒体,其包含用于编辑一组显示点的方法,所述一组显示点使用三维光栅化算法来界定直线图形对象的二维表示,所述方法包括:
接收界定三角形图元的三个顶点(x0,y0,K0)、(x1,y1,K1)、及(x2,y2,K2)的数据,其中属性K2=(K0+K1)/2,其中座标(x0,y0)、(x1,y1)、及(x2,y2)形成一等腰三角形图元,且其中座标(x0,y0)和(x1,y1)界定所述等腰三角形图元的底边;及
使用三维光栅化算法来渲染所述等腰三角形图元,以获得界定所述等腰三角形图元的底边的二维表示的所述一组显示点。
2.如权利要求1所述的计算机可读媒体,其进一步包括:
接收界定直线的数据,其中所述数据包括具有座标(x0,y0)和属性K0的起点和具有座标(x1,y1)和属性K1的终点;
为具有座标(x2,y2)的第三点选择属性K2,其中K2=(K0+K1)/2;及
为所述第三点选择所述座标(x2,y2)以形成所述等腰三角形图元。
3.如权利要求2所述的计算机可读媒体,其中如果y0≠y1,则为所述第三点选择所述座标(x2,y2)包括获得所述底边的垂直平分线的方程式。
4.如权利要求1所述的计算机可读媒体,其中如果x0=x1,则x2和y2定义为x2=x0+2/(y1-y0)和y2=(y1+y0)/2。
5.如权利要求1所述的计算机可读媒体,其中如果y0=y1,则x2和y2定义为y2=y0+2/(x1-x0)和x2=(x1+x0)/2。
6.如权利要求1所述的计算机可读媒体,其中所述等腰三角形图元界定一面积,且如果y0≠y1且x0<x1,则x2和y2定义为y2≥y0和x2≥x0,且所述面积、x2、及y2中的一者由所述面积=1、y2=y0、及x2=x0中的一者来定义。
7.如权利要求1所述的计算机可读媒体,其中所述等腰三角形图元界定一面积,且如果y0≠y1且x0>x1,则x2和y2定义为y2>(y1+y0)/2且x2>(x1+x0)/2,且所述面积、x2、及y2中的一者由所述面积=1、y2=y1、及x2=x0中的一者来定义。
8.如权利要求1所述的计算机可读媒体,其中渲染所述等腰三角形图元包括定位包含所述起点(x0,y0)的像素,
设定水平增量值f=0及垂直增量值g=1,及
确定是否(x0+f,y0+g)=(x1,y1)。
9.如权利要求8所述的计算机可读媒体,其中如果(x0+f,y0+g)≠(x1,y1),则渲染所述等腰三角形图元进一步包括为E0=0的那一像素、为位于紧靠所述E0=0的像素左侧的像素、以及为位于紧靠所述E0=0像素右侧的像素计算边方程式E0的值。
10.如权利要求9所述的计算机可读媒体,其中渲染所述等腰三角形图元进一步包括确定是否要将所述E0=0的像素、位于紧靠所述E0=0的像素左侧的所述像素、以及位于紧靠所述E0=0像素右侧的所述像素光栅化。
11.一种用于编辑一组显示点的装置,所述一组显示点使用三维光栅化算法来界定直线图形对象的二维表示,所述装置包括:
三维图形加速器,其具有绘图存储器,所述绘图存储器经配置以接收界定三角形图元的三个顶点(x0,y0,K0)、(x1,y1,K1)及(x2,y2,K2)的数据,其中属性K2=(K0+K1)/2,其中座标(x0,y0)、(x1,y1)及(x2,y2)形成一等腰三角形图元,且其中座标(x0,y0)和(x1,y1)界定所述等腰三角形图元的底边,及
所述三维图形加速器进一步具有绘图处理器,所述绘图处理器经配置以使用三维光栅化算法来渲染所述等腰三角形图元,以获得界定所述等腰三角形图元的底边的二维表示的所述一组显示点。
12.如权利要求11所述的装置,其进一步包含:
系统处理器,其经配置以:接收界定直线的数据,其中所述数据包括具有座标(x0,y0)和属性K0的起点和具有座标(x1,y1)和属性K1的终点;为具有座标(x2,y2)的第三点选择属性K2,其中K2=(K0+K1)/2;及为所述第三点选择所述座标(x2,y2)以形成所述等腰三角形图元。
13.如权利要求12所述的装置,其进一步包括显示装置,其经配置以将所述底边作为直线图形对象来显示。
14.如权利要求11所述的装置,其中如果x0=x1,则x2和y2定义为x2=x0+2/(y1-y0)和y2=(y1+y0)/2。
15.如权利要求11所述的装置,其中如果y0=y1,则x2和y2定义为y2=y0+2/(x1-x0)和x2=(x1+x0)/2。
16.如权利要求11所述的装置,其中所述等腰三角形图元界定一面积,且如果y0≠y1且x0<x1,则x2和y2定义为y2≥y0和x2≥x0,且所述面积、x2、和y2中的一者由所述面积=1、y2=y0及x2=x0中的一者来定义。
17.如权利要求11所述的装置,其中所述等腰三角形图元界定一面积,且如果y0≠y1且x0>x1,则x2和y2定义为y2>(y1+y0)/2和x2>(x1+x0)/2,且所述面积、x2、及y2中的一者由所述面积=1、y2=y1、及x2=x0中的一者来定义。
18.一种用于编辑一组显示点的装置,所述一组显示点使用三维光栅化算法来界定直线图形对象的二维表示,所述装置包括:
接收装置,其用于接收界定三角形图元的三个顶点(x0,y0,K0)、(x1,y1,K1)及(x2,y2,K2)的数据,其中属性K2=(K0+K1)/2,其中座标(x0,y0)、(x1,y1)及(x2,y2)形成一等腰三角形图元,且其中座标(x0,y0)和(x1,y1)界定所述等腰三角形图元的底边,及
渲染装置,其用于使用三维光栅化算法来渲染所述等腰三角形图元,以获得界定所述等腰三角形图元的底边的二维表示的所述一组显示点。
19.如权利要求18所述的装置,其进一步包括:
系统处理器,其经配置以:接收界定直线的数据,其中所述数据包括具有座标(x0,y0)和属性K0的起点和具有座标(x1,y1)和属性K1的终点;为具有座标(x2,y2)的第三点选择属性K2,其中K2=(K0+K1)/2;及为所述第三点选择所述座标(x2,y2)以形成所述等腰三角形图元。
20.如权利要求18所述的装置,其中所述接收装置是绘图存储器。
21.如权利要求18所述的装置,其中所述渲染装置是绘图处理器。
22.如权利要求11所述的装置,其中
(i) 如果x0=x1,则x2和y2定义为x2=x0+2/(y1-y0)和y2=(y1+y0)/2,
(ii)如果y0=y1,则x2和y2定义为y2=y0+2/(x1-x0)和x2=(x1+x0)/2,
(iii)如果y0≠y1且x0<x1,则所述等腰三角形图元界定一面积且x2和y2定义为y2≥y0和x2≥x0,且所述面积、x2、和y2中的一者由所述面积=1、y2=y0、及x2=x0中的一者来定义,及
(iv)如果y0≠y1且x0>x1,则所述等腰三角形图元界定一面积且x2和y2定义为y2>(y1+y0)/2和x2>(x1+x0)/2,且所述面积、x2、及y2中的一者由所述面积=1、y2=y1、及x2=x0中的一者来定义。
23.一种用于编辑一组显示点的方法,所述一组显示点使用三维光栅化算法来界定直线图形对象的二维表示,所述方法包括:
接收界定三角形图元的三个顶点(x0,y0,K0)、(x1,y1,K1)、及(x2,y2,K2)时数据,其中属性K2=(K0+K1)/2,其中座标(x0,y0)、(x1,y1)、及(x2,y2)形成一等腰三角形图元,且其中座标(x0,y0)和(x1,y1)界定所述等腰三角形图元的底边;及
使用三维光栅化算法来渲染所述等腰三角形图元,以获得界定所述等腰三角形图元的底边的二维表示的所述一组显示点。
24.如权利要求1所述的方法,其进一步包括:
接收界定直线的数据,其中所述数据包括具有座标(x0,y1)和属性K0的起点和具有座标(x1,y1)和属性K1的终点;
为具有座标(x2,y2)的第三点选择属性K2,其中K2=(K0+K1)/2;及
为所述第三点选择所述座标(x2,y2),以形成所述等腰三角形图元,
其中如果y0≠y1,则为所述第三点选择所述座标(x2,y2)包括获得所述底边的垂直平分线的方程式。
25.如权利要求23所述的方法,其中如果x0=x1,则x2和y2定义为x2=x0+2/(y1-y0)和y2=(y1+y0)/2。
26.如权利要求1所述的方法,其中
(i) 如果x0=x1,则x2和y2定义为x2=x0+2/(y1-y0)和y2=(y1+y0)/2,
(ii)如果y0=y1,则x2和y2定义为y2=y0+2/(x1-x0)和x2=(x1+x0)/2,
(iii)如果y0≠y1且x0<x1,则所述等腰三角形图元界定一面积,且x2和y2定义为y2≥y0和x2≥x0,且所述面积、x2、和y2中的一者由所述面积=1、y2=y0、及x2=x0中的一者来定义,及
(iv)如果y0≠y1且x0>x1,则所述等腰三角形图元界定一面积,且x2和y2定义为y2>(y1+y0)/2和x2>(x1+x0)/2,且所述面积、x2、及y2中的一者由所述面积=1、y2=y1、及x2=x0中的一者来定义。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/019,719 | 2004-12-21 | ||
US11/019,719 US7362325B2 (en) | 2004-12-21 | 2004-12-21 | 2D/3D line rendering using 3D rasterization algorithms |
PCT/US2005/046789 WO2006069310A2 (en) | 2004-12-21 | 2005-12-20 | 2d/3d line rendering using 3d rasterization algorithms |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101116111A true CN101116111A (zh) | 2008-01-30 |
CN101116111B CN101116111B (zh) | 2011-09-07 |
Family
ID=36499404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580047959XA Expired - Fee Related CN101116111B (zh) | 2004-12-21 | 2005-12-20 | 使用3d光栅化算法的2d/3d线条渲染 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7362325B2 (zh) |
EP (1) | EP1828988A2 (zh) |
JP (1) | JP4699480B2 (zh) |
KR (1) | KR100897724B1 (zh) |
CN (1) | CN101116111B (zh) |
CA (1) | CA2590658A1 (zh) |
TW (1) | TW200634663A (zh) |
WO (1) | WO2006069310A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737410A (zh) * | 2011-05-06 | 2012-10-17 | 新奥特(北京)视频技术有限公司 | 一种三维图元在二维图文编播系统中的显示方法和装置 |
CN101753767B (zh) * | 2008-12-15 | 2013-02-27 | 富士通株式会社 | 用在图形光栅扫描中的凸多边形遍历方法和系统 |
CN103150133A (zh) * | 2013-03-06 | 2013-06-12 | 天脉聚源(北京)传媒科技有限公司 | 一种资源展示方法及装置 |
CN104603844A (zh) * | 2012-10-08 | 2015-05-06 | 英特尔公司 | 减小的位计数多边形光栅化 |
CN102227752B (zh) * | 2008-12-09 | 2015-07-08 | 高通股份有限公司 | 使用三维图形硬件的二维图形渲染期间的顶点丢弃 |
CN106371780A (zh) * | 2015-07-22 | 2017-02-01 | 龙芯中科技术有限公司 | 矢量图形处理方法和装置 |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3401794A1 (en) | 2002-01-08 | 2018-11-14 | Seven Networks, LLC | Connection architecture for a mobile network |
US7917468B2 (en) | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Linking of personal information management data |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US7853563B2 (en) | 2005-08-01 | 2010-12-14 | Seven Networks, Inc. | Universal data aggregation |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8775112B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for increasing die yield |
US8775997B2 (en) * | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US8010082B2 (en) | 2004-10-20 | 2011-08-30 | Seven Networks, Inc. | Flexible billing architecture |
WO2006045102A2 (en) | 2004-10-20 | 2006-04-27 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US7706781B2 (en) | 2004-11-22 | 2010-04-27 | Seven Networks International Oy | Data security in a mobile e-mail service |
FI117152B (fi) | 2004-12-03 | 2006-06-30 | Seven Networks Internat Oy | Sähköpostiasetusten käyttöönotto matkaviestimelle |
US7877703B1 (en) | 2005-03-14 | 2011-01-25 | Seven Networks, Inc. | Intelligent rendering of information in a limited display environment |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US7796742B1 (en) | 2005-04-21 | 2010-09-14 | Seven Networks, Inc. | Systems and methods for simplified provisioning |
WO2006136660A1 (en) | 2005-06-21 | 2006-12-28 | Seven Networks International Oy | Maintaining an ip connection in a mobile network |
US8069166B2 (en) | 2005-08-01 | 2011-11-29 | Seven Networks, Inc. | Managing user-to-user contact with inferred presence information |
US7769395B2 (en) | 2006-06-20 | 2010-08-03 | Seven Networks, Inc. | Location-based operations and messaging |
US8482567B1 (en) * | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US8805425B2 (en) | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
KR100917887B1 (ko) * | 2007-06-11 | 2009-09-16 | 삼성전자주식회사 | 라인 가속 기능을 지원하는 그래픽 처리 방법 및 장치 |
US8325184B2 (en) | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US8724483B2 (en) | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US8793305B2 (en) | 2007-12-13 | 2014-07-29 | Seven Networks, Inc. | Content delivery to a mobile device from a content service |
US8107921B2 (en) | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US20090193338A1 (en) | 2008-01-28 | 2009-07-30 | Trevor Fiatal | Reducing network and battery consumption during content delivery and playback |
FR2927449B1 (fr) * | 2008-02-11 | 2010-03-26 | Newscape Technology | Trace de lignes polygonales |
KR100941029B1 (ko) * | 2008-02-27 | 2010-02-05 | 에이치기술(주) | 그래픽 가속기 및 그래픽 가속 방법 |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
JP5151946B2 (ja) * | 2008-12-09 | 2013-02-27 | 富士通株式会社 | 描画装置 |
US20100164971A1 (en) * | 2008-12-29 | 2010-07-01 | Celio Technology Corporation | Graphics processor |
US8217962B2 (en) * | 2009-01-29 | 2012-07-10 | Microsoft Corporation | Single-pass bounding box calculation |
CN102004710A (zh) * | 2009-09-01 | 2011-04-06 | 辉达公司 | 用于扩展便携式多媒体设备功能的方法和装置 |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
WO2011126889A2 (en) | 2010-03-30 | 2011-10-13 | Seven Networks, Inc. | 3d mobile user interface with configurable workspace management |
US9043433B2 (en) | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
GB2500333B (en) | 2010-07-26 | 2014-10-08 | Seven Networks Inc | Mobile application traffic optimization |
US9077630B2 (en) | 2010-07-26 | 2015-07-07 | Seven Networks, Inc. | Distributed implementation of dynamic wireless traffic policy |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
CN102024247B (zh) * | 2010-10-09 | 2012-07-18 | 宁波新然电子信息科技发展有限公司 | 用于实现新老显示界面切换的控制方法 |
CN101968713B (zh) * | 2010-10-09 | 2012-07-25 | 宁波新然电子信息科技发展有限公司 | 显示界面三维切换控制方法 |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
GB2499534B (en) | 2010-11-01 | 2018-09-19 | Seven Networks Llc | Caching adapted for mobile application behavior and network conditions |
US8166164B1 (en) | 2010-11-01 | 2012-04-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
WO2012060995A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
WO2012061437A1 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US8326985B2 (en) | 2010-11-01 | 2012-12-04 | Seven Networks, Inc. | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
GB2495463B (en) | 2010-11-22 | 2013-10-09 | Seven Networks Inc | Aligning data transfer to optimize connections established for transmission over a wireless network |
GB2500327B (en) | 2010-11-22 | 2019-11-06 | Seven Networks Llc | Optimization of resource polling intervals to satisfy mobile device requests |
GB2501416B (en) | 2011-01-07 | 2018-03-21 | Seven Networks Llc | System and method for reduction of mobile network traffic used for domain name system (DNS) queries |
WO2012145533A2 (en) | 2011-04-19 | 2012-10-26 | Seven Networks, Inc. | Shared resource and virtual resource management in a networked environment |
GB2504037B (en) | 2011-04-27 | 2014-12-24 | Seven Networks Inc | Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources |
WO2012149434A2 (en) | 2011-04-27 | 2012-11-01 | Seven Networks, Inc. | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
WO2013015994A1 (en) | 2011-07-27 | 2013-01-31 | Seven Networks, Inc. | Monitoring mobile application activities for malicious traffic on a mobile device |
US8934414B2 (en) | 2011-12-06 | 2015-01-13 | Seven Networks, Inc. | Cellular or WiFi mobile traffic optimization based on public or private network destination |
US8868753B2 (en) | 2011-12-06 | 2014-10-21 | Seven Networks, Inc. | System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
WO2013086447A1 (en) | 2011-12-07 | 2013-06-13 | Seven Networks, Inc. | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
WO2013085514A1 (en) * | 2011-12-07 | 2013-06-13 | Intel Corporation | Sample culling based on linearized 5d edge equations |
EP2792188B1 (en) | 2011-12-14 | 2019-03-20 | Seven Networks, LLC | Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
GB2499306B (en) | 2012-01-05 | 2014-10-22 | Seven Networks Inc | Managing user interaction with an application on a mobile device |
WO2013116856A1 (en) | 2012-02-02 | 2013-08-08 | Seven Networks, Inc. | Dynamic categorization of applications for network access in a mobile network |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US10263899B2 (en) | 2012-04-10 | 2019-04-16 | Seven Networks, Llc | Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network |
WO2014011216A1 (en) | 2012-07-13 | 2014-01-16 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US9307493B2 (en) | 2012-12-20 | 2016-04-05 | Seven Networks, Llc | Systems and methods for application management of mobile device radio state promotion and demotion |
US9241314B2 (en) | 2013-01-23 | 2016-01-19 | Seven Networks, Llc | Mobile device with application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US9547918B2 (en) | 2014-05-30 | 2017-01-17 | Intel Corporation | Techniques for deferred decoupled shading |
CN105488261B (zh) * | 2015-11-25 | 2019-12-27 | 天脉聚源(北京)科技有限公司 | 实时模拟线段的方法和装置 |
KR102608466B1 (ko) | 2016-11-22 | 2023-12-01 | 삼성전자주식회사 | 영상 처리 방법 및 영상 처리 장치 |
US10627910B2 (en) | 2017-02-21 | 2020-04-21 | Adobe Inc. | Stroke operation prediction for three-dimensional digital content |
US10657682B2 (en) | 2017-04-12 | 2020-05-19 | Adobe Inc. | Drawing curves in space guided by 3-D objects |
US11100700B2 (en) * | 2017-08-28 | 2021-08-24 | Will Dobbie | System and method for rendering a graphical shape |
CN108734760A (zh) * | 2017-09-12 | 2018-11-02 | 武汉天际航信息科技股份有限公司 | 三维网格线条拉直系统及三维网格线条拉直方法 |
CN109345607B (zh) * | 2018-10-11 | 2023-02-28 | 广州前实网络科技有限公司 | 一种自动标记epc图片方法 |
CN109658324B (zh) * | 2018-11-14 | 2023-04-07 | 西安翔腾微电子科技有限公司 | 一种三角形光栅化扫描方法 |
CN109584334B (zh) * | 2018-11-14 | 2023-04-07 | 西安翔腾微电子科技有限公司 | 一种基于uml的三角形光栅化扫描结构及光栅化扫描方法 |
CN111223142B (zh) * | 2019-12-31 | 2023-09-08 | 西安翔腾微电子科技有限公司 | 一种gpu点光栅化点大小奇偶配置的顶点坐标映射方法 |
CN112581352B (zh) * | 2020-12-05 | 2024-03-01 | 西安翔腾微电子科技有限公司 | 一种面向多gpu的高性能图元分屏光栅方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381519A (en) * | 1987-12-04 | 1995-01-10 | Evans & Sutherland Computer Corp. | System for line interpolation for computer graphics displays |
US5446836A (en) * | 1992-10-30 | 1995-08-29 | Seiko Epson Corporation | Polygon rasterization |
US5528737A (en) * | 1993-12-14 | 1996-06-18 | Silicon Graphics, Inc. | Processor-based method for rasterizing polygons at an arbitrary precision |
JP3865427B2 (ja) * | 1996-04-11 | 2007-01-10 | 三菱プレシジョン株式会社 | 地形模擬モデルの生成方法及び表示の方法 |
US5905500A (en) * | 1997-02-19 | 1999-05-18 | Seiko Epson Corporation | Method and apparatus for adaptive nonlinear projective rendering |
US6636218B1 (en) | 2000-06-30 | 2003-10-21 | Intel Corporation | Title-based digital differential analyzer rasterization |
EP1345177B1 (en) | 2002-03-11 | 2005-08-31 | STMicroelectronics Limited | Method and apparatus for evaluating whether a pixel point is inside a triangle |
US7800631B2 (en) * | 2003-03-18 | 2010-09-21 | Qualcomm Incorporated | Triangle rendering using direct evaluation |
-
2004
- 2004-12-21 US US11/019,719 patent/US7362325B2/en active Active
-
2005
- 2005-12-20 KR KR1020077016126A patent/KR100897724B1/ko not_active IP Right Cessation
- 2005-12-20 CA CA002590658A patent/CA2590658A1/en not_active Abandoned
- 2005-12-20 EP EP05855361A patent/EP1828988A2/en not_active Withdrawn
- 2005-12-20 WO PCT/US2005/046789 patent/WO2006069310A2/en active Application Filing
- 2005-12-20 JP JP2007548521A patent/JP4699480B2/ja not_active Expired - Fee Related
- 2005-12-20 CN CN200580047959XA patent/CN101116111B/zh not_active Expired - Fee Related
- 2005-12-21 TW TW094145644A patent/TW200634663A/zh unknown
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102227752B (zh) * | 2008-12-09 | 2015-07-08 | 高通股份有限公司 | 使用三维图形硬件的二维图形渲染期间的顶点丢弃 |
CN101753767B (zh) * | 2008-12-15 | 2013-02-27 | 富士通株式会社 | 用在图形光栅扫描中的凸多边形遍历方法和系统 |
CN102737410A (zh) * | 2011-05-06 | 2012-10-17 | 新奥特(北京)视频技术有限公司 | 一种三维图元在二维图文编播系统中的显示方法和装置 |
CN102737410B (zh) * | 2011-05-06 | 2017-09-12 | 新奥特(北京)视频技术有限公司 | 一种三维图元在二维图文编播系统中的显示方法和装置 |
CN104603844A (zh) * | 2012-10-08 | 2015-05-06 | 英特尔公司 | 减小的位计数多边形光栅化 |
CN104603844B (zh) * | 2012-10-08 | 2017-05-17 | 英特尔公司 | 减小的位计数多边形光栅化 |
CN103150133A (zh) * | 2013-03-06 | 2013-06-12 | 天脉聚源(北京)传媒科技有限公司 | 一种资源展示方法及装置 |
CN103150133B (zh) * | 2013-03-06 | 2016-03-23 | 天脉聚源(北京)传媒科技有限公司 | 一种资源展示方法及装置 |
CN106371780A (zh) * | 2015-07-22 | 2017-02-01 | 龙芯中科技术有限公司 | 矢量图形处理方法和装置 |
CN106371780B (zh) * | 2015-07-22 | 2019-08-13 | 龙芯中科技术有限公司 | 矢量图形处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20070088791A (ko) | 2007-08-29 |
JP4699480B2 (ja) | 2011-06-08 |
WO2006069310A3 (en) | 2006-09-08 |
TW200634663A (en) | 2006-10-01 |
CA2590658A1 (en) | 2006-06-29 |
KR100897724B1 (ko) | 2009-05-18 |
US7362325B2 (en) | 2008-04-22 |
JP2008524756A (ja) | 2008-07-10 |
WO2006069310A2 (en) | 2006-06-29 |
CN101116111B (zh) | 2011-09-07 |
EP1828988A2 (en) | 2007-09-05 |
US20060132495A1 (en) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101116111B (zh) | 使用3d光栅化算法的2d/3d线条渲染 | |
JP5232358B2 (ja) | アウトラインフォントのレンダリング | |
US7652677B2 (en) | Graphics system employing pixel mask | |
US8379025B1 (en) | Methods and apparatus for rendering vector art on graphics hardware | |
US7944442B2 (en) | Graphics system employing shape buffer | |
US10540789B2 (en) | Line stylization through graphics processor unit (GPU) textures | |
WO2000002165A1 (fr) | Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees | |
KR20150041057A (ko) | Gpu-가속 경로 렌더링 | |
US8477148B2 (en) | Graphics processing systems | |
US9251607B1 (en) | Anti-aliasing techniques | |
JP2015515059A (ja) | シーンにおける不透明度レベルを推定する方法とそれに対応する装置 | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
CN110502305B (zh) | 一种动态界面的实现方法、装置及相关设备 | |
JP4311877B2 (ja) | 副標本化テクスチャ端縁部のアンチエイリアシング | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN110570504B (zh) | 闭合符号绘制方法、装置、电子设备及存储介质 | |
US7170528B1 (en) | Fast glyph rendering for vector based fonts | |
CN109155074B (zh) | 用于无缝隙地渲染点的系统和方法 | |
Lengyel | Transition cells for dynamic multiresolution marching cubes | |
Ma et al. | Rasterization of geometric primitive in graphics based on FPGA | |
KR20190013146A (ko) | 모바일 환경에서 3d 객체의 실시간 대량 처리를 위한 랜더링 최적화 방법 | |
US20230038647A1 (en) | Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer | |
KR100927131B1 (ko) | 안티 알리어싱 방법 및 장치 | |
Amor et al. | A new architecture for efficient hybrid representation of terrains | |
JP2023538828A (ja) | 距離場グラフィックスレンダリングのためのアンチエイリアシング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1110134 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1110134 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110907 Termination date: 20201220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |