System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种大规模GLTF模型的本地解析方法技术_技高网

一种大规模GLTF模型的本地解析方法技术

技术编号:44128299 阅读:11 留言:0更新日期:2025-01-24 22:46
本发明专利技术提供一种大规模GLTF模型的本地解析方法,具体步骤包括:在服务器端环境下配置虚拟浏览器环境,解决服务器端开发平台与Web端之间的兼容问题;对GLTF的文件结构进行分析,并通过Web端3D显示模块解析GLTF文件;函数调用采用异步调用机制,异步操作完成后再运用同步调用进行解析和渲染;读取缓存文件后,将数据解析成cascade_render数据结构;将图片从GLTF二进制文件中解析并存储为独立的图片文件,获取和映射材质纹理;确定数据存储格式,并为缓存文件命名,结合模型导入处理机制将文件解析到本地。本发明专利技术主要对于GLTF文件在网页显示时显示效率低的问题,提供一种用于提高显示效率并且在本地显示引擎可以完成模型和动画的加载的技术方案。

【技术实现步骤摘要】

本专利技术涉及计算机,具体而言,尤其涉及一种大规模gltf模型的本地解析方法。


技术介绍

1、gltf代表graphics language transmission format(图形语言传输格式)。这种跨平台格式已成为web上的3d对象标准。考虑到目前网络上gltf格式的普遍性,而gltf格式不仅仅包括3d的模型数据,更重要且复杂的是gltf文件还包括3d动画的显示功能。因此,基于这个通用标准进行技术的创新是个值得研究的方向。

2、而将gltf文件解析并在本地显示相对于在浏览器中显示,可提供更好的性能、更高的自定义性、更好的安全性,并且可在无网络连接的情况下进行显示。这些优点使得在某些情况下,特别是对于需要更高性能和更灵活定制的应用,将gltf文件解析并在本地显示是更合适的选择。

3、同时gltf模型具有轻量化、传输效率高、加载速度快等优点,并支持嵌入纹理、动画和其他数据,在保持高质量的同时减小文件大小。目前,gltf模型已经广泛应用于一些大规模模型的场景中,例如游戏、虚拟现实、增强现实以及大规模建筑和机械工程等领域。

4、目前,gltf文件在浏览器端显示的引擎是webgl,而网页显示时,会有一定的内存限制,因此对于较大的模型来说,显示效率会非常低。


技术实现思路

1、根据上述提出的技术问题,而提供一种大规模gltf模型的本地解析方法。本专利技术主要利用后端服务器端环境(javascript)完成程序设计工作,通过一种基于web端3d显示模块实现对gltf文件中模型的解析,以及动画中间帧的生成与提取。最终,缓存的数据将移交给dcip的opengl显示引擎,以完成模型和动画的加载,为3d图形及动画展示应用提供了全新的技术解决方案。

2、本专利技术采用的技术手段如下:

3、一种大规模gltf模型的本地解析方法,具体步骤包括:

4、s1、在服务器端环境下配置虚拟浏览器环境,解决服务器端开发平台与web端之间的兼容问题;

5、s2、对gltf的文件结构进行分析,并通过web端3d显示模块解析gltf文件;

6、s3、函数调用采用异步调用机制,异步操作完成后再运用同步调用进行解析和渲染;

7、s4、读取缓存文件后,将数据解析成cascade_render数据结构;

8、s5、将图片从gltf二进制文件中解析并存储为独立的图片文件,获取和映射材质纹理;

9、s6、确定数据存储格式,并为缓存文件命名,结合模型导入处理机制将文件解析到本地。

10、进一步地,所述配置虚拟浏览器环境,即在服务器端环境下构造出虚拟的web环境,通过web端3d显示模块完成数据的解析和提取;

11、所述配置虚拟浏览器环境需要修改fileloader模块,将文件读入内存后封装到全局对象cache中,将本地文件通过服务器端开发平台的readfilesync函数读入,并导入到cache中,在web端3d显示模块对本地文件进行解析。

12、进一步地,所述gltf文件包括json和二进制glb两种格式,通过web端3d显示模块读取和解析文件,提取模型和动画数据;web端3d显示模块对数据进行读取和解析后,能够直接通过得到的数据结构来获取gltf中所需要的信息。

13、进一步地,所述web端3d显示模块解析过程中采用异步调用方式,使用promise和promise.all方法管理异步函数,渲染时需要以dcipgltfparser解析后的结果为输入,进行同步调用,当异步操作完成后再进行同步调用。

14、所述dcipgltfparser执行时通过promise.all来监控其余异步函数的状态,当所有的异步函数完成,即为fullfilled状态时,promise.all也返回fullfilled状态,再通过then方法执行cascade_render。

15、进一步地,所述gltf动画显示设计的数据结构包含模型信息和动画信息,当解析缓存文件时,需要将数据转换为cascade_render数据结构,输入opengl内核中。

16、进一步地,所述服务器端环境中的相关信息解析模块从gltf二进制文件中提取材质图片文件,并存储为独立的图片文件,opengl内核获取材质纹理进行渲染。

17、进一步地,所述数组存储格式包括常规存储和交叉存储;所述缓存文件命名用于将gltf文件与对应的动画缓存文件之间一一对应,采用md5哈希算法生成文件的唯一签名,并用该签名命名缓存文件;

18、所述模型导入处理机制通过缓存机制将文件解析到本地,能够根据实际需求选择性地加载动画显示中所需的零件,实现按需加载。

19、较现有技术相比,本专利技术具有以下优点:

20、本专利技术提供的大规模gltf模型的本地解析方法,使用了一种基于web端的3d显示模块,具备丰富的3d渲染功能,能够在浏览器中运行,实现创建多样化的三维场景,包括摄影机、光影、材质等对象,并支持gltf模型的读取与输出及动画的展示等功能。团队目前的方案为通过该库中的特定功能模块,实现对gltf文件的解析,以及动画中间帧的生成与提取,之后将缓存的数据传递给dcip的opengl显示引擎,以实现模型与动画的最终加载。

21、本专利技术提供的大规模gltf模型的本地解析方法,服务器端开发平台是javascript代码的模块化单元,可以被复用和共享。其通常包括代码、相关的配置文件、元数据以及依赖项等信息。其优点主要包含:模块化开发,即提高代码的可维护性和可重用性;依赖管理,即项目的依赖关系清晰可见,便于版本管理和升级;开发效率,即通过使用已有的包管理工具,开发者可以节省大量的时间和精力,专注于解决具体问题。并可根据需求,使用包管理工具中现有的模块完成程序设计工作。

22、本专利技术提供的大规模gltf模型的本地解析方法,运用了轻量级的软件开发工具dcip,可在桌面上运行,适用于windows、macos和linux,可快速开发跨平台的软件。其包含的显示模块使用opengl引擎展示3d立体模型的控件,可完成模型渲染的功能。

23、基于上述理由本专利技术可在计算机技术等领域广泛推广。

本文档来自技高网...

【技术保护点】

1.一种大规模GLTF模型的本地解析方法,其特征在于,具体步骤包括:

2.根据权利要求1所述的大规模GLTF模型的本地解析方法,其特征在于,所述配置虚拟浏览器环境,即在服务器端环境下构造出虚拟的Web环境,通过Web端3D显示模块完成数据的解析和提取;

3.根据权利要求1所述的大规模GLTF模型的本地解析方法,其特征在于,所述GLTF文件包括JSON和二进制GLB两种格式,通过Web端3D显示模块读取和解析文件,提取模型和动画数据;Web端3D显示模块对数据进行读取和解析后,能够直接通过得到的数据结构来获取GLTF中所需要的信息。

4.根据权利要求1所述的大规模GLTF模型的本地解析方法,其特征在于,所述Web端3D显示模块解析过程中采用异步调用方式,使用Promise和Promise.all方法管理异步函数,渲染时需要以DCiPGLTFParser解析后的结果为输入,进行同步调用,当异步操作完成后再进行同步调用;

5.根据权利要求1所述的大规模GLTF模型的本地解析方法,其特征在于,所述GLTF动画显示设计的数据结构包含模型信息和动画信息,当解析缓存文件时,需要将数据转换为cascade_render数据结构,输入OpenGL内核中。

6.根据权利要求1所述的大规模GLTF模型的本地解析方法,其特征在于,所述服务器端环境中的相关信息解析模块从GLTF二进制文件中提取材质图片文件,并存储为独立的图片文件,OpenGL内核获取材质纹理进行渲染。

7.根据权利要求1所述的大规模GLTF模型的本地解析方法,其特征在于,所述数组存储格式包括常规存储和交叉存储;所述缓存文件命名用于将GLTF文件与对应的动画缓存文件之间一一对应,采用MD5哈希算法生成文件的唯一签名,并用该签名命名缓存文件;

...

【技术特征摘要】

1.一种大规模gltf模型的本地解析方法,其特征在于,具体步骤包括:

2.根据权利要求1所述的大规模gltf模型的本地解析方法,其特征在于,所述配置虚拟浏览器环境,即在服务器端环境下构造出虚拟的web环境,通过web端3d显示模块完成数据的解析和提取;

3.根据权利要求1所述的大规模gltf模型的本地解析方法,其特征在于,所述gltf文件包括json和二进制glb两种格式,通过web端3d显示模块读取和解析文件,提取模型和动画数据;web端3d显示模块对数据进行读取和解析后,能够直接通过得到的数据结构来获取gltf中所需要的信息。

4.根据权利要求1所述的大规模gltf模型的本地解析方法,其特征在于,所述web端3d显示模块解析过程中采用异步调用方式,使用promise和promise.all方法管理异步函数,渲染时需要以dcipgltfpa...

【专利技术属性】
技术研发人员:张向奎郑国军胡平祝雪峰
申请(专利权)人:大连理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1