有好几个读者建议写写工业仿真软件中的图形显示引擎,翻了写过的几百篇文章,除了一篇介绍HOOPS和VTK的文章,没有其它。
笔者用过VTK,OpenGL,HOOPS,OSG开发过产品,从实际应用情况看,各有各的优缺点,都能满足实际需求,倒不是说图形引擎并不重要或者简单,而是从工业软件实际需求看,图形渲染这块没有太多技术瓶颈,在工业软件研发中属于偏上层的应用。工业软件没有游戏电影中那些顶级特效的需求,只要想做,基本都能做出来。
如果非要做个总结,笔者给的建议如下:
有自己的非常核心技术,投资不缺钱,希望快速完成产品上市,而且对产品要求质量高。推荐HOOPS。HOOPS商用,效果功能都不错。
属于中规中矩的开发,有比较了解图形学的开发者,可以使用VTK
产品开发周期长,希望有独立的产品技术积累,推荐OpenGL。
其它开发引擎都不太推荐直接使用,当然像OSG,OGRE有不少值得学习和借鉴的方法和思想。
对于Vulkan,也可以多留意,虽然工业软件的开发对新技术并不是特别敏感,但是从历史看,一项新技术如果发展成熟,几乎肯定是会采用的。
另外,HOOPS和VTK都隶属于美国公司,开发需要注意政策上的风险。
笔者早年在研发中曾经接手过国外的一个仿真后处理图形显示项目,该项目的源码采用JAVA编写,在渲染这块没有使用任何第三方库(你没听错,画线都是使用的最原始的bresenham算法),像面片渲染,云图显示都是自己实现算法。
其实图形引擎深耕,也有很多值得研究内容,比如体渲染,高保真显示,光线追踪,大规模场景显示,VR,AR,机器视觉等等,有兴趣的朋友可自行研究,后续文章将不再涉及图形显示方面的内容。