CAx软件开发技术专题:后处理可视化常用算法

36 篇文章 125 订阅
5 篇文章 2 订阅

后处理可视化是CAx软件的重要组成模块。开源代码VTK以其跨平台丰富的数据结构与算法可扩展性易用性等特点而逐渐成为了CAx软件后处理首选的技术方案。

虽然VTK提供了相对完备的后处理功能,但要用好这些后处理代码,却需要对相关后处理算法有一定研究和理解。

另外,随着问题规模激增与软硬件发展,大数据集问题与大规模计算逐渐成为了可视化研究的热点,涌现出了一系列全新的后处理可视化算法,非常有必要对这些新的研究成果予以分析总结。

因此,本文拟从应用角度总结了常用的相关算法。希望对从事国产CAx软件研发的朋友们有所帮助。

注1:限于笔者研究水平,难免有不当指出,欢迎批评指正。

注2:博文内容会不定期更新,欢迎关注与讨论。

一、等值线(面)生成算法

设标量场F=F\left ( x,y,z \right ),则对于某一标量值q,可知F\left ( x,y,z \right )=q对应三维空间中某一曲面,称此曲面为对应于标量值q的等值面。对于二维问题,等值面退化为等值线。

MarchingCube、FlyingEdges是常用的等值线(面)数值求解算法。

1.1 MarchingCube算法

MarchingCube算法是是W.Lorensen等人于1987年提出来的曲面重建技术,原理简单且容易实现,因此,得到了广泛的应用。

不失一般性,这里以六面体网格来说明MarchingCube算法的实现步骤:

  • 根据一定的规则遍历所有的单元;
  • 对于每一个单元,设F_{i}为顶点i处的场变量,q为等值线目标值,构造如下的符号函数

        \delta _{i}=\left\{\begin{matrix} 1, F_{i}\geqslant q\\ -1,F_{i}<q \end{matrix}\right.

  • 依据\delta _{i}在8个顶点的分布情况,总共有2^{8}=256种情况,如果考虑到对称性,则可以简化为下图的15种情况。
Ref. from vtkContourFilter
  •  针对不同的情况,在六面体单元内通过插值构造三角形面片。

对于二维问题,MarchingCube算法退化为MarchingSquare算法,算法相应地可以得到简化。

1.2 FlyingEdges算法

FlyingEdges算法是Kitware公司Schroeder W 等2015年公开的一套高效的等值面、等值线生成算法。

FlyingEdges算法流程为:

  • 沿着x方向生成顶点符号值,确定有效范围;

  • 根据单元顶点符号值,查找MarchignCube分类表格,确定切割类型;

  • 根据切割分类,配置存储空间等;
  • 生成切割点、切割面等数据;

二、流线生成算法

参考文献

Lorensen W E . Marching cubes : A hign resolution 3D surface construction algorithm[J]. Computer Graphics (Proceedings of SIGGRAPH'87), 1987, 21.

Schroeder W , Maynard R , Geveci B . Flying edges: A high-performance scalable isocontouring algorithm[C]. 2015 IEEE 5th Symposium on Large Data Analysis and Visualization (LDAV). IEEE, 2015.

Cabral B , Leedom L C . Imaging vector fields using line integral convolution[C]. Proceedings of the 20st Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH 1993. DBLP, 1993:263-270.

网络资料

VisIticon-default.png?t=M5H6https://visit-dav.github.io/visit-website/

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值