CN101147140A - 用于确定交点的装置和方法 - Google Patents
用于确定交点的装置和方法 Download PDFInfo
- Publication number
- CN101147140A CN101147140A CNA2005800440481A CN200580044048A CN101147140A CN 101147140 A CN101147140 A CN 101147140A CN A2005800440481 A CNA2005800440481 A CN A2005800440481A CN 200580044048 A CN200580044048 A CN 200580044048A CN 101147140 A CN101147140 A CN 101147140A
- Authority
- CN
- China
- Prior art keywords
- intersection point
- cpu
- spu
- geometric
- intersection
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
在用于确定在几何对象之间的交点的数据处理系统中,在CPU和流处理器之间分离该项工作。交点确定受到CPU的控制。在流处理器上运行交点算法的数据处理加强部分,例如检验可能的对象重叠,检验对象的法线域的重叠,使对象范围接近,使对象的法线域接近,或进行关于在对象之间的交点拓扑和/或几何图形的推测。该运行的流处理器上的算法部分的结果由运行在CPU上的部分算法所使用。当在流处理器上处理关于计算结果的推测时,由运行在CPU上的算法来检验该推测的正确性。如果正确性检验显示该结果是不完全的或错误的,就在CPU上运行该算法的附加部分,并有可能在流处理器上运行该算法的附加部分。
Description
技术领域
本发明总的来说涉及一种计算机装置以及数据处理方法和装置,其中确定在两个或多个几何对象之间的交点以及在一个几何对象中的自交点。并且更具体地说,本发明涉及一种可以有效地使用在计算机辅助设计、计算机辅助生产、快速成原型、有限元预处理、计算机动画制作和其他应用中的计算机装置以及数据处理方法和装置,其中快速地确定在几何对象之间的正确交点。
在本文中,将短语“几何对象的交点”定义为包括“在两个或多个几何对象之间的交点”以及“在同一个几何对象中的自交点”。此外,将短语“棋盘形格局表示”定义为包括在数学上定义的“棋盘形格局表示”和“三角形表示”两者,并将短语“棋盘形格局”定义为包括在数学上定义的“棋盘形格局”和“常规三角形”两者。
背景技术
在CAD(计算机辅助设计)和面向应用的产品研发中,现有技术中的惯例是仅使用运行在CPU(中央处理器单元)上的程序来计算在几何对象之间的交点。现有的多种途径提供了对所计算交点的质量的或多或少的保证。然而,为了实现图形应用中的碰撞剔除,在NagaGovindaraju,Ming C.Lin和Dinesh Manocha于2004年1月在UNC-CH技术报告上发表的“Fast Collision Culling using Graphics Processors”中提出了使用GPU(图形处理器单元)。
尽管此革新并不局限于CAD,但是我们将用CAD相关术语来描述在此革新背后的数学算法。在CAD中,表面可以为
·参数表面。表面p(s,t),其中(s,t)∈ΩR2称为来自于闭合有界集Ω∈R2至R3的映射。该表面是分段多项式的,即,通过拼凑以切线、曲率或高阶连续性交切的有理样条(最少为一条)来构建该表面。在CAD内的有理分段多项式的标准表现形式是NURBS-非均匀有理B样条。
·低阶代数表面,例如平面(1阶),圆锥面(2阶)和圆环面(4阶)。利用总阶数为1、2或4的隐式多项式方程f(x,y,z)=0来描述该代数表面,其中(x,y,z)∈R3。
在CAD内的巨大挑战就是建立高质量模型。在这样的模型中,快速高质量交点计算是为能够有效地设计高质量CAD模型所必需的。虽然估计两个平面的交点是很简单的,但是两个NURBS表面p(s,t),(s,t)∈Ω1和r(u,v),(u,v)∈Ω2的交点确是主要挑战。
举例来说,用两个参数变量使两个表面都为双立方,例如3阶的。交点问题p(s,t)=r(u,v)是用四个参数来解决3个多项式公式的问题,其中每一个变量中的多项式阶数为3。假设建立了曲面r(u,v)的一个多项式分段的精确的隐式表示q(x,y,z)=0,其中(u,v)∈Ω2。当r(u,v)为双立方时,该隐式公式的总阶数为18。一个表面的参数表示与其他表面的精确的隐式表示q(p(s,t))=0的结合将未知数量减小到2。然而,由此产生的问题如今就是用两个变量建立一个多项式公式的零集,其中这两个变量中的多项式阶数都为54。因此,在CAD中遇到的交点问题通常是非常具有挑战性的问题。
近几年来,已经沿用了许多解决方案来计算在CAD类型的表面之间的交点。通常,能够提供更多的计算的话,交点的质量将会越高。流处理器提供了高计算性能。图形卡(GPU)具有一种流处理器类型的结构。自2003年起所经历的图形卡的计算性能的快速提高开辟了使用这些图形卡作为交点算法中的计算源的可能性。在交点计算中用作流处理器的图形卡提供了低成本的高容量计算。因此,在交点计算中结合一个或多个CPU与一个或多个GPU具有显著地提高有效的计算能力而因此提高交点计算的质量的潜力。
由Nathan A.Carr等人2002年在欧洲图形学学会的德国Saarbrǚcken的2002年9月1-2日的Graphics Hardware 2002上发表的“The Ray Engine”中公开了一种计算机系统,用于估计在射线与三脚架之间的交点,以提供关于在“照相机”附近的射线交点的信息,其中从该“照相机”中发出射线。描述了在GPU和CPU之间的协同工作,然而GPU仅提供如刚才所述的那些交点,而且不能提供更复杂的拓扑信息。
关于几何对象交点的最简单的解决方案就是使两个具有三角形的表面相互接近并让这些三角形交叉。另一种相对简单的解决方案是点阵估计,其中在两个表面上计算曲线的点阵,而且来自每一个表面的曲线点阵与其他表面相交叉。所标识的点可用来描绘出这些点落在其上的交点曲线。对于这两种解决方案,所计算的交点是对实际交点的推测,而不是一种经过证实的计算。
对于某类低阶代数表示,存在对交点拓扑和几何图形的显式表示。然而,对于一般的代数或参数表面的交点就不存在这样的显式表示。
Homotophy延拓法是一种解决一个已知问题然后将该问题逐渐改为一个更复杂问题的解决方案。在改变过程中监控该结果。交点算法基于该解决方案而存在。
递归法使用了一种分治策略。如果关于确定交点拓扑的问题过于复杂,就将该问题分成子问题,其想法就是子问题比原问题容易解决。然而,在这个解决方案中,必须一定要确保子问题要更为简单。否则的话,问题将会在细分后变得更为复杂。该细分的解决方案可以在运行于标准的CPU上时,确保找到所有在指定公差内的交点。然而,递归法在计算上费用浩大。
步进法(marching)用于表面/表面交点中。这是一种从结果上的一点开始然后搜寻在接近于当前点的交点上的新的点的方法。当达到奇点时,即其中表面法线消失的点,就会在决定如何继续该搜索时出现问题。步进法可以使用例如通过点阵估计或递归细分所生成开始点。步进法不保证建立整个交点结构。
二分法与步进法密切相关。就二分法来说,提供在一个交点曲线上的两个或多个点,并在他们之间计算新的点。可以重复该处理直至所有曲线分段都另人满意地接近真实的交点曲线。如果两个相邻点不属于同一个交点曲线分支,二分的分段就不会集中于一点。对缺少集中的检测可用于检测何时一个推测或建议的交点曲线是对包含多个交点分支情况的曲解。
在计算机辅助设计中,低质量的交点计算导致生成低质量的CAD模型。点阵估计的方法通常比递归法快。然而,点阵估计不能检测单数的交点,而且会遗漏交点分支。递归法更慢是因为它们搜寻在指定公差内的保证的结果。
因此,需要一种对保证的交点结果的快速计算。
发明内容
简要地并用一般术语来说,本发明提供了在交点计算和装置中的改进,凭此可以实质上提高数据处理速度,并保证质量在指定公差内。
更具体地说,借助于实例而不必受此限制,本发明提供了一种对将要运行在至少一个CPU上的交点处理的组合,该CPU对至少一个流处理器上的计算加强任务进行启动。当来自于至少一个流处理器的计算结果创建推测时,CPU用于估计该计算的正确性。当流处理器返回经过检验的信息时,该信息可以直接用在受到CPU控制且运行在CPU上的部分交点处理中,并有可能用于发起新的将由流处理器执行的计算加强任务。换言之,该发明提供了一种交点计算处理,其提供了对至少一个CPU和至少一个流处理器的使用,利用流处理器的计算能力来执行计算机加强任务,例如生成对交点的拓扑和几何图形的推测,然后通过检验处理将该推测用作指导。如果该推测在指定的公差内无效,就用来自于该推测的信息来指导改进该推测的处理,并检验该结果在指定的公差内有效。该改进的处理可以结合地使用CPU和流处理器,并有可能包含多个重复。该解决方案还开辟了使用流处理器的计算能力来检测空间上分离的几何对象或他们的法线集的可能性,或使经过检验地接近法线集的范围或空间范围。
因此,本发明满足长久以来存在的对以提高的处理速度进行增强的交点计算的需求。本发明明显满足这些需求。
因此,在本发明的第一方面中,提供了一种用于确定和建立关于几何对象的交点拓扑的几何表示的计算机装置,其中利用任何的参数表示、代数表示和棋盘形格局表示来描述该几何对象,该计算机装置包括至少一个中央处理器单元(CPU),其可工作以执行部分交点算法,初始化该交点算法的子算法,控制所述子算法并处理对交点计算结果的推测,其中该计算机装置进一步包括至少一个流处理器单元(SPU),其可工作以接收来自于至少一个CPU的所述交点算法的子部分,并执行所述交点算法的子算法,结果生成建立所述推测所必需的信息,并将所述信息返回到所述至少一个CPU。
本发明的计算机装置的优选和有利的实施例从所附的从属权利要求2-6中显而易见。
在本发明的第二方面,提供了一种用于在计算机装置中确定和建立关于几何对象的交点拓扑的几何表示的方法,其中该计算机装置包括至少一个中央处理器单元(CPU),并用任何的参数表示、代数表示和棋盘形格局表示来描述该几何对象,所述方法包括
-在所述至少一个CPU中,初始化交点算法的子算法,
-在所述至少一个CPU中,控制所述交点算法的子算法,
-在所述至少一个CPU中,执行所述交点算法的子算法,以及
-处理对交点计算结果的推测,
其中
所述方法进一步包括
-向所述计算机装置所包含的至少一个流处理器单元(SPU)发送所述交点算法的至少一个所述子算法,
-所述至少一个SPU执行所述交点算法的子算法,结果生成建立所述推测所必需的信息,以及
-将所述信息返回到所述至少一个CPU。
本发明的计算方法的优选和有利的实施例从所附的从属权利要求8-26中显而易见。
当参考示范性实施例的附图时,本发明的这些和其他目的将从以下更加详细的描述中显而易见。
附图说明
图1显示了根据本发明实施例的计算机装置的一般结构,
图2显示了对NURBS表面的闭塞测试的实例,
图3显示了从三角形扩展到体积的二维简化图,用以建立NURBS表面的法线域,以及
图4显示了对NURBS表面的自交点问题中的向量角进行比较的实例。
具体实施方式
现有技术中交点算法的一种典型实例是将交点计算划分成一种拓扑相位,该拓扑相位检测候选曲线上的点,例如通过点阵估计来检测,继之以候选曲线的步进或二分。
另一种实例是利用递归细分来检测交点拓扑的第一步骤,以及通过二分法或步进法来细化该检测的曲线的后续步骤。
本发明包含两个主要部分:
·关于在处理当中的交点计算的算法内的结构,该处理包括以下步骤:
1.在一个或多个CPU上开始交点计算。
2.利用一个或多个流处理器来计算关于交点曲线几何图形和/或拓扑的推测。
3.检验和校正该交点推测,它有可能包括关于原问题的子部分的第二步骤的重复。
·在一个或多个流处理器上执行该交点算法的计算加强部分,并在受控且部分地于一个或多个CPU上执行的算法中运用来自于一个或多个流处理器的计算。
在上述装置中,其中能够在一个或多个CPU或者一个或多个流处理器上运行的子处理是:
·处理几何对象以提取用于确定两个或多个对象是否重叠的信息。
·处理几何对象以提取用于确定两个几何对象的法线向量域是否可能重叠的信息。
·处理几何对象以计算对象范围的近似值,保证包含该几何对象的范围的近似值。
·处理几何对象以计算对象的法线域范围的近似值,该近似值保证包含该几何对象的法线域。
·以棋盘形格局布置几何对象
·计算几何对象的偏导数,或者在点上进行计算或者作为闭合公式计算,
·计算几何对象的法线,或者在点上进行计算作或者作为闭合公式计算。
优选的实施方式是包含一个或多个流类型处理器的标准PC,其运行比如说Windows、Linux或其他操作系统,优选为GPU。然而,本发明针对在任何操作系统上的任何一种CPU和流处理器结构。关于GPU,目前优选为包含一个或多个GPU的一个或多个图形卡。然而,该想法并不局限于图形卡。应当注意该一个或多个CPU和一个或多个流处理器可以使用不同浮点精度。在一个或多个CPU中的算法一般将会使用64位的浮点表示,而在一个或多个GPU上的算法一般将会使用32位的浮点表示。
图1是一种相关结构的简化图,其中一个或多个CPU和一个或多个GPU都连接到高速总线,例如PCI Express总线。另外做为选择地,GPU可以连接到在2004年广泛用在PC中的AGP总线。
实例:利用一个或多个GPU分离对象,关于NURBS表面的实例
假设两个未经整理的NURBS表面交叉。一个实例是在一个或多个CPU和一个或多个GPU的结合上执行交叉。该算法利用碰撞剔除和多个预定的观察方向。在碰撞测试中,一种可供选择的方案是在执行碰撞测试时使用贝塞儿曲线子片段的凸形外壳,另一种可供选择的方案是使用SLEVE。SLEVE的数学运算可以在2003年11月西雅图的SIAM会议的进行过程中的“J.Peters,Mid-structures of SubdividableLinear Efficient Function Enclosures Linking Curved and LinearGeometry”中找到,Nashboro Press2004。同样可以使用这两种解决方案的组合。在图2的左边,我们可以在第一观察方向的基础上看到碰撞剔除前的多边形。在该图的右边,我们可以看到碰撞剔除的结果。
检验两个NURBS表面的重叠(表面A_和表面_B)
1.在Oslo算法的基础上对表面_A和表面_B进行结点插入算法的初始化。为这两个表面估计用于将表面从NURBS表示转换成
贝塞儿曲线表示的离散B样条。
2.一个或多个CPU或者GPU的碎片处理器组合输入信息,以将NURBS表面转换成贝塞儿曲线片段的格栅。
3.碎片处理器在两个参数方向上对每一个贝塞儿曲线片段进行预定次数的细分,以产生对每个表面的控制网,它位于该表面附近。用Ref_A和Ref_B来表示这些细化的表面网
4.利用标签“未处理”来初始化Ref_A的所有贝塞儿曲线片段,并用标签“未处理”来初始化Ref_B的所有贝塞儿曲线片段。
5.对于每一个预定的观察方向
a.对于Ref_A的每一个未处理的贝塞儿曲线片段Ref_Ai,在GPU上运用碰撞查询来确定Ref_B的哪一个未处理的贝塞儿曲线片段Ref_Bi使Ref_Ai的背面模糊。如果Ref_Ai的背面不模糊,就将Ref_Ai标记为“经过处理”。
b.将Ref_B中任何不使Ref_A的任何一个未处理的子片段的背面模糊的贝塞儿曲线片段Ref_Bi标记为“经过处理”。
c.对于Ref_B的每一个未处理的贝塞儿曲线片段Ref_Bi,在GPU上运用碰撞查询来确定Ref_A的哪一个未处理的贝塞儿曲线片段Ref_Ai使Ref_Bi的背面模糊。如果Ref_Bi的背面不模糊,就将Ref_Bi标记为“经过处理”。
d.将Ref_A中任何不使Ref_B的任何一个未处理的子片段的背面模糊的贝塞儿曲线片段Ref_Ai标记为“经过处理”。
e.如果Ref_A和Ref_B的所有子片段都经过了处理,那么表面A和B就不重叠。
6.记住Ref_A的哪些子片段与Ref_B的哪些子片段重叠。
实例:在GPU上分离两个表面的法线域,关于NURBS表面的实例
在该实例中,建立两个表面的法线域并将它们表示为有理贝塞儿曲线片段。可以将这些贝塞儿曲线片段细分为按要求的具体程度。对于每一个这样的子片段,将包含投影到3D并能显示为点的格栅的控制点。现在从Surf_A中提供一个这样的法线域贝塞儿曲线子片段Sub_A,并类似地从Surf_B中提供Sub_B。我们想要比较来自Sub_A的所有三个控制点的组合与来自Sub_B的所有三个控制点的组合。仅仅比较三角形是不够充分的,因此我们选择将三角形扩展到体积。图3显示了下述扩展的二维简化图(只有两个单位向量A1,A2)
在3D中,该扩展如下所示:
·提供3个单位向量A1,A2和A3,
·建立C作为对A1,A2和A3跨越的平面的向外的法线向量,
·假设A1,A2和A3按逆时针方向围绕C,
·通过以下公式建立新的顶点A1′,A2′和A3′
o A1′=A1/(cosφ1)=A1/(C·A1)
o A2′=A2/(cosφ2)=A2/(C·A2)
o A3′=A3/(cosφ3)=A3/(C·A3)
注意,如果点积为零,则三角形跨越的角度等于π,而且一定发生重叠。
·画三角形:
o A1,A3和A2
o A1′,A2′和A3′
·通过以下定义在同一平面的四个边界区域
o A1,A2,A2′和A1′
o A2,A3,A3′和A2′
o A3,A1,A1′和A3′
·因为不控制表面的法线方向,所以还必须围绕原点画镜面反射的体积
·画三角形:
o -A1,-A2和-A3
o -A1′,-A3′和-A2′
·通过以下定义在同一平面的四个边界区域
o-A1,-A1′,-A2′和-A2
o-A2,-A2′,-A3′和-A3
o-A3,-A3′,-A1′和-A1
我们称原体积和镜面反射的版本为镜面反射的扩展三角形。
假设将要对两个未经整理的NURBS表面进行关于法线重叠的测试。在至少一个CPU和一个GPU的组合上执行该算法的实例。
检验两个B样条表面的法线域的重叠(表面A和表面B)
1.在Oslo算法的基础上对表面A和表面B进行结点插入算法的初始化。为这两个表面估计用于将表面从NURBS表示转换成贝塞儿曲线表示的离散B样条。
2.CPU或者GPU上的碎片处理器组合输入信息,以将NURBS表面转换成贝塞儿曲线片段的三个(有理的)。
3.GPU建立这两个表面的每一个(有理的)贝塞儿曲线片段的精确的法线域。在表示该法线域的贝塞儿曲线片段上执行连续的处理。
4.GPU在两个参数方向上对每一个法线域有理贝塞儿曲线片段进行预定次数的细分,以产生对每一个表面法线域的控制网,它位于该表面附近。用Ref_A和Ref_B来表示这些细化的法线域表面网。
5.利用标签“未处理”来初始化Ref_A的所有贝塞儿曲线片段,并用标签“未处理”来初始化Ref_B的所有贝塞儿确实片段。
6.对于每一个预定的观察方向
a.对于Ref_A的每一个未处理的贝塞儿曲线片段Ref_Ai,在GPU上运用碰撞查询来确定Ref_B的哪一个未处理的贝塞儿曲线片段Ref_Bi包含镜面反射的扩展三角形,它使Ref_Ai的镜面反射扩展三角形的背面模糊。如果Ref_Ai的镜面反射扩展三角形的背面不模糊,就将Ref_Ai标记为“经过处理”。
b.将Ref_B中任何包含镜面反射的扩展三角形而该三角形不使Ref_A的任何一个未处理的子片段的背面的镜面反射扩展三角形模糊的贝塞儿曲线片段Ref_Bi标记为“经过处理”。
c.对于Ref_B的每一个未处理的贝塞儿曲线片段Ref_Bi,在GPU上运用碰撞查询来确定Ref_A的哪一个未处理的贝塞儿曲线片段Ref_Ai包含镜面反射的扩展三角形,它使Ref_Bi的镜面反射的扩展三角形背面模糊。如果Ref_Bi的背面不模糊,就将Ref_Bi标记为“经过处理”。
d.将Ref_A中任何包含镜面反射的扩展三角形而该三角形不使Ref_B的任何一个未处理的子片段的背面的镜面反射扩展三角形模糊的贝塞儿曲线片段Ref_Ai标记为“经过处理”。
e.如果Ref_A和Ref_B的所有子片段都经过了处理,那么表面A和B就不重叠。。
7.记住Ref_A的哪些子片段与Ref_B的哪些子片段重叠。
NURBS表面的自交点的实例
正切连续曲面的法线域跨越的角度必须大于该表面的π,以能够进行自我返回,因此有可能自我交叉。自交点可以有两种类型:
·法线向量消失了的自交点。在此情况下,自交点可以是在表面内的闭环。该自交点曲线的两条轨迹在法线消失的点交切。
·法线未消失的自交点。这两条轨迹并不交切,而将与表面的边界接触。在法线未消失的情况下,可以通过利用该表面建立表面边界的交点来标识在自交点曲线上的点。
通过将NURBBS表面划分成子表面,并分析单独的子表面的表面法线特性以及相邻子表面的法线特性,有可能标识该表面法线未消失的情况。对于NURBS表面p(u,v),可以通过建立两个第一级偏导数的叉积n(u,v)=pu(u,v)× pv(u,v)来生成关于该表面法线的相近描述。直接将n(u,v)描述成NURBS表面。因为n(u,v)得零,所以要么n(u,v)的其中一个顶点为零,要么这些顶点跨越的角度必须大于或等于π。
为了比较一组一个至少三个规格化向量的集合跨越的角度是否小于π,可以检验从该集合中任选的两个向量的所有可能的和是否跨距小于π/2。在图4中,例举了关于平面内3个向量的情况。在图4的左边,三个向量跨越的角度小于π,可以看到其中任选的两个向量的和小于π/2。在右边,三个向量跨越的角度大于π,可以看到其中任选的两个向量的和大于π/2。
为了在子片段内建立未消失的法线,该法线域的顶点跨越的角度应该小于π。为了执行该测试:
·首先测试法线域是否有任何一个顶点消失了。
·使法线域表面的所有未消失的顶点规格化。
·然后通过建立法线域的规格化顶点的所有选择的标积来检验法线域的顶点跨越的角度是否小于π/2,并检验是否所有标积都为正。
·当以上标积为负时,检验它们是否跨距小于π。因此,首先建立一个用A表示的向量集,它包括从法线域的规格化顶点集合中任选的两个向量的所有可能的和。如果来自集合A的两个向量的所有选择的标积为正,则法线域跨越的角度小于π,而且该子片段的法线域是未消失的。
为了建立相邻的正切连续子片段的法线,其中该子片段是用跨距小于π的连续正切平面连接的,利用这样的事实:如果两个片段的跨距都小于π/2,那么这两个片段的组合的跨距就一定小于π。在以上测试中,标识跨距将会小于π/2的片段。
测试在NURBS表面内的消失法线的可能性
1.在Oslo算法的基础上初始化该表面。对用于将表面从NURBS表示转换成贝塞儿曲线表示的离散B样条进行估计。
2.CPU或者GPU上的碎片处理器组合输入信息,以将NURBS表面转换成贝塞儿曲线片段的格栅(有理的)。
3.GPU的碎片处理器建立这两个表面的每一个(有理的)贝塞儿曲线片段的精确的法线域。在表示该法线域的贝塞儿曲线片段上执行连续的处理。
4.GPU的碎片处理器在两个参数方向上对法线域有理贝塞儿曲线片段进行预定次数的细分,以产生对每个表面法线域的控制网,它位于该表面附近。用Ref_A来表示该细化的法线域表面网。
5.初始化纹理、标记,类似于在Ref_A的多个贝塞儿曲线片段的大小中。为每个贝塞儿子片段分配一个像素。
6.在GPU上,对于Ref_A的每一个子片段Ref_Ai
·将与Ref_Ai对应的标记内的像素初始化为0。
·如果Ref_Ai的任何一个系数向量得零,就将标记设置为2,并进行到下一个子片段。将该系数向量长度规格化为1。
·对于来自Ref_Ai的两个系数向量C和D的所有选择,建立C和D的标积。如果该标积不为正,就将标记中的像素设置为1。
·如果标记值为零,则该片段法线的跨距小于π/2,而且不可能有子片段的自交点,继续进行到下一个子片段。
·对于来自Ref_Ai的两个系数向量C和D的所有选择,建立等于C+D的向量,并在纹理中存储向量Vect。
·建立来自Vect的两个向量的所有选择的标积,如果该标积完全不为正,则有可能有消失了的法线,将标记中的像素设置为2,并继续进行到下一个子片段。
7.对于每一个子片段,将会在完成了之后进行
·如果标记为0,则子片段法线的跨距小于π/2。如果两个相邻的子片段都是标记为0,则它们只会沿着共享的边界或共享的转角交叉。
·如果标记为1,则子片段法线的跨距小于π但大于π/2。该子片段会在共享边界或共享转角之外与一个相邻的片断交叉。
·如果标记为2,则子片段法线的跨距大于或等于π,法线消失了。在子片段内有可能有自交点。
8.记住哪些子片段会具有消失了的法线,以及哪些相邻的子片段会在共享边界外交叉。
沿着边界与子片段样条进行边界交叉
在已经标识了不可能有消失的法线的情况下,所有自交点都必须接触表面边界。因此就可以通过分析在表面边界和该表面之间的交点来跟踪自交点。在该设置中的一项挑战就在于当边界元与片段自己交叉时,会得到与是否留意一致的结论。为了对其进行留意,一种解决方案是将该问题分成两个问题:
·沿着从该片段处移除的边界对该片段和子片段样条进行边界交叉。该子片段样条应该与在该实例一开始确定消失的法线的可能性时所使用的子片段样条相对应。
·边界与子片段样条交叉。每一个子片段样条沿着该边界的标记值都可以指导我们正确处理该边界交叉。
利用对该边界相同的细分作为关于子片段样条的(在标记该标记时提供)
对于边界上的所有子元
对于沿着该边界的所有子片段
如果与子边界相同的子片段指示交点,唯一条件是标记为2
如果子片段与子边界属于的子片段相邻指示交点,唯一的条
件是标记大于0。
如果子片段和子边界不相邻指示交点,唯一条件是框架重叠。
Claims (26)
1.用于确定和找到关于几何对象的交点拓扑的几何表示的计算机装置,其中利用参数表示、代数表示和棋盘形格局表示中的任意一个来描述该几何对象,所述计算机装置包括至少一个中央处理器单元(CPU),其用于执行部分交点算法,初始化该交点算法的子算法,控制所述子算法并处理对交点计算结果的推测,
其中
所述计算机装置进一步包括至少一个流处理器单元(SPU),其用于接收来自于所述至少一个CPU的所述交点算法的子算法,并执行所述交点算法的所述子算法,结果生成为建立所述推测所必需的信息,并将所述信息返回到所述至少一个CPU。
2.根据权利要求1的计算机装置,
其中
所述至少一个CPU由至少一个图形处理器单元(GPU)构成。
3.根据权利要求1的计算机装置,
其中
所述至少一个SPU进一步用于建立所述推测并将该推测返回到所述至少一个CPU。
4.根据权利要求1的计算机装置,
其中
如果几何处理系统需要的话,所述至少一个CPU进一步用于检验所述推测的完整性和正确性。
5.根据权利要求1的计算机装置,
其中,所述装置用于确定至少两个不同的几何对象之间的交点。
6.根据权利要求1的计算机装置,
其中,所述装置用于确定在同一个几何对象内的自交点。
7.一种用于在计算机装置中确定和找到关于几何对象的交点拓扑的几何表示的方法,其中该计算机装置包括至少一个中央处理器单元(CPU),并用参数表示、代数表示和棋盘形格局表示中的任意一个来描述该几何对象,所述方法包括
-在所述至少一个CPU中,初始化交点算法的子算法,
-在所述至少一个CPU中,控制所述交点算法的子算法,
-在所述至少一个CPU中,执行所述交点算法的子算法,以及
-处理对交点计算结果的推测,
其中
所述方法进一步包括
- 向所述计算机装置所包含的至少一个流处理器单元(SPU)发送所述交点算法的至少一个所述子算法,
-所述至少一个SPU执行所述交点算法的子算法,结果生成为建立所述推测所必需的信息,以及
-将所述信息返回到所述至少一个CPU。
8.根据权利要求7的方法,
其中
所述至少一个SPU建立所述推测,并将该推测返回到所述至少一个CPU。
9.根据权利要求7的方法,
其中
如果几何处理系统要求的话,所述至少一个CPU进一步检验所述推测的完整性和正确性。
10.根据权利要求7的方法,
其中,确定至少两个几何对象之间的交点,且其中
所述至少一个SPU执行以下至少一个子处理:
-处理几何对象以提取用于确定两个或更多个对象是否重叠的信息,
-处理几何对象以提取用于确定该对象的指定子部分是否重叠的信息,
-处理几何对象以提取用于确定两个几何对象的法线向量域是否重叠的信息,
-处理几何对象以提取用于确定该对象的指定子部分的法线向量域是否重叠的信息,
-处理几何对象来计算壳,该壳保证包含几何对象的壳,
-处理几何对象来计算凸包,该凸包保证包含几何对象的凸包,
-处理几何对象来计算壳,该壳保证包含几何对象的法线域,
-处理几何对象来计算凸包,该凸包保证包含几何对象的法线域,
-按棋盘形格局来布置几何对象,
-计算几何对象的偏导数,在点内的,
-计算几何对象的偏导数,作为闭合表达式,
-计算几何对象的法线,在点内的,
-计算几何对象的法线,作为闭合表达式。
11.根据权利要求10的方法,
其中,按照以下方式在所述至少一个CPU和所述至少一个SPU之间共享确定交点的任务:
-所述至少一个CPU初始化该交点确定处理,
-所述至少一个SPU处理该几何对象以提取信息来确定对象壳是否重叠,
-所述至少一个CPU利用来自于所述至少一个SPU的所述信息来报告是否可能有交点。
12.根据权利要求11的方法,
进一步包括以下处理步骤:
-如果可能有交点,就在所述至少一个CPU和所述至少一个SPU的任意一个上按棋盘形格局布置该几何对象,
-所述至少一个SPU计算该棋盘形格局对象的交点,还在参数元组有效时返回这样的元组,
-所述至少一个CPU处理通过所述至少一个SPU计算的交点,并返回所述计算的交点作为对完全交叉的推测。
13.根据权利要求12的方法,
其中
-对于棋盘形格局表示的参数对象,为该棋盘形格局的顶点分配参数元组,该参数元组与正在进行棋盘形格局布置的几何对象中的点位置相对应。
14.根据权利要求12的方法,
进一步包括以下步骤:
-通过在细分型检验处理中使用推测作为指导,所述至少一个CPU处理该交点推测来确定其是否在拓扑上正确以及在用户指定的公差内。
15.根据权利要求14的方法,
其中,根据用户需要,按以下任何一种方式来实现交点推测的处理:
-对正确性问题返回简单的是/否/未定,
-提供对问题区域的指示,
-提供满足用户要求的交点推测的修正。
16.根据权利要求7的方法,
其中,为了计算两个几何对象的交点,按以下方式在所述至少一个CPU和所述至少一个SPU之间共享该任务:
-所述至少一个CPU初始化该交点计算,
-所述至少一个SPU处理该几何对象以提取信息来确定凸形的对象壳是否重叠,
-如果几何对象具有可能的交点,所述至少一个CPU或所述至少一个SPU提取用于确定两个几何对象的法线向量域是否重叠的信息,
-如果该法线向量域重叠,就报告还未标识正确的交点,
-如果法线向量域的凸包不重叠,意味着所有交点都接触几何对象之一的边界,则每一个对象的边界与所述至少一个CPU和所述至少一个SPU的任意一个上的其他对象交叉,以及
-报告该结果生成的交点来表示所有交点。
17.根据权利要求16的方法,
进一步包括以下任何一个处理步骤:
-当考虑到用户指定的关于交点表示的精确度时,使用步进法来连接相应的边界点,
-当考虑到用户指定的交点表示的精确度时,使用二分法来连接相应的边界点。
18.根据权利要求16的方法,
其中,如果法线向量域重叠的话,就按以下方式替换指定的功能:
-如果可能有交点,就在所述至少一个CPU和所述至少一个SPU的任意一个上按棋盘形格局布置该几何对象,
-所述至少一个SPU在该棋盘形格局对象的基础上计算交点推测,如果参数元组在该棋盘形格局中有效的话,就用该信息来提供关于所提供的交点结构的参数元组,
-通过在细分型检验处理中使用所述推测作为指导,所述至少一个CPU处理由所述至少一个SPU提供的所述交点推测来确定其是否在拓扑上正确以及在用户指定的公差内。
19.根据权利要求18的方法,
其中,对于棋盘形格局表示的参数对象,为该棋盘形格局的顶点分配参数元组,该参数元组与正在进行棋盘形格局布置的几何对象中的点位置相对应。
20.根据权利要求18的方法,
其中,根据用户需要,按以下任何一种方式来实现交点推测的CPU处理:
-对正确性问题返回简单的是/否/未定,
-提供对问题区域的指示,
-提供满足用户要求的交点推测的修正。
21.根据权利要求7的方法,其中,确定几何对象内的自交点,而且其中所述至少一个SPU执行以下至少一个子处理:
-处理几何对象以提取用于确定所述对象的不相邻子部分的凸包是否重叠的信息,
-处理几何对象或其子部分以提取用于确定法线向量域跨越的角度是否小于或等于π的信息,
-处理几何对象或其子部分以提取用于确定法线向量域跨越的角度的信息,
-处理几何对象来计算凸包,该凸包保证包含所述几何对象或其子部分的凸包,
-处理几何对象来计算凸包,该凸包保证包含所述几何对象或其子部分的法线向量域,
-按棋盘形格局来布置几何对象,
-计算几何对象的偏导数,在点内的,
-计算几何对象的偏导数,作为闭合表达式,
-计算几何对象的法线,在点内的,
-计算几何对象的法线,作为闭合表达式。
22.根据权利要求21的方法,
其中,按照以下方式在所述至少一个CPU和所述至少一个SPU之间共享该确定任务:
-所述至少一个CPU初始化该交点确定处理,
-所述至少一个SPU处理该几何对象以提取信息来确定对象法线向量域的跨距,
-所述至少一个CPU利用来自于所述至少一个SPU的所述信息来报告是否可能有自交点。
23.根据权利要求22的方法,
进一步包括以下处理步骤:
-如果可能有自交点,就在所述至少一个CPU和所述至少一个SPU的任何一个上按棋盘形格局布置该几何对象,
-所述至少一个SPU计算该棋盘形格局对象的自交点,还在参数元组有效时返回这些参数元组,以及
-所述至少一个CPU处理由所述至少一个SPU计算的自交点,并返回所述计算的自交点作为对完全交叉的推测。
24.根据权利要求23的方法,
其中,对于棋盘形格局表示的参数对象,为该棋盘形格局的顶点分配参数元组,该参数元组与正在进行棋盘形格局布置的几何对象中的点位置相对应。
25.根据权利要求23的方法,
进一步包括以下步骤:
-通过使用推测作为细分型检验处理中的指导,所述至少一个CPU处理由所述至少一个SPU提供的交点推测来确定其是否在拓扑上正确以及在用户指定的公差内。
26.根据权利要求25的方法,
其中,根据用户需要,按以下任何一种方式来实现交点推测处理:
-对正确性问题返回简单的是/否/未定,
-提供对问题区域的指示,
-提供满足用户要求的自交点推测的修正。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NO20045586 | 2004-12-21 | ||
NO20045586A NO20045586L (no) | 2004-12-21 | 2004-12-21 | Anordning og fremgangsmate for bestemmelse av skjaeringslinjer |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101147140A true CN101147140A (zh) | 2008-03-19 |
Family
ID=35238019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800440481A Pending CN101147140A (zh) | 2004-12-21 | 2005-12-08 | 用于确定交点的装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8289332B2 (zh) |
EP (1) | EP1846833A4 (zh) |
CN (1) | CN101147140A (zh) |
NO (1) | NO20045586L (zh) |
WO (1) | WO2006135243A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104541305A (zh) * | 2012-08-09 | 2015-04-22 | 高通股份有限公司 | Gpu加速的路径再现 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448706B2 (en) * | 2009-07-29 | 2016-09-20 | Synopsys, Inc. | Loop removal in electronic design automation |
US8983803B2 (en) * | 2011-09-02 | 2015-03-17 | Siemens Product Lifecycle Management Software Inc. | Tolerant intersections in graphical models |
US20190176405A1 (en) * | 2016-08-12 | 2019-06-13 | Siemens Product Lifecycle Management Software Inc. | Computer aided design with high resolution lattice structures using graphics processing units (gpu) |
CN107562779B (zh) * | 2017-07-21 | 2021-03-02 | 浙江科澜信息技术有限公司 | 一种二维矢量多边形自相交的空间拓扑处理方法 |
JP2022112228A (ja) * | 2021-01-21 | 2022-08-02 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4890242A (en) * | 1986-06-05 | 1989-12-26 | Xox Corporation | Solid-modeling system using topology directed subdivision for determination of surface intersections |
US5444838A (en) * | 1991-03-18 | 1995-08-22 | Hewlett-Packard Company | Computer system and method for interference checking of polyhedra using capping polygons |
US5497453A (en) | 1993-01-05 | 1996-03-05 | International Business Machines Corporation | Method and apparatus for detecting and visualizing interferences between solids |
US5574835A (en) * | 1993-04-06 | 1996-11-12 | Silicon Engines, Inc. | Bounding box and projections detection of hidden polygons in three-dimensional spatial databases |
JP3537259B2 (ja) | 1996-05-10 | 2004-06-14 | 株式会社ソニー・コンピュータエンタテインメント | データ処理装置およびデータ処理方法 |
US6229553B1 (en) * | 1998-08-20 | 2001-05-08 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
US6283861B1 (en) * | 1999-03-23 | 2001-09-04 | Square Co., Ltd. | Video game device and video game method |
US7084869B2 (en) * | 2000-03-31 | 2006-08-01 | Massachusetts Institute Of Technology | Methods and apparatus for detecting and correcting penetration between objects |
AU2002245076A1 (en) * | 2000-12-06 | 2002-07-16 | Sun Microsystems, Inc. | Using ancillary geometry for visibility determination |
US6970171B2 (en) * | 2001-05-10 | 2005-11-29 | Pixar | Global intersection analysis for determining intesections of objects in computer animation |
US7126605B1 (en) * | 2001-07-03 | 2006-10-24 | Munshi Aaftab A | Method and apparatus for implementing level of detail with ray tracing |
US7918730B2 (en) * | 2002-06-27 | 2011-04-05 | Igt | Trajectory-based 3-D games of chance for video gaming machines |
WO2004046881A2 (en) * | 2002-11-15 | 2004-06-03 | Sunfish Studio, Inc. | Visible surface determination system & methodology in computer graphics using interval analysis |
US7212207B2 (en) * | 2003-08-20 | 2007-05-01 | Sony Computer Entertainment Inc. | Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing |
US7483024B2 (en) * | 2003-12-31 | 2009-01-27 | Autodesk, Inc. | Accelerated ray-object intersection |
US8134561B2 (en) | 2004-04-16 | 2012-03-13 | Apple Inc. | System for optimizing graphics operations |
JP4450853B2 (ja) * | 2004-09-16 | 2010-04-14 | エヌヴィディア コーポレイション | 負荷分散 |
US7450124B2 (en) * | 2005-03-18 | 2008-11-11 | Microsoft Corporation | Generating 2D transitions using a 3D model |
-
2004
- 2004-12-21 NO NO20045586A patent/NO20045586L/no not_active Application Discontinuation
-
2005
- 2005-12-08 CN CNA2005800440481A patent/CN101147140A/zh active Pending
- 2005-12-08 US US11/793,363 patent/US8289332B2/en not_active Expired - Fee Related
- 2005-12-08 WO PCT/NO2005/000453 patent/WO2006135243A1/en active Application Filing
- 2005-12-08 EP EP05858009A patent/EP1846833A4/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104541305A (zh) * | 2012-08-09 | 2015-04-22 | 高通股份有限公司 | Gpu加速的路径再现 |
CN104541305B (zh) * | 2012-08-09 | 2017-10-31 | 高通股份有限公司 | Gpu加速的路径再现 |
Also Published As
Publication number | Publication date |
---|---|
NO20045586L (no) | 2006-06-22 |
WO2006135243A1 (en) | 2006-12-21 |
NO20045586D0 (no) | 2004-12-21 |
EP1846833A1 (en) | 2007-10-24 |
US8289332B2 (en) | 2012-10-16 |
US20080259078A1 (en) | 2008-10-23 |
EP1846833A4 (en) | 2010-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sfikas et al. | Exploiting the PANORAMA Representation for Convolutional Neural Network Classification and Retrieval. | |
Sharf et al. | Competing fronts for coarse–to–fine surface reconstruction | |
Kimia et al. | Euler spiral for shape completion | |
Shamir | A survey on mesh segmentation techniques | |
US20130127848A1 (en) | System and Method for Generating 3D Surface Patches from Unconstrained 3D Curves | |
Turkiyyah et al. | An accelerated triangulation method for computing the skeletons of free-form solid models | |
Sapidis et al. | Delaunay triangulation of arbitrarily shaped planar domains | |
Stanculescu et al. | Freestyle: Sculpting meshes with self-adaptive topology | |
EP3675062A1 (en) | Learning a neural network for inference of solid cad features | |
EP3675063A1 (en) | Forming a dataset for inference of solid cad features | |
Zhuang et al. | A general and efficient method for finding cycles in 3D curve networks | |
US20240169661A1 (en) | Uv mapping on 3d objects with the use of artificial intelligence | |
CN101147140A (zh) | 用于确定交点的装置和方法 | |
US11386609B2 (en) | Head position extrapolation based on a 3D model and image data | |
US20120182297A1 (en) | Direct rendering of cad models on the gpu | |
Schvartzman et al. | Fracture animation based on high-dimensional voronoi diagrams | |
Raina et al. | Sharpness fields in point clouds using deep learning | |
CN110914869A (zh) | 用于计算机图形中对约束曲线的自动化生成的方法和系统 | |
WO2024051498A1 (zh) | 多边形修正及生成方法、装置、电子设备及计算机可读存储介质 | |
Wang et al. | Sheet operation based block decomposition of solid models for hex meshing | |
Bauchet et al. | City reconstruction from airborne LiDAR: A computational geometry approach | |
Veron et al. | Shape preserving polyhedral simplification with bounded error | |
Zhao et al. | Lines of curvature for polyp detection in virtual colonoscopy | |
Chentanez et al. | Fast grid-free surface tracking | |
Li et al. | On surface reconstruction: A priority driven approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |