技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种用于油田站场逆向建站系统的自主化三维渲染引擎的制作方法  >  正文

一种用于油田站场逆向建站系统的自主化三维渲染引擎的制作方法

  • 国知局
  • 2024-07-31 23:25:16

本发明涉及三维引擎,具体涉及一种用于油田站场逆向建站系统的自主化三维渲染引擎。

背景技术:

1、随着数字化时代的到来,数据自动化、智能化、数字化的需求不断增长,越来越多上世纪建成的油田站场也开始逐步进行数字化转型,为了让数据变得更直观,可操作性更强,方便油田工作者可以在电脑前轻松掌控油田生产运行的方方面面,一款高清、仿真、细节丰富、运行流畅的油田模拟3d可视化操作面板是必不可少的,也是油田工作者了解油田站场数字化最直观的入口。

2、如果要开发高度仿真的油田站场模拟3d可视化操作面板,一款优秀的三维渲染引擎是必不可少的,市面上有不少商用或开源的3d引擎可以购买或使用,但使用商用或开源的3d引擎会遇到以下几个问题:

3、1、功能和性能限制:商用或开源的3d引擎可能不完全满足特定项目的需求。这可能限制场景或应用程序的功能和性能,尤其是在处理特定类型的图形或物理模拟时。

4、2、依赖外部供应商:依赖第三方3d引擎意味着受制于该引擎的更新和支持。如果供应商停止更新或支持该引擎,或者更改许可条款,可能会对项目产生负面影响。

5、3、许可费用和限制:使用商业引擎通常需要支付许可费用。此外,某些许可协议可能对产品的发布和收益分配有限制。

6、4、学习和适应成本:每个3d引擎都有其独特的工作流程和最佳实践。团队成员需要投入时间来学习和适应这些工具,这可能会延迟项目进度。

7、5、优化和定制的限制:虽然许多现代3d引擎提供一定程度的定制和扩展性,但它们可能无法提供与自主研发引擎相同的优化和定制级别。这可能导致性能不足或无法实现特定的视觉效果。

8、6、安全性和隐私问题:使用第三方软件可能带来安全性和隐私方面的风险,尤其是在处理敏感数据或进行高安全性要求的开发时。

9、7、技术支持和社区资源:虽然许多流行的3d引擎拥有活跃的开发社区和丰富的学习资源,但对于一些较少使用或较新的引擎,可能难以获得及时的技术支持和解决方案。

技术实现思路

1、为解决上述技术问题,本发明提供了一种用于油田站场逆向建站系统的自主化三维渲染引擎,所述引擎具备以下功能点:

2、1、平台支持:

3、自主化三维渲染引擎和基于该引擎开发的项目可运行在主流桌面操作系统(windows、macos、linux)、移动端(android、ios、harmonyos)、web浏览器端。

4、2、编辑器功能:

5、场景编辑器;

6、内置脚本编辑器、脚本调试器功能;

7、实时脚本重新加载;

8、实时场景编辑;

9、实时相机同步。

10、3、渲染算法:

11、forward+,也称为基于tile的前向渲染,是结合了前向渲染和基于tile灯光剔除来减少着色过程中灯光数量的一种渲染技术;

12、forwardmobile,支持的特性较少,对简单场景可以更快速的渲染。适合于运行在移动端平台;

13、compatibility兼容模式,适用于低配置的设备,默认用于web浏览器。

14、4、二维图形系统:

15、精灵、多边形、直线渲染;

16、动画精灵,用于创建动态图片;

17、带法线贴图和高光贴图的2d光源;

18、点光源和平行光;

19、硬阴影或软阴影(每个光源都可以独立调节);

20、自定义着色器;

21、文本渲染,使用位图、光栅化,使用自由类型或多通道符号距离场(msdf);

22、基于gpu的粒子系统;

23、基于cpu的粒子系统;

24、可选的2d高动态光照渲染,生成更佳光晕效果的能力;

25、瓦片地图;

26、2d相机;

27、2d路径和2d几何辅助类。

28、5、二维物理系统:

29、支持具有物理属性的物体,包含静态物体、运动物体、刚体、角色物体、连接体、用于检测物体进入和离开的区域;

30、碰撞检测体,内置的碰撞检测体有线条、盒子、圆、胶囊、世界边界;

31、碰撞多边形,可手工绘制或由图片生成。

32、6、三维图形系统

33、基于srgb(一种国际标准的rgb色彩空间,广泛应用于计算机显示器、数码相机、扫描仪等设备)的hdr(高动态光照渲染);

34、正交、透视相机系统;

35、当使用forward+渲染模式时,使用深度预处理提高渲染性能;

36、在forward+和forwardmobile模式下,支持gpu可变速率着色;

37、a、基于物理的渲染(内置的材质特性):

38、遵循disney pbr模式;

39、支持burley,lambert,lambertwrap(半lambert)和toon漫反射阴影模式;

40、b、实时光照:

41、平行光(太阳光/月亮光):每个场景最多4个;

42、c、全向灯光:

43、可调节锥角和衰减的聚光灯;

44、镜面,间接光和体积雾能量可以在每个光的基础上进行调整;

45、可调节伪区域光的光“大小”(也会使阴影更模糊);

46、可选的距离淡化系统,淡化远处的光和他们的阴影,提高性能;

47、当使用forward+渲染模式时,灯光将使用集群前向优化来渲染,以减少其单个性能消耗;集群渲染也解除了可以在网格上使用的灯光数量的限制;

48、当使用forwardmobile渲染模式时,每个网格资源最多可以显示8个泛光灯和8个射灯;如果需要,灯光烘焙可以用来克服这个限制;

49、d、阴影贴图:

50、directionallight:正交(最快),pssm2-split和4-split;支持拆分之间的混合;

51、omnilight:双抛物面(快速)或立方体映射(慢但更准确);支持全景形式的彩色投影仪纹理;

52、聚光灯:单一纹理;支持彩色投影仪纹理;

53、阴影正常偏移偏置和阴影平坠(shadowpancaking),以减少可见的阴影粉刺和彼得·潘宁(peter-panning)的数量;

54、基于光线大小和阴影投射到表面的距离的类似pcss的阴影模糊;

55、可调的阴影模糊在每个光的基础上;

56、e、间接光全局光照:

57、烘焙光照贴图(渲染最快,但不能实时刷新);

58、基于体素的gi探针;

59、为大型开放世界空间设计的带符号距离域gi;

60、半分辨率或全分辨率的屏幕空间间接照明(sil);

61、voxelgi和sdfgi使用延迟传递来允许以一半分辨率渲染gi以提高性能(同时仍然具有功能性msaa支持);

62、f、光反射:

63、基于体素的反射(当使用gi探针时)和基于sdf的反射(当使用符号距离场gi时);基于体素的反射在透明表面上可见,而基于粗糙sdf的反射在透明表面上可见;

64、使用反射探针快速烘焙反射或慢速实时反射,可以选择启用视差框校正;

65、支持材料粗糙度的屏幕空间反射;

66、反射技术可以混合以获得更高的准确性或可伸缩性;

67、当使用forward+渲染模式时,反射探测器会使用集群的前向优化来呈现,以减少它们各自的性能消耗,集群渲染还解除了对可以在网格上使用的反射探针数量的限制;

68、当使用forwardmobile渲染模式时,每个网格资源最多可以显示8个反射探针;

69、g、天空:

70、全景天空;

71、对应于场景中平行光源的可编程天空和基于物理的天空;

72、自定义天空着色器,支持动画;

73、选择更高的图形质量时,用于环境光和特殊光的辐射光谱可实时更新;

74、h、雾:

75、指数深度雾;

76、指数高度雾;

77、支持根据天空颜色(空中透视)自动生成雾色;

78、支持雾中的太阳光散射;

79、依赖于传统雾和体积雾的分别控制,支持控制多少雾量会对天空造成影响;

80、支持制作可以忽略雾的特殊材质;

81、i、体积雾:

82、全局体积雾可对光照和阴影做出响应;

83、体积雾的渲染可将间接光照的影响考虑在内;

84、每个体积雾组件都可以采用独立的着色器;

85、体积雾可以与传统雾一起使用

86、j、粒子系统:

87、基于gpu的粒子,支持提交器(2d+3d),轨迹(2d+3d),吸引器(仅3d)和碰撞(2d+3d)

88、支持三维粒子吸引器形状:盒子,球体和三维矢量场;

89、支持3d粒子碰撞形状:盒子,球体,带签名烘焙距离场和实时高度图(适合开放世界的天气效果);

90、2d粒子碰撞使用基于场景中的lightoccluder2d节点实时生成的带符号距离场来处理;

91、小径可以使用内置的带状小径和管小径网格,或自定义网格与骨架;

92、支持自定义粒子着色与手动发射;

93、基于cpu的粒子;

94、k、后处理:

95、色调映射(linear,reinhard,filmic,aces);

96、根据视口亮度自动/手动曝光调节;

97、近景深和远景深与可调散景模拟;

98、半分辨率或全分辨率的屏幕空间环境光遮蔽;

99、发光/绽放与可选的双立方升级和几种混合模式可用:屏幕,柔光,添加,替换,混合;

100、发光可以有一个彩色污垢贴图纹理,作为一个镜头污垢效果;

101、发光可以作为一种屏幕空间的模糊效果使用;

102、使用一维渐变或3dlut纹理进行颜色校正;

103、粗糙度限制,以减少镜面混叠的影响;

104、亮度,对比度和饱和度调整;

105、l、纹理过滤:

106、支持nearest最接近、bilinear双线性、trilinear三线性或anisotropic各向异性滤波;

107、过滤选项是基于每次使用定义的,而不是基于每次纹理定义的;

108、纹理压缩;

109、anti-aliasing抗锯齿;

110、分辨率缩放。

111、7、三维物理系统:

112、支持具有物理属性的物体,包含静态物体、运动物体、刚体、角色物体、车辆、连接体、柔软的物体、布娃娃、用于检测物体进入和离开的区域;

113、碰撞检测体,内置的碰撞检测体有立方体、球体、胶囊体、圆柱体、世界边界;

114、从编辑器中为任何网格面生成三角形碰撞形状;

115、从编辑器中为任何网格生成一个或几个凸碰撞形状。

116、8、着色器系统:

117、二维:支持自定义顶点、片元、光照着色器;

118、三维:支持自定义顶点、片元、光照、天空着色器;

119、基于文本的着色器,使用glsl着色器语言;

120、可视化着色器编辑器。

121、9、脚本系统:

122、引擎内置支持脚本为自主研发脚本语言jyscript,具有如下特性:

123、类python语言语法,简单易懂;

124、支持面向对象设计;

125、脚本间通讯方式为信号和分组;

126、除基本数据类型外,内置大量线性代数数据类型,如vector(向量)、transform(变换);

127、使用线程执行异步操作,充分利用多处理器内核。

128、10、声音系统:

129、2d和3d场景中的固定位置和非固定位置声音播放,可选的杜比音效;

130、支持随机音量和音调;

131、支持实时变调;

132、音频系统使用如下操作系统api:

133、windows:wasapi

134、macos:coreaudio

135、linux:pulseaudio或alsa;

136、11、资源导入:

137、图片文件,支持bmp(.bmp)、jpeg(.jpg、.jpeg)、svg(.svg)、webp(.webp)格式;

138、音频文件,支持wav、ogg、mp3格式;

139、模型文件,支持gltf、fbx、wavefrontobj。

140、12、gui系统:

141、支持的gui控件有按钮、复选框、单选按钮、文本、下拉菜单、滚动条、标签、富文本标签、树、颜色选择器;

142、控件可以旋转和缩放;

143、尺寸:

144、使用anchors(锚点)确保gui控件位置在特定的角落、边界或屏幕中央;

145、布局容器有stack、grid网格、flow流。

146、13、动画系统:

147、正向动力学和反向动力学;

148、支持任意属性的自定义插值算法;

149、支持动画足迹中的方法调用;

150、支持动画足迹中的声音播放;

151、支持贝塞尔曲线动画。

152、14、粒子系统:

153、粒子系统负责生成和管理复杂的粒子效果,如烟雾、火焰或星光,用于模拟自然界的动态和随机现象,提供可视化细节和动态环境。

154、纹理导入:

155、允许开发者从各种图像文件格式中导入纹理,这些纹理可用于增强三维模型的视觉效果,包括表面细节和颜色信息,增强场景的真实感。

156、音频导入:

157、支持将外部音频文件导入到引擎中,允许开发者使用不同格式的音频文件,增强游戏或应用中的声音效果和环境氛围。

158、场景导入:

159、提供了将完整的三维场景从外部文件中加载到引擎的能力,支持各种场景元素,包括模型、光照和纹理,便于快速场景构建和编辑。

160、模型存储:

161、用于存储、检索和管理三维模型及其相关属性,如几何形状、材质和动画,确保数据的高效处理和优化。

162、19、文件格式:

163、定义了引擎可识别和处理的文件类型,包括模型、纹理、音频和场景文件,确保不同类型的数据可以正确地被引擎读取和应用。

164、20、文件读写:

165、场景和资源可以使用基于文本的格式和二进制格式保存,文本格式具有易读性,更适合于版本管理,二进制格式对于大的场景和资源有更快速的加载和存储执行速度;

166、文本和二进制文件读取使用系统内置api,可选择压缩或加密算法;

167、json文件读写支持;

168、ini风格配置文件读写,可序列化任意内置数据类型;

169、xml文件读写支持。

170、本发明自主化三维渲染引擎的渲染组件主要包含以下几点:

171、1、视景器:视景器是整个渲染流程的起点,它定义了场景中的视点,即从哪里观看场景,这涉及到视图变换,它会将世界坐标系中的对象转换为相对于观察者的坐标系;

172、2、场景:场景是由多个组成部分构成的:

173、a、图像处理器:负责对图像数据进行预处理,可能包括纹理映射、光照计算等;

174、b、节点数据处理器:用于处理场景图中的每个节点,如几何节点、光源节点等;

175、c、场景图形根节点:这是场景图的起点,定义了场景中所有对象的层级结构。场景图是一种组织和管理复杂三维场景中的各种元素(如模型、灯光、相机等)的有效方法;

176、3、事件处理器:负责处理输入事件,如键盘和鼠标输入,以及其他交互事件,这些事件可能会影响场景中的对象,如改变视点、触发动画等;

177、4、摄像机:在三维图形中,摄像机定义了观看场景的特定视角。它与以下组件紧密相关:

178、a、渲染器:负责将处理过的三维数据转换成二维图像,这通常涉及遍历场景图、执行光照和阴影计算、应用材质和纹理等;

179、b、图形设备:这通常指的是用于渲染图像的硬件设备,如gpu,它也包括渲染窗口,即图像在屏幕上显示的区域;

180、c、视口:视口定义了渲染图像在图形设备或窗口中的具体显示区域;

181、5、显示设置:显示设置定义了如何将渲染的图像最终呈现给用户,包括分辨率、颜色深度、刷新率等参数。

182、本发明相对于现有技术具有以下有益效果:

183、1、可扩展性和兼容性:由于本系统使用了自主化三维渲染引擎,可以根据技术的发展和油田站场需求的变化而进行迭代升级,具有良好的可扩展性,能够轻松集成新的技术。

184、2、安全性和保密性:鉴于油田数据的敏感性,自主化三维渲染引擎的底层代码具有更安全的措施来保护数据不被未经授权的访问和攻击。

185、3、环境和安全规范的遵守:系统设计和运行应遵循相关的环境保护和安全规范,确保油田站场的可持续发展。

186、4、维护和支持:系统需要有可靠的维护和技术支持,以确保其长期有效运行。

187、5、本发明对比其他用商用或开源的3d渲染引擎,具有以下优点:引擎设计简单,轻量级,具有高效的资源管理和渲染系统;内置自主研发的脚本语言jyscript,类python语法,易学习易使用,开发效率高;脚本编辑后可立即重新加载,无需编译,速度快;编辑器内置脚本调试功能,断点调试方便,可直接调试,无需通过打印日志的方式调试。

本文地址:https://www.jishuxx.com/zhuanli/20240730/197458.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。