三维网格模型离散及轻量化处理技术

1.网格模型数据离散介绍

随着装备结构复杂度和技战术指标不断提升,精细化网格模型规模快速增长,同时计算机计算能力不断提高,有限元分析求解规模不再局限,基于图形可视化的精细化分析成为常规分析手段。这就对与求解密切相关的图形可视化技术提出巨大挑战。

网格单元数据类型及离散数据表现形式如下表所示

单元类型

CAE数据

离散数据

Triangle

Quad

Tetrahedron

Hexahedron

Pyramid

Pentahedron

2.网格轻量化关键技术

1.外部面提取

在图形渲染过程中,一般情况下由于遮挡关系,最终的图像只会显示网格图形的表面网格,这是正常的视觉效果。因此,在渲染网格图形前,对网格表面的图形进行提取,将其作为图形渲染的数据来源,既可以保证正常的实现效果,也可以避免图形渲染资源的无效使用。

基于有限元网格几何拓扑关系的最小节点相关面表的方法,可快速得到位于结构表面的单元面的集合。

如图所示为三单元的实体表示模型。

图中f1,f2…f6分别表示单元的6个单元面,它们围成了一个单元实体;N1,N2,N8分别是单元的8个结点。单元面定义为有序结点按右手法则取向,且将单元面中结点号最小的结点作为单元面有序结点组的第一个结点,单元面的外法矢即为结点序列按右手法则的取向。例如,假设N1N8是从小到大的结点号,则

 (1)

基于最小节点相关面表法

Step1:首先建立一个结点相关面表

Step2:对各单元进行如下处理:

依照以上提出的单元实体模型,按式(1)形成单元的各个单元面;将各个单元面分别加入结点相关面表;各面的第一个结点的整体编号即为其在结点相关面表中所属的结点。对于图所示的单元,各结点的相关面表分别为

对所有单元进行上述处理后,就形成了结构的最小结点相关面表。

Step3:剔除内部单元面,形成外部单元面即结构边界面。

事实上,由于单元面的第一个结点是该单元面中结点号最小的结点,因此用上述方法形成的结点相关面表中,各表项是相互独立的。即在不同的结点的相关面中没有重合的单元面,重合的单元面只可能出现在相同结点的相关面中,对于某一结点而言,其相关面的数目是比较少的,这样就大大减少了单元面重合判断的计算量。对非空的Hi中的各相关面进行比较,剔除其中包含的结点的整体编号完全相同的单元面,剩余的即为结构的边界面的集合。

2.消除外部隐藏面

对于结构边界面,用其外法向与观察方向的夹角初步判断单元面的可见性,得到结构边界面中的可能可见单元面。在边界单元面表中,一部分单元面是绝对不可见的,是隐藏面,另一部分被称为可能可见单元面。为搜索出可能可见单元面,可根据单元面的外法向和观察方向夹角的余弦来确定。若余弦<0,则单元面的外法矢在Z轴上的投影和Z轴正方向相反,反映到空间则说明该法线代表的平面是朝着观察者的,即为可能可见单元面。

3.网格消隐显示算法 

对于三维网格模型的显示,无论是只显示网格单元还是要进行渲染,都需要进行消隐处理,使网格图形具有较强的真实感和立体感,便于检查剖分情形及显示计算结果。目前主要的消隐算法有: Z 缓冲区算法、画家算法、扫描线算法和区域采样算法。在这些经典的消隐算法中,Z 缓冲区( Z.buffer) 算法比较适合于处理结构化网格的消隐问题。Z缓冲区算法,不仅需要有帧缓存来存放每个象素的颜色值,还需要一个深度缓存 (Z缓冲区)来存放每个象素的深度值。Z缓冲区单元个数和屏幕上像素的个数相同,也和帧缓冲区的单元个数相同,而且它们之间是一一对应的。下图反映了屏幕、帧缓冲区、Z缓冲区之间的对应关系 (屏幕由所有的像素点绘制而成,帧缓冲区每个单元存放对应像素的颜色值,Z缓冲区的每个单元存放对应像素的深度值一即 Z坐标),在OpenGL的渲染机制中已经存在利用Zbuffer进行消隐的算法。

Z 缓冲器中每个单元的值是对应像素点所反映对象的z 坐标值。Z 缓冲器中每个单元的初值取成z 的极小值,帧缓冲器每个单元的初值可放对应背景颜色的值。图形消隐的过程就是给帧缓冲器和Z 缓冲器中相应单元填值的过程。在把显示对象的每个面上每一点的属性( 颜色或灰度) 值填入帧缓冲器相应单元前,要把这点的z坐标值和Z 缓冲器中相应单元的值进行比较。只有前者大于后者时才改变帧缓冲器的那一单元的值,同时Z 缓冲器中相应单元的值也要改成这点的z 坐标值。如果这点的z 坐标值小于Z 缓冲器中的值,则说明对应像素已经显示了对象上一个点的属性,该点要比考虑的点更接近观察点。对显示对象的每个面上的每个点都做上述处理后,可得到消除了隐藏面的图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值