当前位置: 首页 > news >正文

汽车3D HMI图形引擎选型指南【2023】

在这里插入图片描述

推荐:用 NSDT编辑器 快速搭建可编程3D场景

2002年,电影《少数派报告》让观众深入了解未来。 除了情节的核心道德困境之外,大多数人都对它的技术着迷。 我们看到了自动驾驶汽车、个性化广告和用户可以无缝交互的 3D 计算机界面。 令人惊讶的是,虽然故事发生在 2054 年,但许多科幻想象的作品已经成为现实。 对于汽车和移动制造商和消费者来说,最令人兴奋的是 3D HMI 的快速崛起。

本文列举了汽车3D HMI可用的4中图形引擎:QT、Kanzi、Unity和Unreal Engine,并给出了图形引擎选择的一般性原则。

如果需要将你的3D模型转换成适合图形引擎的格式,可以使用NSDT 3DConvert这个在线3D格式转换工具:
https://3dconvert.nsdt.cloud

1、汽车3D HMI概述

为什么? 电气化颠覆了传统的品牌差异化因素,自动驾驶汽车也是如此。 随着驾驶体验变得越来越相似,HMI 对于提供有价值且独特的客户体验变得更加重要。 输入 3D。 计算能力的快速提高,与越来越多的针对汽车用途的图形编程工具集相匹配,使 OEM 能够利用 3D 为驾驶员创建更具吸引力、更易于访问和直观的交互。

未来几年,3D 汽车 HMI 将成为汽车制造商的关键增长杠杆。 探索该技术、它如何为更好的用户旅程提供动力、领先品牌的用例以及如何找到适合你需求的 3D 引擎。

在这里插入图片描述

3D HMI 有潜力提供更刺激的驾驶交互。 但 OEM 需要避免引入对体验没有任何价值的不必要的功能。 这些功能可能会分散驾驶员的注意力,并且可能在技术层面上消耗过多的资源,从而导致更高的成本。 因此,在启动任何新功能计划之前,必须为用户确定正确的用例。

首先,设计师和开发人员必须将用户体验放在首位。 他们需要了解用户的需求和愿望,并确定如何使用 3D HMI 来创建更加个性化、更具吸引力和无缝的体验,从而证明使用该技术的合理性。

关注用户痛点,并确定汽车界面或其他技术解决方案如何解决这些问题。 例如,3D HMI可以通过以更直观和易于理解的方式显示关键信息来增强安全性,帮助驾驶员做出更安全的决策。 此外,3D HMI可用于创造更加身临其境的娱乐,让乘客享受电影、游戏或其他内容。

为了使你的品牌在竞争中脱颖而出,请让你的设计师和开发人员专注于创造当前无法提供的独特且引人注目的用户体验,或者提供市场上无法提供的功能,例如基于手势的界面、个性化内容或预测性维护 。

最后,通过一致的视觉语言和风格为你的品牌进行设计。 3D HMI 成功的关键是创造一种既有意义、令人愉快又无缝地表达你的品牌的用户体验。

2、汽车3D HMI 进入高速档

OEM 已开始以新颖的方式利用 3D HMI 图形来增强车辆交互。 开始使用这些基准示例制定你的方法。

3、如何找到适合需求的 3D 引擎

在选择特定的 3D 引擎之前,你需要考虑处于产品开发生命周期的哪个阶段、硬件的功能以及你对用户和开发体验的重视。 虽然我们不会讨论太多细节,因为你的情况可能会有所不同,但在考虑 QT、Kanzi、Unity 和 Unreal Engine 时,请使用这些指南来帮助你选择合适的 3D 工程解决方案。

  • QT:跨平台应用程序框架,可用于创建 2D 和 3D 用户界面。 它包括许多用于开发自定义接口的工具和 API,例如对 OpenGL ES 的支持以及与各种硬件平台的集成。
  • Kanzi:专为 2D/3D 汽车应用程序设计的 HMI 工具,可开发自定义界面,包括实时渲染、高级动画和简化的工作流程。
  • Unity:广泛使用的游戏引擎,可以创建 3D 界面,包括汽车,并支持实时渲染、物理模拟和高级脚本。
  • 虚幻引擎:另一种流行的游戏引擎,在汽车界面中非常流行。 它提供了一系列用于开发自定义界面的功能,例如支持实时渲染、高级物理模拟和可视化脚本。

在这里插入图片描述

3.1 你处于产品开发周期的哪个阶段

硬件规格:如果你的硬件已经经过规格确定,并且转变为软件定义车辆的重大重新架构工作不在适用于你的 HMI 的范围内,那么你可以做的事情可能会受到限制。 你最好使用 QT 或 Kanzi,因为它们是根据嵌入式电子设备开发的。 尽管 Unity 确实为低性能系统支持提供了更大的灵活性,但在资源和处理需求方面,Unity 和 Unreal Engine 的开销要大得多,效率要低得多。

3.2 想要的用户体验或用户影响的类型

如果你的硬件尚未经过规范(欢迎,时间旅行者),或者它已经被定义为高端,并且你已经知道正在寻找尽可能流畅和最佳的照片真实/物理体验,那么虚幻引擎可能是 非常适合你。 它是目前市场上细节方面最好的 3D 引擎。 Unity 紧随其后。 两者都发挥了良好的营销作用,因为它们是该行业目前的佼佼者,为游戏社区树立了定义标准。

3.3 汽车开发准备

Unity 和虚幻引擎开发环境和社区的汽车成熟度不如传统的现有企业 QT 和 Kanzi。

Kanzi致力于汽车HMI; QT 非常关注汽车 HMI,但覆盖范围相当广泛。 Kanzi 和 QT 都以自己的形式提供 3D 功能,并且呈现得相当好。

开发者社区:

  • QT/Kanzi:如果你内部已经具备这种开发专业知识,那么就可以继续这条道路,并通过额外的 3D 功能(例如适当的 3D 模型、动画和计算机图形支持)增强你的 HMI。 QT 拥有比 Kanzi 更多元化的社区,因为 Kanzi 主要专注于嵌入式汽车应用。
  • Unity/虚幻引擎:这些是较新的技能组合,似乎很受欢迎,但在传统汽车 HMI 开发公司中并不流行。 但是,有一个优秀且更广泛的游戏开发社区可供利用。

3.4 汽车级工具套件

Unity 和虚幻引擎正处于汽车专用硬件和应用程序的早期支持阶段,如果你的时间安排很严格,这可能会使它们不太适合你的项目。

QT 和 Kanzi:业界成熟的工具集。 许多 OEM 厂商多年来一直在使用这些解决方案,并在性能较低的汽车级硬件上取得了巨大成功。 两者都提供动态 HMI 导入,只需最少的努力即可看到基本结果。 尽管如此,这仍然需要在幕后进行工作才能实现你特定的所需体验功能。

请记住,目前在安全关键型汽车应用/内容中还没有完美的 3D 解决方案。 因此,它应该仅次于更重要的信息,例如通过集群的遥测和错误/警告消息。

最后,最新的 Unity 渲染管道在图形真实感方面可与 Unreal 相媲美; 这两个引擎都比 QT 更容易创建和维护复杂的视觉应用程序。 有趣的是,QT 也曾用于游戏,直到被 Unreal、Unity 和自定义工作室引擎推到一边。 随着车辆硬件计算能力的增强,这种情况也可能发生在 HMI 市场。

3.5 深入探讨 3D 引擎的优缺点

虚幻引擎

优点:

  • 真实感用户界面(灯光、反射、烟雾效果
  • 进入优秀的开发者社区
  • C++ 开发专业知识是汽车行业的普遍需求
  • C++为优化提供了更多的灵活性
  • 实现物体交互物理的可能性
  • 大量3D图形构建工具
  • 以3D为中心:起源于3D游戏开发工具集

缺点:

  • 高需求的 C++ 开发人员专业知识
  • 高端图形细节需要更多的时间、精力和专业知识
  • 可能需要更高端的硬件和更多的开发支持

Unity:

优点:

  • 游戏开发者社区的大量使用
  • C#易于掌握,资源管理更安全
  • 为新进入者提供更优惠的许可选择
  • 可以使用低端性能硬件构建解决方案
  • 比虚幻引擎更好的文档
  • 与虚幻引擎相比,插件种类更多
  • 最新版本显着提高了图形的真实感
  • 支持Android Automotive、QNX和Yocto Linus

缺点:

  • 需要开发人员不太常见的 C# 专业知识
  • 不太真实感

Kanzi:

优点:

  • 现有汽车 HMI 专业知识
  • 专门构建的HMI环境
  • 从设计到基本功能的平滑过渡
  • 如果需要的话,为汽车提供更传统的支持
  • 支持操作系统:Android、INTEGRITY、Linux、Nucleus、QNX

缺点/注意事项:

  • 仅限于汽车界
  • 不以游戏为中心,专为更实际的汽车应用而设计
  • 创建自定义图形元素的灵活性有限
  • 获取教育材料和文档的机会有限

QT:

优点:

  • 现有的汽车HMI专业知识
  • 启用安全关键的 HMI,特别是对于集群
  • 多元化的社区——不仅仅限于汽车专家
  • 为汽车提供传统支持
  • 支持Android、嵌入式Linux、INTEGRITY、QNX和VxWorks
  • 嵌入式焦点

缺点/注意事项:

  • 最初并不以 3D 为中心; 在工具集的演变中添加了后期支持
  • 不再以游戏为中心,专为更传统的汽车应用而设计

4、结束语

3D HMI 不再是前沿技术。 领先的汽车品牌已经部署了该技术来简化导航、增加信任、提高舒适性和便利性以及增强个性化。 此外,随着电气化使驾驶体验、3D 图形和强大的工具商品化,OEM 和其他行业参与者可以实现差异化和创新。


原文链接:汽车3D HMI图形引擎选择 — BimAnt

相关文章:

汽车3D HMI图形引擎选型指南【2023】

推荐:用 NSDT编辑器 快速搭建可编程3D场景 2002年,电影《少数派报告》让观众深入了解未来。 除了情节的核心道德困境之外,大多数人都对它的技术着迷。 我们看到了自动驾驶汽车、个性化广告和用户可以无缝交互的 3D 计算机界面。 令人惊讶的是…...

Stable Diffusion stable-diffusion-webui开发笔记

https://lexica.art/ lexica.art 该网站拥有数百万Stable Diffusion案例的文字描述和图片,可以为大家提供足够的创作灵感。可以提供promt灵感 https://civitai.com/ Civitai是一个聚集AI绘图爱好者的社区,在此网站上有许多定制化的模型,特…...

利用MQ实现mysql与elasticsearch数据同步

流程 1.声明exchange、queue、RoutingKey 2. 在hotel-admin中进行增删改&#xff08;SQL&#xff09;&#xff0c;完成消息发送 3. 在hotel-demo中完成消息监听&#xff0c;并更新elasticsearch数据 4. 测试同步 1.引入依赖 <!--amqp--> <dependency><groupId&…...

linux免密登录最简单--图文详解

最简单的免密登录 1.A电脑生成秘钥 ssh-keygen -t rsa 2.A电脑将秘钥传给B电脑 ssh-copy-id root192.168.1.129 #将秘钥直接传给B电脑 需要输入B电脑的密码&#xff0c;可以看到成功。 3.测试 同理&#xff1a;如果B->A也需要免密登录&#xff0c;统一的操作。 大功告…...

HTTP/1.1协议中的请求报文

2023年8月30日&#xff0c;周三上午 目录 概述请求报文示例详述 概述 HTTP/1.1协议的请求报文由以下几个部分组成&#xff1a; 请求行&#xff08;Request Line&#xff09;请求头部&#xff08;Request Headers&#xff09;空行&#xff08;Blank Line&#xff09;请求体&a…...

攻防世界-Hear-with-your-Eyes

原题 解题思路 是一个没有后缀的文件&#xff0c;题目提示要用眼睛看这段音频&#xff0c;notepad打开文件&#xff0c;没什么东西。 加后缀zip再解压看看。 使用Audacity打开音频文件...

ZED相机获取图像python

import pyzed.sl as sl import cv2 import numpy as np import osclass CameraZed2:def __init__(self,resolutionNone,fps30,depthMode None):self.zed sl.Camera()self.input_type sl.InputType()self.init_params sl.InitParameters(input_tself.input_type)# 设置分辨率…...

Oracle系列之--Profile

Oracle系列之--Profile_oracle profile_楼兰过客的博客-CSDN博客...

学习Bootstrap 5的第四天

目录 表格 基础表格 实例 条纹表格 实例 带边框表格 实例 有悬停效果的行 实例 黑色/深色表格 实例 黑色/深色条纹表格 实例 可悬停的黑色/深色表格 实例 无边框表格 实例 上下文类 可用的上下文类&#xff1a; 实例 表头颜色 实例 小型表格 实例 响应…...

喜报 | 再度中标南网项目!AR 开启电力远程运维新智慧

近日&#xff0c;中国南方电网官网发布《2023年南方电网数字平台科技 (广东)有限公司物资品控远程协助软件采购项目中标公告》&#xff0c;ALVA Systems 凭借 ALVA Rainbow 创新应用竞得此标。 随着相关技术的逐步成熟&#xff0c;基础问题远程化解决已经在工业领域广泛应用。 …...

3.使用IDE的优点

IDE是集成开发环境&#xff1a;Integrated Development Environment的缩写。 1、优点 使用IDE的好处在于&#xff0c;可以把编写代码、组织项目、编译、运行、调试等放到一个环境中运行&#xff0c;能极大地提高开发效率。 IDE提升开发效率主要靠以下几点&#xff1a; 编辑器…...

ShopXO商城系统文件上传0Day代审历程

Git仓库&#xff1a; https://github.com/gongfuxiang/shopxo简介&#xff1a; 两天攻防中&#xff0c;某政局内网横向发现多网段服务器&#xff0c;该服务器搭建了ShopXO商城系统(后来发现是开发临时搭建的&#xff0c;准备做二开用的)。结果花了30来秒审了个垃圾Day拿下该服…...

【java】【项目实战】[外卖十二]【完结】项目优化(前后端分离开发)

目录 一、问题说明 二、前后端分离开发 1、介绍 2、开发流程 3、前端技术栈 三、Yapi 1、介绍 2、部署 3、使用 3.1 添加项目​编辑 3.2 添加分类​编辑 3.3 添加接口 3.4 运行 3.5 导出接口 3.6 导入数据 四、Swagger 1、介绍 2、使用方式 2.1 pom 2.2 导入…...

解决uniapp下拉框 内容被覆盖的问题

1. 下拉框 内容被覆盖的问题 场景: 现在是下拉框被表格覆盖了 解决办法: 在表格上添加css 样式来解决这个问题 .add-table{display: static;overflow: visible; } display: static: 将元素会按照默认的布局方式进行显示&#xff0c;不会分为块状或行内元素。 overflow: vi…...

论文解读 | KPConv——点云上的可形变卷积网络

原创 | 文 BFT机器人 《KPConv: Flexible and Deformable Convolution for Point Clouds》是一篇发表于2019年的研究论文&#xff0c;作者为Hugues Thomas、Charles R. Qi、Jean-Emmanuel Deschaud、Beatriz Marcotegui和Franois Goulette。这篇论文关注于点云数据上的卷积操作…...

STM32 物联网 4G CAT1 SIMCOM A7680C 源码

基于状态机编写4G模块驱动函数 #include "bsp.h" char LTE_TX[512],LTE_RX[512]; int LTE_TX_length,LTE_RX_length; char U1_TX_data[512],U1_RX_data[512]; char LTE_DATA_buf[512]; char LTE_COM_buf[512]; char LTE_SEND_buf[512];unsigned char U1_TX_flag,U1…...

ETLCloud制造业轻量级数据中台解决方案

制造业数据处理特点 制造业在业务发展过程中产生大量的业务交易数据以及设备运行过程中的状态数据&#xff0c;但是制造业有别于其他互联网或零售行业&#xff0c;其数据处理具有以下特点&#xff1a; 数据量不大&#xff0c;大部分业务系统的数据库表在1000W以下数据结构复杂…...

解决外接显示器后Edge浏览器地址栏等变得很大的问题

解决外接显示器后Edge浏览器地址栏等变得很大的问题 edge设置里外观——触控模式&#xff0c;把触控模式关了...

k8s 启动和删除pod

k8s创建pod pod的启动流程 流程图 运维人员向kube-apiserver发出指令&#xff08;我想干什么&#xff0c;我期望事情是什么状态&#xff09; api响应命令,通过一系列认证授权,把pod数据存储到etcd,创建deployment资源并初始化。(期望状态&#xff09; controller通过list-wa…...

Jenkins详解(三)

Jenkins详解(三) 目录 Jenkins详解(三) 1、Jenkins介绍2、Jenkins CI/CD 流程3、部署环境 3.1 环境准备3.2 安装GitLab3.3 初始化GitLab3.4 GitLab中文社区版补丁包安装3.5 修改GitLab配置文件/etc/gitlab/gitlab.rb3.6 在宿主机输入 http://192.168.200.26:88 地址就可以访问了…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...