一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Vulkan的飞行仿真用视景引擎的制作方法

2021-10-24 06:31:00 来源:中国专利 TAG:引擎 仿真 飞行 图像 vulkan

一种基于vulkan的飞行仿真用视景引擎
技术领域
1.本发明涉及图像引擎技术领域,尤其是涉及一种基于vulkan的飞行仿真用视景引擎。


背景技术:

2.如图1所示,图像引擎核心功能在于,为应用图形数据组织者提供易用的场景编辑、配置功能,自动、高效地将场景在时域上拆分为“帧”供应用业务开发者调用,并在渲染模块中进一步分解、组合、优化为基本绘制单元甬道,最后通过图像融合技术,组合成画面并呈现给最终用户。
3.其中,“场景”的概念源自传统引擎中“场景图”概念。场景图采用分层的树状数据结构来组织图形图像数据在三维、逻辑、开关、特效、乃至绘制控制等方面的关系。
4.场景图的顶部为根节点,从根节点向下延伸,每个组节点中可包含了包括几何、矩阵变换和渲染控制状态等元信息。在场景图最底部,每个叶节点包含构成场景物体的实际几何信息。几何元素的元信息(逻辑、开关、特效、控制等),根据类型由上而下逐层进行覆盖、继承、合并等操作获得。在程序运行期,每一渲染周期内,传统引擎均需要遍历整个场景图,生成临时性的渲染台和以及渲染单元渲染叶,并在执行后销毁。将这种引擎设计方式称为“运行期场景图”。
5.这种引擎设计方式,目前面临如下考验:
6.1、跨软硬件平台的需求,在军事应用领域,各种差异巨大的软硬件平台都需要图形引擎实现2d/3d图像显示功能,从武器装备到模拟训练系统,从作战指挥系统到便携式终端(平板电脑)及新兴的ar/mr终端。
7.2、行业用户跨应用场景的需求,与跨软硬件平台相对的,是跨应用场景的需求。两者的内在需求一致,即如何最大化的重用行业知识,提高知识的使用效率、提高应用的开发速度和效率,降低软件的开发和维护成本。
8.3、引擎使用的灵活性和运行效率之间的矛盾,从游戏界图形引擎研发的经验来看,一如图形api的设计,引擎使用的灵活性和应用运行时的高效性是一组永恒的矛盾。


技术实现要素:

9.本发明的目的是提供了一种设计期场景图的引擎方式,用以解决上述两个需求和一个矛盾的问题。
10.为实现上述目的,本发明提供了如下技术方案:
11.一种基于vulkan的飞行仿真用视景引擎,包括场景编辑器、数据中间件、渲染中间件和图像融合中间件,场景编辑器和数据中间件为渲染中间件提供数据支持;
12.场景编辑器组织渲染对象之间的逻辑关系,完成渲染对象之间元信息的共享,并输出渲染对象及配置文件;
13.数据中间件解析配置文件形成语法树,并针对目标输出平台优化语法树形成源文
件,将渲染对象转化为内部数据格式,最终将源文件和内部数据格式编译为动态库;
14.渲染中间件调用计算着色器、着色器对不同类型的渲染对象处理,并根据源文件在编译和构建时检查和决定渲染对象执行顺序;
15.图像融合中间件处于整个系统的最末端,位于引擎和硬件驱动层之间;根据源文件,通过图像融合算法整合渲染对象数据,并借助操作系统所提供的驱动程序输出到硬件。
16.优选的,渲染对象包括地景数据系统、仿真模型、天空、海洋、大气系统、粒子系统、传感器影像,地景数据系统包括地形高程数据、地形影像数据。
17.优选的,场景编辑器包括接口、交互、视图、逻辑、样式、状态/属性六部分组件;接口组件对外提供具体功能与扩展,对内传递外部属性;交互组件用于收集应用图形数据组织者提交的渲染对象数据;视图组件为可视化图形界面,用于应用图形数据组织者提交渲染对象数据;逻辑组件将常见逻辑进行封装与抽取,用于对渲染对象的数据状态进行处理;样式组件用于对目前样式进行系统化的整改;状态/属性组件是一系列i/o和逻辑处理的内在体现,用于具象化开发具体应用场景中渲染对象的状态与属性值。
18.优选的,配置文件为xml格式。
19.优选的,数据中间件还设置有解析和验证模块,采用验证、迭代的技术手段,根据配置文件对源文件进行一致性验证。
20.本发明采用上述结构的基于vulkan的飞行仿真用视景引擎,具有如下优势:
21.1、能够给飞机机载设备上图形图像方面的设计应用和模拟仿真训练设备研发之间架起了一道天然的桥梁,使得机载环境下的一些设计应用可以比较方便的转换为模拟训练设备中的仿真程序,缩短模拟装备研发周期,降低研发成本,也大大提升模拟训练设备的仿真度;
22.2、使得无论是飞机机载设备设计人员还是模拟训练设备仿真人员都不再为硬件和软件系统环境的差异而头疼,尤其在模拟仿真方面,不再受制于国外视景系统三维引擎的开发限制,能够更加灵活的对软件功能进行裁剪、更改、优化等。
23.3、平衡灵活性与运行效率之间的考量,使训练场景更加直观逼真,训练效果更好。在虚拟战场中既可以进行战术层次的演练,又可以进行战略层次的推演,作战计划制订人员可以通过虚拟场景仿真进行方案的评估与筛选。
附图说明
24.图1为现有引擎结构与不同类型使用者的对应关系;
25.图2为本发明实施例的引擎结构框图;
26.图3为本发明实施例的引擎结构与不同类型使用者的对应关系;
27.图4为本发明实施例中场景编辑器的组成框图;
28.图5为本发明实施例中数据中间件的组成框图;
29.图6为本发明实施例中图像融合中间件的组成框图。
具体实施方式
30.以下结合附图和实施例对本发明的技术方案作进一步说明。
31.本方案中,引擎采用的是设计期场景图设计模式。通过引入数据中间件和渲染中
间件,在应用编译阶段遍历渲染图,生成基本绘制单元甬道,以提升运行期效率、并为跨平台提供可能性。
32.这种思路源自如下四个观察:
33.1、在飞行仿真和机载设备中,画面场景的类型相对固定。运行期场景树所提供的极度灵活性不足以弥补其带来的效率损失。
34.2、对于引擎使用者来说,由于运行期场景图涵盖所有类型的数据组织:空间、逻辑、从属、效果乃至渲染的先后关系,故对引擎的使用者要求高,且没有细分。导致应用业务开发者需掌握从3d建模、
35.设计期场景图,将对人员的需求细分为应用图形数据组织者和应用业务开发者,分别为两类工作人员提供不同的工作环境和界面,降低了对工作人员的技能知识需求,提高生产效率。
36.3、从90年代以来,以java为代表的jit(just in time)类型的计算组织理念,由于cpu技术在处理速度方面发展的相对停滞、多核技术无助于此类问题的解决,开始被重新审视。在越来越多的应用中,aot(aheadoftime)等技术路线开始被广泛采用。即将应用的全生命期(设计、构建、运行)纳入考虑并充分加以利用。在游戏领域,以unrealengine为代表的新一代游戏引擎,在商业模型的支持下,采用提供全部引擎源码,应用构建时全部重新编译的方式以追求设计和执行效率的两全。
37.4、开源的llvm(lowlevelvirtualmachine

低级虚拟机)项目,在提供了一组高效易用满足规范的c/c 编译器之外,将整个编译构建过程以中间描述语言和api暴露出来,使编译和构建系统不再处于黑箱状态,而可以被嵌入、调用。这为灵活、可控的体系设计提供了强大的工具支持。
38.设计期场景图的提出,可以有效地解决前述应用层的两个需求和一个矛盾,其具体构成如下:
39.如图2

6所示的一种基于vulkan的飞行仿真用视景引擎,包括场景编辑器、数据中间件、渲染中间件和图像融合中间件,场景编辑器和数据中间件为渲染中间件提供数据支持。
40.场景编辑器组织渲染对象之间的逻辑关系,完成渲染对象之间元信息的共享,并输出渲染对象及xml格式的配置文件。
41.渲染对象包括地景数据系统、仿真模型、天空、海洋、大气系统、粒子系统、异构图像数据,地景数据系统包括地形高程数据、地形影像数据,粒子系统用于显示尾迹、爆炸等效果。
42.场景编辑器为应用图形数据组织者提供一个相对隔离的工作环境。场景编辑器支持应用图形数据组织者以场景为中心,组织图形图像素材。应用图形数据组织者工作内容包括:负责获取和组织图形引擎中地景系统所覆盖区域的地形高程数据、地形影像数据(卫星图像),并使用内置工具,依托部署平台进行格式转换;负责获取和组织图形引擎中3d对象的三维模型和相关纹理贴图,并使用内置工具,依托部署平台进行格式转换、缩放、定位等调整工作;负责获取和组织图形引擎中3d对象的动画数据,并使用内置工具进行配置。负责配置异构图像数据源,依据类型和需求,选择相应的转换器。
43.场景编辑器通过组件开发实现。组件是相对独立的可复用逻辑单元,多个组件相
互作用形成了完整丰富的页面,其内在表现是将页面进行分割与抽象,达到高复用,易维护的目的。
44.场景编辑器内部主要包含接口、交互、视图、逻辑、样式与状态/属性等组件,具体作用如下:
45.1、接口组件对外提供具体功能与扩展,对内传递外部属性,对应用图形数据组织者不可见,但承担着桥梁的作用,是各组件组合的粘合剂,因此接口的设计十分重要,可靠的输入输出是组件稳定的基石,功能丰富的接口也将提高组件的使用体验。
46.2、交互组件负责与应用图形数据组织者的交互工作,提供可操作的功能,同时收集应用图形数据组织者输入,然后对数据进行加工,重新给应用图形数据组织者呈现新的数据,能够快速响应。场景编辑器组件为了满足快速响应,将组件的执行任务进行优先级的分解,保证组件响应的快速。
47.3、视图组件是可视化图形界面,良好和统一的外观能提高应用图形数据组织者的使用体验,通过组件化视觉规范来提高组件的视图层表现。
48.4、逻辑组件内部将常见逻辑进行封装与抽取,实现逻辑层的独立。
49.5、样式组件单独将样式提取出来,对目前样式进行系统化的整改,减少日常开发对样式的依赖。
50.6、状态/属性组件是一系列i/o和逻辑处理的内在体现,方便在开发具体应用场景中具象化渲染对象的状态与属性值。
51.场景编辑器通过组件开发实现,组件开发可以很大程度上降低各个功能的耦合性,数据相互独立,提高了功能内部的聚合性。对于开发具体应用场景及降低代码的维护来说,是有很大的好处的。内部结构密封,不与全局或其他组件产生影响。耦合性的降低,提高了图形引擎伸展性,降低了开发具体应用场景的复杂度,提升开发效率,降低开发成本。因为各功能已经完善,开发具体应用场景使用的组件能够让人员更少的接触组件内部通用的逻辑,更加投入到具体应用场景中的开发,提升开发效率,减少错误的生成。
52.数据中间件围绕灵活性/运行效率进行设计。在技术上,采用代码生成的技术来满足效率的需求,用xml配置来满足灵活性方面的需求。具体来说:数据中间件读取由场景编辑器输出的xml配置;数据中间件解析xml配置,形成语法树;数据中间件通过优化器,针对目标输出平台,优化数据结构,将语法树生成为源文件。数据中间件通过数据格式转换器,将不同类型渲染对象数据转换为平台定义的内部数据格式;最终,调用内置的跨平台编译器,编译成满足应用业务开发人员使用的动态库。其中,技术难点在于代码生成、优化的结果和xml配置文件不一致。为解决这一问题,设计内置的解析和验证模块,采用验证、迭代的技术手段进行一致性验证。
53.渲染中间件用于解决三个需求:
54.1、不同图形对象的渲染方式和效果,如2d对象的渲染和3d对象的渲染区别、地景的渲染和云雾雨雪等大气效果的渲染区别;
55.2、不同部署平台上对应的图形api的区别,如在图形工作站上,可采用vulkan图形api,而在机载设备上只能采用opengl图形api;
56.3、不同部署平台上,从系统主内存到gpu数据传输和图像缓存的方式的差异。如在图形工作站上,可以较大规模的在gpu端缓存影像数据,以提高效率,而在机载设备上,受限
于硬件环境,只能采取逐帧数据同步的方式。
57.渲染中间件的核心工作单元为“甬道”。在仿真或机载系统中,每一帧需要组合调用多个甬道完成最后的图形图像渲染。甬道之间的相互依赖关系,通过图来描述,并在应用编译和构建时检查和决定执行顺序,以达到效率和灵活性之间的平衡。
58.按gpu使用的阶段来分,甬道可分为3类:
59.渲染前甬道:包括从系统主存下载或gpu内缓存读取相关渲染数据,如顶点数据、纹理,调用计算着色器(compute shader)对数据进行相应处理,以及初始化临时资源等;
60.渲染甬道:其核心为着色器(shader),包括几何着色器、顶点着色器和片元着色器;
61.渲染后甬道:主要功能为清理临时资源,依据平台特性,保存数据(到gpu缓存或系统主存)或丢弃数据。
62.图像融合中间件处于整个系统的最末端,位于引擎和硬件驱动层之间。其功能为整合异构图像数据,并借助操作系统所提供的驱动程序输出到硬件,如vr设备、多通道显示设备和机载设备等。
63.从异构图像数据整合的角度来说,图像融合中间件首先从场景编辑器中读取异构图像数据配置,将不同图像类型转换成中间件所规定的平台标准影像格式,其次,依据融合规则,对图像信道、显示区域、位置摆放等方面进行操作,最后,依据配置,通过图像融合算法完成最终影像的生成。
64.从支持多类型、多平台输出的角度来说,图像融合中间件需针对不同平台设备制定平台基本影像格式,并处理输出平台相关问题,如多通道强实时网络同步技术等。
65.整体来说,对于图像数据对象本身的空间信息由场景编辑器负责组织,而时域上的控制,由数据中间件所生成的api负责,几何信息、物理信息由渲染中间件负责呈现,最后图像融合中间件完成所有异构图像数据的融合与输出。
66.最终达到了如下技术效果:
67.1、自主可控。全自主源代码可控软件,支持定制开放,提供sdk和场景编辑环境。
68.2、灵活部署环境。支持在linux,windows两种操作系统,以及x64,arm64两种指令构架下运行,可拓展至vxworks操作系统,及mips指令构架。支持opengl和vulkan图形api。
69.3、多种输出支持。支持多屏、多通道大屏输出,支持流行vr设备输出,支持嵌入式机载设备视频输出。
70.4、友好的场景编辑界面。支持蓝图类场景编辑界面,易于学习和使用。
71.表1性能指标
[0072][0073]
以上是本发明的具体实施方式,但本发明的保护范围不应局限于此。任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此本发明的保护范围应以权利要求书所限定的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜