CN117953181A - 一种面向web3d的顶点分层与增量式lod方法及系统 - Google Patents
一种面向web3d的顶点分层与增量式lod方法及系统 Download PDFInfo
- Publication number
- CN117953181A CN117953181A CN202410354225.0A CN202410354225A CN117953181A CN 117953181 A CN117953181 A CN 117953181A CN 202410354225 A CN202410354225 A CN 202410354225A CN 117953181 A CN117953181 A CN 117953181A
- Authority
- CN
- China
- Prior art keywords
- lod
- vertex
- degradation
- triangle
- web3d
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000015556 catabolic process Effects 0.000 claims abstract description 97
- 238000006731 degradation reaction Methods 0.000 claims abstract description 97
- 238000009877 rendering Methods 0.000 claims abstract description 19
- 238000009826 distribution Methods 0.000 claims abstract description 8
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000013139 quantization Methods 0.000 claims 1
- 125000004122 cyclic group Chemical group 0.000 abstract 1
- 238000013179 statistical model Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种面向WEB3D的顶点分层与增量式LOD方法及系统,属于计算机图形学技术领域,其方法具体包括:统计模型文件中各三角面的边长分布,将三角形的边长进行等级划分,在某一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长D是否满足退化条件,循环遍历直至所有LOD等级条件下的点和边都遍历完成,得到每一个点的退化等级,按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表,将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件,最后进行文件的加载和渲染,根据不同的细节,将顶点进行分层,避免了低细节等级模型的马赛克化。
Description
技术领域
本发明属于计算机图形学技术领域,具体的说是一种面向WEB3D的顶点分层与增量式LOD方法及系统。
背景技术
LOD的实现原理是通过动态地改变物体的细节程度来减少需要渲染的三角形数量,从而提高渲染性能。在相机距离物体较远时,使用较低的细节级别,减少三角形数量和渲染时间;当相机接近物体时,使用较高的细节级别,提高物体的细节和图形质量。这种动态调整的方式可以避免在不需要显示高细节的情况下浪费GPU性能。
目前三角网格的简化算法提供了一种如何控制过度复杂的三角网格的解决思路。过度复杂的网格不仅影响了相关应用的处理时间,大幅度增加了计算量,还对处理设备提出了额外的要求。同时,在网格的传输,存储等方面也提出了更高的要求。这些网格简化算法大多尝试着简化掉网格中尺寸较小的,或者其他不重要的部分来降低网格的复杂度。按照不同的简化方式可以分为以下几类:
公共区域合并、顶点聚类和网格元素删减,LOD又可分为:静态LOD,在预处理过程中产生一个物体的几个离散的不同细节层次模型。实时绘制时根据特定的标准选择合适的细节层次模型来表示物体;动态LOD,在动态LOD算法中生成一个数据结构,在实时绘制时可以从这个数据结构中抽取出所需的细节层次模型。从这个数据结构中可以得到大量不同分辨率的细节层次模型,分辨率甚至可以是连续变化的。
如授权公告号为CN103324783B的中国专利公开了一种基于边折叠的LOD模型实时生成方法,包括如下步骤:根据视点位置和三维设备模型位置计算视点至三维设备模型的距离;按视点到三维设备模型的距离确定三维设备模型的简化程度;根据三维设备模型的简化程度按照基于顶点简化权重的实时简化操作对三维设备模型实时简化。该发明通过对三维设备模型的实时简化,可以实时地得到具有所需分辨率的近似三维设备模型,并保证分辨率变化的连续性;通过引入简化权重值,使三维设备模型的视觉信息得到较好的保留。
如授权公告号为CN107491481B的中国专利公开了一种LOD模型搜索方法及系统、建立LOD模型数据库的方法和计算机可读的存储介质。该发明的LOD模型搜索方法包括步骤:输入待搜索模型;获取待搜索模型的顶点参数,所述顶点参数至少包括顶点坐标及顶点拓扑结构;对待搜索模型的顶点参数进行简化处理以获得待搜索模型的简化参数,待搜索模型简化处理后的简化参数的排序规则与数据库中模型的简化参数的排序规则一致;待搜索模型的简化参数与数据库中存储的模型的简化参数进行对比;及输出搜索结果。本发明的LOD模型搜索方法及系统、建立LOD模型数据库的方法和计算机可读的存储介质,其大大减少了需要处理的数据量,加快了计算机的运行速度,提高了搜索效率。
发明内容
针对现有技术的不足,本发明提出了一种面向WEB3D的顶点分层与增量式LOD方法及系统,获取WEB3D模型文件,并统计WEB3D模型文件中各三角面的边长分布,将三角形的边长进行等级划分,设定退化条件,在任意一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长是否满足退化条件,若满足,则将所述顶点标记为退化点,搜索位置移动到退化点的各相邻点,若边长不满足退化条件,则搜索起点停留在所述顶点,直至遍历所述LOD等级条件下的所有点和边,重复S2,直至所有LOD等级条件下的点和边都遍历完成,得到WEB3D模型文件中每一个点的退化等级,按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表,将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件,加载文件时,将组织的二进制文件读入缓冲区,随着模型的细化,产生原始三角形的一个重新排序序列,依次将下一个层次的三角形数据推送到缓冲区后面,在渲染过程中,查找LOD级别的图元数量,并使用匹配的顶点着色器设置进行量化,从缓冲区中绘制相应数量的元素。
为实现上述目的,本发明提供如下技术方案:
一种面向WEB3D的顶点分层与增量式LOD方法,包括以下具体步骤:
S1:获取WEB3D模型文件,并统计WEB3D模型文件中各三角面的边长分布,将三角形的边长进行等级划分,设定退化条件;
S2:在任意一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长是否满足退化条件,若满足,则将所述顶点标记为退化点,搜索位置移动到退化点的各相邻点,若边长不满足退化条件,则搜索起点停留在所述顶点,直至遍历所述LOD等级条件下的所有点和边;
S3:重复S2,直至所有LOD等级条件下的点和边都遍历完成,得到WEB3D模型文件中每一个点的退化等级;
S4:按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表;
S5:将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件;
S6:加载文件时,将组织的二进制文件读入缓冲区,随着模型的细化,产生原始三角形的一个重新排序序列,依次将下一个层次的三角形数据推送到缓冲区后面;
S7:在渲染过程中,查找LOD级别的图元数量,并使用匹配的顶点着色器设置进行量化,从缓冲区中绘制相应数量的元素。
具体的,所述S1中的退化条件为:LOD等级和边长退化条件。
具体的,所述S2的具体方法为:
S201:设定三角形边长为D,LOD等级集合为,/>,其中N表示LOD等级为N级,在LOD等级为N时,三角形边长D的退化条件为:/>,/>和/>为常数,且/>;
S202:在LOD等级为J时,从一个顶点开始遍历,设置遍历约束条件,遍历约束条件具体公式为:
,
其中,YS表示遍历的约束条件,表示第k个节点,/>表示第k个节点相邻的第l个节点,/>表示第k个节点与相邻第l个节点的距离,/>,/>表示第k个节点与相邻的第l个节点为退化点,/>表示第k个节点与相邻的第l个节点不为退化点;
S203:重复步骤S202,直至遍历所述LOD等级条件下的所有点和边。
具体的,所述S4的具体方法为:
S401:设定各LOD等级对应的退化点集合为,/>,/>表示LOD等级为N级时,对应的退化点集合;
S402:根据各LOD等级对应的退化点集合,建立新的索引三角形数据链表和目录索引数据。
具体的,所述S5的具体方法为:
S501:利用投影的视锥裁剪方法,判断当前视点的可见三角形,计算当前视距,即观察者的视点到三角形目标节点的距离,计算公式为:
,
其中,L表示观察者的视点到三角形目标节点的距离,表示观察者视点的坐标位置,/>表示三角形目标节点的坐标位置,/>表示视距误差;
S502:判断可见的三角形是否在内存中,若可见的三角形不在内存中,将可见的三角形调入内存环境,若可见的三角形在内存中,对可见的三角形进行分割,并建立四叉树结构;
S503:从可见三角形的四叉树根节点,依次判断是否需要细分,判断条件的公式为:
,
其中,PD表示判断是否需要细分的条件,PD=0表示视点在四叉树根节点包围球中,PD=1表示视点不在四叉树根节点包围球中,BQ表示由四叉树根节点构建的包围球;
S504:当PD=1时,对四叉树根节点的子节点进行S503的操作,如果四叉树根节点的子节点不存在子孩子节点,则根据当前是视点的位置,重新判断三角形数据,并转至S501;
S505:重复S501-S504,实时生成LOD模型,并将存储不同等级顶点数据的独立文件转换成二进制文件。
具体的,所述四叉树根节点构建的包围球以四叉树根节点为球心,为半径构建的球,半径/>的计算方法为:/>,/>表示取最大值函数,/>表示四叉树根节点与子节点的边长。
一种面向WEB3D的顶点分层与增量式LOD系统,包括:模型等级划分模块、顶点遍历模块、退化等级生成模块、排序重构模块、二进制文件转化模块、二进制文件加载模块和渲染模块;
所述模型等级划分模块,用于获取WEB3D模型文件,并统计WEB3D模型文件中各三角面的边长分布,将三角形的边长进行等级划分,设定退化条件;
所述顶点遍历模块,用于在任意一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长是否满足退化条件,若满足,则将所述顶点标记为退化点,搜索位置移动到退化点的各相邻点,若边长不满足退化条件,则搜索起点停留在所述顶点,直至遍历所述LOD等级条件下的所有点和边;
所述退化等级生成模块,用于重复顶点遍历模块,直至所有LOD等级条件下的点和边都遍历完成,得到WEB3D模型文件中每一个点的退化等级;
所述排序重构模块,用于按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表;
所述二进制文件转化模块,用于将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件;
所述二进制文件加载模块,用于加载文件时,将组织的二进制文件读入缓冲区,随着模型的细化,产生原始三角形的一个重新排序序列,依次将下一个层次的三角形数据推送到缓冲区后面;
所述渲染模块,用于在渲染过程中,查找LOD级别的图元数量,并使用匹配的顶点着色器设置进行量化,从缓冲区中绘制相应数量的元素。
具体的,所述排序重构模块包括退化点排序单元和三角形重构单元;
所述退化点排序单元,用于根据各LOD等级对应的退化点集合,将WEB3D模型文件中每一个退化点进行重新排序;
所述三角形重构单元,用于建立新的索引三角形数据链表和目录索引数据。
具体的,所述二进制文件转化模块包括可视三角形单元和二进制文件转化单元;
所述可视三角形单元,用于判断当前视点的可见三角形;
所述二进制文件转化单元,用于将存储不同等级顶点数据的独立文件转换成二进制文件。
一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现一种面向WEB3D的顶点分层与增量式LOD方法的步骤。
一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行一种面向WEB3D的顶点分层与增量式LOD方法的步骤。
与现有技术相比,本发明的有益效果是:
1.本发明提出一种面向WEB3D的顶点分层与增量式LOD系统,并进行了架构、运行步骤和流程上的优化改进,系统具备流程简单,投资运行费用低廉,生产工作成本低的优点。
2.本发明提出一种面向WEB3D的顶点分层与增量式LOD方法,与主流的3Dtiles方案相比,便于对构件进行单体化操作,减少了在Mesh中查找几何体的计算量,保证了产品的流畅性。
3.本发明提出一种面向WEB3D的顶点分层与增量式LOD方法,根据不同的细节,将顶点进行分层,避免了低细节等级模型的马赛克化。
附图说明
图1为本发明一种面向WEB3D的顶点分层与增量式LOD方法流程图;
图2为本发明一种面向WEB3D的顶点分层与增量式LOD方法LOD等级示意图;
图3为本发明一种面向WEB3D的顶点分层与增量式LOD方法示意图;
图4为本发明一种面向WEB3D的顶点分层与增量式LOD系统架构图;
图5为本发明一种面向WEB3D的顶点分层与增量式LOD方法的电子设备图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一号”、“二号”、“三号”仅用于描述目的,而不能理解为指示或暗示相对重要性。下面结合具体实施方式,进一步阐述本发明。
实施例1
请参阅图1-图3,本发明提供的一种实施例:一种面向WEB3D的顶点分层与增量式LOD方法,包括以下具体步骤:
S1:获取WEB3D模型文件,并统计WEB3D模型文件中各三角面的边长分布,将三角形的边长进行等级划分,设定退化条件;
S2:在任意一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长是否满足退化条件,若满足,则将所述顶点标记为退化点,搜索位置移动到退化点的各相邻点,若边长不满足退化条件,则搜索起点停留在所述顶点,直至遍历所述LOD等级条件下的所有点和边;
S3:重复S2,直至所有LOD等级条件下的点和边都遍历完成,得到WEB3D模型文件中每一个点的退化等级;
S4:按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表;
S5:将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件;
S6:加载文件时,将组织的二进制文件读入缓冲区,随着模型的细化,产生原始三角形的一个重新排序序列,依次将下一个层次的三角形数据推送到缓冲区后面;
S7:在渲染过程中,查找LOD级别的图元数量,并使用匹配的顶点着色器设置进行量化,从缓冲区中绘制相应数量的元素。
现有技术中,渲染通过一种CPU-GPU协同构网模式,通过纹理映射技术对高度图进行顶点采样,并映射到网格顶点上,结合视点动态完成渲染。
S1中的退化条件为:LOD等级和边长退化条件。
S2的具体方法为:
S201:设定三角形边长为D,LOD等级集合为,/>,其中N表示LOD等级为N级,在LOD等级为N时,三角形边长D的退化条件为:/>,/>和/>为常数,且/>;
S202:在LOD等级为J时,从一个顶点开始遍历,设置遍历约束条件,遍历约束条件具体公式为:
,
其中,YS表示遍历的约束条件,表示第k个节点,/>表示第k个节点相邻的第l个节点,/>表示第k个节点与相邻第l个节点的距离,/>,/>表示第k个节点与相邻的第l个节点为退化点,/>表示第k个节点与相邻的第l个节点不为退化点;
S203:重复步骤S202,直至遍历所述LOD等级条件下的所有点和边。
S4的具体方法为:
S401:设定各LOD等级对应的退化点集合为,/>,/>表示LOD等级为N级时,对应的退化点集合;
S402:根据各LOD等级对应的退化点集合,建立新的索引三角形数据链表和目录索引数据。
S5的具体方法为:
S501:利用投影的视锥裁剪方法,判断当前视点的可见三角形,计算当前视距,即观察者的视点到三角形目标节点的距离,计算公式为:
,
其中,L表示观察者的视点到三角形目标节点的距离,表示观察者视点的坐标位置,/>表示三角形目标节点的坐标位置,/>表示视距误差;
S502:判断可见的三角形是否在内存中,若可见的三角形不在内存中,将可见的三角形调入内存环境,若可见的三角形在内存中,对可见的三角形进行分割,并建立四叉树结构;
S503:从可见三角形的四叉树根节点,依次判断是否需要细分,判断条件的公式为:
,
其中,PD表示判断是否需要细分的条件,PD=0表示视点在四叉树根节点包围球中,PD=1表示视点不在四叉树根节点包围球中,BQ表示由四叉树根节点构建的包围球;
S504:当PD=1时,对四叉树根节点的子节点进行S503的操作,如果四叉树根节点的子节点不存在子孩子节点,则根据当前是视点的位置,重新判断三角形数据,并转至S501;
S505:重复S501-S504,实时生成LOD模型,并将存储不同等级顶点数据的独立文件转换成二进制文件。
根据不同的视距显示对应的三角形,然后进行裂隙修改,由于不同网格顶点的高度不一致,因此容易产生裂缝,现有技术中,采用线性插值算法实现不需控制相邻节点之间的层级差来消除裂缝,而且该方法不需额外绘制面片。通过对比发现,删除法会降低模型的分辨率,当相邻两个网格模型精度差距较大时,删除法降低模型精度会更为严重,且不能实现相邻节点细分程度大于1的情况的裂缝消除,因此大部分的删边法会构造约束关系,确保相邻面块间的层级差不超过1。相对来说,减边和加边操作比较简单,但对裂缝的处理较粗糙;同时,减边会增加约束条件也增加部分计算;裂缝直接修补法在视觉细节上不够好,同时对数据会进行重复的处理。
四叉树根节点构建的包围球以四叉树根节点为球心,为半径构建的球,半径/>的计算方法为:/>,/>表示取最大值函数,/>表示四叉树根节点与子节点的边长。
目前应用于在线BIM平台多采用3DTiles格式的LOD策略,这是一种静态的LOD策略,3DTiles是一种开放的三维空间数据标准,其设计目的主要是为了提升大的三维场景中模型的加载和渲染速度。假如要在Web客户端渲染一个非常大的三维模型(如一个大城市的建筑模型),如果把模型全部下载到客户端并且进行渲染,这个过程所消耗的时间对于使用普通电脑的用户来说是不能接受的。然而,在绝大多数的用户交互式的三维场景中,都只需要渲染模型的一小部分,将三维模型全部加载并渲染是一种极大的资源浪费,3DTiles为这个问题提供了一个很好的解决方案。将三维空间数据组织为3DTiles格式,可以实现模型的按需加载和渲染,从而实现流畅的三维模型浏览体验。
但是这种格式在做瓦片分割的时候,是把某个区域的几何体合并在一起构成一个Mesh模型,这几个几何体可能来源于不同的构件,难以对其中一个单几何体进行选中,要想实现一个Mesh包围盒里某个几何体的选中和高亮显示,就必须通过几何体的BatchID在各个层级进行查询,如果要批量更改某一种构件(可能存在于几个不同Mesh里)的属性,会大幅度增加查询的计算量。
现有技术中提出了一种叫做popbuffer的策略,形成渐进排序基元(pop)缓冲区,随着模型细化,产生原始三角形的一个重新排序序列。但这篇论文采用了方格矩阵投影进行顶点退化,其缺陷在于,低细节的模型会有明显的马赛克化。我们做的改进模型的操作就是优化了三角网的退化策略,并将额外的三角形数据推送到缓冲区后面。此外,切换LOD可以通过调整相应绘制调用的单个参数来实现,该参数仅指定从缓冲区开始处渲染的图元数量。
实施例2
请参阅图4,本发明提供的另一种实施例:一种面向WEB3D的顶点分层与增量式LOD系统,包括:模型等级划分模块、顶点遍历模块、退化等级生成模块、排序重构模块、二进制文件转化模块、二进制文件加载模块和渲染模块;
所述模型等级划分模块,用于获取WEB3D模型文件,并统计WEB3D模型文件中各三角面的边长分布,将三角形的边长进行等级划分,设定退化条件;
所述顶点遍历模块,用于在任意一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长是否满足退化条件,若满足,则将所述顶点标记为退化点,搜索位置移动到退化点的各相邻点,若边长不满足退化条件,则搜索起点停留在所述顶点,直至遍历所述LOD等级条件下的所有点和边;
所述退化等级生成模块,用于重复顶点遍历模块,直至所有LOD等级条件下的点和边都遍历完成,得到WEB3D模型文件中每一个点的退化等级;
所述排序重构模块,用于按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表;
所述二进制文件转化模块,用于将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件;
所述二进制文件加载模块,用于加载文件时,将组织的二进制文件读入缓冲区,随着模型的细化,产生原始三角形的一个重新排序序列,依次将下一个层次的三角形数据推送到缓冲区后面;
所述渲染模块,用于在渲染过程中,查找LOD级别的图元数量,并使用匹配的顶点着色器设置进行量化,从缓冲区中绘制相应数量的元素。
排序重构模块包括退化点排序单元和三角形重构单元;
所述退化点排序单元,用于根据各LOD等级对应的退化点集合,将WEB3D模型文件中每一个退化点进行重新排序;
所述三角形重构单元,用于建立新的索引三角形数据链表和目录索引数据。
二进制文件转化模块包括可视三角形单元和二进制文件转化单元;
所述可视三角形单元,用于判断当前视点的可见三角形;
所述二进制文件转化单元,用于将存储不同等级顶点数据的独立文件转换成二进制文件。
实施例3
请参阅图3,一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现一种面向WEB3D的顶点分层与增量式LOD方法的步骤。
一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行一种面向WEB3D的顶点分层与增量式LOD方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种面向WEB3D的顶点分层与增量式LOD方法,其特征在于,包括以下具体步骤:
S1:获取WEB3D模型文件,并统计WEB3D模型文件中各三角面的边长分布,将三角形的边长进行等级划分,设定退化条件;
S2:在任意一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长是否满足退化条件,若满足,则将所述顶点标记为退化点,搜索位置移动到退化点的各相邻点,若边长不满足退化条件,则搜索起点停留在所述顶点,直至遍历所述LOD等级条件下的所有点和边;
S3:重复S2,直至所有LOD等级条件下的点和边都遍历完成,得到WEB3D模型文件中每一个点的退化等级;
S4:按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表;
S5:将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件;
S6:加载文件时,将组织的二进制文件读入缓冲区,随着模型的细化,产生原始三角形的一个重新排序序列,依次将下一个层次的三角形数据推送到缓冲区后面;
S7:在渲染过程中,查找LOD级别的图元数量,并使用匹配的顶点着色器设置进行量化,从缓冲区中读取相应数量的顶点进行绘制。
2.如权利要求1所述的一种面向WEB3D的顶点分层与增量式LOD方法,其特征在于,所述S1中的退化条件为:LOD等级和边长退化条件。
3.如权利要求1所述的一种面向WEB3D的顶点分层与增量式LOD方法,其特征在于,所述S2的具体方法为:
S201:设定三角形边长为D,LOD等级集合为,/>,其中N表示LOD等级为N级,在LOD等级为N时,三角形边长D的退化条件为:/>,/>和/>为常数,且/>;
S202:在LOD等级为J时,从一个顶点开始遍历,设置遍历约束条件,遍历约束条件具体公式为:
,
其中,YS表示遍历的约束条件,表示第k个节点,/>表示第k个节点相邻的第l个节点,/>表示第k个节点与相邻第l个节点的距离,/>,/>表示第k个节点与相邻的第l个节点为退化点,/>表示第k个节点与相邻的第l个节点不为退化点;
S203:重复步骤S202,直至遍历所述LOD等级条件下的所有点和边。
4.如权利要求1所述的一种面向WEB3D的顶点分层与增量式LOD方法,其特征在于,所述S4的具体方法为:
S401:设定各LOD等级对应的退化点集合为,/>,/>表示LOD等级为N级时,对应的退化点集合;
S402:根据各LOD等级对应的退化点集合,建立新的索引三角形数据链表和目录索引数据。
5.如权利要求1所述的一种面向WEB3D的顶点分层与增量式LOD方法,其特征在于,所述S5的具体方法为:
S501:利用投影的视锥裁剪方法,判断当前视点的可见三角形,计算当前视距,即观察者的视点到三角形目标节点的距离,计算公式为:
,
其中,L表示观察者的视点到三角形目标节点的距离,表示观察者视点的坐标位置,/>表示三角形目标节点的坐标位置,/>表示视距误差;
S502:判断可见的三角形是否在内存中,若可见的三角形不在内存中,将可见的三角形调入内存环境,若可见的三角形在内存中,对可见的三角形进行分割,并建立四叉树结构;
S503:从可见三角形的四叉树根节点,依次判断是否需要细分,判断条件的公式为:
,
其中,PD表示判断是否需要细分的条件,PD=0表示视点在四叉树根节点包围球中,PD=1表示视点不在四叉树根节点包围球中,BQ表示由四叉树根节点构建的包围球;
S504:当PD=1时,对四叉树根节点的子节点进行S503的操作,如果四叉树根节点的子节点不存在子孩子节点,则根据当前是视点的位置,重新判断三角形数据,并转至S501;
S505:重复S501-S504,实时生成LOD模型,并将存储不同等级顶点数据的独立文件转换成二进制文件。
6.如权利要求5所述的一种面向WEB3D的顶点分层与增量式LOD方法,其特征在于,所述四叉树根节点构建的包围球以四叉树根节点为球心,为半径构建的球,半径/>的计算方法为:/>,/>表示取最大值函数,/>表示四叉树根节点与子节点的边长。
7.一种面向WEB3D的顶点分层与增量式LOD系统,其基于权利要求1-6中任一项所述的一种面向WEB3D的顶点分层与增量式LOD方法实现,其特征在于,包括:模型等级划分模块、顶点遍历模块、退化等级生成模块、排序重构模块、二进制文件转化模块、二进制文件加载模块和渲染模块;
所述模型等级划分模块,用于获取WEB3D模型文件,并统计WEB3D模型文件中各三角面的边长分布,将三角形的边长进行等级划分,设定退化条件;
所述顶点遍历模块,用于在任意一个LOD等级条件下,从一个顶点开始遍历,查找第1个相邻点,判定边长是否满足退化条件,若满足,则将所述顶点标记为退化点,搜索位置移动到退化点的各相邻点,若边长不满足退化条件,则搜索起点停留在所述顶点,直至遍历所述LOD等级条件下的所有点和边;
所述退化等级生成模块,用于重复顶点遍历模块,直至所有LOD等级条件下的点和边都遍历完成,得到WEB3D模型文件中每一个点的退化等级;
所述排序重构模块,用于按照各LOD等级对应的退化点,将顶点数据进行重新排列,并重构三角网索引表;
所述二进制文件转化模块,用于将不同等级顶点数据存在独立的文件中,利用四叉树将不同等级顶点的文件组织成二进制文件;
所述二进制文件加载模块,用于加载文件时,将组织的二进制文件读入缓冲区,随着模型的细化,产生原始三角形的一个重新排序序列,依次将下一个层次的三角形数据推送到缓冲区后面;
所述渲染模块,用于在渲染过程中,查找LOD级别的图元数量,并使用匹配的顶点着色器设置进行量化,从缓冲区中绘制相应数量的元素。
8.如权利要求7所述的一种面向WEB3D的顶点分层与增量式LOD系统,其特征在于,所述排序重构模块包括退化点排序单元和三角形重构单元;
所述退化点排序单元,用于根据各LOD等级对应的退化点集合,将WEB3D模型文件中每一个退化点进行重新排序;
所述三角形重构单元,用于建立新的索引三角形数据链表和目录索引数据。
9.如权利要求8所述的一种面向WEB3D的顶点分层与增量式LOD系统,其特征在于,所述二进制文件转化模块包括可视三角形单元和二进制文件转化单元;
所述可视三角形单元,用于判断当前视点的可见三角形;
所述二进制文件转化单元,用于将存储不同等级顶点数据的独立文件转换成二进制文件。
10.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6中任一项所述的一种面向WEB3D的顶点分层与增量式LOD方法的步骤。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求1-6中任一项所述的一种面向WEB3D的顶点分层与增量式LOD方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410354225.0A CN117953181B (zh) | 2024-03-27 | 2024-03-27 | 一种面向web3d的顶点分层与增量式lod方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410354225.0A CN117953181B (zh) | 2024-03-27 | 2024-03-27 | 一种面向web3d的顶点分层与增量式lod方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117953181A true CN117953181A (zh) | 2024-04-30 |
CN117953181B CN117953181B (zh) | 2024-06-21 |
Family
ID=90794816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410354225.0A Active CN117953181B (zh) | 2024-03-27 | 2024-03-27 | 一种面向web3d的顶点分层与增量式lod方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117953181B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050013287A (ko) * | 2003-07-28 | 2005-02-04 | 학교법인연세대학교 | 뷰-의존 lod 기반 렌더링 시스템에서 삼각형 스트립의필터링 방법 |
KR100959349B1 (ko) * | 2009-06-19 | 2010-05-20 | 인하대학교 산학협력단 | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법 |
US20110316854A1 (en) * | 2010-06-23 | 2011-12-29 | Bryan Vandrovec | Global Visualization Process Terrain Database Builder |
CN102663801A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种提高三维模型渲染性能的方法 |
US20140354626A1 (en) * | 2010-05-12 | 2014-12-04 | Google Inc. | Block Based Level of Detail Representation |
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
US20170228894A1 (en) * | 2014-09-12 | 2017-08-10 | Kubity | System, method and computer program product for automatic optimization of 3d textured models for network transfer and real-time rendering |
CN109712242A (zh) * | 2018-12-17 | 2019-05-03 | 广东工业大学 | 一种支持大规模三维场景虚拟漫游的模型数据组织方法 |
CN110738721A (zh) * | 2019-10-12 | 2020-01-31 | 四川航天神坤科技有限公司 | 基于视频几何分析的三维场景渲染加速方法及系统 |
CN110910505A (zh) * | 2019-11-29 | 2020-03-24 | 西安建筑科技大学 | 一种场景模型的加速渲染方法 |
US20220020225A1 (en) * | 2020-07-16 | 2022-01-20 | Cesium GS, Inc. | System and method for generating hierarchical level-of-detail measurements for runtime calculation and visualization |
WO2022121525A1 (zh) * | 2020-12-11 | 2022-06-16 | 中兴通讯股份有限公司 | 三维场景数据的渲染方法及装置、存储介质、电子装置 |
WO2023124842A1 (zh) * | 2021-12-27 | 2023-07-06 | 奥格科技股份有限公司 | 基于lod的bim模型轻量化构建与显示方法 |
CN117036567A (zh) * | 2023-09-21 | 2023-11-10 | 云南大学 | 一种三维场景模型渲染方法 |
CN117523151A (zh) * | 2023-12-05 | 2024-02-06 | 华设设计集团股份有限公司 | 一种三维模型FBX格式转换为3D Tiles格式的方法 |
CN117708353A (zh) * | 2023-12-19 | 2024-03-15 | 华设设计集团股份有限公司 | 一种基于数据库的通用三维数字化模型格式定义方法 |
-
2024
- 2024-03-27 CN CN202410354225.0A patent/CN117953181B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050013287A (ko) * | 2003-07-28 | 2005-02-04 | 학교법인연세대학교 | 뷰-의존 lod 기반 렌더링 시스템에서 삼각형 스트립의필터링 방법 |
KR100959349B1 (ko) * | 2009-06-19 | 2010-05-20 | 인하대학교 산학협력단 | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법 |
US20140354626A1 (en) * | 2010-05-12 | 2014-12-04 | Google Inc. | Block Based Level of Detail Representation |
US20110316854A1 (en) * | 2010-06-23 | 2011-12-29 | Bryan Vandrovec | Global Visualization Process Terrain Database Builder |
CN102663801A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种提高三维模型渲染性能的方法 |
US20170228894A1 (en) * | 2014-09-12 | 2017-08-10 | Kubity | System, method and computer program product for automatic optimization of 3d textured models for network transfer and real-time rendering |
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
CN109712242A (zh) * | 2018-12-17 | 2019-05-03 | 广东工业大学 | 一种支持大规模三维场景虚拟漫游的模型数据组织方法 |
CN110738721A (zh) * | 2019-10-12 | 2020-01-31 | 四川航天神坤科技有限公司 | 基于视频几何分析的三维场景渲染加速方法及系统 |
CN110910505A (zh) * | 2019-11-29 | 2020-03-24 | 西安建筑科技大学 | 一种场景模型的加速渲染方法 |
US20220020225A1 (en) * | 2020-07-16 | 2022-01-20 | Cesium GS, Inc. | System and method for generating hierarchical level-of-detail measurements for runtime calculation and visualization |
WO2022121525A1 (zh) * | 2020-12-11 | 2022-06-16 | 中兴通讯股份有限公司 | 三维场景数据的渲染方法及装置、存储介质、电子装置 |
WO2023124842A1 (zh) * | 2021-12-27 | 2023-07-06 | 奥格科技股份有限公司 | 基于lod的bim模型轻量化构建与显示方法 |
CN117036567A (zh) * | 2023-09-21 | 2023-11-10 | 云南大学 | 一种三维场景模型渲染方法 |
CN117523151A (zh) * | 2023-12-05 | 2024-02-06 | 华设设计集团股份有限公司 | 一种三维模型FBX格式转换为3D Tiles格式的方法 |
CN117708353A (zh) * | 2023-12-19 | 2024-03-15 | 华设设计集团股份有限公司 | 一种基于数据库的通用三维数字化模型格式定义方法 |
Non-Patent Citations (5)
Title |
---|
HUNG-KUANG CHEN ET AL.: "Common Vertex Buffer LOD: A Novel Discrete LOD Approach to Reducing Load Latency", 2023 SIXTH INTERNATIONAL SYMPOSIUM ON COMPUTER, CONSUMER AND CONTROL (IS3C), 23 August 2023 (2023-08-23) * |
RUI ZHANG ET AL.: "A study on the quadtree-based LOD algorithm", 2011 IEEE 3RD INTERNATIONAL CONFERENCE ON COMMUNICATION SOFTWARE AND NETWORKS, 8 September 2011 (2011-09-08) * |
刘金泉: "基于WebGL的BIM模型轻量化研究与实现", 中国优秀硕士学位论文全文数据库, 15 December 2023 (2023-12-15) * |
白夜: "网格简化方法与LOD(Level of Detail)", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/444798331> * |
马嘉欣: "多路监控视频与三维虚拟场景的融合方法研究", 中国优秀硕士学位论文全文数据库, 15 October 2023 (2023-10-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117953181B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110738721B (zh) | 基于视频几何分析的三维场景渲染加速方法及系统 | |
CN113178014B (zh) | 场景模型渲染方法、装置、电子设备和存储介质 | |
US7561156B2 (en) | Adaptive quadtree-based scalable surface rendering | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
KR100959349B1 (ko) | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법 | |
US20100179788A1 (en) | System and method for hybrid solid and surface modeling for computer-aided design environments | |
CN109118588B (zh) | 一种基于块分解的彩色lod模型自动生成方法 | |
KR100935886B1 (ko) | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법 | |
CN112070909B (zh) | 一种基于3D Tiles的工程三维模型LOD输出方法 | |
CN110717967A (zh) | 面向大场景模型web端动态渲染LOD处理方法 | |
Novák et al. | Rasterized bounding volume hierarchies | |
US7439970B1 (en) | Computer graphics | |
US20020130877A1 (en) | Hierarchical control point editing of adaptively sampled distance fields | |
CN102509344B (zh) | 一种基于非均匀采样三维对象反射的实时绘制方法 | |
CN113470172B (zh) | 一种OBJ三维模型转换3DTiles方法 | |
Zach et al. | Time-critical rendering of discrete and continuous levels of detail | |
CN112687007B (zh) | 一种基于lod技术的立体网格图生成方法 | |
CN117953181B (zh) | 一种面向web3d的顶点分层与增量式lod方法及系统 | |
CN113591208B (zh) | 一种基于舰船特征提取的超大模型轻量化方法及电子设备 | |
Amara et al. | A GPU Tile-Load-Map architecture for terrain rendering: theory and applications | |
CN113888701A (zh) | 将曲面3D模型转化为Obj格式的网格3D模型的方法及系统 | |
US9007388B1 (en) | Caching attributes of surfaces without global parameterizations | |
Dalei et al. | A Review of LOD based Techniques for Real-time Terrain Rendering | |
CN111729303B (zh) | 一种大地图烘焙切割方法及恢复方法 | |
Argudo et al. | Interactive inspection of complex multi-object industrial assemblies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |