最新的 Qt for Android Automotive 6.11 刚刚发布,它基于Qt 6.11。Qt 版本本身带来了许多新功能,尤其是 3D 功能。让我们一起来看看!
在 Qt 6.11 for Android Automotive 中,重点在于稳定 Service 模块,为该模块引入一种新的、简便的通信方式,提升开发者在处理 Android Automotive 车辆属性时的开发体验。
首先,在 Qt for Android Automotive 6.10 Service 模块中发布的两个功能(渲染即服务(Rendering as a Service)和 Surface 流媒体 )现已可用于生产环境,不再标记为技术预览版(TP)。该模块允许开发人员将 Qt 应用程序作为Android 服务运行,并在原生 Android 应用程序中使用该服务的内容,无论是原生 Android 应用,还是以近乎零延迟流式延迟流式传输到不同操作系统。
从现在起,开发人员可以在 QtRaaSApplication 中监控 QML 引擎是成功加载还是遇到错误,这样客户端应用程序就能对加载失败做出响应。例如,它们可以显示加载屏幕直到第一帧准备就绪,或在崩溃时做出响应。
Surface 流媒体得到了改进,可通过直接在 QAndroidMediaFormat 上设置任意 Android MediaFormat 参数来微调硬件编码器行为,从而针对特定硬件实现延迟优化。这样,开发人员就能进一步优化流媒体的延迟和质量。
要与作为服务运行的 Qt 应用程序通信,开发人员以前不得不依赖 Android Broadcasts、JNI 或 RPC,这增加了不必要的复杂性。在 6.11 版本中,现在可以通过 Java 在QtRaaSApplication中读写 QML 根对象属性,使原生 Android 客户端无需任何 Qt 依赖即可与 QML 应用程序状态交互。 您可在文档页面查看 getProperty 和 setProperty 方法的最新文档。
接口框架(Interface Framework)有了新的更新,即可以在配置中轻松启用控制面板(Control Panel)。由于接口框架(Interface Framework)已为默认的 Android 车辆属性预定义了映射,新的控制面板将填充默认的属性集,方便模拟测试以验证 UI 不同部分的功能。与 Android Studio 中的车辆属性(Vehicle Properties)模拟面板相比,"控制面板 "提供了更舒适、更简单的体验,在车辆中定义和使用自定义车辆属性(Vehicle Properties)时,它还能进行缩放。
未来几周,我们将在另一篇博客中跟进这一主题,敬请期待。
Qt 6.11 为 3D 渲染功能带来了许多新的改进,使开发人员、技术美术和设计师能够在汽车嵌入式设备上实现他们对汽车用户界面的构想。让我们来看看其中几项最重要的改进。
Qt 6.10 引入了对光贴图烘焙(一种用于光线与静态对象交互的技术)的改进,而 6.11 版本现在又引入了一种动态替代技术。SSGI(屏幕空间全局照明)是一种渲染技术,它作为后处理效果模拟光线在屏幕表面上的反弹,并实时响应变化。不过,SSGI 也会带来一些性能开销,因此建议在资源受限的目标平台上使用光照贴图烘焙,而在对性能要求不那么苛刻的丰富 3D 应用中,尤其是丰富的 3D UI 场景下,则采用 SSGI。
6.11 中新增的另一项实时渲染技术是屏幕空间反射 (SSR)。与 SSGI 类似,它使用屏幕上可见的内容来渲染反射,通过"光线步进"逐像素处理并生成相应反射。你可以在 Jonas 的博客中找到更多关于光绘烘焙、SSGI 和 SSR 的信息。请试试这个新的示例,您可以在 Qt 示例中找到 Qt Quick 3D - SSGI Lightmap。
此外,通过场景环境(SceneEnvironment)和扩展场景环境(ExtendedSceneEnvironment)类型,Qt Quick 3D 支持多种用于 3D 物体抗锯齿渲染的技术。时域抗锯齿和运动模糊对于减少移动物体的锯齿感尤为重要。在 Qt 6.11 中,我们增加了按对象生成运动矢量的功能,从而在计算成本和输出保真度之间实现了极佳的平衡。
汽车客户在图形方面最迫切的需求之一就是添加逼真的天气效果。Quick 3D 支持粒子效果已经有很长一段时间了,但仍有一些需要改进的地方,以使效果看起来更加真实。新添加的轨迹发射器可以让雪在地面上缓慢堆积,而反转属性则可以显示雨滴溅落在表面上的效果。
更深入地了解这些功能,请参阅 Antti 关于 使用 Qt Quick 3D 粒子实现雨雪效果的博客。
Qt 6.11 中的汽车配置器演示中已添加了雨雪效果。
3D 真实感的一大提升也来自于发射的灯光。Qt 6.11 中的一项改进是提供了体积光的蓝图。这些体积光可用于场景中主车的车头灯,也可用于场景中任何需要电影级体验的位置。通常,这些灯光的渲染需要大量的 GPU 处理能力,但建议的蓝图可以最大限度地减少负载,并实现流畅的场景、动画和过渡。
尽管目前该解决方案还没有完全集成到 Qt 中,但您可以在Sadegh 的博文中阅读更多关于该解决方案的信息,而且您很快就会在我们即将推出的演示中看到它。
对于需要高级视觉效果、优化性能或集成自定义技术,从而需要超出默认渲染管道的用户,Qt Quick 3D 现在提供了自定义渲染通道的选项。新的图层和标签 API 可以指定哪些项目应包含在渲染管道的不同部分,将它们导向不同的渲染目标,并对单个渲染通道进行控制。您可以使用现有材质、通过附加着色器增强材质,或覆盖材质的某些方面。所有这些新增的灵活性都可以直接从 QML 中使用。
如有任何问题,请向 bugreports.qt.io 提交一份详细的错误报告;如果您的商业许可证中包含支持计划,请联系我们的技术支持团队 。我们也欢迎你加入 Qt 项目邮件列表和开发者论坛的讨论。
我们将继续发布 Qt 6.11 系列的新补丁。目标是在 2026 年 5 月发布 Qt for Android Automotive 6.11.1。
有关完整的改进列表,请查看Qt 6.11 中的新功能和Qt for Android Automotive 6.11 中的新功能。有关 Qt for Android Automotive 的更多技术信息,请查看Qt for Android Automotive 技术文档 。