国产游戏引擎,竟然用来搞民航

​本文源自量子位 | 公众号 QbitAI

只是给飞行员做个“装备”,竟然突破了国内民用航空领域的一大技术难题?!

这是一群游戏技术开发者的真实经历。

他们用自研游戏引擎开发了一个飞行模拟软件,能够第一视角模拟飞行员起飞、着陆、巡航等不同时段的操作场景,随时随地提升飞行“段位”。

结果发现,不仅性能得到提升,生产成本还降低了50%

由于相关技术在国内起步较晚,此前这类软件主要靠进口采购,一套价格动辄600-800万,加上维护成本,光是训练一个飞行员,平均一小时就要烧掉几千甚至上万元。

虽然市面上已经有像《微软飞行模拟》(Microsoft Flight Simulator)这样的游戏,但相比工业软件还是有一定差距:

后者不仅需要设计专门的工业级功能,对于刷新率、传输延迟等性能标准要求也更高。

所以,这套软件在航天航空领域有多重要,这群“技术玩家”又如何解决其中的技术难题?

进一步地,研发这套软件用到的国产游戏引擎,背后又究竟是什么来头?

自研游戏引擎,打通航空技术“难关”

这套工业飞行模拟软件,叫全动飞行模拟机视景系统

全动飞行模拟机(FFS,Full Flight Simulator),是台1:1还原飞机驾驶舱的仿真设备,由模拟座舱、运动系统、视景系统、计算机系统及教员控制台等五大部分组成。

它相当于一架“在地面飞行的飞机”,飞行员即使无法上天,在其中也能训练开飞机的技巧:

显然,全动飞行模拟机提供的环境越逼真,训练效果越好,模拟机等级也就越高。要想做高等级的模拟机,最关键的技术之一就是视景系统

作为全动飞行模拟机的“眼睛”,它专门用于模拟飞机行驶时,飞行员透过驾驶舱风挡看见的真实地形和天气状况。

对于飞行员来说,复杂的地形和变幻莫测的天气,是最考验飞行技术的两大环境因素,视景系统能通过对地形和光影的高精度,尽可能模拟还原真实世界的飞行情况。

然而,正是这套视景系统,成为了国内研发高等级全动飞行模拟机的最大瓶颈之一。要想自研类似技术,主要面临两大技术难题:

一方面,高等级全动飞行模拟机的视景系统,对“画质”真实度要求极严格。

这里的真实度标准又分为两方面:画面分辨率和环境数据真实度。

以现实世界中的地形为例,大部分机场并非建在平坦开阔地上,尤其是周围有大量建筑和险峻山地的机场,更是只有经验丰富的飞行员才允许降落。

因此,数字重建技术质量越高,模拟出的现实世界建筑、道路、山体等几何信息就越真实,飞行员基于模拟机的练习才更有实际效果。

以视景系统对生成几何图形的质量要求为例,即使是最低等级的模拟机,相邻正方形角间距也不能超过1.5°:

来源于民航局《飞机飞行模拟机鉴定性能标准》

更别提高等级模拟机对“面分辨率”等容差指标的要求。

另一方面,视景系统还得与其他FFS系统一样,在传输延迟等数据上达到“工业级性能”标准。

模拟机对于视景系统的刷新率和信号传输延迟,往往有着严格的规定。

无论是操作模拟机后画面变化的速率,还是两个驾驶员座位上不同屏幕的画面色彩亮度偏差,都必须满足相应指标。

这是因为,在现实世界中开飞机,对于环境的反应速度要求极高。

以天气为例,一旦风向发生变化或是遇上恶劣天气可见度降低,往往直接影响飞机的起飞和降落,甚至需要复飞,直到天气恢复正常。

过程中,极小的操作延误都可能造成事故,对于模拟机视景系统而言,至少要确保延迟不在人感知范围内,而这个数据限制在毫秒级。

来源于民航局《飞机飞行模拟机鉴定性能标准》

然而,此前在工业级全动飞行模拟机视景系统上,国内自研技术起步较晚。

国内民航企业,往往只能通过购买较昂贵的视景系统来作为“替代方案”,维护成本更是不低。

视景系统本质上是一项模拟飞行环境的数字技术,而这恰恰是游戏技术所擅长的。因此,面对这一现状,来自腾讯游戏的CROS团队与南航翔翼去年宣布联合研发国产全动飞行模拟机视景系统。

在这套系统中,两大类游戏技术派上了大用场。

一类是生成游戏场景必不可少的渲染技术,而且与游戏级渲染不同,视景系统要求地球级的渲染能力——

除了要在更广空间、更复杂纬度上实现曲面渲染,还得与真实地球坐标系保持一致,包括星体、大气、天气和曲率校准等;这样才能重建超高精度、超写实的数字场景。

要实现这一点,至少需要三大能力:真实图像等数据处理+AI几何信息提取、PCG技术“移山填海”、以及通过照扫技术和生成式AI打造高质量建筑贴图材质信息。

首先需要用AI算法,对卫星图中的噪音、云层和影子进行处理和图像校正,并提取建筑、道路、水域、植被和山体的几何信息,以确保重建数据的真实度;

然后,就需要用到大场景的速成“秘籍”PCG技术,也就是过程化内容生成

通过将工业建模知识编码成一个个PCG算法模块,就能快速将高精度数字孪生建筑、道路和植被重建到场景中,同时机场和城市、地景等相关资产也能高效重建。

这之中,腾讯游戏CROS团队还基于AI算法开发了快速图形生成工具,将建模效率提升了10倍以上——

原本3D建模、渲染一个机场需要接近一个月的时间,现在只需3天就能搞定。

最后,通过照片扫描技术生成精细的几何结构场景,再基于生成式AI算法“想象”出建筑贴图材质信息,重建出一个逼真的数字世界。

事实上,基于这一套游戏技术“组合拳”打造的视景系统,比现有工业软件效果还要好:

不仅将视景渲染的精细度在贴图精度上提升了1个数量级,更是在几何精度上提升了2个数量级。

另一类,是体验游戏必不可少的性能优化技术,用来提升视景渲染的速度和效果,达到工业标准。

硬件上,为了提升多核CPU和GPU的利用效率,团队研发了基于可见性缓存的可变着色率绘制管线和超大世界坐标系统,降低并发时“出bug”的概率。

基于这一GPU和CPU加速技术,CROS团队将渲染大规模视景场景的性能提升了10倍以上;

软件上,他们先是针对模拟机视景系统硬件多屏幕的情况,自研了多屏校准技术,不仅画面几何精度达到0.5°以内,不同屏幕的色彩、亮度偏差也从10%降低到5%以内,符合工业要求。

随后,他们还自研了时间同步、数据同步算法,在优化分布式渲染管线基础上,成功实现了0.1ms级的同步渲染速度,以及12K分辨率的高清60FPS渲染效果。

在这两大类游戏技术上,腾讯游戏和南航翔翼合作打造的全动飞行模拟机视景系统,不仅性能优于目前国内市场上工业软件,生产成本还降低了50%。

当然,CROS自研游戏引擎的能力并不止于此。

在助力解决民航一大技术难题的同时,团队还将CROS自研引擎用在了更多“跨领域”的项目上。

不止航天航空领域

除了航空领域,腾讯游戏CROS自研引擎还让我国的万里长城“走进”微信小程序中,在超拟真画面渲染的基础上,进一步拥有了跨时空的技术和能力。

此前在2022年6月上线的“云游长城”,是全球首次通过游戏技术实现最大规模人类文化遗产毫米级高精度的数字还原。

而现如今,浏览量已经突破4000万的“云游长城”,在刚过去的腾讯游戏发布会上更进一步推出了【时空版】

这次的版本更新,正是基于CROS自研引擎渲染加持。

除了实现大规模、全动态、超高清、超真实的自然环境以外:

这一次还重建了长城的时空数据,是会让季节、时间和天气与长城实地气象进行映射的那种!

届时,只需要一个小程序,大家便可以感受到昼夜不同的光照变化、积雪漫漫等效果了。

云游长城的数字资产光照片扫描量就多达51386张,模型面片数量更是超过10亿,再加上自研引擎的渲染、PCG自动化生成技术等从而实现了惟妙惟肖的效果。

正如腾讯互娱研发效能部副总经理李从兵所言:

渲染技术,是游戏引擎在游戏以外领域的杀手锏。

游戏引擎当前的实时渲染能力在很多情况下,已经能做到相当接近真实世界和电影的效果。这也为游戏引擎的破圈提供了一个非常强大的动力。

而除了高精度渲染(虚拟几何体、多象限贴图)、PCG生成技术+大规模植被渲染以外,打造【时空版】中用到的物理大气系统、实时全局光照(SmartGI)等技术,也同样是CROS自研引擎具备的能力。

但将游戏引擎“跨领域”应用到这些场景中,除了核心的渲染、动画等技术,必然也还需要反复迭代、不断吸收其他的新能力。

以“云游长城【时空版】”为例,这个项目的一大特点就是轻量级,在手机小程序上就能运行,往往需要借助云游戏的能力。

为了实现“云游”这一特性,团队为CROS游戏引擎开发了多种即时调试和profile工具,并且完善了引擎的守护进程等功能,确保游戏能在一卡多路并发的场景下稳定运行。

最终通过优化迭代一系列游戏引擎新功能,团队成功提升了数字长城资产在云环境下运行的稳定性。

而在其团队自身不断迭代优化、和各种跨领域项目“反向push”的过程中,CROS游戏引擎如今也已经以核心技术为基底,“开枝散叶”出工具链、以及游戏制作管线两大能力。

引擎核心技术,主要由9大能力系统构成,包括3D渲染、动画系统、物理系统、音视频系统、网络通讯、数学计算、脚本系统、场景资源管理和任务系统等;

工具链,则是配套引擎提供服务的能力,包括打通主流DCC工具、对各领域多种资源格式的支持工具、相关的服务器引擎能力等;

游戏制作管线能力,则包括数字孪生能力、材质Lookdev能力、PCG技术、光照和烘培技术等,再结合AI算法、数字孪生扫描、动捕技术,就能提供一条游戏“流水线”生产所需的工具。

基于这三大能力,CROS自研引擎如今已经助力民用航空、数字文化等领域解决了不少“硬核”需求,初步完成了一轮游戏技术的“跨圈”应用。

问题来了,为什么手握“一线”游戏的腾讯,要做这件事?

为什么腾讯要做这件事?

前不久,英伟达GTC线上大会发起了一场特别活动——英伟达CEO黄仁勋与OpenAI联合创始人兼首席科学家Ilya Sutskever进行了一次“炉边谈话”。

在这次谈话中,Ilya Sutskever特别提到了《DOTA2》,通过《DOTA2》,OpenAI的学习模式从“强化学习”转变为了“基于人类反馈的强化学习(RLHF)”,这为后来的ChatGPT技术提供了借鉴。

而纵观AI发展至今的漫漫长路可以看到,游戏一直是前沿技术最佳的“试验田”

因为基于游戏的形式,一直是很多科学家探索AI的方式:

  • 1944年,冯·诺依曼在《博弈论与经济行为》一书中,首先提出了两人对弈的Minimax算法;

  • 1947年,图灵编写出了第一个下棋程序;

  • 1950年,香农发表《计算机下棋程序》一文,开启计算机下棋的理论研究。

  • 1951年,图灵的好朋友克里斯托弗·斯特拉切(Christopher Strachey)写出了世界上第一个视觉游戏checkers。

  • ……

再到后来名声大噪的AlphaGo击败人类,无不都在印证着这一点。

而游戏还不只是前沿科技的“试验场”,更是普通大众触碰到天文、生物、医学乃至基础科学等前沿科技的一个重要通道。

比如《肿瘤医生》,就是基于临床真实方案开发的一款科普肿瘤知识的游戏。

游戏中,玩家作为肿瘤医生,需要找到能平衡治疗、补充体力和回复免疫力的方案。

在这个过程中,玩家不仅能学到手术、放疗、化疗、靶向治疗、免疫治疗等基础知识,还能get不少防治癌症新技能,揭开这一前沿医学研究领域的“神秘面纱”。

腾讯公司高级副总裁马晓轶在接受媒体采访时就谈到,游戏驱动了新技术的发展,让新技术快速大规模应用、民用,并通过市场反哺新技术研发投入:

游戏本身是普通用户可以接受到的最吃硬件性能的数字产品……如果你日常刷个网页或短视频,大概会再用2W的功耗,这些加起来都不到5W。但你玩游戏的时候,增速要高,可能18W是拉满的。

而腾讯无论是做“全动飞行模拟机联合视景系统”还是“云游长城【时空版】”,更是凸显了游戏技术不一样的价值。

一个是用游戏引擎突破了航空航天核心装备的自研技术瓶颈。

通过把游戏技术应用于民航工业软件领域,不仅降低了飞行员的训练成本、提升培养效率,更是进一步助力实现核心引擎到业务场景各环节技术和软件系统的国产化。

这样一来,就能更好地促进民航工业核心自研知识的发展和迭代,进一步打造国产技术核心竞争力。

另一个则是在教育和文物保护上体现出了游戏技术的优势。

据了解,“云游长城”(香港版)已经通过中国文化研究院平台,进入香港中小学,成为丰富课程、拓展全新教学场景的延展学习资源。

同时,“云游长城”还获得了联合国教科文组织颁发的“2022全球世界遗产教育创新案例卓越之星奖”。

马晓轶认为,游戏科技是游戏产业逐步积累和沉淀了一套能模拟现实世界、提供沉浸体验和具备丰富交互能力等独特技术体系。这些能力特点,非常契合当下和未来的更多社会需求。

游戏科技“跨界”项目越来越多地出现,正是游戏作为一种超级数字场景,所呈现出来的通用性和更多可能性。

由此可见,游戏,已经不再是“你以为的你以为”了。

那么之于未来,游戏及游戏技术还能给更多跨领域带来怎样的价值,值得期待。

参考链接:http://www.caac.gov.cn/XXGK/XXGK/GFXWJ/201910/t20191010_198923.html


卡奥斯开源社区是为开发者提供便捷高效的开发服务和可持续分享、交流的IT前沿阵地,包含技术文章、群组、互动问答、在线学习、大赛活动、开发者平台、OpenAPI平台、低代码平台、开源项目等服务,社区使命是让每一个知识工人成就不凡。

官网链接:COSMOPlat SNShttps://openlab.cosmoplat.com/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql 分组语句测试

建表 建表语句: CREATE TABLE student( id int not null, name char(12), sex char(1) ); 预置数据 insert into student values(1, wh, 1); insert into student values(2, wh1, 0); insert into student values(3, zyx, 0); commit; 增加字段 alt…

Linux -- 进程信号

文章目录 1. 信号量1.1 进程互斥概念1.2 认识信号量 2. 信号入门2.1 信号概念2.2 见一见2.3 signal()系统调用2.4 宏定义信号 3. 信号产生方式3.1 键盘产生信号3.2 系统调用产生信号3.3 软件条件产生信号3.4 硬件异常产生信号3.5 Core dump 4. 阻塞信号4.1 相关概念4.2 信号在内…

1066 Root of AVL Tree(51行代码+超详细注释)

分数 25 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebala…

马斯克们叫停 GPT-5,更像是场行为艺术

目录 01 联名信说了什么? 02 发起方是谁? 03 谁签署了联名信? 04 联名信有哪些问题?三巨头的另外两位 Sam Altman 的表态 其他值得关注的署名者 比如马斯克。 另一个位于前列的署名者是 Stability AI 的创始人 Emad Most…

MySQL---存储函数、触发器

1. 存储函数 MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算 或功能写成一个函数。 存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。 存储函数与存储过程的区…

初识kubernetes

初识kubernetes 1.应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与缺点:不能为应用程…

MySQL基础-事务详解

本文主要介绍MySQL事务 文章目录 前言事务定义事务四大特性(ACID) 事务操作事务并发问题事务隔离级别 前言 参考链接: 链接1链接2 事务定义 事务是一组操作的集合,他是一个不可分割的工作单位,事务会把所有的操作作…

二叉树总结

文章目录 树需要掌握的基本概念二叉树基本特点满二叉树性质 完全二叉树性质 二叉搜索树(二叉排序树)Binary Search Tree(BST)性质 平衡二叉树性质 红黑树五大性质 B树 二叉树的存储方式链式存储顺序存储 二叉树的遍历 树需要掌握的基本概念 1、节点、根…

Java版spring cloud 本工程项目管理系统源码-全面的工程项目管理

​ ​工程项目管理系统是指从事工程项目管理的企业(以下简称工程项目管理企业)受业主委托,按照合同约定,代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 如今建筑行业竞争激烈,内卷严重&#xff0c…

接口自动化测试神器:Python+Requests+Unittest让你的测试用例飞起来

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠 随着互联网的发展,越来越多的应用程序采用了分布式架构,并通过API接口进行数据交换。因此,接口自动化测试已经成为了保证软件质…

【探索SpringCloud】服务发现

前言 今天,我们来聊聊SpringCloud服务发现。主要有如下几个议题: 一、服务发现的概念与方案;二、SpringCloud是如何与各个服务注册厂商进行集成的。 服务发现 在微服务架构中,我们不可避免的需要通过服务间的调用来完成系统功能…

蓝牙网状网络的基本原理及应用开发

借助蓝牙 5 的网状网络功能,开发人员可以增强无线连接系统(如物联网设备)的通信范围和网络可用性。但是,网状网络的低功耗无线硬件设计与网状网络软件开发之间存在着复杂的层次,这可能会使开发人员迅速陷入混乱并危及项…

今年的面试难度有点大....

大家好,最近有不少小伙伴在后台留言,又得准备面试了,不知道从何下手! 不论是跳槽涨薪,还是学习提升!先给自己定一个小目标,然后再朝着目标去努力就完事儿了! 为了帮大家节约时间&a…

Windows Cygwin 配置

Windows Cygwin 配置 一、什么是Cygwin? Cygwin,原Cygnus出品(已被红帽收购),目前是RedHat名下的项目。项目的目的是提供运行于 Windows 平台的类 Unix 环境(以 GNU 工具为代表)。为了达到这个…

一天吃透SpringCloud面试八股文

1、什么是Spring Cloud ? Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。 Sprin…

前端|想到什么写什么

记录当初伤害过我的一些概念😊 文章目录 一、闭包二、深拷贝、浅拷贝三、slice、splice、join、split、filter、concat、sort、some、every四、for in和for of、 map和foreach五、原型和原型链六、跨域七、vue相关1、生命周期2、响应式原理3、watch和computed4、vu…

协程切换原理与实践 -- 从ucontext api到x86_64汇编

目录 1.协程切换原理理解 2.ucontext实现协程切换 2.1 实现流程 2.2 根据ucontext流程看协程实现 2.3 回答开头提出的问题 3.x86_64汇编实现协程切换 3.1libco x86_64汇编代码分析 3.2.保存程序返回代码地址流程 3.3.恢复程序地址以及上下文 4.实现简单协程框架 1.协程…

MySQL 中 CONCAT 函数使用

1:创建数据表: CREATE TABLE user ( id int NOT NULL AUTO_INCREMENT, code varchar(255) NOT NULL, name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT3 DE…

8款数据迁移工具选型,主流且实用

前言:ETL(是Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业应用来说,我们经常会遇到各种数据的处理、转换、迁移的场景。今天特地给大家汇总了一些目前市面上比较常用的ETL数据迁移工具,希望对…

小黑子—Java从入门到入土过程:第九章-IO流

Java零基础入门9.0 Java系列第九章- IO流1. 初识IO流2. IO流的体系2.1 字节流2.1.1 FileOutputStream 字符串输出流2.1.1 - I 字符串输出流的细节2.1.1 - II FileOutputStream写数据的3种方式2.1.1 -III FileOutputStream写数据的两个小问题 2.1.2 FileInputStream 字符串输入流…
最新文章