前言
在使用VTK作为CAE/CAD软件的渲染引擎时,VTK本身基本没有对渲染性能进行优化处理,这就需要开发者针对性能需求进行方案和代码层面的设计。
笔者在已有的CAE软件开发经验的基础上,基本理解了软件所涵盖的所有渲染功能需求,并结合已了解的渲染方案,总结性的设计一个基于VTK的高性能的渲染库,用以支持在结构力学,动力学,流体力学,电磁场四个方向的CAE软件渲染模块。
关键需求介绍
一、几何模型渲染
在使用OCC几何内核作为几何内核和场景下,几何模型一般可分为四个类型,点,线,独立面,带状面。
二、网格模型渲染
网格模型来自网格算法对几何模型的剖分结果,相对与几何模型渲染而言,网格模型对渲染资源的开销巨大的,所以好的网格算法库需要对渲染库有友好的性能支持,其中须包含对网格模型渲染资源的有效管理,比如支持对网格的轻量化渲染计算。
在轻量化渲染计算这一需求中,其中具体实现方法可参考文章三维网格模型离散及轻量化处理技术_轻量化网格姿态应用到哪些领域-CSDN博客
三、高效的VTK图形资源整理
在将几何模型或者网格模型的几何信息和拓扑信息整理为VTK的vtkPolyData资源时,为了降低资源整理过程对实时图形交互的影响,需要充分利用CPU的并行资源,使用多线方式构建图形资源。
四、动态遮挡裁剪
在渲染大规模模型场景时,遮挡裁剪技术可以大幅减少对渲染资源的消耗。这一需求的的实现方法可参考文章 大规模场景遮挡剔除方案-CSDN博客
五、交互时的动态LOD渲染
LOD技术在CAE/CAD软件中是有争议的功能,因为对于使用软件的工程师而言,图形渲染的准确对工程师的决策会产生影响,为了避免过多的干扰用户的使用,所以只在相机位置或者反向发生较大变化时使用LOD图形进行渲染。
六、选择集的渲染
选择集一般是指用户通过交互或者非交互的方式提取的一些感兴趣模型元素,这其中可能包含几何模型的点,线,面,网格图形的节点,单元等。在软件中,选择集的渲染结果一般会处于前景图形,对原始的图形产生遮挡效果。所以可以将选择集的渲染资源与原始图形的渲染资源分开处理,当两部分的渲染结果图像生成后,利用图像融合的方法重新构建图像,这一方法可称为并行渲染。