技术总监详解:怎么用 Unity 引擎技术开发智能座舱 HMI 相关应用

news2024/10/9 17:47:45

想象一下,当启动车辆,眼前的屏幕瞬间点亮,呈现出一个逼真的 3D 城市景观,无论是清晨的第一缕阳光穿透云层,还是夜幕降临时霓虹灯下的繁华都市,都能够通过细腻的光影效果展现在眼前。3D HMI 方案提供直观、立体的三维交互体验。高度仿真不仅让驾驶变得更加有趣,同时也帮助驾驶员更好地理解车辆周围的情况,增强了驾驶安全性。

在 Unite Shanghai 2024 智能座舱专场演讲中,Unity 中国平台技术总监杨栋分享了《Unity 智能座舱 HMI 开发流程》,介绍如何使用 Unity 引擎技术开发汽车智能座舱中的 HMI 相关应用。

本文为演讲实录。

HMI 项目的产品呈现形式可能是中控、仪表、多块屏幕互动,可穿戴设备(手表、头盔)等多种场景,这些前瞻性的场景正吸引着越来越多的探索者。Unity 自主开发的 Demo3.5,是一款基于高级技术和美术效果的 Demo,可以在搭载高通第四代座舱芯片骁龙 8295 平台上做实时渲染,目标价值是让我们看到利用 Unity 做出写实画质的成效。

下图从简单到复杂展示了用 Unity 开发 HMI 项目的流程,这些流程同样适用于仪表或多屏系统。

如图所示,Demo3.5 的基础是 Demo1.0 版本。这个 Demo 成为了 Unity 开发 HMI Demo 的起点,后来我们逐渐推出了 2.0、3.0、3.5、4.0 版本,每个版本都展示了不同的功能和发展方向。在这个行业中,团结引擎是一种非常新颖的工具,没有现成的成熟规范,所以整个过程都是一次探索。我们的目标是通过不断的努力和探索,分享一些有价值的成果。目前,我们正在规划 Demo 5.0,计划在明年的上海车展上向大家展示。

在 Demo3.5 版本的演示视频中可以看到非常多熟悉的元素,包括车模控制,3D、2D 控制、光影效果、自定义车漆、空调效果,以及利用 2D 控件控制温度、香氛、仪表设计等。

在开发阶段如何实现这一过程?我将分为四部分为大家讲解阐述。

HMI 产品定义与功能实现

Unity 的引擎具备实现上图六类功能的能力,这些功能已经在量产车上实现。

  • 4D 动态壁纸:能够实现如日夜变化、下雨、下雪、结冰等不同的配套天气效果。用户可以在屏幕上直观地感知车辆所处的真实环境,以及车辆的状态。我们把它定义为 Unity 本身“可见即所得”的场景编辑器,这也是 Unity 最出名的功能之一。事实上,用任何非可视化的工具生产内容时候,最大的困扰是观察不到最终结果,但使用 Unity 实时渲染的引擎,却几乎可以直观看到最终的结果,且所有结果都可以进行快速迭代。

  • 全场景的一镜到底:“一镜到底”涵盖了车辆内外环绕的场景,甚至可以延伸到驾驶员平常接触不到的部分。例如,可以将镜头拉得很远,通过感知数据与车模配合,观察到肉眼感知不到的地方。

  • 车控车设自然交互:这一功能基于 3D 技术实现的优势是直观。事实上,几乎 99% 以上的人都是“视觉动物”,所以 Unity 提供了一个实际可触摸的界面。今后,Unity 也将基于客户提出的需求,积极探索更多交互方式,包括采用AI技术实现手势识别、空中操控 3D 的控件等,都将陆续出现在 HMI 平台上。

  • 香氛调节:通常情况下,在车辆内部放置香氛,除了闻到的那一刻,一般无法感知它的具体状态。我们使用引擎中粒子效果和实时渲染技术来实现这一功能,能使驾乘人员对车内香氛功能有切实的感官反馈。驾乘人员可以通过匹配用不同的颜色、传播速率、飞行的速度,加强其直观的感受。

  • 自定义车漆:这一功能的设计体现了 Unity 实时渲染引擎的极高灵活性。面对底漆、金属漆、轻漆等繁多的车漆种类,在更多图层上,都可以运用 Unity 自带的 PBR 的渲染系统,同时可以采用 Shader Graph 的方式进行 Shader 的编程。事实上,团结引擎拥有一整套“车漆库”,可以适配各类 HMI 项目的需求。

  • 座舱特效:特效具备多种自定义的可能性,从基础技术实现的角度看,主要涉及粒子效果、Shader 效果,以及座椅加热效果等,这些效果的实现并不需要其他特殊能力,都可以通过团结引擎的基础子功能实现。

同时,Unity 还能实现对于颜色的自定义。

在设计 Demo 的过程中,Unity 使用了快捷的开发方式。在测试 Demo 性能时,可以利用快捷测试面板,关闭不需要的元素,以查看具体的性能影响。

在场景中开发动画相关功能时,可针对场景内物体动画参数进行调整,大大加快整个开发流程。

Unity 本身包含的定制化摄像机动画参数调整功能,对于设计人员而言非常方便。如果没有这类控件供设计人员使用,很多效果则需要反复与开发团队沟通,开发人员也需在代码中写死这些数值,增加了沟通成本。

Unity 引擎能力

Unity 是一款跨平台引擎,覆盖广泛的市场。

以下九条具体功能,是基于用户需求,利用 Unity 引擎实现的。

  • 可编程渲染管线:团结引擎通过其强大的可编程渲染管线,支持全平台的通用渲染管线(URP),和 PC、Mac、Linux、Xbox 及 Playstation 的高画质渲染管线(HDRP),并包含后处理和按需渲染功能。目前,HDRP 主要用于游戏开发中。我们也在将 HDRP 的高端性能,如物理光照更高级的材质表现,以及光照模型迁移到车机环境中。 对于URP 而言,其本身也能实现非常好的效果,3.5 版本的效果就是全部基于 URP 实现的。

  • 3D UI 系统:Unity 已经包含了非常灵活的 UI 系统,既可以用来做 2D 的 UI,也能实现 3D 的 UI,甚至可以将 2D 的 UI 放在世界坐标中让它看起来像 3D 的 UI。为新世代的车机 HMI 提供全新的三维互动式UI体验。

  • 无代码开发:Unity 支持可视化编程,降低了开发难度。只需采用“拖拉拽”的方式,调用现成的模块就可以实现相应功能。这套工具完全能够胜任车机 HMI 交互式功能的开发,除非面临多车机信号处理的复杂场景。在处理其他更复杂的逻辑时,可以配合用 C# 的语言解决,甚至可以将基于 C# 语言编写的代码封装成代码块,直接在可视化编程中使用。

  • 丰富的光照系统:这与特效密切相关。

  • Shader 开发系统:新版本加入了老版本没有的 Shader Graph 可视化着色器编程系统,同时提供更完善的可视化 Shader 编程工具。迭代速度更快,支持的功能更多。目前,许多技术美术行业的从业者大部分在使用 Shader 可视化编程工具。

  • 粒子系统:粒子系统能够为3D场景和物体增加更丰富的效果。Unity 的粒子系统可以实现高质量的粒子特效,如香氛、下雨、下雪等。

  • 动画系统:可以灵活支持动画状态机。适用于各种场景,如车门开关。还可以直接在 Unity 中进行添帧,并配合 Client 工具,更好地管理动画的 animation clips。

  • 性能分析的调试:Profiler 也包含在团结引擎之中。它有两种模式:一种与引擎同步运行,另一种是独立运行的 Stand along 模式。在车机领域,Unity 能提供更多的 Profiling 的工具,如在 QNX 平台上,团结引擎也能提供相应的 Profiler 工具。

  • 支持移动端主流图形 API:能够支持近 30 个计算平台创作实时渲染互动式内容。

HMI 开发流程

HMI 项目开发工作流程顺序依次为 2D 的设计,2D 转 3D 动效。而由于实时渲染系统本身具备赋能交互的能力,这意味着只需要将 2D 设计转换成可交互的 3D 设计即可,但这一转换过程并非一蹴而就,需要使用多种工具。

在这设计团队工作流中,设计团队生成后续的动效,如一镜到底的转换是通过什么样的轨迹完成?特效看起来如何?这些中间态过程,对后续的 3D 美术和技术实现具有良好的参考价值。

图中的第三环与 3D 美术与美术团队有关,主要工作是处理模型、贴图,以及 DCC、CFD、blender 等软件,实现面向可使用资产转换。在技美实现流程中,主要是嫁接前面的动效和美术资产,使其在引擎中保质保量地运行。目前,Unity 的转化率能达到 80%~90%,如果不采用该流程,效果转化率只能达到 50%~60%。

在程序开发、测试优化、打包工作流程中,加入了两个持续迭代的大环。因为持续迭代对于实时渲染项目非常重要,在开发实时渲染互动式应用时,不能像 DCC、Maya、CFD 软件那样,直接呈现效果。但对于交互式内容而言,通常情况下,在测试优化或程序开发阶段,一旦素材完成替换,整个场景几乎瞬间变为成品。

下图是上图的扩展。图中的 Plastic 是 Unity 自带的的版本控制工具。Unity 工程的特点是素材文件非常大,例如一个车模至少几十兆,甚至上百兆。在这种情况下,进行迭代和版本控制必不可少。使用 Plastic 优势在于,它在上传和下载大型二进制文件时速度很快。同时,Unity 也会提供 SVN、gate 等版本控制工具。此外,Unity 还提供了云真机服务和 UPR 性能测试服务。

在不久的将来,还将推出有关 HMI 技术的书籍。

HMI 开发架构

对于是 HMI 开发架构,用一个关键词表示就是—— return 驱动不同的画面渲染。

在设计成可在车机应用上运行的过程中,实际的画面是由不同部分组成的,例如空调温度、座椅控制、车模显示以及底部的数字等。传统的做法是一个场景包含所有元素,但效率很低。

实际上,并非所有画面都需要实时渲染。例如,车模需要持续渲染,而静态画面则可以停止更新。此外,关于画面的分割,可将 Unity 的渲染结果嵌入到安卓原生环境中,传统方法会被限制于全屏单一层次的显示,而无法做到多层叠加。例如,如果需要在全屏显示动态数字,传统方法会很复杂。但是通过 URAS 的方法,只需要渲染画面的 5% 部分,这让屏幕上的元素放置和动画制作变得非常灵活和简单。

在实现设计成可在车机上运行的应用的过程中,我们最关心的是如何高效渲染。如图所示,团结引擎基于 Unity 2022 LTS 版本开发,特别支持 QNX 平台、HMI 安卓。后者与普通安卓平台有所不同,HMI 安卓提供 URAS 程序架构能力,目前,团结引擎已经成为车机平台的首选。

对于如何将 Unity 项目转移到团结引擎,Unity 提供了 Unity Hub,用户只需安装团结 Hub 即可。在 Unity Global 版本中,QNX 平台也得到了有限支持,而对于团结引擎的支持更加全面。使用老版本的 QNX 平台可以平滑过渡,如果在 Unity Global 版本中使用安卓开发车机应用,转移到团结引擎中完全可行。但若使用针对车机定制的 HMI 安卓,则需要一定的学习成本。此外,图中的资源商店的插件和自定义插件需要一定的适配,测试显示,资源商店中的插件基本可以在团结引擎中运行。

HMI专用渲染服务 - URAS

对于 UAAL,有一点值得强调,虽然大家看到的通常是单个 Render Service,但实际上,Unity 也可实现部署多个 Render Service。并非单一 Render Service 支持多个应用的渲染能力,就意味着只能用一个 Render Service。

下图展示了单个 Render Service 架构图,以及如何与安卓结合,如何获取数据源数据。

对于多个 Render Service 的配置,其基本模式与单个 Render Service 保持一致。但从产品实现的角度来看,部署多个 Render Service 有其优势。例如,可以将关键应用分配到一个 Render Service 上,而将娱乐相关应用分配到另一个 Render Service 上。无论是单个还是多个 Render Service,选择的可能性都很多。对于 Render Service 的选择,应基于需要的功能类型,以及希望通过哪些不同的 Render Service 或单个 Render Service 支持的功能数量。

下图展示的是传统方式和 Render Service 方式性能的对比。最显著的区别在于 CPU 和内存性能的提升,GPU 保持不变,启动时间也有显著优化。如果使用自带的团结引擎,这一切都将是内置功能。在进行多屏开发时,如果需要同时测试第三块屏幕,可以在编辑器中自定义所需的宽高比和分辨率。

此外,我们也会为用户提供实例工程、示例代码。

团结引擎车机套件是基于团结引擎车机版及相关开发工具打造的智能座舱 3D HMI 应用集合(车模车控、导航智驾、游戏娱乐、3D Launcher 等)支持主流座舱系统和平台,覆盖座舱主要应用场景,并提供一流的视觉效果体验。作为车载应用渲染方案的最佳实践集合,能够有效缩短项目开发周期,降低成本。截止五月,智能电动车品类中超过 85% 的主机厂用 Unity 来打造中控屏、仪表盘。Unity 中国已与 35 家车厂合作,推出了 68 款量产车型。

[1]团结引擎官网:

https://unity.cn/tuanjie/tuanjieyinqing

[2]团结引擎专区:

https://developer.unity.cn/plate/tuanjie-engine

[3]团结引擎问答专区:

https://developer.unity.cn/plate/tuanjie-engine?tab=ask

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ethernet IP 转 Profinet网关在流量计中的应用

Ethernet/IP 和 Profinet 都是在工业自动化领域占据重要地位的工业以太网标准。 Ethernet/IP 是由美国罗克韦尔自动化公司开发的一种基于以太网的工业自动化通信协议。它采用 TCP/IP 协议栈,支持以太网和 TCP/IP 网络,具有高速、开放、互操作性强等特点…

重塑项目管理:角色认知的新视角与实践

在管理场景中,面对各种挑战时,你能否迅速切换至管理者视角来审视问题并作出反应,这直接反映了你的角色认知程度。角色认知往往在潜意识中起作用,自我难以察觉,但却能清晰地传达给他人,特别是当我们的行为与…

CDN绕过学习

1.什么是CDN? CDN就是分布在各个地区的服务器,这些服务器储存着数据的副本。 哪些服务器比较接近你,当你发起请求时,提前就会快速为你提供服务。 总结来说就是: 其实就是用来加速访问的,以及缓解压力&a…

原来机器学习这么简单——线性回归

引言: 在正文开始之前,首先给大家介绍一个不错的人工智能学习教程:https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程,感兴趣的读者可以自行查阅。 一、什么是线性回归? 线性回归 是…

基于贝叶斯决策的 CAD 程序设计方案

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

大数据新视界 --大数据大厂之大数据与量子机器学习融合:突破智能分析极限

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Linux入门3——vim的简单使用

1.vim 1.1 vim的模式 vim有三种主要模式: ①命令模式:使用vim刚打开进入的模式就是命令模式; ②插入模式:只有在插入模式下才可以做文字输入,按[Esc]键可退回命令模式; ③末行模式:文件保存或退…

希亦超声波清洗机值得购买吗?清洁技术之王多维度测评大揭秘!

随着人们生活质量的提升,高质量眼镜愈发受到欢迎,但它们的清洁与保养却常常被疏忽,导致镜片蒙尘受损,影响佩戴者的视觉清晰度。为此,超声波眼镜清洗机作为一种新兴潮流应时而生,以其高效清洁眼镜及珠宝、精…

行盒的截断样式 box-decoration-break

1. 场景举例 当我们遇到如下场景时, 很多小伙伴可能会直接为这段文字添加边框和背景颜色,但往往会发现,效果并不如预期。出现的问题如下图所示,那么该如何解决呢? 这时就需要引入一个非常实用的 CSS 属性——box-deco…

元宇宙展厅的展示方式有哪些?

元宇宙展厅的展示方式多种多样,融合了虚拟现实以及多媒体交互等先进技术,为参观者提供了前所未有的沉浸式体验。以下是一些主要的展示方式: 1、虚拟现实(VR)展示: 利用VR技术,观众可以身临其境…

开关 switch

<el-table-column label"公开 | 隐藏" align"center" width"100"><template slot-scope"scope"><el-switchv-model"scope.row.dynamicStatus":active-value"1":inactive-value"0"active…

Windows11下 安装 Docker部分疑难杂症(Unexpecter WSL error)

装了大半天Docker desktop终于装好了&#xff0c;网上有的主流教程就不复述了&#xff0c;主要说一下网上没有的教程。 以下是遇到的问题&#xff1a; 首先&#xff0c;启用或关闭Windows确保里面与虚拟机有关的几个都要选上 没有Hyper-V参考此文 但是我这里都勾选了&#x…

多电源上电时序控制

多电源上电时序控制 我们如何给这种比如说有三个电源轨道&#xff0c;有这种上电时序先后次序要求的这种器件供电呢&#xff1f;那我们有大概以下几种方法。 1.直接使用前一时序电源的输出Vout做下一时序电源的使能EN 优点:简单&#xff0c;直观&#xff0c;成本低 缺点:要关…

电力电子技术03 AC-DC整流器(2)---单相半波整流器 二极管不控整流

半波整流器是一种简单的AC-DC整流电路&#xff0c;它将输入的交流电&#xff08;AC&#xff09;的一半&#xff08;正或负半周期&#xff09;转换为直流电&#xff08;DC&#xff09;。这种电路利用二极管的单向导电特性&#xff0c;在正半周期时允许电流通过&#xff0c;而在负…

75.【C语言】文件操作(2)

承接74.【C语言】文件操作(1)文章 目录 5.详细阐释文件的打开和关闭 1.流 2.标准流 3.文件指针 FILE 两层含义 附:FILE的头文件 4.操作文件的步骤 1.fopen函数 ​编辑 简写的全称查询 输入&输出的含义 2.fclose函数 3.代码示例 补充:绝对路径和相对路径 注意…

No.14 笔记 | XSS漏洞:原理、类型与防御策略

一、HTML和JavaScript基础 1. HTML基础 HTML概述&#xff1a;超文本标记语言&#xff0c;用于实现页面跳转和显示数据。结构标准&#xff1a;包括<!doctype html>声明文档类型&#xff0c;<html>根标签&#xff0c;<head>头部标签和<body>主体标签等。…

Markdown 语法详解大全(超级版)(四)——Markdown 使用 Emoji 表情 (附:表情符号简码列表)

Markdown 语法详解大全(超级版)&#xff08;四&#xff09; ——Markdown 使用 Emoji 表情 &#xff08;附&#xff1a;表情符号简码列表&#xff09; 本文目录&#xff1a; 一、复制和粘贴表情符号 二、使用表情符号简码 三、表情符号简码列表 本系列文章&#xff1a; Ma…

阿里云CDN设置阀值的指南

在如今这个信息爆炸的时代&#xff0c;网站的访问速度和用户体验变得尤为重要。阿里云CDN&#xff08;内容分发网络&#xff09;作为一种高效的解决方案&#xff0c;帮助用户加速网站内容的分发。然而&#xff0c;如何合理设置CDN的阀值&#xff0c;确保资源的高效利用&#xf…

【有啥问啥】深度探索:COG Agent与GUI Agent的工作原理与实施策略

深度探索&#xff1a;COG Agent与GUI Agent的工作原理与实施策略 在当今的数字化时代&#xff0c;图形用户界面&#xff08;GUI&#xff09;已经成为人机交互的主流。然而&#xff0c;传统依赖于文本或代码解析的GUI自动化方法在面对复杂多变的界面时常常显得力不从心。无论是…

工业交换机的安全机制

在当今信息技术迅速发展的时代&#xff0c;工业交换机作为网络通信的重要设备&#xff0c;其安全机制愈发受到重视。工业交换机的安全性不仅关乎企业的信息保护&#xff0c;更是整个工业网络运行稳定性的基石。为了确保数据传输的安全和网络的可靠性&#xff0c;现代工业交换机…