基于点云数据的三维物体表面三角网格构建-构建算法

基于点云数据的三维物体表面三角网格构建-构建算法
基于点云数据的三维物体表面三角网格构建-构建算法

基于点云数据的三维物体表面三角网格

构建算法

电子工程与信息科学系杨祎

摘要

基于点云数据构造三角网格mesh是三维物体表面重建中的一个重要问题,本文在基于实际点云数据获取方式的基础上提出了一种分步生长的三角形网格构建算法,该方法具有对计算机硬件要求低、可处理大量数据,构网精度可控且生成网格质量高等优点,并且对实际中可能遇到的各种点云分部情况都作了考虑,设计了相应的解决措施,因而具有较好的普适性和健壮性。文章还对算法中一些阈值的选取提出了程序自适应计算的方法和思路。并对未来的进一步工作作出了展望。

一、 问题分析

现代三维图形技术的很多方面,特别是反向工程中对于三维物体的重建都是采用三维扫描仪对对象物体表面进行采样,然后通过计算机处理得到物体的三维模型。直接得到的点云数据包含了物体表面的拓扑结构,但点云本身并不能表示。因而我们需要对点云数据进行分析,构建网格来反映物体表面的拓扑结构。现在常用的网格构建方法有:基于多项式拟合的NURBS模型、三角形网格模型和四边形网格模型等。

其中三角形作为三维建模的基本表示元素,不仅性质简单,而且可以有效表示物体表面复杂的几何属性,并且在计算机硬件的发展中得到了硬件的直接支持,使得基于三角形的三维图形运算变得便捷,速度大大提高。

建立三角网格算法的关键在于三角形的选取原则、数据预处理以及防止坏三角形和空洞产生的方法。本文将要讨论的问题包括了以上几个方面的问题。

二、 实际中可能遇到的问题

实际中物体表面情况是多种多样的,反映到点云数据上,点的分部情况是比较负责的,这也是目前基于点云数据构建三角网格的难点所在。本文所提出的算法充分考虑了这些可能的情况,并且设计了相应的解决措施。下面详细说明:

1.物体表面有错位或某些地方曲面斜率有急剧的变化,比如断层(如图

示)。如果采用从空间任意点向周围发展的构网方法则可能带来的问题

是会无法识别到这些断面而造成网格发生间断,产生对物体表面的错误

描述。而采取本文的分层处理,判断物体表面曲率变化趋势的方法,并

且可以识别到这些断层面,对它进行准确描述。

2.对物体采样得到的数据点分部不均匀,有的地方过于密集而有的地方过

于稀疏,这可能会造成构网时产生空洞,点过于稀疏的地方无法被三角形覆盖,而点过于密集地方又会有些点被忽略,无法准确反映物体表面的几何特征。本文的算法首先通过对数据进行预处理,使得点在每个集合分布尽量均匀,其次,对于三角形的选择原则也是具有弹性的,可根据点分布密集程度作出一定调整,使得不会有点被漏掉也不会被重复使用,再次,由于每次需要处理的点和三角形相对来说数量不大,因而对构成的三角形网进行遍历是可行的,通过这种方法可以发现空洞并进行弥补。

3.噪声点的影响,可能使得构网走样,产生“毛刺”或是“罅缝”,与实

际表面有较大偏差。本文算法中采取了一系列措施来识别噪声点,并减小它们的影响,使构建的网格尽量精确反映实际表面的几何特征。

4.物体表面发生扭曲或打结,比如表面特征类似麻花,这时物体表面间距

变近,可能会使程序发生误判将两个面用三角形连接起来,发生三角形穿越物体内部的现象,错误构网。而本文算法通过建立层间点的优先级机制则可避免发生三角形穿越物体的现象,使得准确识别两个距离很近的表面,而不会发生把它们连接起来的错误。

5.采样数据点是一小块一小块聚集的,比如对一匹马的模型从其脚底向上

平行扫描时,在马腿部分得到的点就是分成四个小圈,可能产生的问题是由于圈与圈之间间隔太大,超越了三角形边长阈值,因而有些圈的点会因距离已有网格太远而被忽略。本文算法通过对点赋三种不同的访问属性,使得那些距离很远的点也不会被忽略。在马的例子中能顺利的将四条马腿与马腹准确相连。

断面

图1

这些纠错的具体措施在下面的算法细节中将详细描述。

三、 算法的主要思想

现实中采用三维扫描仪对物体表面进行采样的时候都是按照一定的方向逐行采样的,例如按照Z 轴方向对物体表面进行逐圈扫描,从而得到物体表面采样点的坐标,或者三个坐标轴方向结合起来进行。本文所要描述的算法的主要思想便是结合实际中点云的获取方式,将点云数据按照扫描方式排序成若干个集合,然后从位于最底层(或最上层)的集合开始对每两个相邻集合进行三角形建网,这样逐层生长最终得到完整的三角网格结构。这种算法的好处在于结合了实际情况,使得处理相对简化,噪声的影响小,并且每次处理的数据量不大,节省存储空间,虽然时间度上会有所增加,但是对于硬件的要求低,适合台式PC 运行,并且对于大数据量的点云集合是有意义的。

四、 算法流程及具体实现

算法主要分为两个部分,数据预处理和三角网格的建立,而后者建立在构建相邻两个点集合所组成的三角网格带的基础上。在数据预处理和三角形构建原则上都是具有开放性的,用户可以根据实际情况调整其中的限制参数来控制构网的精度。

下面将分步介绍算法的具体内容。

1. 用户设定参数的定义:

z L 三角形片面边长的最大允许值。

z 0θ 三角形内角的最小允许值。

上述参数的说明和具体选择方法:

1) 三角形面片的边长上界值。这个值主要是用来控制生成的三角形的

大小,从而控制网格对实际物体表面的拟合精度,它的选择可以由用户根据实际情况自己给定,也可以由一种自适应算法,由程序根据点云的分布情况给出,具体算法将在文章的最后一个环节中作出讨论。

2) 三角形内角的最小值。这个量用来控制生成三角形的形状,防止细长的三角形生成,使三角形尽量均匀,因为细长的三角形往往不能很好贴合实际物体的表面。一般来说,取比较合适,当然也可以根据实际需要进行调整。

012θ°=2. 三角形的构成原则(原则1)

z 三角形的每条边长都不能大于L 。

z 三角形的每个内角都要大于0θ。

z 三角形的任一边最多只能被两个三角形共用。

z

新的顶点只能与已生成的网格的边界上的边相连构成新的三角形。

z

新生成的三角形的边不能与已有三角形的边相交。

以上原则可以充分保证生成的三角形没有重叠,而且形状比较均匀,

可以较好地贴和实际物体的表面几何特征,这些原则的具体判断方法下面将详细给出:

1) 关于边长的限制:生成新的三角时,以之前生成的三角形的边为出发点,先以其中点为圆心,L 为半径作一个球,选取点集合中,,x y z

坐标满足()()()222

2000?+?+?≤x x y y z z L (000(,,)x y z 为起始边中

点坐标)的点,然后在这些点中选择使得它所在顶角余弦值最小的

点与起始边的两个端点连成新的三角形。(如图2所示)

图 2

2) 关于内角的限制:计算生成的三角形的各个内角的正弦值,与0sin θ比较,若有一个小于则舍弃该点。

3) 关于共用边的判断:当发生某个三角形的边被两个以上三角形共用时,计算新加入的边的三维空间直线方程,并判断之前的三角形的

各个顶点是否在这条边内,如果在,则将这个点与待测边对侧的顶

点相连,将新加入的三角形进行剖分。(如图3所示)

图 3

4)关于新的顶点的选定方向:一般说来,三角形的生成方向要一致(比

如朝起始边的右边搜寻),从而才可以保证三角形不会发生重叠,然

而直接判断待入点与起始边的位置并不容易,因此这里采用一个间

接的办法来达到相同的效果,首先将已经加入的点做上标记,以边

为起点搜寻新的顶点的时候把已经加入的点排除在外,然后再根据

下一条准则来防止三角形重叠。

5)关于边相交的判断:这个问题在计算机图形学中有成熟的算法,基

本思想是作新加入边的延长线计算其在三维空间的方程,然后计算

它与已有边的交点是否在线段中,如在则相交,否则不相交。

3.所需数据结构的说明

由于采用的是分层生长的算法,一次需要读进两个集合的数据,因此需要两张用于存储点集的表。我们用结构体数组实现,每个数组存储一个集合的点,并且各有一个记录数组信息的头指针指向它。具体定义如下:

typedef struct{

int

index;//点的索引号

x;

double

double

y;

z;//点的坐标

double

layer;

int

//点所属集合的标号,为1表示下层集合,为2表示上层集合flag;

int

//访问属性,为0表示未访问,为1表示已访问但为连接,为2

表示已连接

}vertex;*p_vertex;

//存储点的结构体

typedef struct{

num;//集合中点的数目

int

pointer;//指向顶点数组的指针

p_vertex

}Head;

//结构体数组头结点

此外,每次是以新加入的边为起始去寻找新的顶点,因此我们以结构体来表示边,用结构体链表队列来存储边,具体定义如下:typedef struct{

index1;//端点1的索引号

int

int

index2;//端点2的索引号

next;//指向下一个结点的指针

p_edge

}edge,*p_edge;//表示边的结点

typedef struct{

int edge_num;//队列中边的数目

p_edge head;//指向队列头的指针

p_edge tail;//指向队列尾的指针

}edge_head;//队列指示结点

在实际程序中,使用了两个边队列。边队列2用于记录两个端点都

在上层点集的边,边队列1用于记录其它的边。

对于已加入的三角形用三个顶点的坐标来记录,但程序处理一批点

的过程中为了节省空间和运算时间只用点的索引号来记录,用一个3的数组来记录三角形集合,待一批点处理完之后在将对应顶点的坐标写入文件。

n ×

4. 整个算法的流程

1) 数据预处理

2) 从底层开始顺序读入两个点集

3) 形成第一条边

4) 构建这两个点集的三角形网格带

5) 读入下一个点集

6) 重复步骤4)、5),直到所有的点集全部处理完

整个算法由六个主要步骤组成,流程如图4所示,其中数据预处理

步骤是对构网速度和准确度起着基础性的作用,而步骤3)、4)、5)是主要部分,是算法的核心所在。下面详细介绍关键环节的实现细节。

图 4

5. 算法的几个关键步骤

整个算法的关键和核心在于数据的预处理和三角形网格带的构成方

法,下面详细介绍这几个步骤。

1) 数据预处理

这个部分主要完成两个工作,一是按照扫描方式对数据点进行排

序,二是将排序后的点归并成集合,并初步去除偏差较大的噪声点。

排序时可按照扫描仪推进的那个轴的坐标对数据点进行,如果事先

不知道,则需按三个坐标轴都排序一遍,选择分层最为明显的排序

方向。考虑到实际需要的精度,我们可以将排序基准坐标有效数字

的最后三位忽略来划分集合。实际操作中可以根据用户设定的网格

参数来选择集合宽度。

初步集合划分完毕后,需要对它们进行优化,方法是从第一个集

合开始依次计算第i 层和第i -1层集合点数差的绝对值,如果

某一层点数与临近两层的差值,1?i i a ,11,,?+i i i i a a 满足了关系式

则说明这一层与前后两层点的数目差得

太多。当层划分很细时,认为毛刺或缝不能只用一层点集描述,因

此可认为这层是噪声点,将其去除。一般以两倍为远大于的标准。

1,2,11,2,1&???+++ i i i i i i i i a a a a 2) 第一条起始边的形成

当头两个集合读入之后,在第一个集合中任取一点,以其为圆

心,以L 为半径作一个球,然后在球内寻找距离最近的点连接,形

成第一条边,并将这个点的访问标记置为2,其余球内点的访问标记

置为1,最后将这条边入边队列1。如果球内没有找到点,则将这个

起始点的访问标记置为1,并换一个点重复前面步骤。这样,第一条

边就形成了,以其为起始即可以开始构建三角形网格带了。

3) 三角形网格带的构建

每次从边队列1中取出一条边,计算其中点并以中点为圆心,L

为半径作球,寻找访问标记flag<2且满足原则1(即三角形构成原

则)的顶点连成三角形,并将该点的访问标记置为2,然后将生成的

三角形信息写入记录数组。其余球内层属性layer 值为1的点的访问

标记置为1,然后将边从队列中删除,将新形成的两条边加入队列。

如果球内没有找到满足条件的点,则将这条边从队列中删除,取下

一条边重复以上步骤,如果这条边是队列中的第一条边,则返回步

骤2),重新构建第一条边。

这里所有满足要求的点之间存在优先级关系,其中层属性layer

与起始边的两个顶点不全相同的点优先级高,层属性全相同的点靠

后。即保证先将相异层连接起来,如果相异层没有对应点再连接本

层,这样做的目的是为了防止由于先在本层连接而导致形成的三角

形在物体表面内部(如图5所示)。此外,如果新加入的边的两个端

点都属于上层,则同时也将这条边入边队列2。之所以要建立两个链

表是为了将位于上层的边作为下一次建网时的起始边,防止出现按

照2)中方法构建初始边时会破坏原有三角形完整性的现象。

Incorrect link

图 5

当底层所有的点都被访问过之后(访问属性flag>0),舍弃所有flag值为1的点。将队列1清空,交换队列1和队列2的指示指针,再将上层所有点的层属性layer值置为1,所有不在边队列中的点的flag重新置为0,最后按照三角形记录数组中的信息将生成的三角形顶点坐标写入文件。这样,一层三角网格带就建立完成了。接下来继续读入下一个集合并重复上述步骤即可,直到所有的集合都被处理过之后,建网的全过程即宣告完成。此部分的算法流程如图6所示:

图 6

6.数据的获得及实验结果

实验所用数据来自题目的附件,点云数目分别为48485和134345,数据量是足够大,可以保证构网精度。经过初步处理后,绘得的点云图如下:

图 7

图 8

由于本次参加选拔赛处于一门考试准备阶段,没有足够的时间将程序编制完成,所以看不到实际构建网格的情况。

五、 讨论和展望

基于点云数据的三维物体表面重建算法一直以来是计算机图形方向的研究点,它在三维动画制作,CAD技术以及反向工程等领域都具有很大的实际应用价值。本文在分析实际点云数据获得方式的基础上,提出了一种基于分部生长的三角网格构建算法,由于时间紧迫,只完成了大致思想,具体实现中的细节依然可以优化改进,使得算法具有更好的普适性和健壮性,以下提出几个可以改进的方向和基本想法。

1.关于三角形最大边长的自适应算法

实际应用中虽然可由用户输入这个参数,但是这个参数的效果并不直接可以反映得出来,必需在建网完成之后才能显现出效果,如果不合

适需要进行多次调整,每次都要完成一次建网,因而不够高效。特别对

于大数据量处理或是用户实际经验不够充分的时候,成本是很高的。所

以设计一种自适应的算法,由程序根据输入数据的特点来自己计算出合

适的三角形边长最大值是很有意义的。下面给出一些基本思路:

一种方法是基于统计的思想,在相邻的两个点集中任取出三个点,以它们外接圆的直径为最大边长值,经过多次采样之后按这些最大边长

值的分布规律,取最终的L。

另一种方法是在点集中任取20~30个点,对它们进行样条插值,得到表面方程,结合最大拟合误差之后,求得一个L,使得以它为上界的

三角形能在误差范围内最好拟合样条曲面。

2.关于三角形的进一步均匀化

虽然在生成三角网格时用内角最小允许值来控制三角形的形状,但是这个角度下限放得是比较宽的,因而实际中还是有可能产生很多细长

得三角形。要纠正这种三角形,一种可行的思路是在建立三角形的时候

对所组成的内角比较接近下限阈值的两条边中长度较大的边进行插值,

然后重新构造三角形,使得细长三角形变得小些,能够更好地贴和实际

物体表面。

在初步构建能够反映物体表面拓扑结构的三角形网格之后,只是完成了物体表面重建的第一步,之后将要在这个网格的基础上进行网格合并、光顺、曲面化、表面着色等工作才能完成表面重建。而第一步的网格重建质量好坏对后续工作的复杂程度和最终重建效果起到了决定性的作用。由本算法构建出的三角网格由于用到了尽可能多的有效数据,因而拟合精度是比较高的,使得后续工作可以得到简化,然而这样构建三角网格在极特殊的情况下,如表面在很小范围内斜率有连续且过于急剧的变化或者点云的采样率过于低的时候可能会产生网格表面空洞或错误连接,在进一步的工作中需要提高算法对于极端情况的适应性。

有限元网格分别的基本原则

有限元网格划分的基本原则 划分网格是建立有限元模型的一个 重要环节,它要求考虑的题目较多, 需要的工作量较大,所划分的网格形式对计算精度和计算规模将产生直接影响。为建立正确、公道的有限元模型,这里介绍划分网格时应考虑的一些基本原则。 1网格数目 网格数目的多少将影响计算结果的精度和计算规模的大小。一般来讲,网格数目增加,计算精度会有所进步,但同时计算规模也会增加,所以在确定网格数目时应权衡两个因数综合考虑。 图1中的曲线1表示结构中的位移随网格数目收敛的一般曲线,曲线2代表计算时间随网格数目的变化。可以看出,网格较少时增加网格数目可以使计算精度明显进步,而计算时间不会有大的增加。当网格数目增加到一定程度后,再继续增加网格时精度进步甚微,而计算时间却有大幅度增加。所以应留意增加网格的经济性。实际应用时可以比较两种网格划分的计算结果,假如两次计算结果相差较大,可以继续增加网格,相反则停止计算。 图1位移精度和计算时间随网格数目的变化 在决定网格数目时应考虑分析数据的类型。在静力分析时,假如仅仅是计算结构的变形,网格数目可以少一些。假如需要计算应力,则在精度要求相同的情况下应取相对较多的网格。同样在响应计算中,计算应力响应所取的网格数应比计算位移响应多。在计算结构固有动力特性时,若仅仅是计算少数低阶模态,可以选择较少的网格,假如计算的模态阶次较高,则应选择较多的网格。在热分析中,结构内部的温度梯度不大,不需要大量的内部单元,这时可划分较少的网格。 2网格疏密 网格疏密是指在结构不同部位采用大小不同的网格,这是为了适应计算数据的分布特点。在计算数据变化梯度较大的部位(如应力集中处),为了较好地反映

网格中的三角函数

1 网格中的锐角三角函数 网格是同学们从小就熟悉的图形,在网格中隐含的条件有:1.直角;2.单位长度。所以在网格中可以求一个锐角的三角函数,是近几年中考的热点,下面举例说明。 一、在网格中与勾股定理现结合求一个锐角的三角函数。 【例1】 三角形在正方形网格纸中的位如图1,则sin α的值是( ). [解析] 本题在网格中考查锐角的正弦的意义,首先要用勾股定理计算直角三角形斜边的长.一般情况下,为了减小计算量,把小正方形的边长设为1.选C . 练习1(广州市2014)如图2,在边长为1的小正方形组成的网格中,的三个顶点均在格点上, 则 ( ). (A ) (B ) (C ) (D ) 练习2 (2014年福州)如图3,在边长为1个单位长度的小正方形所组成的网格中,△ABC 的顶点均在格点上, 34 45 4 3 B . ; C . 3 5 ;D . A. 35 图 3 图2

2 sinB 的值是 . 3.(2011四川)如图4,在4×4的正方形网格中, tanα= . A .1 B .2 C .1 2 D 4.(2011甘肃兰州)如图5,A 、B 、C 三点在正方形网格线的交点处,若将△ACB 绕着点A 逆时针旋转得到△AC’B’,则tanB’的值为 . A .12 B .13 C .14 D 3. (2011江苏连云港)如图6,△ABC 的顶点都在方格纸的格点上,则sin A =_______. 在网格中求一个锐角的三角函数时,根据图中角的位置。充分利用网格中的直角和边,然后根据勾股定理求出相应的边长,最后利用三角函数公式进行计算,达到解决问题的目的。 二、在网格中与辅助线相结合求一个锐角的三角函数。 【例2】 (2014?贺州)如图7-1网格中的每个小正方形的边长都是1,△ABC 每个顶点都在网格的交点处,则sinA= . [解析] 虽然网格中隐含直角,但是∠A 是△ABC 中 图7-1 图7-2 图4 图6 图5

CFD网格及其生成方法概述

CFD网格及其生成方法概述 作者:王福军 网格是CFD模型的几何表达形式,也是模拟与分析的载体。网格质量对CFD计算精度和计算效率有重要影响。对于复杂的CFD问题,网格生成极为耗时,且极易出错,生成网格所需时间常常大于实际CFD计算的时间。因此,有必要对网格生成方式给以足够的关注。 1 网格类型 网格(grid)分为结构网格和非结构网格两大类。结构网格即网格中节点排列有序、邻点间的关系明确,如图1所示。对一于复杂的儿何区域,结构网格是分块构造的,这就形成了块结构网格(block-structured grids)。图2是块结构网格实例。 图1 结构网格实例 图2 块结构网格实例 与结构网格不同,在非结构网格(unstructured grid)中,节点的位置无法用一个固定的法则予以有序地命名。图3是非结构网格示例。这种网格虽然生成过程比较复杂,但却有着极好的适应性,尤其对具有复杂边界的流场计算问题特别有效。非结构网格一般通过专门的

程序或软件来生成。 图3 非结构网格实例 2 网格单元的分类 单元(cell)是构成网格的基本元素。在结构网格中,常用的ZD网格单元是四边形单元,3D网格单元是六面体单元。而在非结构网格中,常用的2D网格单元还有三角形单元,3D 网格单元还有四面体单元和五面体单元,其中五面体单元还可分为棱锥形(或楔形)和金字塔形单元等。图4和图5分别示出了常用的2D和3D网格单元。 图4 常用的2D网格单元 图5 常用的3D网格单元

3 单连域与多连域网格 网格区域(cell zone)分为单连域和多连域两类。所谓单连域是指求解区域边界线内不包含有非求解区域的情形。单连域内的任何封闭曲线都能连续地收缩至点而不越过其边界。如果在求解区域内包含有非求解区域,则称该求解区域为多连域。所有的绕流流动,都属于典型的多连域问题,如机翼的绕流,水轮机或水泵内单个叶片或一组叶片的绕流等。图2及图3均是多连域的例子。 对于绕流问题的多连域内的网格,有O型和C型两种。O型网格像一个变形的圆,一圈一圈地包围着翼型,最外层网格线上可以取来流的条件,如图6所示。C型网格则像一个变形的C字,围在翼型的外面,如图7所示。这两种网格部属于结构网格。 图6 O型网格 图7 C型网格 4 生成网格的过程

有限元网格技巧

有限元网格技巧 1. 引言 有限元法是求解复杂工程问题的一种近似数值解法,现已广泛应用到力学、热学、电磁学等各个学科,主要分析工作环境下物体的线性和非线性静动态特性等性能。 有限元法求解问题的基本过程主要包括:分析对象的离散化?有限元求解?计算结果的处理三部分。 曾经有人做过统计:三个阶段所用的时间分别占总时间的40%~50%、5%及50%~55%。也就是说,当利用有限元分析对象时,主要时间是用于对象的离散及结果的处理。如果采用人工方法离散对象和处理计算结果,势必费力、费时且极易出错,尤其当分析模型复杂时,采用人工方法甚至很难进行,这将严重影响高级有限元分析程序的推广和使用。因此,开展自动离散对象及结果的计算机可视化显示的研究是一项重要而紧迫的任务。 可喜的是,随着计算机及计算技术的飞速发展,出现了开发对象的自动离散及有限元分析结果的计算机可视化显示的热潮,使有限元分析的“瓶颈”现象得以逐步解决,对象的离散从手工到半自动到全自动,从简单对象的单维单一网格到复杂对象的多维多种网格单元,从单材料到多种材料,从单纯的离散到自适应离散,从对象的性能校核到自动自适应动态设计/分析,这些重大发展使有限元分析摆脱了仅为性能校核工具的原始阶段,计算结果的计算机可视化显示从简单的应力、位移和温度等场的静动态显示、彩色调色显示一跃成为对受载对象可能出现缺陷(裂纹等)的位置、形状、大小及其可能波及区域的显示等,这种从抽象数据到计算机形象化显示的飞跃是现在甚至将来计算机集成设计/分析的重要组成部分。 2. 有限元分析对网格剖分的要求 有限元网格生成就是将工作环境下的物体离散成简单单元的过程,常用的简单单元包括:一维杆元及集中质量元、二维三角形、四边形元和三维四面体元、五面体元和六面体元。他们的边界形状主要有直线型、曲线型和曲面型。对于边界为曲线(面)型的单元,有限元分析要求各边或面上有若干点,这样,既可保证单元的形状,同时,又可提高求解精度、准确性及加快收敛速度。不同维数的同一物体可以剖分为由多种单元混合而成的网格。网格剖分应满足以下要求:合法性。一个单元的结点不能落入其他单元内部,在单元边界上的结点均应作为单元的结点,不可丢弃。相容性。单元必须落在待分区域内部,不能落入外部,且单元并集等于待分区域。逼近精确性。待分区域的顶点(包括特殊点)必须是单元的结点,待分区域的边界(包括特殊边及面)被单元边界所逼近。良好的单元形状。单元最佳形状是正多边形或正多面体。良好的剖分过渡性。单元之间过渡应相对平稳,否则,将影响计算结果的准确性甚至使有限元计算无法计算下去。网格剖分的自适应性。在几何尖角处、应力温度等变化大处网格应密,其他部位应较稀疏,这样可保证计算解精确可靠。 3. 现有有限元网格剖分方法 K. Ho-Le 对网格生成算法进行了系统分类,该分类方法可沿用至今,它们是拓扑分解法、结点连元法、网格模板法、映射法和几何分解法五种。目前,主要是上述方法的混合使用及现代技术的综合应用。

网格划分

有限元网格划分 摘要:总结近十年有限元网格划分技术发展状况。首先,研究和分析有限元网格划分的基本原则;其次,对当前典型网格划分方法进行科学地分类,结合实例,系统地分析各种网格划分方法的机理、特点及其适用范围,如映射法、基于栅格法、节点连元法、拓扑分解法、几何分解法和扫描法等;再次,阐述当前网格划分的研究热点,综述六面体网格和曲面网格划分技术;最后,展望有限元网格划分的发展趋势。 关键词:有限元网格划分;映射法;节点连元法;拓扑分解法;几何分解法;扫描法;六面体网格 1 引言 有限元网格划分是进行有限元数值模拟分析至关重要的一步,它直接影响着后续数值计算分析结果的精确性。网格划分涉及单元的形状及其拓扑类型、单元类型、网格生成器的选择、网格的密度、单元的编号以及几何体素。在有限元数值求解中,单元的等效节点力、刚度矩阵、质量矩阵等均用数值积分生成,连续体单元以及壳、板、梁单元的面内均采用高斯(Gauss)积分,而壳、板、梁单元的厚度方向采用辛普生(Simpson)积分。 2 有限元网格划分的基本原则 有限元方法的基本思想是将结构离散化,即对连续体进行离散化,利用简化几何单元来近似逼近连续体,然后根据变形协调条件综合求解。所以有限元网格的划分一方面要考虑对各物体几何形状的准确描述,另一方面也要考虑变形梯度的准确描述。为正确、合理地建立有限元模型,这里介绍划分网格时应考虑的一些基本原则。 2.1 网格数量

网格数量直接影响计算精度和计算时耗,网格数量增加会提高计算精度,但同时计算时耗也会增加。当网格数量较少时增加网格,计算精度可明显提高,但计算时耗不会有明显增加;当网格数量增加到一定程度后,再继续增加网格时精度提高就很小,而计算时耗却大幅度增加。所以在确定网格数量时应权衡这两个因素综合考虑。 2.2 网格密度 为了适应应力等计算数据的分布特点,在结构不同部位需要采用大小不同的网格。在孔的附近有集中应力,因此网格需要加密;周边应力梯度相对较小,网格划分较稀。由此反映了疏密不同的网格划分原则:在计算数据变化梯度较大的部位,为了较好地反映数据变化规律,需要采用比较密集的网格;而在计算数据变化梯度较小的部位,为减小模型规模,网格则应相对稀疏。 2.3 单元阶次 单元阶次与有限元的计算精度有着密切的关联,单元一般具有线性、二次和三次等形式,其中二次和三次形式的单元称为高阶单元。高阶单元的曲线或曲面边界能够更好地逼近结构的曲线和曲面边界,且高次插值函数可更高精度地逼近复杂场函数,所以增加单元阶次可提高计算精度。但增加单元阶次的同时网格的节点数也会随之增加,在网格数量相同的情况下由高阶单元组成的模型规模相对较大,因此在使用时应权衡考虑计算精度和时耗。 2.4 单元形状 网格单元形状的好坏对计算精度有着很大的影响,单元形状太差的网格甚至会中止计算。单元形状评价一般有以下几个指标: (1)单元的边长比、面积比或体积比以正三角形、正四面体、正六面体为参考基准。 (2)扭曲度:单元面内的扭转和面外的翘曲程度。 (3)节点编号:节点编号对于求解过程中总刚矩阵的带宽和波前因数有较大的影响,从而影响计算时耗和存储容量的大小

网格生成技术

I 目录 1 概述 (1) 2 结构网格 (3) 2.1 贴体坐标法 (3) 2.2 块结构化网格 (11) 3 非结构网格 (16) 3.1 概述 (16) 3.2 阵面推进法 (16) 3.3 Delaunay三角划分 (19) 3.4 四叉树(2D)/八叉树(3D)方法 (21) 3.5 阵面推进法和Delaunay三角划分结合算法 (22) 4 其他网格生成技术 (23) 4.1 自适应网格 (23) 4.2 混合网格 (25) 4.3 动网格 (26) 4.4 曲面网格 (27) 4.5 重叠网格 (28) 5 网格生成软件 (29) 5.3 Gambit (29) 5.2 ICEM CFD (30) 5.1 TrueGrid (32) 5.2 Gridgen (34)

1 概述 计算流体力学作为计算机科学、流体力学、偏微分方程数学理论、计算几何、数值分析等学科的交叉融合,它的发展除依赖于这些学科的发展外,更直接表现于对网格生成技术、数值计算方法发展的依赖。 在计算流体力学中,按照一定规律分布于流场中的离散点的集合叫网格(Grid),分布这些网格节点的过程叫网格生成(Grid Generation)。网格生成是连接几何模型和数值算法的纽带,几何模型只有被划分成一定标准的网格才能对其进行数值求解,所以网格生成对CFD至关重要,直接关系到CFD计算问题的成败。一般而言,网格划分越密,得到的结果就越精确,但耗时也越多。1974年Thompson等提出采用求解椭圆型方程方法生成贴体网格,在网格生成技术的发展中起到了先河作用。随后Steger等又提出采用求解双曲型方程方法生成贴体网格。但直到20世纪80年代中期,相比于计算格式和方法的飞跃发展,网格生成技术未能与之保持同步。从这个时期开始,各国计算流体和工业界都十分重视网格生成技术的研究。上个世纪90年代以来迅速发展的非结构网格和自适应笛卡尔网格等方法,使复杂外形的网格生成技术呈现出了更加繁荣发展的局面。现在网格生成技术已经发展成为CFD的一个重要分支,它也是计算流体动力学近20年来一个取得较大进展的领域。也正是网格生成技术的迅速发展,才实现了流场解的高质量,使工业界能够将CFD的研究成果——求解Euler/NS方程方法应用于型号设计中。 随着CFD在实际工程设计中的深入应用,所面临的几何外形和流场变得越来越复杂,网格生成作为整个计算分析过程中的首要部分,也变得越来越困难,它所需的人力时间已达到一个计算任务全部人力时间的60%左右。在网格生成这一“瓶颈”没有消除之前,快速地对新外形进行流体力学分析,和对新模型的实验结果进行比较分析还无法实现。尽管现在已有一些比较先进的网格生成软件,如ICEM CFD、Gridgen、Gambit等,但是对一个复杂的新外形要生成一套比较合适的网格,需要的时间还是比较长,而对于设计新外形的工程人员来说,一两天是他们可以接受的对新外形进行一次分析的最大周期。要将CFD从专业的研究团体中脱离出来,并且能让工程设计人员应用到实际的设计中去,就必须首先解决网格生成的自动化和即时性问题,R.Consner等人在他们的一篇文章中,详细地讨论了这些方面的问题,并提出:CFD研究人员的关键问题是“你能把整个设计周期缩短多少天?”。而缩短设计周期的主要途径就是缩短网格生成时间和流场计算时间。因此,生成复杂外形网格的

并行网格生成技术

并行网格生成技术 分类 基于以下三种网格生成技术:Delaunay 网格前沿法,边细分法。 并行网格生成将原始网格生成问题划分成N个子问题来求解。 子问题的求解可分为以下三种形式: 紧耦合,部分耦合,无耦合。 并行网格生成中的难点在于 1.维持并行算法的稳定性,使得并行算法的结果正确。 2.代码重用:将原始算法移植为并行算法时不需要改动原始算法代码,并且能保证并行算法的正确性。 基于Delaunay的方法 空洞算法: 上述算法并行化后引发如下问题:

图(a)中两个空洞相交,使得产生的三角剖分边相交。 图(b)中两个空洞共享一条边,使得最终产生的剖分可能不满足德劳内空圆准则。 紧耦合算法: Parallel Optimistic Delaunay Meshing Method (PODM) PODM算法对子网格划分没有要求,这个算法通过重新划分子网格边界来保证算法稳定性。如下图(a)所示,空洞扩展到子区域之外时,将通过子区域之间的通信来保证算法的正确性。因此,这个算法是紧耦合的,不具备代码重用性。 图(a)是空洞扩展到子区域之外的情况。 图(b)是并行插入时的同步时间图。 无耦合算法: Parallel Projective Delaunay Meshing (PPDM) PPDM算法的基本思想是预先计算出Delaunay-admissible子区域边界。即,最终生成的Delaunay剖分将包括这个边界。

这样,每个子网格就可以完全独立的计算各自剖分。 因此,这个算法是无耦合并且是可完全代码复用的。 生成Delaunay-admissible子区域边界的基本思想如下: 先生成三维点集的一个凸壳。首先用Inertia Axis分割法将凸壳用平面II分成两个近似相等 的部分。然后搜索所有三角面(如上图),使得存在一个空球,球心在平面II上,球面经过P,Q,R且球内不包含其它任何点。这样,这些三角面就构成了一个Delaunay-admissible边界。 部分耦合算法: Parralel Constrained Delaunay Meshing (PCDM) method

有限元网格剖分方法概述

有限元网格剖分方法概述 在采用有限元法进行结构分析时,首先必须对结构进行离散,形成有限元网格,并给出与此网格相应的各种信息,如单元信息、节点坐标、材料信息、约束信息和荷载信息等等,是一项十分复杂、艰巨的工作。如果采用人工方法离散对象和处理计算结果,势必费力、费时且极易出错,尤其当分析模型复杂时,采用人工方法甚至很难进行,这将严重影响高级有限元分析程序的推广和使用。因此,开展自动离散对象及结果的计算机可视化显示的研究是一项重要而紧迫的任务。 有限元网格生成技术发展到现在, 已经出现了大量的不同实现方法,列举如下: 映射法 映射法是一种半自动网格生成方法,根据映射函数的不同,主要可分为超限映射和等参映射。因前一种映射在几何逼近精度上比后一种高,故被广泛采用。映射法的基本思想是:在简单区域内采用某种映射函数构造简单区域的边界点和内点,并按某种规则连接结点构成网格单元。也就是根据形体边界的参数方程,利用映射函数,把参数空间内单元正方形或单元三角形(对于三维问题是单元立方体或单元四面体)的网格映射到欧氏空间,从而生成实际的网格。这种方法的主要步骤是,首先人为地把分析域分成一个个简单可映射的子域,每个子域为三角形或四边形,然后根据网格密度的需要,定义每个子域边界上的节点数,再根据这些信息,利用映射函数划分网格。 这种网格控制机理有以下几个缺点: (1)它不是完全面向几何特征的,很难完成自动化,尤其是对于3D区域。 (2)它是通过低维点来生成高维单元。例如,在2D问题中,先定义映射边界上的点数,然后形成平面单元。这对于单元的定位,尤其是对于远离映射边界的单元的定位,是十分困难的,使得对局部的控制能力下降。 (3)各映射块之间的网格密度相互影响程度很大。也就是说,改变某一映射块的网格密度,其它各映射块的网格都要做相应的调整。 其优点是:由于概念明确,方法简单,单元性能较好,对规则均一的区域,适用性很强,因此得到了较大的发展,并在一些商用软件如ANSYS等得到应用。 2 。拓扑分解法 拓扑分解法较其它方法发展较晚, 它首先是由Wordenwaber提出来的。该方法假设最后网格顶点全部由目标边界顶点组成, 那么可以用一种三角化算法将目标用尽量少的三角形完全分割覆盖。这些三角形主要是由目标的拓扑结构决定, 这样目标的复杂拓扑结构被分解成简单的三角形拓扑结构。该方法生成的网格一般相当粗糙, 必须与其它方法相结合, 通过网格加密等过程, 才能生成合适的网格。该方法后来被发展为普遍使用的目标初始三角化算法, 用来实现从实体表述到初始三角化表述的自动化转换。 单一的拓扑分解法因只依赖于几何体的拓扑结构使网格剖分不理想,有时甚至很差。 3.连接节点法 这类方法一般包括二步:区域内布点及其三角化。早期的方法通常是先在区域内布点, 然后再将它们联成三角形或四面体, 在三角化过程中, 对所生成的单元形状难于控制。随着Delaunay三角化(简称为DT ) 方法的出现, 该类方法已成为目前三大最流行的全自动网格生成方法之一。 DT法的基本原理:任意给定N个平面点Pi(i=1,2,…,N)构成的点集为S,称满足下列条件的点集Vi为Voronoi多边形。其中,Vi满足下列条件: Vi ={ X:|X- Pi|(|X- Pj|,X(R2,i(j,j=1,2,…,N }Vi为凸多边形,称{ Vi}mi=1为Dirichlet Tesselation

三种经典网格细分算法的研究与分析

三种经典网格细分算法的研究与分析 摘要:曲面造型方法由于其局部性好、计算量小、算法简中、响应速度高等优点. 已经广泛应用于计算机图形学、CAGD、计算机动画以及虚拟现实领域。网格细分是一种离散造型方法.可以从数字化仪等设备直接获得数据。介绍了近年来提出的 一些细分算法.对其中几种比较经典的算法进行了简中的分类和比较,论述了各自 的适用范围。 关键词:细分逼近插值 中图法分类号:TP391 文献标识码:A 0 引言 细分思想的产生可以追溯到二十世纪40年代末50年代初,当时G. de Rham 使用“砍角算法”描述光滑曲线的生成。细分曲线中常用的许多算法均是砍角算法。1974年,Chaikin在研究曲线的快速绘制时把离散细分的概念引入到图形学 界:1978年Catmnll和Clark[1]以及Doo和Sabin[2]分别发表了一篇在图形学领域具有里程碑意义的论文,也就是图形学界推崇的Catmul- Clark算法和Doo -Sabin算法,标志着网格细分方法研究的真正开始:1987年,Loop在他的硕士论文中提出 了Loop[3]细分策略,细分造型方法的实质是通过对初始控制点或者初始网格进行一系列的细化过程,细化的极限生成所需要的曲线或者曲面。细分造型方法与传 统样条、代数方法、变分造型等方法相比,在执行效率、任意拓扑结构、细分曲 面特征以及复杂几何形状等方面都有其独特的优势。 1 网格细分算法的分类及比较 1.1 概念与术语定义1 对于四边形网格M中的任一顶点v,如果v为内部顶 点且价不等于4或v为边界顶点且价不等于3 或2,则称v为奇异顶点。非奇异 顶点称为正则顶点。 定义2 权图(Masks)表示旧控制点计算新控制点规则的映射,其中新控制点在 映射中用黑点表示,在每个旧控制点旁边的数字代表细分系数。 定义3 奇点(Odd Vertices)是在每一级细分中,按照某种细分规则所有新生成 的点.在三角网格中,奇点也就是边点,实际上是将每条边的中点作为一个新点重 新计算新的位置所得到的点. 定义4 偶点是在每一级细分中,所有从上一级控制点继承得到的点. 定义5 某顶点的价(Valence)是指与该顶点通过公共边相连的顶点个数. 定义6 在一个网格中,如果的一条边只属于一个面,称这条边为边界边(boundary edge):如果一个顶点属于边界边则称此顶点为边界顶点(或边界点,boundary vertex):至少包含一个边界顶点的面称为边界面(boundary face)。非边界 的边、顶点和面分别称为内部边(internal edge)、内部顶点(internal vertex)和内部 面(internal face) 1.2 细分算法的分类一般情况卜,对几何网格细分算法的分类包括以下四个标 准:①生成网格的类型(三角网格和四角网格);②细分规则的类型(面分裂和点分裂);③算法是逼近型还是插值型;④规则曲面的极限曲面光滑性(C1,C2等)。 在现有的典型细分算法中,面分裂的细分方法,实际上就是一种1- 4的细分 策略,对于三角网格,在每一次细分过程中,保留每个三角网格中所有旧控制点 的同时,在网格的每条边上插入新点并两两相连,然后与旧控制点一起得到四个 新的三角网格;对于四角网格,除了在网格的每条边上插入新点外,还需要在网 格中间另外插入一个新点并与另外四条边上的新点相连,从而得到四个新的四角

网格中的三角形

网格中的三角形 河北张家口市第十九中学 贺峰 随着新课程的实施,在近几年的中考试卷中出现了许多新颖的网格型试题,这类试题具有很强的直观性、可操作性、开放性及综合性等特点,不仅能够考查学生的数学知识,体现分类、数形结合等重要的数学思想,同时也考查和培养学生的识图、归纳、动手操作、自主探究等多种能力,有利于培养学生的探究意识和创新精神。现以近几年中考试题中出现的“网格中的三角形”为例,为同学们加以归类分析: 一、网格中的“等面积三角形” 例1 已知在正方形网格中,每个小方格都是边长为1的正方形,A 、B 两点在小方格的顶点上,位置如图1所示,点C 也在小方格的顶点上,且以A 、B 、C 为顶点的三角形面积为1,则点C 的个数为( ) (A )3个 (B )4个 (C )5个 (D )6个 析解:此题以网格为载体来考查同学们等面积三角形的构成,体现分类讨论思想,若使点C 在小方格的顶点上,且以A 、B 、C 为顶点的三角形面积为1, 即保证△ABC 的底为2,高为1,因此须分类讨论的思想方法,即按AC =2时、BC =2时进行分类求解。答案如图2所示: 说明:此题也可通过对图形对称变换进行求解,即确定第(1)、(3)、(5)三种情况,分别以AB 所在的直线为对称轴将△ABC 翻折,使点C 落在格点上即可求解。 即可求解。 二、网格中的“等腰三角形” 例2如图3所示,A 、B 是4×5网络中的格点,网格中的每个小正方形的边长为1,请在图中清晰标出使以A 、B 、C 为顶点的三角形是等腰三角形的 所有格点C 的位置. 析解:此题以网格为载体来考查同学们等腰三角形的构成,体现分类讨论思 想,若使点C 在小方格的顶点上,且以A 、B 、C 为顶点的三角形为等腰三角形,即保证△ABC 中AB =AC 或AB =BC 或AC =AB ,即分别以AC 、AB 、BC 为腰时进行分类求解。答案如图4所示: 说明:此题也可通过对图形旋转变换进行求解,即以AB 为腰,分别以点A 、点B 为旋转中心,将线段AB 进行旋转,使点B 、点A 落在格点上即可求解。 三、网格中的“直角三角形” 例3如图5,正方形网格中,小格的顶点叫做格点,小华按下列要求作图: ①在正方形网格的三条不同实线上各取一个格点,使其中任意两点不在同一条实线 上;②连结三个格点,使之构成直角三角形, 小华在左边的正方形网格中作出了Rt △ABC ,请你按照同样的要求,在右边的两个 正方形网格中各画出一个直角三角形,并使三个网格中的直角三角形互不全等。 析解:此题开放性很强, 给学生广阔的思维空 图1 A 图3 图 4 A B C 图5 图6 C C C C C C (1) (2) (3) (5) (6) 图2

有限元网格划分及发展趋势

有限元网格划分及发展趋势 摘要:总结近十年有限元网格划分技术发展状况。首先,研究和分析有限元网格划分的基本原则;其次,对当前典型网格划分方法进行科学地分类,结合实例,系统地分析各种网格划分方法的机理、特点及其适用范围,如映射法、基于栅格法、节点连元法、拓扑分解法、几何分解法和扫描法等;再次,阐述当前网格划分的研究热点,综述六面体网格和曲面网格划分技术;最后,展望有限元网格划分的发展趋势。关键词:有限元网格划分;映射法;基于栅格法;节点连元法;拓扑分解法;几何分解法;扫描法;六面体网格 1 引言 作为有限元走向工程应用枢纽的有限元网格划分,是有限元法的一个非常重要的研究领域,经历了40多年的发展历程。有限元网格划分算法研究中的某些难点问题始终未能得到真正意义上的解决,它们的解决对工程问题具有重要的现实价值和理论意义。有限元分析的基本过程可分为三个阶段:有限元模型的建立(即前处理)、有限元解算、结果处理和评定(即后处理)。根据经验,有限元分析各阶段所用的时间为】 【1:40%-45%用于模型的前处理,50%-55%用于后处理,而分析计算只占5%左右;更有文献】 【2指出有限元建模占有限元分析一半以上的工作量,甚至高达80%。因此,有限元分析的前后处理一直都是有限元分析的瓶颈问题,严重地阻碍着有限元分析技术的应用和发展。 许多学者对有限元网格生成方法近30年的研究进行了概括和总结】 【4。近年来,【3,对某些重要分支领域的研究进展方面也做出了贡献】 有限元网格生成方法研究有两个显著特点:(1)经历了一个进化过程,一些方法的研究与应用出现停滞,而另外一些方法在不断地深入、完善和发展,成为适应性强、应用范围广泛的通用方法;(2)领域和主题在不断扩展和深入,研究重点由二维平面问题转移到三维曲面和三维实体问题,从三角形、四面体网格自动生成转移到四边形、六面体网格自动生成。 2 有限元网格划分的基本原则 有限元方法的基本思想是将结构离散化,即对连续体进行离散化,

网格线中的三角函数问题

龙源期刊网 https://www.360docs.net/doc/e213950554.html, 网格线中的三角函数问题 作者:周宏伟 来源:《初中生世界·九年级》2016年第12期 在我们常见的网格线中,有很多三角函数求值问题,题中蕴含着很多思想方法,为便于大家复习,现归纳如下,供大家在学习过程中参考. 一、补形的策略 例1 (2015·山西)如图1,在网格中,小正方形的边长均为1,点A、B、C都在格点上,则∠ABC的正切值是(). A.2 B.[255] C.[55] D.[12] 【方法探究】如何把∠ABC放在某个直角三角形中是解决本题的关键,仔细观察可以发现:AB在小正方形的对角线上,能联想到45°角,只要连接AC即可构造出直角,然后在直角三角形中运用三角函数的定义求解. 【过程展示】如图2,连接AC,则∠CAB=90°,在Rt△ABC中, tan∠ABC=[ACAB]=[12].故选D. 例2 (2016·福建福州)如图3,6个形状、大小完全相同的菱形组成网格,菱形的顶点称为格点.已知菱形的一个角(∠O)为60°,A、B、C都在格点上,则tan∠ABC的值是 . 【方法探究】观察网格的特点,首先考虑如何将∠ABC放到一个直角三角形中,这是解 决问题的关键. 【过程展示】如图4,连接DA,DC,则点B、C、D在同一直线上,设菱形的边长为a,由题意得∠ADF=30°,∠BDF=60°,∴∠ADB=90°, AD=[3a],DB=2a,tan∠ABC=[ADBD]=[3a2a]=[32],故答案为[32]. 二、转化的思想 例3 (2012·江苏泰州)如图5,在由边长相同的小正方形组成的网格中,点A、B、C、D 都在这些小正方形的顶点上,AB、CD相交于点P,则tan∠APD的值为 . 【方法探究】直接求∠APD的正切值比较困难,可以考虑利用线段的平移对∠APD进行转化,找出它的“替身”,然后进行求解,以达到化难为易的目的.

基于三维网格模型的网格排布优化技术综述

科学与财富 0引言 近年来,随着计算机图形软硬件技术的提高及人们对绘制效果的要求越来越高,计算机图形学研究和应用呈现出场景对象越加复杂,对绘制真实感的要求越来越高,显示分辨率不断递增,模型趋于复杂化,数据精度要求较高等问题。基于此提出了提高绘制性能的主要途径:GPU加速技术,并行绘制技术,可见性剔除技术,网格简化技术,多分辨率绘制技术,存储访问优化技术,基于图像的绘制技术,图像和网格压缩技术,基于预计算的绘制技术等。 对于计算机硬件性能的不断提高,存储访问带宽与计算能力的差距越来越大,因此缓存访问效率成为影响应用程序运行效率的关键因素。而要改善缓存的性能有以下几种方法:①降低缓存访问失配率;②降低失配损失;③通过并行技术降低失配率或是失配损失;④减少命中缓存的时间。降低缓存访问失配率,可以从提高缓存硬件性能与编译优化等方面来解决,其原理是:通过调整指令顺序和数据的使用顺序,增强代码和数据使用的时间局部性和空间局部性特征,从而提高缓存命中率。体系结构方面,通过缓存硬件性能来提高缓存访问效率。应用程序方面,采用编译优化不需要修改或者增加硬件,可分为计算重排和数据重排。 计算重排,根据重新排列指令顺序,提高访问相同数据单元指令的局部性,通常由编译器对应用程序编译后的指令序列进行重排来完成,对于指令,重新组织程序而不影响程序的正确性。数据重排,根据指令对数据单元的访问方式求解出缓存连贯的数据排布,由应用程序直接对数据进行重排来完成,通过优化改善了数据的空间局部性和时间局部性[1]。目前网格排布优化技术是计算机图形学与可视化领域的重点研究方向之一,该技术基于数据重排,通过对网格图元的存储顺序进行重新排序,能够减少平均缓存访问失配率,提高大型三维网格模型和大规模虚拟场景的处理和绘制性能。 2网格排布优化技术 顶点缓存的访问性能通常用平均缓存失配率(ACMR)来衡量,定义为绘制每个三角形的平均缓存失配次数,即缓存的总失配次数与总访问次数之比,ACMR的取值范围为[0.5,3.0],因为每个顶点至少失配一次,至多失配三次。需要注意的是,ACMR无法达到最小值,主要是因为顶点缓存区容量的限制。若顶点缓存区可以装下所有顶点,则以任何方式组织的三角形都可以使ACMR接近于0.5。但是缓存容量很小,很难装下所有的顶点,并且网格的形状也会导致ACMR额外的开销。 2.2.1网格排布优化方法的分类 网格排布优化技术是图排布理论的应用与引伸,根据不同的划分方式可以将网格排布优化技术分成不同的类。根据求解技术手段的不同,网格排布优化技术可分为基于优化策略、基于空间填充曲线和基于谱序列三类[1],现代的GPU使用一个小的缓冲区来存储最近需要访问的顶点,为了最大化的利用好顶点缓存用于快速渲染的优点,对三角形进行重排序是必要的,基于优化策略即使用了这一优点。基于空间填充曲线是对二维或者三维规则网格单元的一种具有较好空间局部性的特殊线性遍历方法,是在某种程度上保留局部相关性的多维网格单元遍历。基于谱序列方法是通过特定的线性算子推导出相关的特征性、特征向量以及特征空间投影,并利用这些特征量和组合求解出问题。因为谱序列是求解图排布问题的一个有效引导策略,所以也可以应用到网格排布技术中。 根据网格描述方式的不同,可分为基于三角形、基于三角形条带、基于三角形扇[3],或者简单分为基于条带和基于非条带两种方式,每种描述方式又可分为索引形式和三角形汤形式。三角形扇和三角形条带类似,但是不如三角形条带灵活,所以很少使用。索引形式只需少量数据,传输代价小,使之成为目前使用最为普遍的方式,但顶点随机读取也带来了ACMR的增加。因此许多研究者提出对网格图元的存储顺序进行重新排布,可以减小 ACMR,降低顶点处理的运算量,提高渲染速度。 2.2.2三角形排布优化算法的介绍 为提高网格模型的处理和绘制性能,现代图形卡使用顶点缓冲器来提高顶点缓存命中率,使模型在绘制过程中减少发送的顶点数据。有效利用顶点缓冲器,在已有的图形绘制流水线基础上,通过重新排列网格模型图元的线性序列,增加缓存中顶点的命中率。下面对国内外几种常见的相关算法做一个简要的介绍。 Hoppe(Hoppe.1999)提出了一种贪心条带算法生成三角形序列[4],该算法是基于优化策略和三角形条带的研究,核心思想是沿着逆时针方向生成条带,进行三角形条带合并,在合并的过程中不断检测预期的ACMR。此算法针对一个预先指定的缓存大小,比如16,对算法进行优化求解,使用FI-FO策略对三角形进行重排,采用了三角形条带索引模式。Hoppe算法可以得到很低的平均缓存失配率,其运算时间复杂度高于O(m),该算法也存在一些待解决的问题,在网格的顶点索引中很难确定三角形的拓扑方向,对可能合并入条带的三角形进行ACMR的预估会增加算法的复杂度。Bogomjakov等人(2002)提出的面向具有任意大小的FIFO缓存的通用序列构造算法(称为BoG算法)[5],是一种最具代表性的空间填充曲线。该算法把Hilbert空间填充曲线和MLA空间填充曲线的应用推广到不规则三角网格,使用图划分软件包Metis将网格分成多个三角形簇,保证每个簇内三角形序列的ACMR最优,从而形成整个网格的ACMR最优化。该算法在相同缓存参数前提下,AMCR指比Hoppe算法增大20%左右,分割的切割边上的失配率对整体失配率有影响。 Lin等人(Lin and Thomas.2006)算法则是基于贪心优化策略的3D渲染多边形网格序列生成算法[6],该算法适用于非条带三角形的排布优化,可以应用于渐进网格,应用启发式条件对网格顶点进行全局搜索,同样可以得到很低的平均缓存失配率,其运算时间复杂度也高于O(m)。核心思想是赋予每个顶点一个缓存访问代价度量,选择代价度量最小的顶点作为当前输出顶点,找到与该顶点邻接的所有未输出三角形,按顺时针方向访问并逐一将这些三角形的顶点压入缓存中,最后以三角形环为单位逐一输出三角形,并在整个网格中对下一个需要输出的三角形环进行全局最优性搜索。Nehab等人(Nehab et al.2006)提出了一种多功能三角形序列重排算法[7],该算法不仅能减少顶点缓存的平均缓存失配率,而且能减少图元的重绘率(通过深度测试的片元总数与最终可见的像素总数之比),作者首先提出通过局部优化减少顶点处理时间,同时通过三角形序列重排减少像素处理时间是自相矛盾的,原因是基于视点的深度排序会毁掉顶点缓存性能,且局部优化会导致当前视点下的高度透支。基于此提出了基于优化策略的多功能三角形序列重排算法,实现两者之间的融合。 Sander等人(Sander et al.2009)对Lin等人算法进行了改进,使三角形排布适用于动态模型[8]。其核心思想是以顶点在缓存中的位置作为代价度量,选出代价度量最小的顶点作为当前顶点,即以三角形环作为计算单位,然后输出与该顶点邻接的所有未输出三角形(随机访问),与Lin等人算法 基于三维网格模型的网格排布优化技术综述 娄自婷 (云南师范大学信息学院,云南昆明650500) 摘要:网格排布优化技术通过对网格图元的存储顺序进行重新排序,能够减少平均缓存访问失配率,提高大型三维网格模型和大规模虚拟场景的处理和绘制性能。文中综述了网格排布优化技术的研究进展,分析比较了基于优化策略、基于空间填充曲线和基于谱序列的网格排布优化方法。 关键词:三维网格模型,网格排布优化;ACMR A Survey of mesh layout optimization for3D mesh models LOU Ziting (College of computer science and information technology,Yunnan Normal University,Kunming City Yunnan Province650500,China) Abstract:The mesh layout technology through storage order of the mesh primitive reorder,can reduce the average cache miss rate and improve the process-ing and rendering performance of large3D mesh models and large-scale virtual scene.This paper gives an introduction to advances in technology mesh layout optimization.We analyze and compare the mesh layout optimization method based optimization strategy,space-filling curve and spectral sequences. Keywords:3D mesh models,Mesh layout optimization;ACMR 科学论坛 536

ANSYS有限元网格划分的基本要点

ANSYS有限元网格划分的基本要点 1引言 ANSYS有限元网格划分是进行数值模拟分析至关重要的一步,它直接影响着后续数值计算分析结果的精确性。网格划分涉及单元的形状及其拓扑类型、单元类型、网格生成器的选择、网格的密度、单元的编号以及几何体素。从几何表达上讲,梁和杆是相同的,从物理和数值求解上讲则是有区别的。同理,平面应力和平面应变情况设计的单元求解方程也不相同。在有限元数值求解中,单元的等效节点力、刚度矩阵、质量矩阵等均用数值积分生成,连续体单元以及壳、板、梁单元的面内均采用高斯(Gauss)积分,而壳、板、梁单元的厚度方向采用辛普生(Simpson)积分。辛普生积分点的间隔是一定的,沿厚度分成奇数积分点。由于不同单元的刚度矩阵不同,采用数值积分的求解方式不同,因此实际应用中,一定要采用合理的单元来模拟求解。 2ANSYS网格划分的指导思想 ANSYS网格划分的指导思想是首先进行总体模型规划,包括物理模型的构造、单元类型的选择、网格密度的确定等多方面的内容。在网格划分和初步求解时,做到先简单后复杂,先粗后精,2D单元和3D单元合理搭配使用。为提高求解的效率要充分利用重复与对称等特征,由于工程结构一般具有重复对称或轴对称、镜象对称等特点,采用子结构或对称模型可以提高求解的效率和精度。利用轴对称或子结构时要注意场合,如在进行模态分析、屈曲分析整体求解时,则应采用整体模型,同时选择合理的起点并设置合理的坐标系,可以提高求解的精度和效率,例如,轴对称场合多采用柱坐标系。有限元分析的精度和效率与单元的密度和几何形状有着密切的关系,按照相应的误差准则和网格疏密程度,避免网格的畸形。在网格重划分过程中常采用曲率控制、单元尺寸与数量控制、穿透控制等控制准则。在选用单元时要注意剪力自锁、沙漏和网格扭曲、不可压缩材料的体积自锁等问题 ANSYS软件平台提供了网格映射划分和自由适应划分的策略。映射划分用于曲线、曲面、实体的网格划分方法,可使用三角形、四边形、四面体、五面体和六面体,通过指定单元边长、网格数量等参数对网格进行严格控制,映射划分只用于规则的几何图素,对于裁剪曲面或者空间自由曲面等复杂几何体则难以

网格中的三角函数

网格中的锐角三角函数 网格是学生从小就熟悉的图形,在网格中研究格点图形,因为网格中隐含着直角和单位长度,所以具有很强的可操作性.现在新课程标准对学生在数学思考能力和解决问题能力等方面越来越重视。而格点问题主要考查学生的直觉推理能力和问题探究能力。并且格点问题操作性强、趣味性浓,体现了新课标的“在玩中学,在学中思,在思中得”的崭新理念。因此格点问题可以通过考试促进教师在教学过程中贯彻新课标的理念。 一、在网格中表示坐标平面内的点与有序实数对是一一对应的.【例1】已知△ABC 在直角坐标系中的位置如图所示,如果△A'B'C' 与△ABC 关于y轴对称,那么点A的对应点A'的坐标为().A.(-4,2) B、(-4,-2) C.(4,-2) D.(4,2) . [解析] 根据轴对称的性质,y轴垂直 平分线段AA',因此点A与点A'的横 坐标互为相反数,纵坐标相等.点A(- 4,2) ,因此A'(4,2).选D. 练习1.(2014?湘潭)在边长为1的小 正方形网格中,△AOB的顶点均在格 点上, (1)B点关于y轴的对称点坐标 为; (2)将△AOB向左平移3个单位长

度得到△A 1O 1B 1,请画出△A 1O 1B 1; (3)在(2)的条件下,A 1的坐标为 . 一、在网格中运用勾股定理进行计算. 【例1】如图1是由边长为1m 的正方形地砖铺设的地面示意图,小明沿图中所示的折线从A →B →C 所走的路程为_______m .(结果保留根号) [解析] 推导两点间的距离公式是以勾股定理为基础的,网格中两个格点间的距 离当然离不开构造直角三角形,可以看到,AB 、BC 分别是直角边为1、2的两个直角三角形的斜边,容易计算 AB+BC=二、在网格中求一个锐角的三角函数。 【例2】(2014?贺州)网格中的每个小正方形的边长都是1,△ABC 每个顶点都在网格的交点处,则sinA= . [解析] ∠A 是△ABC 中的一个锐角,而△ABC 不是直角三角形,不能直接运用三角函数公式进行计算, 必须先构造直角三角形,使∠A 在一个直角三角形中,然后求出所对应的斜边和对边,而后解决问题。 图3-1 图3-2 A 图1

相关文档
最新文档