基于斜面的一个曲面的镶嵌的利记博彩app

文档序号:6419336阅读:208来源:国知局
专利名称:基于斜面的一个曲面的镶嵌的利记博彩app
背景本发明涉及曲面的镶嵌,例如像一个非均匀有理b样条(NURBS)的曲面。
参考

图1,一个图形系统可以利用数学函数来描述三维(3-D)曲面5。例如图形系统可以利用非均匀有理B样条(NURBS)的曲面函数导出曲面5的点。使用称为结点和控制点的元素对NURBS进行定义。控制点位于曲面5的远端并用于近似估计曲面5的常规曲率。结点是对用于一给定曲面5区域的控制点进行控制的值。
因为NURBS曲面函数是与一个相对少量的数据相关,因此NURBS表示的曲面5可以更好的适应在具有一个低带宽的计算机网络上发送表示的曲面5这样的目的,例如像因特网。该少量的数据也是开发者在生成高清晰场景方面所关注的。
尽管NURBS曲面函数是与一个少量的数据相关联,但NURBS曲面函数不适合通过系统再现显示一个(曲面5的)图像的目的。为了显示曲面5的图像的目的,图像系统可以换成使用多边形的一个网格来表示曲面5,并且利用一种称为镶嵌的技术图形系统可以使用NURBS曲面函数把曲面5再细分成多边形。镶嵌的最终产品典型的是一组描述多边形位置的(多边形的)顶点。在此方式中,图形系统可以利用这组顶点来再现曲面5的图像。
在镶嵌的过程中,图形系统可以选择一个顶点,通过在用那个顶点生成的多边形和由该多变形所表示的曲面的区域之间估计一个误差来进行选择。如果该误差是不可接受的,图形系统就调整多边形的大小并重复误差估算。这个过程持续进行直到多边形成为适当的尺寸。整个镶嵌的过程中,图形系统可以修改原始的NURBS曲面函数,作为一个例子,比如可以通过给原始的NURBS曲面函数增加附加的结点和控制点。
不幸的是,误差估计和对NURBS曲面函数进行的修改消耗系统的处理时间。因此,由镶嵌引起的额外的时间消耗将限制图像系统快速显示和操纵图像的能力。
因此,一直需要一种安排方法以加快镶嵌数学描述的曲面。
概述在一个实施例中,一种用于在一个计算机系统的显示器上形成一个曲面的图像的方法包括,确定靠近第一曲面点的曲面一个斜面的第一比率的变化并基于该确定,选择一个第二曲面点。基于第一和第二点形成至少一个多边形以便形成至少一部分的图像。该(诸)多边形被显示在显示器上。
在另一个实施例中,一个成品包括一个可由处理器建立的系统读取的存储媒体。该存储媒体存储指令以使一个处理器来确定靠近第一曲面点的曲面一个斜面的第一比率的变化并基于该确定,选择一个第二曲面点。该存储媒体存储指令以使处理器基于第一和第二点镶嵌至少一部分曲面,以便形成至少一个多边形并引起所述至少一个多边形在显示器上的形成,从而表示出至少一部分曲面的图像。
此外,在另一个实施例中,一个计算机系统包括一个显示器,一个处理器和一个存储器。该存储器存储一个程序以使处理器来确定靠近第一曲面点的曲面一个斜面的第一比率的变化并基于该确定,选择一个第二曲面点。该程序进一步使处理器基于第一和第二点镶嵌至少一部分曲面,以便形成至少一个多边形并引起所述至少一个多边形在显示器上形成显示,从而表示出至少一部分曲面的图像。
附图的简要描述图1是一个曲面的透视图。
图2是按照本发明一个实施例的一个计算机系统的示意图。
图3是图解说明镶嵌一个曲面的透视图。
图4是通过图2的计算机系统的处理器镶嵌曲面的一个图解说明。
图5,6和7图示了按照本发明一个实施例通过图2的处理器执行一个镶嵌程序的流程图。
详细说明参考图2,按照本发明一个具体的计算机系统10包括存储镶嵌程序19的一个系统存储器18。在一些实施例中,当通过(计算机系统10的)处理器12执行镶嵌程序19时,引起处理器12镶嵌一个算术描述的曲面40以便形成表示曲面40的多边形的一个网格。在此方式下,处理器12选择一组多边形的顶点,并且这些顶点可以用于实现把曲面40的一个图象快速再现在计算机系统10的一个显示器14上的目的。作为一个示例,曲面40可以是一个非均匀的,有理b样条曲面(NURBS)。
在选择每个顶点的过程中,处理器12(当执行程序19时)考虑靠近那个顶点的曲面40斜面的比率变化。如下所述,作为这种技术的一个结果,在处理器12表示的区域42中(参看图3),曲面40的斜率随较小的多边形快速变化,以及在表示的区域43中,曲面40的斜率随较大的多边形几乎保持不变,如下所述。在一些实施例中,处理器12完成这些功能时不需要运算描述曲面40的数学函数和不需要估计再细分的误差,这些技术通常会消耗处理功率。
因此,上述方案可以包括以下一个或多个优点可以减少镶嵌处理时间;描述曲面的一个数学函数可以被改动;可以使用单指令多数据(SIMD)指令;可以实时镶嵌曲面;以及可以避免额外的镶嵌。
在本申请文本中,语句“计算机系统”通常涉及包括一个处理器和包括(但并不限于)一个图形系统的一个系统,一个台式计算机或一个移动式计算机(例如一个膝上型计算机),这些仅作为少数的例子。术语“处理器”例如可以涉及至少一个微处理器,X86微处理器,高级的RISC机器(ARM)微处理器或奔腾微处理器。上述给出的例子并不是要进行限制,而是说,在本发明的实施例中可以包括其它类型的计算机系统和其它类型的处理器。
参考图3,在一些实施例中,通过一个NURBS曲面函数(称为S(u,v))来描述曲面40,可以通过把一个有界的二维参数空间映射成一组描述曲面40的点来获得NURBS曲面函数。该S(u,v)曲面函数由下式表示S(u,v)=Σi=0pΣj=0qBi,p(u)Bj,q(v)wi,jPi,jΣi=0pΣj=0qBi,p(u)Bj,q(v)wi,j,]]>其中Pi,j表示控制曲面40曲率的控制点的一个m×n阵列;Wi,j是控制点加权;以及Bi,p(u)和Bj,q(v)是b样条的基础函数,通过在下面称为U和V的结点矢量上的Cox-DeBoor递推公式定义b样条的基础函数U={u0,u1,u2,up,…,um+p-2,um+p-1,um+p}和V={v0,v1,v2,vq,…,vn+q-2,vn+q-1,vn+q}B样条基础函数由下式表示Bi,0(u)=1,若u1≤u<ui+1Bi,0(u)=0,否则Bi,p(u)=u-uiui+p-uibi,p-1(u)+ui+p+1-uui+p+1-ui+1Bi+1,p-1(u)]]>在从(uMIN,vMIN)至(uMAX,vMAX)封闭的结点范围上定义S(u,v)曲面函数是有效的。通过Sx,Sy,Sz和Sw分别表示S(u,v)曲面函数的x,y,z和同系的w分量,由下式表示Sx(u,v)=Σi=0pΣj=0qBi,p(u)Bj,p(v)wi,jPxi,j]]>Sy(u,v)=Σi=0pΣj=0qBi,p(u)Bj,q(v)wi,jPyi,j]]>Sz(u,v)=Σi=0pΣj=0qBi,p(u)Bj,q(v)wi,jPzi,j]]>Sw(u,v)=Σi=0pΣj=0qBi,p(u)Bi,q(v)wi,j]]>在下面的描述中,使用上标来指定偏导数。例如 参考图4,在一些实施例中,多边形可以是三角形44,并且基于S(u,v)曲面函数的第一和第二偏导数,处理器12可以选择三角形的顶点。例如,处理器12可以选择一个特殊的顶点46a,然后利用S(u,v)曲面函数计算相对于任意参数u或者v的曲面40的斜面在顶点46a的变化率。例如,通过增加v参数的值,处理器12可以保持u参数恒定不变并单独提高v-参数曲线48来选择下一个顶点46b(在顶点46a之后)。以这种方式,处理器12可以计算在顶点46a的SVV第二偏导数并通过该计算确定增加v参数的数量。在处理器12通过该数量增加了v参数之后,处理器12使用S(u,v)曲面函数(带有新的v参数)确定下一个顶点48b。
同样,在确定顶点的过程中,处理器12可以保持v参数不变并通过上述相同的技术方法改变u参数来单独提高作为结果的u-参数曲线。如此,处理器12可以计算在每个顶点的SUU偏导数并基于计算单独提高v-参数曲线。
通常,如果第二偏导数(SVV或Suu)近似等于0,由于在顶点之间,曲面40的斜面的变化量相对较小,处理器12可以通过一个较大值提高参数(u或v)以便在相邻顶点之间设置一个相对大的距离。然而,如果第二偏导数变化很大,因为曲面40的斜面变化更快,则处理器12可以通过把相邻顶点间的距离从较小值变到最小值来提高参数。此外,处理器12可以通过非连续曲率的邻域(由S(u,v)曲面函数的第一和第二偏导数所表示的)中较小的数量来提高参数,下面进一步进行阐述。
在一些实施例中,如果没有非连续曲率,通常处理器12设置的u或v参数的提高量值与相对于那个参数的S(u,v)曲面函数的第二偏导数的绝对值成反比。然而,也可以用其他的安排方法。例如,可以按照一个数值表提高参数。以这种方式,该表中的较大值应该与具有较小量值的第二偏导数相联系,而且该表中的较小值与具有较大量值的第二偏导数相关。
作为一个例子,在下面的方法中,程序19可以使处理器12选择多边形网格的顶点。开始时对u参数使用最小边界值(称作uMIN),处理器12单独提高v-参数曲线,把v参数从vmin(v参数的最小边界值)提高到vmax(v参数的最大边界值)。每次提高v参数产生一个选择的顶点,并且基于在上一个所选择顶点的偏导数Svv的值,处理器12前进到下一个选择的顶点。接着处理器12基于Suu偏导数提高u参数并重复上述的处理过程以选择更多的顶点。当处理器12确定u参数已经升至umax时(u参数的最大边界值),顶点的选择(和曲面40的镶嵌)被完成。
参考图5,尤其对于程序19的执行,处理器12可以把u(方框50)和v(方框52)的参数设置到它们的最小边界值umin和vmin。下一步,处理器12确定(菱形54)u参数是否小于或等于umax。如果为否,镶嵌完成,从而处理器12中断程序19的执行。另外,处理器12确定(菱形56)v参数是否小于或等于vmax,也就是,处理器12确定是否到了可以提高u参数的时间。
如果v参数是小于或等于vmin,处理器12确定(方框58)在当前点(u,v)的第一(Sv)和第二(Svv偏导数并把该当前点(通过SX(u,v),SY(u,v)和SZ(u,v)函数给出)加到(方框60)所选择顶点的组中。
下一步,处理器12确定增加v参数的量值(称为vDELTA)。参考图6,在此方式中,如果处理器12确定(菱形62)第二偏导数Svv是近似等于0,则处理器12接着确定(菱形66)第一偏导数Sv是否近似等于0。如果第一(Sv)和第二(Svv)偏导数都等于0的话,处理器12可以假定曲面40实质上是一个靠近由u和v参数给出的当前点的相对于v参数的平面。如果是这种情况的话,处理器12可以把vDELTA设置成一个相对大的值。例如,处理器12可以按照位于v参数两侧的两个NURBS结点之间的差的比例来提高vDELTA。以这种方式,处理器12可以设置(方框70)vDELTA等于vKNOT+1-vKNOTq,]]>这里vKNOT≤v≤vKNOT+1。
如果处理器12确定(菱形66)第一偏导数(Sv)不近似等于0(但在菱形62的确定中第二偏导数Svv是近似等于0),则表示曲面40的曲率非连续性的情形,处理器12把vDELTA设置到一个小的预定值(称为EPSILON)。如果处理器12确定(菱形62)Svv第二偏导数不近似等于0,则处理器12按照与Svv第二偏导数的绝对值成反比来设置(方框64)vDELTA。
在处理器12确定了vDELTA的值以后,为了使v参数等于v参数和vDELTA的当前值之和,处理器12设置新的v参数。然而,如果处理器12确定(菱形74)新的v参数的值大于vKNOT+1结点值的值,则处理器12设置(方框76)该新的值等于vKNOT+1的值。
回去参考图5,处理器12接着确定(菱形56)是否v参数的值超过vMAX,如果没有超过,处理器12继续用恒定值u执行程序操作,如上所述。然而,如果超过,处理器12确定增加u参数值的一个量值(称为uDELTA)。以这种方式,参考图7,处理器12确定(方框77)Su和Suu偏导数。在一些实施例的该确定步骤中,处理器12可以估算在上一个单独v参数曲线的最后一次所选择v值的Su和Suu偏导数。不过,这种估算也可以使用其他所选择的v的值。在一些实施例中,处理器12可以估算上一个单独v参数曲线的每个所选择的v值的Su和Suu偏导数并基于该结果选出最小的u的提高值,下面将会进一步描述;由于要对图7中的流程图进行描述,我们假定处理器12在一个选择的v值上估算一个Su偏导数和一个Suu偏导数来确定u的提高量。
如果处理器12确定(菱形78)Suu第二偏导数近似等于0,则处理器12接着确定(菱形82)Su第一偏导数是否近似为0。如果第一(Su)和第二(Suu)偏导数都等于0的话,处理器12可以假定曲面40实质上是一个靠近由u和v参数给出的当前点的相对于u参数的平面。如果是这种情况的话,则处理器12把uDELTA设置到一个相对大的值。例如,处理器12可以按照位于u参数两侧的两个结点之间的差的比例来设置uDELTA。以这种方式,处理器12可以设置(方框86)uDELTA等于uKNOT+1-uKNOTp,]]>这里uKNOT≤u≤uKNOT+1。
如果处理器12确定(菱形82)第一偏导数(Su)不近似等于0(但第二偏导数Suu是近似等于0),则表示曲面40的曲率非连续性的情形,处理器12把uDELTA设置到EPSILON。如果处理器12确定(菱形78)Suu第二偏导数不近似等于0,则处理器12按照与Suu第二偏导数的绝对值成反比来设置(方框80)uDELTA。
在处理器12确定了新uDELTA的值以后,为了使u参数等于u参数和uDELTA的当前值之和,处理器12设置新的u参数值。然而,如果处理器12确定(菱形90)新的u参数的值大于uKNOT+1结点值的值,则处理器12设置(方框92)该新的值等于vKNOT+1的值。处理器12然后返回到菱形54,如图5中所描述的。
回到参考图2,在一些实施例中,计算机系统10可以包括一个电桥,或存储器集线器16。处理器12和存储器集线器16可以耦合到一个主机总线14。存储器集线器16可以同时提供耦合到主机总线14,一个存储器总线29和一个图形加速(AGP)端口的接口。AGP在Accelerated Graphics Port Interface Specification,Revision 1.0,published on July 31,1996,by Intel Corporation of Santa Clara,California.中有详细的描述。系统存储器18可以被耦合到存储器总线29,并且一个显示控制器13(控制显示器14)可以被耦合到AGP总线11。一个集线器通信链接15可以把存储器集线器16耦合到其他的电桥电路,或者耦合到输入/输出(I/O)集线器20。
在一些实施例中,I/O集线器20包括可连接到一个I/O扩展总线25和一个外设部件互连(PCI)总线21的接口。PCI的技术要求可以从The PCI Special Interest Group,Portland,Oregon 97214中获得。此外,I/O集线器20可以包括连接到例如像一个硬盘驱动器32和一个CD-ROM驱动器33的接口。一个I/O控制器17可以被耦合到I/O扩展总线25并接收比如像来自键盘24以及鼠标26的输入数据。I/O控制器17还可以控制软盘驱动器22的操作。程序19的拷贝可以被存储在仅作为例子的比如像硬盘驱动器32,软盘或CD-ROM上。
其他的实施例也在所附权利要求的范围中。例如,在执行上述镶嵌程序19的过程中,处理器12通过估算每个单独v参数曲线的Sv和Svv偏导数确定v提高量并在对下一个v参数曲线进行提高量操作之前接着进行Su和Suu偏导数的确定以便确定u提高量,通过这样来分别单独确定u和v参数的提高量。但是,可替换的,处理器12可以同时一起对Svv,Sv,Su和Suu偏导数进行估算来确定参数提高量。
例如,在一些实施例中,在“v-参数流程环路”(也就是图5和6的方框和菱形58-76)中,处理器12可以计算单独特殊的v参数曲线的每个所选择v值的Suu和Su偏导数,并且通过这些偏导数,处理器12可以确定用于下一个v-参数流程环路的u参数提高量的区别量值。以这种方式,处理器12完成单独特殊的v参数曲线的提高量时,处理器12可以在对下一个v参数曲线进行提高之前通过提高u参数来选出最小的(作为一个例子)提高量(从计算的u提高量中)。
作为其他的例子,上述的技术除了可以应用于多边形的顶点外还可以被应用到选择多边形的点。此外,上述技术也可以被应用到立体镶嵌。除了三角形外,多边形可以是其它类型的多边形。
在用有限的实施例对本发明进行公开的同时,作为本领域普通的技术人员可以根据本公开内容的启示而进行许多修改和各种改变。所附权利要求覆盖的所有这些修改和各种变化将落入本发明的精神本质和范畴中。
权利要求
1.一种用于在计算机系统的一个显示器上形成一个曲面的图像的方法,包括确定靠近第一曲面点的曲面一个斜面的第一比率的变化;基于该确定,选择一个第二曲面点;基于第一和第二点形成至少一个多边形以便形成至少一部分的图像;和在显示器上显示所述至少一个多边形。
2.权利要求1的方法,其中确定的动作包括确定描述曲面的一个数学函数的偏导数。
3.权利要求2的方法,其中数学函数包括一个非均匀有理b样条曲面函数。
4.权利要求1的方法,其中进行选择的动作包括提高从第一点到第二点的一个距离;和基于第一比率对该距离进行调整。
5.权利要求4的方法,其中进行调整的动作包括当第一比率具有较大值时向下调整该距离;和当第一比率具有较小值时向上调整该距离。
6.权利要求4的方法,其中调整的动作包括使该距离与第一比率成反比。
7.权利要求1的方法,其中形成所述至少一个多边形的动作包括利用第一和第二点形成多边形的顶点。
8.权利要求1的方法,进一步包括确定靠近第二曲面点的曲面一个斜面的第二比率的变化;基于该确定,选择一个第三曲面点;和利用第三点形成所述至少一个多边形。
9.权利要求1的方法,进一步包括确定靠近其他曲面点的曲面一个斜面的其他比率的变化;利用其他的比率选择曲面附加的点;和利用附加部分形成附加的多边形。
10.一种成品,包括可由一个以处理器为基础的系统进行读取的存储媒介,该存储媒介存储指令以使一个处理器确定靠近第一曲面点的曲面一个斜面的第一比率的变化;基于该确定,选择一个第二曲面点;基于第一和第二点镶嵌至少一部分曲面以便形成至少一个多边形;和使所述至少一个多边形形成在显示器上,表示曲面的一个图像的至少一部分。
11.权利要求10的成品,存储媒介存储指令使处理器确定描述曲面的一个数学函数的偏导数。
12.权利要求11的成品,其中数学函数包括一个非均匀有理b样条曲面函数。
13.权利要求10的成品,存储媒介存储指令使处理器提高从第一点到第二点的一个距离;和基于第一比率对该距离进行调整。
14.权利要求13的成品,存储媒介存储指令使处理器当第一比率具有较大值时向下调整该距离;和当第一比率具有较小值时向上调整该距离。
15.权利要求13的成品,存储媒介存储指令使处理器使该距离与第一比率成反比。
16.权利要求10的成品,存储媒介存储指令使处理器利用第一和第二点形成多边形的顶点。
17.权利要求10的成品,存储媒介存储指令使处理器确定靠近第二曲面点的曲面一个斜面的第二比率的变化;基于该确定,选择一个第三曲面点;和利用第三点形成所述至少一个多边形。
18.权利要求10的成品,存储媒介存储指令使处理器确定靠近其他曲面点的曲面一个斜面的其他比率的变化;利用其他的比率选择曲面附加的点;和利用附加的点形成附加的多边形。
19.一个计算机系统,包括一个显示器;一个处理器;和一个存储器,存储一个程序使处理器确定靠近第一曲面第一点的曲面一个斜面的第一比率的变化;基于该确定,选择一个第二曲面点;基于第一和第二点镶嵌至少一部分曲面以便形成至少一个多边形;和使所述至少一个多边形形成在显示器上,表示曲面的一个图像的至少一部分。
20.权利要求19的计算机系统,其中处理器适于通过确定描述曲面的一个数学函数的偏导数来确定第一比率。
全文摘要
一个计算机系统(10),包括一个显示器(14),一个处理器(12)和一个存储器(18)。存储器存储一个程序(19)使处理器确定靠近第一曲面点(46a)的曲面(40)一个斜面的第一比率的变化,和基于该确定,选择一个第二曲面点(46b)。程序(19)进一步使处理器(12)基于第一和第二点(46)镶嵌至少一部分曲面(40),以便形成至少一个多边形并使显示器(14)在显示器上形成所述至少一个多边形,表示曲面(40)的一个图像的至少一部分。
文档编号G06T17/20GK1338091SQ99815401
公开日2002年2月27日 申请日期1999年9月9日 优先权日1999年1月5日
发明者D·麦里 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1