CN109983509A - 一种使用几何面的即时布尔运算方法 - Google Patents
一种使用几何面的即时布尔运算方法 Download PDFInfo
- Publication number
- CN109983509A CN109983509A CN201780029391.1A CN201780029391A CN109983509A CN 109983509 A CN109983509 A CN 109983509A CN 201780029391 A CN201780029391 A CN 201780029391A CN 109983509 A CN109983509 A CN 109983509A
- Authority
- CN
- China
- Prior art keywords
- triangle
- dough sheet
- timely
- boolean
- operation method
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种使用几何对象的及时布尔运算方法和系统,执行布尔运算,用基本的几何形体和扩展几何对象创建几何模型,包括:将几何对象的渲染绘图面片映射到含有相邻三角形的扩展三角形,计算面片间的相交线,拆分相交线通过的面片,确定每个面片是否可见,并重新组合面片以形成一个或多个几何对象。该方法不利用计算机辅助设计/计算机图形/实体建模系统中最流行的数据结构CSG和B‑REP,但具有两者的优点:易于实现和灵活。此外,它是实体建模和曲面建模系统的一个统一方法,能够生成多变和精细的产品模型。
Description
技术领域
本发明提供了一种用于构建三维几何建模的即时布尔运算方法,从初级几何对象到在产品设计、制造和仿真中广泛应用的计算机辅助设计、计算机制图、实体造型系统和曲面造型系统。机械工业、文化体育,有几何形状的任意地方,就可能有CAD/CG应用。
背景技术
计算机硬件是如此高度发达,甚至普通的个人电脑都可以用来安装和运行商业CAD/CG系统,它们通常具有布尔操作功能,包括AND、OR和NOT。PC组件包括输入设备,如鼠标和键盘,主计算机,屏幕和打印机。软件系统包含几何和非几何功能。图1为PC机的主要组成部分,图2A到2D描绘了一个典型的CAD/CG软件系统架构。
布尔运算为CAD/CG/实体造型系统提供了一个从不同的几何形状构建复杂实体几何对象的一般程序,包括初级几何对象、扫描对象和挤压对象。Lee应用布尔运算来划分曲面[Lee US Patent No.6,307,555]。
布尔运算可以依赖构造实体几何(CSG)来记录主几何对象和操作序列的层次结构,这在技术上很容易实现,然而边界表示(B-REP)被认为是一种支持更多几何图形的更加灵活的方法,如扩展的几何图形[Gursoz,1991]。
本发明提出五(5)个布尔运算命令:组合、交集、排除、差和除法,它们直接作用于从用于绘制函数的几何面分解出来的三角形且不需要数据结构的构造实体几何或边界表示。本发明中定义的数据结构是一些简单的类,即包含在本发明中的算法是简洁的且易于实现,且这五(5)个命令允许用户不仅可以通过选择几何对象的类型来创建几何模型,还可以通过定义面来创建几何模型。图3展示了一个有6个面的箱状体和一个有不同面的球体截然不同的结果。
虽然这五(5)个命令是为实体建模和曲面建模而设计的,本发明所包含的修剪命令为曲面造型提供了一种替代方法,且其标识一个面是否以不同的方式模糊。
本发明提出了一种不同于CSG和B-REP的数据结构和算法,包含在本发明中的算法包括三角形-三角形相交、分割三角形与子相交线,确定一个面是否模糊,并重新分组三角形形成几何模型。
发明内容
本发明提供了一个用于执行布尔运算的数据结构和算法的集合,来生成复杂的几何模型,并直接在由几何面分解的三角形上进行处理,用于由计算机硬件绘制数据以及绘制如OpenGL库的函数。一个几何形体,例如球面、圆锥、圆柱、箱状体、三角形面、挤压对象或扫描对象和曲面块,经过三角化,生成一个用于显示的集,记为TriangleSet。当为执行布尔运算选择了两个几何形体时,相邻的三角形被添加到TriangleSet中的每个三角形中,每个形体形都产生了另一个集合,BlOpTriangleSet。
本发明描述的布尔运算的第二步是在三角形集之间搜索和创建相交线。它首先找到一对相交的三角形:这个系统为每个三角形建立一个轴对齐的最小边界框,并检查两个边界框是否重叠以决定是否需要对边-三角形相交进行计算。当边-三角形相交点位于三角形内时,该系统完成搜索任务,并将点数据存储到相交线集内。
为了扩展当前相交线,此方法跟踪相邻三角形并计算边-三角形相交点,直到相交线闭合。
这个发明描述的布尔运算的第三步是拆分三角形。相交线的每一段引用两个三角形,其中的每个三角形具有至少一个子相交线,它包含一个或多个线段,线段将三角形划分为三个或更多的小三角形。拆分三角形后,删除原始三角形,并将这些较小的三角形添加到BlOpTriangleSet中。
这个发明描述的布尔运算的第四步是确定每个三角形是否可见。如果一个三角形被其他三角形所包围,则它是不可见的。三角形是可见的,表示它位于另一个对象之外。
本发明所描述的布尔运算的第五步是重新组合三角形:其中一些必须被删除,有些需要放在一起,重组共有五种情况。这个发明描述的布尔运算的最后一步是将BlOpTriangleSet映射到TriangleSet。
所述的曲面裁剪命令也包含六步骤。最初,该系统将曲面映射到BlOpTriangleSet,并将其裁剪轮廓线之一映射成为挤压形状以形成BlOpTriangleSet。步骤二、三和六与布尔运算相同。步骤四是检查三角形在裁剪轮廓线的左侧还是右侧,以决定是否需要保留。步骤五,重新组合三角形,在系统裁剪曲面时,仅删除左侧或右侧三角形。
附图说明
图1显示个人电脑的主要部件,一般包括一台主机,输入设备,包括鼠标和键盘、显示器和打印机。高度发达的CAD/CG系统可以在PC机上运行。
图2A到2D描述了一个软件体系结构,其中一个CAD/CG/几何建模系统采用布尔运算和曲面修剪来建立几何模型。
图3表示不同面产生的各种结果,甚至是它们的原始几何对象类型大小是相同的:左边的示例包含较少的面,右边的示例包含较多的面。在这些例子中,布尔交运算适用于方块和球体。
图4是使用几何面的即时布尔运算的流程图。
图5描述了一个三角形有三个相邻三角形,给定一个三角形及其两个顶点,在实体模型中只有一个相邻三角形。
图6A和图6B显示两个最小边界箱状体不重叠和两个箱状体相互重叠。每个三角形实际上都有一个最小边界框。如果两个箱状体不重叠,包含在两个箱状体中的三角形不相交。若箱状体重叠,则边-三角形相交计算是必需的。
图7A到7C描述三种三角形相交情况:交点下降在三角形内部,交点位于三角形的边上,交点就是顶点一个三角形的。
图8A到8D显示搜索候选集,其允许系统接下来遍历三角形,用于通过边-三角形计算来扩展交点线。三角形充满颜色是最后一对相交的三角形,未填充的三角形由成员m_NeigTri的数据结构Triangle3dEx,它引导系统搜索最小值创建交点线时的一组三角形。集合包含一个三角形、两个三角形或零。
图9A到9D显示四个相交线的例子。一个箱状体与一个球体相交,球体有不同的面数。
图10A到10C给出三个以暗色显示的子相交线的例子。图10A有一个子交点线,图10B有两个,图10C有一个。
图11A到11D显示四个示例,子交点线把三角形分成三角形集。
图12A到12H显示了一个Delaunny二维网格序列,其中插入每个交点一步一步地进入网格。
图13是图12A到12H的Delaunny二维网格Weston方法的流程图。
图14显示了三角形及其Delaunny二维网格。原始三角形被删除,只有Delaunay网格是为后期计算预留的。
图15显示t缓冲区中t可能是正的和负的。如果大小为负t和正t在t-Buffer中是平衡的,所涉及的三角形被另一个对象封闭且模糊。
图16A到16E显示五个使用长方体和球体进行布尔运算的示例。图16F和图16G描述了两个布尔运算结果的内部网格:组合和排除。
图17显示了修剪封闭表面、变形球体的轮廓线,并产生两个孔。
图18给出了一个实施例,其中通过轮廓线修剪挤压的面、管并产生了一个孔。
具体实施方式
本发明定义了这些数据结构:继承了用于绘制几何对象的Point3d、Triangle3d、Triangle3dSet存储面的Point3dEx、Triangle3dEx、BlOpTriangel3dSet。当执行布尔运算时,所述系统映射绘制面到BlOpTriangel3dSet,且所有的下列程序集中在BlOpTriangel3dSet的数量和属性。图4为描述本发明实施的布尔运算的主要程序的流程图。在布尔程序完成以后,所述系统将存储在BlOpTriangel3dSet中的结果映射到绘制面。
CAD系统常用面表示几何对象,如球面、锥面、箱状体、圆柱、挤压对象或扫描对象。一个面包括三个或更多点,面通常被分解成三角形,便于计算。一个箱状体有六个面分解成十二个三角形。球体可能有十八个面,构成二十四个三角形。球体也可以使用超过1000个面和三角形来表示。图3显示用不同的面绘制的球面。在绘制几何对象时,该方法使用Triangle3dSet作为三角形集数据结构,它包含两个属性:三维点集和三角形集,其中Triangle3d引用Point3d。
布尔运算的三角形
本发明描述的布尔运算方法定义了三个关键类:BlOpTriangleSet、Triangle3dEx和Point3dEx。
DataTypeII可能是整数、长整数、无符号长整数或其他整数类型。DataTypeIII是浮点数据类型,如浮动、双精度甚至长双精度。
类Triangle3dEx说明每个三角形可能有三个相邻三角形。在BlOpTriangleSet中每个三角形仅存储一个副本。用箱状体为示例,最简单的情况是它有十二个三角形,即使它们中的每个三角形都有三个相邻三角形,BlOpTriangleSet仍然总共存储十二个三角形。
技术上Triangle3d可能具有属性m_Normal。如果DataTypeI和DataTypeIV是同一类型,例如,double,那么属性m_Normal可以继承。
数据映射
将Triangle3dSet映射到BlOpTriangleSet的过程包括从绘制状态复制点集和三角形集,并填充默认属性(default attribute)。数据映射包含以下过程:
1)将点从Triangle3dSet中复制到BlOpTriangleSet,并确保没有相同的点。
2)将三角形从Triangle3dSet中复制到BlOpTriangleSet。
3)对于BlOpTriangleSet中的每个三角形,设置其相邻的三角形。
4)计算BlOpTriangleSet中每个三角形的法线并建立平面方程。
备注1:给定两个点a和b,如果|xa-xb|<ε且|ya-yb|<ε且|za-zb|<ε,其中ε为正值浮点数字,例如5.0e-16,则b与a相同。
备注2:当将点从绘制数据映射到BlOpTriangleSet时,系统检查BlOpTriangleSet中是否存在相同的点。
备注3:具有三点的三角形定义了一个平面,其数学公式为ax+by+cz+d=0,在类平面内部,将其记录为四个数字的数组,如m_ABCD[4]。
备注4:三角形,如果其三点不相同,则始终具有有效的法线。即使它与m_ABCD有关,一份单独的副本仍使事情变得更加清晰,便于以后处理。
备注5:每个三角形有三条边,当没有重叠点时,它在实体模型中有三个相邻三角形。图5显示了一个例子:一个充满暗色的三角形和它的三个相邻三角形。当关注用于曲面修剪的曲面块时,三角形的一个或两个相邻三角形可能为空。
第一交点
每个三角形都有三个顶点,它们定义一个最小边界箱状体。该方法采用了轴线对齐最小边界框的概念。
给定一对三角形,如果它们的边界框不重叠,则两个三角形没有相交点;否则,该方法进行边-三角形相交计算。
如果三角形Ta的一条边与三角形Tb定义的平面相交,而相交点位于三角形Tb内,则相交点(pet)是第一个交点。如果相交点位于Tb之外,则将对中的三角形位置(Ta、Tb)对调为(Tb、Ta),并再进行边-三角形相交计算。
给定三角形Ta的第i条边,i∈[0,2],它的公式是:P=Pi+t*(P(i+1)%3-Pi);由三角形Tb定义的平面,其公式为:ax+by+cz+d=0。如果两个方程式有一个解,则边与平面相交。如果边-平面相交点落在三角形Tb内,则该点是边-三角形的相交点。
扩展相交线
此方法将相交点的数据结构定义为PntEgTri:
根据在三角形上的相交点的位置,PntEgTri,一种简单的相交点,可分成如图7A到7C所示的三类。
1)最普通的情况是边-三角形相交,相交点位于三角形Ta边上,并在三角形Tb内;
2)边-边相交,相交点位于三角形Ta的边上,并位于三角形Tb的边上;
3)边-顶点相交,相交点位于三角形Ta的边上和三角形Tb的顶点。
当扩展相交线时,系统捕获下一个相邻的三角形,并检查边-三角形相交的情况,直到相交线闭合或遍历完所有三角形。
子相交线
相交线通过一组三角形,将其中的每个三角形都划分为多个分区。三角形内相交线的线段构成子相交线。图10A到10C显示三个的例子,其中暗线是子相交线。实际上,三角形可能有零条、一条、两条或三条子相交线。
由下面的算法显示如何获取具有至少一个子相交线的三角形的有效参考值:
对于每个相交线,
对于每个相交点,获取三角形的参考值:(m_Tri0,m_Tri1),
对三角形对中的每一个三角形,是否对每一个相交线进行了拆分,
对每个相交线,
搜索并生成子相交线
给定一个有效的三角形和一条相交线,决定相交点pet是否属于三角形的子相交线,此方法检查是否:
1)相交点在三角形的边上,
2)或相交点在三角形内,
3)或相交点等于三角形的顶点。
拆分三角形
给定一组子相交线,拆分一个三角形,此方法
1)删除重复的交点。如果相邻的交点是相同的,这个方法只保留一个副本。
2)确定始未交点的位置:检查每个交点位于三角形的哪个边上。
3)拆分三角形的上部分区、下部分区和中间分区,如果这个分区存在。
给定一个平面上的一组点,代表一个三角形的区域,将平面分解成一组三角形,本发明修改了狄劳尼(Delaunny)二维网格沃森(Watson)方法,原文是在1981年出版的[沃森,1981]。
狄劳尼二维网格有三个数据集:三角形集,记录生成的三角形;已删除的三角形集,只存储已删除的三角形;一个多边形,记录已删除三角形集的轮廓。
修改后的狄劳尼二维网格沃森方法,包含以下步骤:
1)建立一个三维轮廓点序列,链接子相交线和三角形的顶点,如果存在的话。
2)根据三角形的法线,将三维点序列映射到二维平面上,产生二维点序列。
3)添加四点,形成一个大一些的边界框,包含所有的二维点。
4)假设边界框的一个对角线将该框拆分为两个三角形,并将其添加到三角形集中。
5)将除边界框之外的每个点逐步插入到三角形集合中。
a)对于每个点,检查三角形集合中的每个三角形,它的外接圆是否包含此点或最后一个线段通过该三角形。如果条件满足,将其从三角形集合中删除,并将其添加到已删除的三角形集。
b)使用已删除的三角形集来生成多边形并立即清空已删除的三角形集。
c)使用多边形生成三角形集并将它们添加到三角形集合中。
图12A至12H显示了狄劳尼二维网格序列。
删除已拆分的三角形
在上面的步骤中,一个已拆分的三角形得到了一个标记。遍历所有三角形后,此方法将删除有标记的三角形。图14显示了一个删除结果。
不可见的面
给定两组三角形A和B,如果A包围B的三角形Tb,那么Tb就不可见;如果B包围A的三角形Ta,那么Ta是不可见的。
要检查三角形T是否被对象O包围,本发明使用以下步骤。
1)计算三角形T的质心C;
2)构造一条直线L:P=C+t*N,它穿过质心并沿三角形T的法线N;
3)对于对象O中的每个三角形To,计算直线与平面相交点。如果有一个有效的相交点,且交点落在三角形To内,然后计算t,它由质心c和相交点位置确定,并把t添加到深度缓冲区中。
4)检查t缓冲区中存储的负t和正t数量的大小。如果t缓冲区中负t的大小等于正t的大小,则三角形T是不可见的。
当执行曲面裁剪时,此系统执行下面的过程以确定三角形是否不可见。
1)将有关曲面面片BlOpTriangleSet的每个Point3dEx的成员m_ID设置为0。
2)按升序或降序标记该曲面裁剪中相交线的Point3dEx的m_ID,这取决于所述相交线和裁剪轮廓线是否在同一个方向上,例如,两者都是逆时针的。
3)根据每个三角形的成员m_Points的m_ID,确定它是否为边界三角形。
4)对于每个边界三角形,确定它是在裁剪轮廓线的左侧还是右侧,并将其相邻的三角形设置为左或右。
重组面
本发明给定了五种布尔运算,每个都有不同的重组过程。
组合操作,逻辑上是OR,合并两个实体几何对象,生成一个新对象,通常丢弃不可见的区域并保留从外部查看可见的部分,具有以下过程。
1)删除对象A不可见的三角形;
2)删除对象B不可见的三角形;
3)合并对象A和B的三角形。
相交操作在逻辑上是AND,它使用两个几何对象的公共区域创建一个实体几何对象,并丢弃共享公共区域之外的A和B的任何部分,具有以下过程。
1)删除对象A的非不可见三角形;
2)删除对象B的非不可见三角形;
3)合并对象A和B的三角形。
排除操作通过剔除两个几何图形对象的公共区域并保持不共享分区,从而生成一个实体几何对象,其步骤如下:
1)将对象A的不可见三角形复制到缓冲区中,bufferA;
2)删除对象A中的不可见三角形;
3)将对象B的不可见三角形复制到对象A;
4)从对象B中删除不可见的三角形;
5)将bufferA中的三角形复制到对象B;
6)反转A和B每个不可见的三角形的法线;
7)合并两个对象的三角形。
差分操作,通过删除B内部的任何A部分,将几何对象B与几何对象A切掉,具有以下过程。
1)删除对象A不可见的三角形;
2)删除对象B的非不可见三角形;
3)反转对象B中每个三角形的法线;
4)将对象A和B的三角形合并。
分割运算将两个实体几何对象A和B划分为三个对象,两个几何对象的公共部分,A和B的不共享部分,具有以下过程。
1)将对象A的不可见三角形复制到缓冲区中,bufferA;
2)将对象B的不可见三角形复制到bufferA;
3)将对象A的不可见三角形复制到另一个缓冲区,bufferB;
4)删除对象A的不可见三角形;
5)将对象B的不可见三角形复制到对象A;
6)删除对象B的不可见三角形;
7)复制对象A存储在bufferA中的不可见三角形到对象B;
8)反转A和B的每个不可见三角形的法线。
映射用于绘制面
布尔运算完成后,此方法将BlOpTriangleSet映射用于绘制三角形。
1)BlOpTriangleSet中的每个Point3dEx都映射到TriangleSet中的一个Point3d;
2)BlOpTriangleSet中的每个Triangle3dEx都映射到TriangleSet中的一个Triangle3d。
美国专利文件
6,307,555 10/2001 Lee 345/423
其他出版物
″Boolean Set Operations on Non-Manifold bounding RepresentationObjects″,E.Gursoz et al.,Computer-Aided Design 23(1991)Jan./Feb.No.1 London,GB.
“Computing the n-dimensional Delaunay tessellation with applicationto Voronoi polytopest”,D.F.Watson,The Computer Journal 24(2)1981.
Claims (20)
1.一种用计算机操作并执行在计算机系统中几何对象的及时布尔运算方法,其特征在于,包括以下步骤:
将几何对象的渲染绘图面片映射到扩展三角形,其包含有相邻三角形;
通过检测两个轴对齐的最小边界方框是否重叠并执行边与三角形相交计算来搜索一对具有相交线第一个交点的相交三角形;
延长交线,直到通过搜寻相邻三角形使它们相闭合,或直到遍历完所有三角形;
拆分三角形以使相交线穿过;
重组面片,根据布尔运算方法删除、保留三角形;
将扩展三角形映射到渲染面片。
2.根据权利要求1所述的及时布尔运算方法,其特征在于,任何布尔操作,包括组合、相交、排除、差和分割,使用几何面片的渲染绘图去创造新的几何面片,并且结果立即映射到渲染面片,无需使用数据结构CSG和B-REP。
3.根据权利要求1所述的及时布尔运算方法,其特征在于,任何布尔操作,包括组合、相交、排除、差和分割,使用几何面片的渲染绘图去创造新的几何面片,并且结果立即映射到渲染面片,使用数据结构CSG和B-REP。
4.根据权利要求1所述的及时布尔运算方法,其特征在于,构建相交线使用最小边界框去检测两个面片是否不重叠,并且实行边缘与三角形交叉计算,以使交叉点精准并且交叉线不近似于完全的边缘线。
5.根据权利要求1所述的及时布尔运算方法,其特征在于,搜索一个相交点,计算边缘与三角形相交点,并使用相邻三角形,验证一个点是否在三角形的边上,以替代直接计算边与边的相交点。
6.根据权利要求1所述的及时布尔运算方法,其特征在于,分割三角形项目,每个三维三角形和所有它的次相交线映射到一个二维平面,并且用修改的沃森方法构建狄劳尼二维网格,其中三角形被分割至不同分区即使次相交线不是凸的。
7.根据权利要求1所述的及时布尔运算方法,其特征在于,通过几何对象B并利用t缓冲区检查每个属于A的三角形Ta是否有边界,组成步骤包括:
计算三角形Ta的质心C;构建线l:P=C+t*N,穿过质心C并沿着Ta的法线;对于另一个几何对象B的每个三角形Tb,检查构建线l与三角形是否交干三角形Tb内,并且添加深度t到t缓冲区中;如果缓冲区中负t的数目等于正t的数目,将Ta设置为不可见。
8.根据权利要求1所述的及时布尔运算方法,其特征在于,在曲面裁剪时检查三角形是否为不可见的步骤包括:将所述曲面片的BlOpTriangleSet的一般点的m_ID设为0,将相交线上的点的m_ID按升序或降序设定值,这取决于相交线与裁剪轮廓线方向是否相同;对于每个裁剪轮廓边界线上的三角形,根据其顶点的m_ID的值确定它位于裁剪轮廓线的左侧或右侧,并将其为非边界的相邻三角形设置为左侧或右侧。
9.根据权利要求1所述的及时布尔运算方法,其特征在于,布尔运算为清楚或模糊的面片,或者两者的混合。
10.根据权利要求1所述的及时布尔运算方法,其特征在于,所述布尔运算结果直接映射回渲染数据来渲染或作为布尔运算的另一个循环。
11.一种采用几何物体的绘图面片来执行及时布尔运算的计算机软件或硬件系统,其特征在于,该系统包括:
用于输入数据和命令的输入设备的计算机,数字显示设备显示用户界面、几何对象和附加数据,存储几何数据和指令的介质,微处理器或部分或全部嵌入指令的集成电路,以及执行以下步骤的处理器:
将几何对象的渲染绘图面片映射到扩展三角形,其包含有相邻三角形;
通过检测两个轴对齐的最小边界方框是否重叠并执行边与三角形相交计算来搜索一对具有相交线第一个交点的相交三角形;
延长交线,直到通过搜寻相邻三角形使它们相闭合,或直到遍历完所有三角形;
拆分三角形以使相交线穿过;
重组面片,根据布尔运算方法删除、保留三角形;
将扩展三角形映射到渲染面片。
12.根据权利要求11所述的及时布尔运算系统,其特征在于,任何布尔操作,包括组合、相交、排除、差和分割,使用几何面片的渲染绘图去创造新的几何面片,并且结果立即映射到渲染面片,无需使用数据结构CSG和B-REP。
13.根据权利要求11所述的及时布尔运算系统,其特征在于,任何布尔操作,包括组合、相交、排除、差和分割,使用几何面片的渲染绘图去创造新的几何面片,并且结果立即映射到渲染面片,使用数据结构CSG和B-REP。
14.根据权利要求11所述的及时布尔运算系统,其特征在于,构建相交线使用最小边界框去检测两个面片是否不重叠,并且实行边缘与三角形交叉计算,以使交叉点精准并且交叉线不近似于完全的边缘线。
15.根据权利要求11所述的及时布尔运算系统,其特征在于,搜索一个相交点,计算边缘与三角形相交点,并使用相邻三角形,验证一个点是否在三角形的边上,以替代直接计算边与边的相交点。
16.根据权利要求11所述的及时布尔运算系统,其特征在于,分割三角形项目,每个三维三角形和所有它的次相交线映射到一个二维平面,并且用修改的沃森方法构建狄劳尼二维网格,其中三角形被分割至不同分区即使次相交线不是凸的。
17.根据权利要求11所述的及时布尔运算系统,其特征在于,通过几何对象B并利用t缓冲区检查每个属于A的三角形Ta是否有边界,组成步骤包括:
计算三角形Ta的质心C;构建线l:P=C+t*N,穿过质心C并沿着Ta的法线;对于另一个几何对象B的每个三角形Tb,检查构建线l与三角形是否交干三角形Tb内,并且添加深度t到t缓冲区中;如果缓冲区中负t的数目等于正t的数目,将Ta设置为不可见。
18.根据权利要求11所述的及时布尔运算系统,其特征在于,在曲面裁剪时检查三角形是否为不可见的步骤包括:将所述曲面片的BlOpTriangleSet的一般点的m_ID设为0,将相交线上的点的m_ID按升序或降序设定值,这取决于相交线与裁剪轮廓线方向是否相同;对于每个裁剪轮廓边界线上的三角形,根据其顶点的m_ID的值确定它位于裁剪轮廓线的左侧或右侧,并将其为非边界的相邻三角形设置为左侧或右侧。
19.根据权利要求11所述的及时布尔运算系统,其特征在于,布尔运算为清楚或模糊的面片,或者两者的混合。
20.根据权利要求11所述的及时布尔运算系统,其特征在于,所述布尔运算结果直接映射回渲染数据来渲染或作为布尔运算的另一个循环。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/207,927 | 2016-07-12 | ||
US15/207,927 US10109105B2 (en) | 2016-07-12 | 2016-07-12 | Method for immediate boolean operations using geometric facets |
PCT/CA2017/050121 WO2018010010A1 (en) | 2016-07-12 | 2017-02-03 | Method for immediate boolean operations using geometric facets |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109983509A true CN109983509A (zh) | 2019-07-05 |
CN109983509B CN109983509B (zh) | 2021-10-15 |
Family
ID=60941242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780029391.1A Active CN109983509B (zh) | 2016-07-12 | 2017-02-03 | 一种使用几何面的即时布尔运算方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10109105B2 (zh) |
EP (1) | EP3347879A4 (zh) |
JP (1) | JP2019526111A (zh) |
CN (1) | CN109983509B (zh) |
CA (1) | CA2966299C (zh) |
RU (1) | RU2706460C1 (zh) |
WO (1) | WO2018010010A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110973859A (zh) * | 2019-12-19 | 2020-04-10 | 江苏艾佳家居用品有限公司 | 一种家装设计中定制厨柜的台面、前后挡水生成的方法 |
CN113421329A (zh) * | 2021-06-15 | 2021-09-21 | 广联达科技股份有限公司 | 一种三维模型的生成方法、系统及装置 |
CN113959375A (zh) * | 2021-08-25 | 2022-01-21 | 广东技术师范大学 | 一种塔筒法兰平面度检测装备的图像采集方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11238649B2 (en) * | 2019-11-26 | 2022-02-01 | Nature Simulation Systems Inc. | Method and system for hybrid modeling using geometric facets |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825369A (en) * | 1996-01-16 | 1998-10-20 | International Business Machines Corporation | Compression of simple geometric models using spanning trees |
US20110295564A1 (en) * | 2010-05-25 | 2011-12-01 | Dassault Systemes | Computing of a resulting closed triangulated polyhedral surface from a first and a second modeled objects |
CN102682476A (zh) * | 2012-05-15 | 2012-09-19 | 深圳市旭东数字医学影像技术有限公司 | 三角网格数据的布尔运算方法及其系统 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US630755A (en) * | 1899-01-11 | 1899-08-08 | Wilhelm N Stephan | Exhibiting-stand for price-lists. |
US5914721A (en) * | 1991-06-28 | 1999-06-22 | Lim; Hong Lip | Visibility calculations for 3D computer graphics |
AU6714796A (en) * | 1995-07-26 | 1997-02-26 | Silicon Engines, Inc. | Method and apparatus for span and subspan sorting rendering system |
US5963209A (en) * | 1996-01-11 | 1999-10-05 | Microsoft Corporation | Encoding and progressive transmission of progressive meshes |
US5905507A (en) * | 1996-01-16 | 1999-05-18 | International Business Machines Corporation | Compression of geometric models using spanning trees |
US6348921B1 (en) * | 1996-04-12 | 2002-02-19 | Ze Hong Zhao | System and method for displaying different portions of an object in different levels of detail |
US6016153A (en) * | 1996-07-30 | 2000-01-18 | International Business Machines Corporation | Method to convert non-manifold polyhedral surfaces into manifold surfaces |
US6078331A (en) * | 1996-09-30 | 2000-06-20 | Silicon Graphics, Inc. | Method and system for efficiently drawing subdivision surfaces for 3D graphics |
US5886702A (en) * | 1996-10-16 | 1999-03-23 | Real-Time Geometry Corporation | System and method for computer modeling of 3D objects or surfaces by mesh constructions having optimal quality characteristics and dynamic resolution capabilities |
US5945996A (en) * | 1996-10-16 | 1999-08-31 | Real-Time Geometry Corporation | System and method for rapidly generating an optimal mesh model of a 3D object or surface |
US6031548A (en) * | 1997-06-13 | 2000-02-29 | International Business Machines Corporation | Progressive multi-level transmission and display of triangular meshes |
JP3654616B2 (ja) * | 1997-12-19 | 2005-06-02 | 富士通株式会社 | 階層化ポリゴンデータ生成装置及び方法及び当該階層化ポリゴンデータを用いる三次元リアルタイム映像生成装置及び方法 |
US6191787B1 (en) * | 1998-02-10 | 2001-02-20 | Schlumberger Technology Corporation | Interactively constructing, editing, rendering and manipulating geoscience models |
US6307555B1 (en) * | 1998-09-30 | 2001-10-23 | Silicon Graphics, Inc. | Boolean operations for subdivision surfaces |
US6573895B1 (en) * | 1999-04-16 | 2003-06-03 | Unigraphics Solutions Inc. | Clustered backface culling |
US7133043B1 (en) * | 1999-11-29 | 2006-11-07 | Microsoft Corporation | Computer graphics methods and apparatus for ray intersection |
US6850638B1 (en) * | 2000-02-29 | 2005-02-01 | Alias Systems Corp. | System for naming faces and vertices in an adaptive hierarchical subdivision surface |
US6587105B1 (en) * | 2000-09-29 | 2003-07-01 | Silicon Graphics, Inc. | Method and computer program product for subdivision generalizing uniform B-spline surfaces of arbitrary degree |
US7127380B1 (en) * | 2000-11-07 | 2006-10-24 | Alliant Techsystems Inc. | System for performing coupled finite analysis |
US6989830B2 (en) * | 2002-07-01 | 2006-01-24 | Alias Systems Corp. | Accurate boolean operations for subdivision surfaces and relaxed fitting |
US7209137B2 (en) * | 2002-09-12 | 2007-04-24 | International Business Machines Corporation | Efficient triangular shaped meshes |
US7366581B2 (en) * | 2002-09-23 | 2008-04-29 | Autodesk, Inc. | Replace face operator for solid body modeling |
US7324105B1 (en) * | 2003-04-10 | 2008-01-29 | Nvidia Corporation | Neighbor and edge indexing |
US7589720B2 (en) * | 2004-08-04 | 2009-09-15 | Microsoft Corporation | Mesh editing with gradient field manipulation and user interactive tools for object merging |
US7408553B1 (en) * | 2005-12-15 | 2008-08-05 | Nvidia Corporation | Inside testing for paths |
JP4785598B2 (ja) * | 2006-04-07 | 2011-10-05 | 株式会社日立製作所 | 類似形状検索装置 |
US8547395B1 (en) * | 2006-12-20 | 2013-10-01 | Nvidia Corporation | Writing coverage information to a framebuffer in a computer graphics system |
US9401046B2 (en) * | 2011-02-07 | 2016-07-26 | Intel Corporation | Micropolygon splatting |
RU2467395C1 (ru) * | 2011-07-11 | 2012-11-20 | Российская Федерация, От Имени Которой Выступает Министерство Промышленности И Торговли Российской Федерации | Способ создания изображений трехмерных объектов для систем реального времени |
US9721363B2 (en) * | 2014-05-19 | 2017-08-01 | Google Inc. | Encoding polygon data for fast retrieval and rendering |
-
2016
- 2016-07-12 US US15/207,927 patent/US10109105B2/en active Active
-
2017
- 2017-02-03 JP JP2018568271A patent/JP2019526111A/ja active Pending
- 2017-02-03 RU RU2018142438A patent/RU2706460C1/ru active
- 2017-02-03 EP EP17811820.4A patent/EP3347879A4/en active Pending
- 2017-02-03 CN CN201780029391.1A patent/CN109983509B/zh active Active
- 2017-02-03 WO PCT/CA2017/050121 patent/WO2018010010A1/en unknown
- 2017-05-10 CA CA2966299A patent/CA2966299C/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825369A (en) * | 1996-01-16 | 1998-10-20 | International Business Machines Corporation | Compression of simple geometric models using spanning trees |
US20110295564A1 (en) * | 2010-05-25 | 2011-12-01 | Dassault Systemes | Computing of a resulting closed triangulated polyhedral surface from a first and a second modeled objects |
CN102682476A (zh) * | 2012-05-15 | 2012-09-19 | 深圳市旭东数字医学影像技术有限公司 | 三角网格数据的布尔运算方法及其系统 |
Non-Patent Citations (1)
Title |
---|
SÂM LANDIER: "Boolean operations on arbitrary polyhedral meshes", 《24TH INTERNATIONAL MESHING ROUNDTABLE (IMR24)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110973859A (zh) * | 2019-12-19 | 2020-04-10 | 江苏艾佳家居用品有限公司 | 一种家装设计中定制厨柜的台面、前后挡水生成的方法 |
CN110973859B (zh) * | 2019-12-19 | 2021-08-31 | 江苏艾佳家居用品有限公司 | 一种家装设计中定制厨柜的台面、前后挡水生成的方法 |
CN113421329A (zh) * | 2021-06-15 | 2021-09-21 | 广联达科技股份有限公司 | 一种三维模型的生成方法、系统及装置 |
CN113959375A (zh) * | 2021-08-25 | 2022-01-21 | 广东技术师范大学 | 一种塔筒法兰平面度检测装备的图像采集方法 |
CN113959375B (zh) * | 2021-08-25 | 2023-07-07 | 广东技术师范大学 | 一种塔筒法兰平面度检测装备的图像采集方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3347879A4 (en) | 2018-09-05 |
US20180018818A1 (en) | 2018-01-18 |
CA2966299C (en) | 2019-04-16 |
JP2019526111A (ja) | 2019-09-12 |
WO2018010010A1 (en) | 2018-01-18 |
CA2966299A1 (en) | 2018-01-12 |
CN109983509B (zh) | 2021-10-15 |
US10109105B2 (en) | 2018-10-23 |
EP3347879A1 (en) | 2018-07-18 |
RU2706460C1 (ru) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11361503B2 (en) | Systems and methods for generating volumetric models | |
Kuo et al. | A Delaunay-based region-growing approach to surface reconstruction from unorganized points | |
JP4381743B2 (ja) | 境界表現データからボリュームデータを生成する方法及びそのプログラム | |
Centin et al. | Poisson-driven seamless completion of triangular meshes | |
CN101944239A (zh) | 三维模型分割方法、装置以及包含该装置的图像处理系统 | |
CN109983509A (zh) | 一种使用几何面的即时布尔运算方法 | |
Liu et al. | A new point containment test algorithm based on preprocessing and determining triangles | |
Campen et al. | Walking on broken mesh: Defect‐tolerant geodesic distances and parameterizations | |
US10120961B2 (en) | Method for immediate boolean operations using geometric facets | |
Inui et al. | Thickness and clearance visualization based on distance field of 3D objects | |
Alliez et al. | CGAL: the computational geometry algorithms library | |
CA3158523C (en) | Method and system for hybrid modeling using geometric facets | |
Brown | Interactive part selection for mesh and point models using hierarchical graph-cut partitioning | |
Quadros et al. | 3 D discrete skeleton generation by wave propagation on PR-octree for finite element mesh sizing | |
CN112819108A (zh) | 一种多源异构模型的切片融合方法、系统及存储介质 | |
Fayolle et al. | Optimized surface discretization of functionally defined multi-material objects | |
Shakaev et al. | View-Dependent Level of Detail for Real-Time Rendering of Large Isosurfaces | |
Steinbrenner et al. | Implementation of a Size Field Based Isotropic Hex Core Meshing Algorithm | |
Wang et al. | Adaptive Cartesian/adaptive prism (ACAP) grid generation for complex geometries | |
Sud | Efficient computation of discrete voronoi diagram and homotopy-preserving simplified medial axis of a three-dimensional polyhedron | |
Kniplitsch et al. | Accurate Cutting of MSDM-Based Hybrid Surface Meshes. | |
Schinko et al. | Vertex Climax: Converting Geometry into a Non-nanifold Midsurface. | |
Xu et al. | Homeomorphic tetrahedralization of multi-material images with quality and fidelity guarantees | |
Bronsvoort et al. | Design and display of solid models | |
Long | A hybrid hole-filling algorithm |
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 |