• 1854阅读
  • 2回复

【国产HMI引擎】一篇文章带你了解ssRender引擎 [复制链接]

上一主题 下一主题
在线dss0204
 

只看楼主 倒序阅读 楼主  发表于: 2021-05-22
图片视频不能显示,可以前往https://blog.csdn.net/dss0204/article/details/114106609
近期在考虑开源模式,欢迎意见和建议。

【背景介绍】
汽车仪表HMI解决方案,行业内基本被国外的解决方案占据,包括Qt、Kanzi、CGI、Crank、GLStudio、Altia等等,有幸接触过一些,如果你在汽车仪表的行业内,一定听过说一些,原厂大部分都来自欧洲小国家(芬兰,奥地利等)以及加拿大。个人有幸接触过一些,就开发效率和效果而言排名如下:
Qt 作为嵌入式行业的HMI工具头名不为过,20多年的历史。
Kanzi 汽车行业HMI工具的知名度很高。
并列,各有千秋:Crank 轻量级HMI工具 / CGI 3D支持不错
       *GLStudio和Altia没有使用过,不发表评论。
深入使用之后发现,每个HMI工具都有自身的优点也暴露了很多缺点:价格高、启动慢、开发效率低、2D和3D不能融合、占用资源高、3D支持不好等等,想要一个得心应手的还真有点难选择。所以在2018年底的时候,产生了一个具有挑战性的想法:填补国内空缺,打造行业内性能最牛逼的HMI解决方案。

【ssRender引擎特性介绍】
从2018年底开始,经过团队的不懈努力,2020年2月发布了第一个V1.0.0版本,目前最新版本为V1.2.0,已开发的特性有:
轻量化,快速启动
2D和3D完美融合,高帧率稳定渲染
支持丰富的3D场景
简单高效的动画系统
支持粒子效果
支持局部刷新(支持局部低帧率刷新,保障其他区域高帧率刷新)
资源管理(预加载/延迟加载/异步加载)

轻量化是ssRender引擎的首要核心价值,实测结果比行业内最轻量的Crank更轻量,启动速度秒杀99.99%。

ssRender引擎到底有多快?ssRender的第一个s就是取自speed,接下来以速度为主题,展开介绍。
以QNX+i.MX6D平台,全液晶仪表Demo(分辨率1920x720)为例,冷启动,从上电开始,1.8秒显示开机动画效果,2.7秒仪表完全显示。(QNX系统启动时间约1.5秒),也请大家忽略和原谅简陋的实验环境,比较艰苦:(
谁说开机动画只能播序列帧(刷图),ssRender引擎打破不可能,开机动画使用了放缩及粒子火焰效果。
接下来看看没有开机动画的时候,开机速度如何。
从冷启动上电开始,到完成双表盘+3D ADAS的仪表主题全部显示,只需要2.38秒!量产项目最轻量的Crank 2.4秒只能显示第一张开机Log图片,对比之后杀伤力巨大。行业内要求2.5秒内仪表全显示的要求不是达不到,是没选对解决方案:)
【进阶】
麻雀小,五脏全。Crank轻量级,但是3D的支持不好(文明点讲是基础的不能再基础了),这条路不是我选择的,ssRender引擎虽然小,但是对3D的支持考虑的很周全,针对3D的支持如下:
支持多个3D模型显示
支持3D场景中显示2D元素
可动态变换模型的显示特效
支持光照效果(Blinn-Phong)
支持自定义shader
支持异步加载3D模型(不影响渲染效率的情况下)
3D模型支持动画系统(缓动EaseIn/EaseOut效果)
支持基于物理渲染(PBR)
支持压缩纹理
     *其他3D特性仍在不断更新中
提到基于物理渲染(PBR),效果是不错,能在嵌入式平台受限的硬件上跑的流畅,花费了不少功夫。
另外,高效的开发方式,API简单易懂,使用方便是不断完善的地方。下面一段3D场景的API使用实例,希望ssRender引擎能不断提升。

【ssRender如何使用】
ssRender的理念是速度,轻量化为前提,给硬件减负的同时也在为开发节约投入成本,所见所得的Editor编辑器+高效的引擎完全可以胜任这个鱼和熊掌都想兼得的美好愿望。
如果你刚入行或者不太懂编程语言,Editor编辑器是个不错的选择。
如果你是编程大咖,效率永远为第一考虑要素的开发人员,直接使用引擎端开发的API接口更高效,更适合你。
如果你在考虑更快速的实施项目,那么Editor编辑器+引擎API组合方式效果最优,团队分工明确,同步开发加速项目开发。
忘记说一点,ssRender引擎是跨平台的,可以在Windows平台开发调试,然后部署到开发板上。

【效果展示】
使用ssRender引擎能够轻松实现那些效果呢,下面给大家展示一下
1. 3D效果(Blinn-Phong及PBR效果)
2. 高效的粒子效果
全尺寸仪表6路粒子效果,几乎全屏的情况下保持双指针60帧刷新,并且未开局部刷新,开了局部刷新还有15%以上的优化空间。
3. Menu菜单效果(转成gif图像稍有失真)
4. Transition效果
5. 3D ADAS效果(绿色雷达效果为自定义shader实现)

【不断完善】
Editor编辑器是今年的重头戏,它的目标就是简化ssRender的使用,大幅提升开发效率,降低开发成本。
支持鸿蒙OS,抛开QNX,支持国产。

【感谢】
这将近2年半的时间,一直忙于ssRender引擎的开发,占用了大量业余时间,第一个要感谢的就是我的媳妇,家务、孩子的起居和学习都落在了她身上,家庭的重担,运转都离不开她,感谢亲爱的你的付出和理解,也感谢刚上小学的小豆包的理解(说到这,确实一段时间没有好好陪陪孩子了,内疚和惭愧),另外还要感谢帮助过我以及提出宝贵建议和意见的同事和朋友们。希望有朝一日,可以好好答谢帮助过我和支撑过我的各位!
离线20091001753

只看该作者 1楼 发表于: 2021-05-22
原则上,该板块仅限于发布 Qt 的作品。
(づ ̄ 3 ̄)づ
离线九重水

只看该作者 2楼 发表于: 2021-06-18
对标qt可以,
不过后面的感谢有些过早,等你的作品出名了再感谢吧。
快速回复
限100 字节
 
上一个 下一个