支持海量单体模型的材质纹理动态更新方法、存储介质及设备技术

技术编号:39260761 阅读:11 留言:0更新日期:2023-10-30 12:12
本发明专利技术公开了一种支持海量单体模型的材质纹理动态更新方法、存储介质及设备,包括:将某一三维场景中同类几何结构的单体模型建立索引字段BH和属性表,并按照索引字段BH由小到大的顺序合并单体模型,形成载入三维场景的合并模型,采用索引字段BH为0的单体模型的材质纹理替代所有单体模型的材质纹理;创建一张空白材质纹理图片和对应的坐标系,进行网格单元划分,将单体模型的材质纹理图片添加到网格中,并将单体模型的材质纹理图片坐标添加到属性表中;依据属性表中单体模型的材质纹理图片坐标更新合并模型中所有单体模型的材质纹理,实现单体模型的材质纹理动态更新。本发明专利技术实现三维场景中海量单体模型的大规模快速加载。三维场景中海量单体模型的大规模快速加载。三维场景中海量单体模型的大规模快速加载。

【技术实现步骤摘要】
支持海量单体模型的材质纹理动态更新方法、存储介质及设备


[0001]本专利技术涉及三维可视化
,具体来说,涉及一种支持海量单体模型的材质纹理动态更新方法、存储介质及设备。

技术介绍

[0002]随着智慧城市建设的不断推进和数字孪生技术的快速发展,城市空间管理活动越来越注重于构建全量化、多维度、高精度的三维场景。而海量三维模型可视化则是构建精细化三维场景的基础,面对场景中普遍存在、结构统一、纹理各异的海量三维模型,如何在保证流畅渲染的同时,提高场景高性能的交互已经成为智慧城市建设的重要工作。
[0003]三维场景中的交互行为,如模型的单个拾取、单体化渲染以及局部模型纹理修改和更新,都需要依赖单独的三维模型进行操作。当海量独立的三维模型加载到三维场景中,主流的三维引擎如OpenGL和WebGL引擎都是采取逐个读取渲染的方式,即遍历这些三维模型对象,依次读取模型的顶点、材质和纹理贴图等信息,再进行逐个渲染。由于三维模型数据量大,这种逐个读取渲染的模式会极度耗时,导致三维场景的渲染效率下降,尤其是对场景中局部大批量的三维模型进行纹理修改和更新时,响应性骤降,直接影响用户的交互体验。
[0004]目前,为了优化包含海量模型要素的三维场景渲染性能,主要通过模型合并、模型顶点简化、模型纹理合并等方法降低模型的冗余度和复杂度,减少三维框架渲染的次数和模型本身的体量。其中,对于如路灯、消防栓、井盖等结构简单的三维模型,使用模型顶点简化和模型纹理合并的方法最终效果并不理想,而将模型的几何和材质进行简单的合并会导致难以对原有的单个模型进行单体化和纹理修改的问题。申请号为202211315073.0公开了一种海量三维模型的单体化渲染方法,该方法通过参数化建模合并模型和设计模型合并索引算法,实现对合并模型中单个构件模型的单体化渲染,但是此方案只是通过切换合并模型中两种材质来达到单体化效果,无法满足某些业务场景中需要设置或者更改模型不同材质纹理样式来标识不同状态的需求。因此,如何实现场景中海量三维模型流畅渲染和高性能的动态纹理更新成为三维可视化研究工作中的一大难题。

技术实现思路

[0005]针对现有技术中存在的问题,本专利技术提供了一种支持海量单体模型的材质纹理动态更新方法、存储介质及设备,实现三维场景中海量单体模型的大规模快速加载,减少渲染过程中GPU渲染绘制的调度次数,满足三维场景中高性能渲染需求;同时支持合并模型中单体模型的单体化渲染和局部批量模型的纹理快速动态修改和更新,为精细化的大型三维场景可视化提供有力的技术支持。
[0006]为实现上述技术目的,本专利技术采用如下技术方案:一种支持海量单体模型的材质纹理动态更新方法,具体包括如下步骤:
步骤1、将某一三维场景中同类几何结构的单体模型建立索引字段BH和属性表,并按照索引字段BH由小到大的顺序合并单体模型,形成载入三维场景的合并模型MergedModel,采用索引字段BH为0的单体模型的材质纹理替代所有单体模型的材质纹理;步骤2、创建一张空白材质纹理图片Textures和对应的坐标系,进行网格单元划分,将单体模型的材质纹理图片添加到网格中,并将单体模型的材质纹理图片坐标添加到属性表中;步骤3、依据属性表中单体模型的材质纹理图片坐标更新合并模型MergedModel中所有单体模型的材质纹理,实现单体模型的材质纹理动态更新。
[0007]进一步地,步骤1包括如下子步骤:步骤1.1、统计某一三维场景中同类几何结构的单体模型以及每个单体模型绑定的属性信息,并给单体模型建立索引字段BH,根据索引字段BH创建一张属性表;所述索引字段BH为整型,取值从0开始,按顺序增加1;步骤1.2、将索引字段BH为0的单体模型作为初始的合并模型MergedModel,根据索引字段BH从小到大的顺序依次将所有的单体模型合并到合并模型MergedModel中,并将合并模型MergedModel中所有单体模型的材质纹理均采用索引字段BH为0的单体模型的材质纹理替代。
[0008]进一步地,所述单体模型包括:单体模型的几何结构和单体模型的材质纹理,所述单体模型的几何结构包括:顶点位置、面索引和法线;对于单体模型的材质纹理,将单体模型的材质纹理相同的材质纹理图片归为一类。
[0009]进一步地,所述合并模型MergedModel的材质纹理UVS表示为:,其中,S表示某一三维场景中单体模型的总数量,BH表示S的索引字段,表示索引字段BH对应的单体模型的材质纹理,,l为单体模型中的顶点总数,表示中第一个顶点位置的材质纹理横坐标,表示中第一个顶点位置的材质纹理纵坐标,表示中第二个顶点位置的材质纹理横坐标,表示第二个顶点位置的材质纹理纵坐标,表示中最后一个顶点位置的材质纹理横坐标,表示中最后一个顶点位置的材质纹理纵坐标。
[0010]进一步地,步骤2包括如下子步骤:步骤2.1、创建一张空白材质纹理图片Textures,以单体模型的材质纹理图片的尺寸为网格单元,对空白材质纹理图片Textures进行划分,得到N
×
N个网格单元;步骤2.2、在空白材质纹理图片Textures上建立坐标系,以空白材质纹理图片Textures的左下角为坐标原点,以向右方向为X轴的正方向,以向上方向为Y轴的正方向,每一类单体模型的材质纹理图片均选取一张按照网格单元自左而右、自下而上的顺序添加到空白材质纹理图片Textures中;步骤2.3、将单体模型的材质纹理图片在材质纹理图片Textures坐标系上的材质纹理图片坐标添加到属性表中。
[0011]进一步地,所述网格单元的总数大于单体模型对象的材质纹理种类数。
[0012]进一步地,步骤3包括如下子步骤:步骤3.1、遍历索引字段BH,根据合并模型MergedModel的材质纹理UVS和材质纹理图片坐标,计算出当前单体模型所对应的最终材质纹理坐标:,其中,X表示与当前单体模型对应的材质纹理图片的横坐标,Y表示与当前单体模型对应的材质纹理图片的纵坐标;步骤3.2、根据当前单体模型所对应的最终材质纹理坐标对合并模型MergedModel中对应的单体模型的材质纹理进行更新。
[0013]进一步地,对于新增入合并模型MergedModel中的单体模型,若其材质纹理图片已存在于材质纹理图片Textures中,直接执行步骤3,实现对新增单体模型的材质纹理动态更新;否则,将新增单体模型的材质纹理图片添加到材质纹理图片Textures中,再执行步骤3,实现对新增单体模型的材质纹理动态更新。
[0014]进一步地,本专利技术还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序使计算机执行所述的支持海量单体模型的材质纹理动态更新方法。
[0015]进一步地,本专利技术还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现所述的支持海量单体模型的材质纹理动态更新方法。
[0016]与现有技术相比,本专利技术具有如下有益效果:本专利技术支持海量单体模型的材质纹理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持海量单体模型的材质纹理动态更新方法,其特征在于,具体包括如下步骤:步骤1、将某一三维场景中同类几何结构的单体模型建立索引字段BH和属性表,并按照索引字段BH由小到大的顺序合并单体模型,形成载入三维场景的合并模型MergedModel,采用索引字段BH为0的单体模型的材质纹理替代所有单体模型的材质纹理;步骤2、创建一张空白材质纹理图片Textures和对应的坐标系,进行网格单元划分,将单体模型的材质纹理图片添加到网格中,并将单体模型的材质纹理图片坐标添加到属性表中;步骤3、依据属性表中单体模型的材质纹理图片坐标更新合并模型MergedModel中所有单体模型的材质纹理,实现单体模型的材质纹理动态更新。2.根据权利要求1所述的一种支持海量单体模型的材质纹理动态更新方法,其特征在于,步骤1包括如下子步骤:步骤1.1、统计某一三维场景中同类几何结构的单体模型以及每个单体模型绑定的属性信息,并给单体模型建立索引字段BH,根据索引字段BH创建一张属性表;所述索引字段BH为整型,取值从0开始,按顺序增加1;步骤1.2、将索引字段BH为0的单体模型作为初始的合并模型MergedModel,根据索引字段BH从小到大的顺序依次将所有的单体模型合并到合并模型MergedModel中,并将合并模型MergedModel中所有单体模型的材质纹理均采用索引字段BH为0的单体模型的材质纹理替代。3.根据权利要求2所述的一种支持海量单体模型的材质纹理动态更新方法,其特征在于,所述单体模型包括:单体模型的几何结构和单体模型的材质纹理,所述单体模型的几何结构包括:顶点位置、面索引和法线;对于单体模型的材质纹理,将单体模型的材质纹理相同的材质纹理图片归为一类。4.根据权利要求2所述的一种支持海量单体模型的材质纹理动态更新方法,其特征在于,所述合并模型MergedModel的材质纹理UVS表示为:,其中,S表示某一三维场景中单体模型的总数量,BH表示S的索引字段,表示索引字段BH对应的单体模型的材质纹理,,l为单体模型中的顶点总数,表示中第一个顶点位置的材质纹理横坐标,表示中第一个顶点位置的材质纹理纵坐标,表示中第二个顶点位置的材质纹理横坐标,表示第二个顶点位置的材质纹理纵坐标,表示中最后一个顶点位置的材质纹理横坐标,表示中最后一个顶点位置的材质纹理纵坐标。5.根据权利要求4所述的一种支持海量单体模型的材质纹理动态更新...

【专利技术属性】
技术研发人员:夏伟王一梅蒋如乔钱程扬陈静王聪
申请(专利权)人:园测信息科技股份有限公司
类型:发明
国别省市:

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

1