【背景介绍】

汽车仪表HMI解决方案,行业内基本被国外的解决方案占据,包括Qt、Kanzi、CGI、Crank、GLStudio、Altia等等,有幸接触过一些,如果你在汽车仪表的行业内,一定听过说一些,原厂大部分都来自欧洲小国家(芬兰,奥地利等)以及加拿大。个人有幸接触过一些,就开发效率和效果而言排名如下:

  1. Qt 作为嵌入式行业的HMI工具头名不为过,20多年的历史。

  2. Kanzi 汽车行业HMI工具的知名度很高。

  3. 并列,各有千秋:Crank 轻量级HMI工具 / CGI 3D支持不错

*GLStudio和Altia没有使用过,不发表评论。

深入使用之后发现,每个HMI工具都有自身的优点也暴露了很多缺点:价格高、启动慢、开发效率低、2D和3D不能融合、占用资源高、3D支持不好等等,想要一个得心应手的还真有点难选择。所以在2018年底的时候,产生了一个具有挑战性的想法:填补国内空缺,打造行业内性能最牛逼的HMI解决方案。

【ssRender引擎特性介绍】

从2018年底开始,经过团队的不懈努力,2020年2月发布了第一个V1.0.0版本,目前最新版本为V1.2.0,已开发的特性有:

  1. 轻量化,快速启动

  2. 2D和3D完美融合,高帧率稳定渲染

  3. 支持丰富的3D场景

  4. 简单高效的动画系统

  5. 支持粒子效果

  6. 支持局部刷新(支持局部低帧率刷新,保障其他区域高帧率刷新)

  7. 资源管理(预加载/延迟加载/异步加载)

轻量化是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的支持如下:

  1. 支持多个3D模型显示

  2. 支持3D场景中显示2D元素

  3. 可动态变换模型的显示特效

  4. 支持光照效果(Blinn-Phong)

  5. 支持自定义shader

  6. 支持异步加载3D模型(不影响渲染效率的情况下)

  7. 3D模型支持动画系统(缓动EaseIn/EaseOut效果)

  8. 支持基于物理渲染(PBR)

  9. 支持压缩纹理

*其他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实现)

【不断完善】

  1. Editor编辑器是今年的重头戏,它的目标就是简化ssRender的使用,大幅提升开发效率,降低开发成本。

  2. 支持鸿蒙OS,抛开QNX,支持国产。

【感谢】

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

【国产HMI引擎】一篇文章带你了解ssRender引擎相关推荐

  1. 乐鑫esp8266学习rtos3.0笔记第3篇: 一篇文章带你搞掂存储技术 NVS 的认识和使用,如何利用NVS保存整型、字符串、数组以及结构体。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  2. 一篇文章带你搞懂微信小程序的开发过程

    点击上方"前端进阶学习交流",进行关注 回复"前端"即可获赠前端相关学习资料 今 日 鸡 汤 只解沙场为国死,何须马革裹尸还. 大家好,我进阶学习者. 前言 小 ...

  3. 一篇文章带你了解大数据生态圈---大数据组件图谱

    小编一篇文章带你了解大数据生态圈-大数据组件图谱 转载地址:http://blog.csdn.net/u010039929/article/details/70157376 文章目录 小编一篇文章带你 ...

  4. 借重新装系统之际,一篇文章带你玩透Windows 10从系统安装到软件选择

    系统安装所需软件 Rufus 一个制作USB-ISO的免费软件,比微软官方工具好的地方在于除了可以制作windows 系统U盘,还可以制作linux 以及安卓X86的系统安装光盘. 借重新装系统之际, ...

  5. 一篇文章带你了解Flannel

    from: http://dockone.io/article/618 DockOne技术分享(十八):一篇文章带你了解Flannel [编者的话]Flannel是 CoreOS 团队针对 Kuber ...

  6. 一篇文章带你详解 TCP/IP 协议(下)

    前面的第一二三章已在上篇讲解,还没看过的可以先看看:一篇文章带你详解 TCP/IP 协议(上) 本文继续讲解第四章. 四.网络层中的 IP 协议 IP(IPv4.IPv6)相当于 OSI 参考模型中的 ...

  7. 一篇文章带你详解 HTTP 协议(下)

    文章目录,方便阅读: 一.概述(已讲) 二.HTTP 工作过程(已讲) 三.HTTP 协议基础(已讲) 四.HTTP 协议报文结构(已讲) 五.HTTP 报文首部之请求行.状态行(已讲) 六.HTTP ...

  8. 一篇文章带你快速理解JVM运行时数据区 、程序计数器详解 (手画详图)值得收藏!!!

    受多种情况的影响,又开始看JVM 方面的知识. 1.Java 实在过于内卷,没法不往深了学. 2.面试题问的多,被迫学习. 3.纯粹的好奇. 很喜欢一句话:"八小时内谋生活,八小时外谋发展. ...

  9. java 不重启部署_一篇文章带你搞定SpringBoot不重启项目实现修改静态资源

    一.通过配置文件控制静态资源的热部署 在配置文件 application.properties 中添加: #表示从这个默认不触发重启的目录中除去static目录 spring.devtools.res ...

最新文章

  1. 转载:JavaScript 的55个经典技巧
  2. 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA
  3. c# 修改系统日期格式
  4. Linux用户和用户组管理常见问题
  5. [BZOJ] 1620: [Usaco2008 Nov]Time Management 时间管理
  6. 【URAL - 1114 】Boxes (dp,组合数学)
  7. json和python中字典的区别和联系_Python 中json与字典的关系
  8. jav中什么是组织java程序_Java程序的执行过程中用到一套JDK工具,其中javaprof.exe是指()。A.Java调试器B.Java剖析工具C.Jav...
  9. php 获取有道翻译,python爬虫 身边的翻译专家——获取有道翻译结果
  10. 你所不知道的 CSS 阴影技巧与细节
  11. ActiveMQ的消息存储方式
  12. RedHat 5.6_x86_64 + ASM + RAW+ Oracle 10g RAC (二)
  13. iOS:栈、堆、字符串常量区、全局区
  14. nginx搭建html
  15. android动态权限依赖库,动态申请app权限:郭霖大神的PermissionX库带你告别原生
  16. WebWall-02.Burt Force(暴力破解漏洞)
  17. hdu 4489 The King’s Ups and Downs【递推】
  18. 微前端是什么、价值、不足、典型模式
  19. 计算机毕业设计springboot+uniapp点餐外卖系统源码
  20. 详解u盘装系统启动不了怎么办

热门文章

  1. windows和linux服务器哪个好?有哪些区别?
  2. 刘强东章泽天合体破离婚传闻,网友:有钱人终成眷属
  3. 802.11n 技术简结
  4. error hawk@0.10.2: The engine “node“ is incompatible with this module. Expected versi
  5. 揭秘:微信解封一单30元纯利润的项目
  6. building workspace js validation
  7. 中粮我买网为何能融资1亿美元?
  8. Spring.NET企业架构实践之 JQuery + FlexiGrid + ASP.NET MVC + NVelocity + WCF + LINQ + NHibernate 综合应用
  9. bzoj1616 [Usaco2008 Mar]Cow Travelling游荡的奶牛 [BFS]
  10. js如何保留对象中指定字段(太刁了)