一种三维场景模型动态合并与多级细节层次优化方法与流程
本发明涉及三维模型数据处理及计算机图形渲染,具体涉及一种三维场景模型动态合并与多级细节层次优化方法。
背景技术:
1、随着数字孪生、三维地理信息系统、智慧城市及建筑运维等技术的发展,三维场景所承载的模型数量和数据规模不断增加。三维场景中的数据通常来源于地理信息数据、建筑信息模型、倾斜摄影模型、地形数据及普通网格模型等。由于不同来源的数据在坐标基准、计量单位、层级结构、几何表达方式以及材质纹理组织方式等方面存在差异,通常需要对上述数据进行转换和重组,以便在同一三维场景中加载和显示。
2、对于包含大量模型对象的三维场景,如果按照原有模型结构逐一加载和渲染各模型对象,将产生较多的场景节点和绘制调用,并伴随频繁的材质切换、纹理加载及数据提交,进而增加处理器和图形处理器的运行负担。同时,对距离观察位置较远或者在显示画面中占比较小的模型仍采用原始精度进行渲染,也会造成几何数据和纹理资源的无效占用。
3、为提高三维场景的加载和渲染效率,现有技术通常采用空间分块、模型合并、材质去重、纹理图集以及细节层次等方式对三维模型进行处理。其中,模型合并用于减少场景节点和绘制调用,材质去重及纹理图集用于减少渲染状态切换和纹理资源数量,细节层次处理则根据观察距离或者模型在屏幕中的投影大小,选择相应精度的模型资源进行渲染。
4、但是,将多个原始对象合并为一个模型对象后,原始对象的标识、属性及其在合并模型中的几何位置容易失去明确的对应关系。当需要对某一原始对象进行查询、拾取、局部高亮或者独立更新时,通常需要重新加载原始模型,或者对整个合并模型进行处理。反之,如果始终保留并渲染各个独立对象,又会增加场景节点数量和绘制调用次数,难以充分发挥模型合并的性能优势。
5、此外,模型合并与细节层次处理通常分别进行。在模型逐级简化的过程中,原始对象对应的局部几何区域可能被简化或者与其他几何区域重新组织,导致低精度模型难以继续支持准确的对象级查询和局部高亮。与此同时,模型之间的空间关系、材质和纹理的兼容程度、对象属性及更新需求、合并后模型的资源规模等因素均会影响合并结果,仅依据空间距离或者材质类型进行合并,难以同时兼顾渲染效率、资源规模和对象级交互需求。
6、公开号为cn106570922a、名称为一种提高三维模型渲染性能的方法的发明专利申请公开了对模型对象的原始纹理进行多细节层次处理,将具有共用纹理的模型所对应的纹理组成纹理集,将纹理集中的多个小纹理合并为大纹理,并将所述大纹理对应的模型进行合并,以减少渲染对象数量以及向图形处理器提交数据的次数。
技术实现思路
1、本发明要解决的技术问题是:在对三维场景中的模型对象进行合并及细节层次处理时,如何在减少场景节点数量和渲染资源开销的同时,保持原对象与合并对象之间的几何及属性对应关系,并使合并后的模型在切换不同细节层次资源时仍能够支持对象级查询和局部高亮。
2、为解决上述技术问题,本发明提供一种三维场景模型动态合并与多级细节层次优化方法,包括:
3、将多源三维数据的原对象转换为包含对象标识、几何数据、材质数据、纹理数据、空间包围体、对象属性、交互标志及对象资源成本的统一中间表示;
4、根据交互标志,将需独立更新、编辑或告警显示的原对象划为强制独立对象,将无前述需求但需对象级查询或局部高亮的原对象划为条件合并对象,其余为可合并对象;
5、以对象标识为主键,为条件合并对象建立记录对象属性、原始包围体及高精度资源引用的业务属性映射;
6、对条件合并对象和可合并对象生成候选组合,排除不满足坐标变换关系、渲染状态或资源上限约束的候选组合,根据空间邻近度、材质相似度、纹理兼容度、属性兼容度、查询独立性惩罚及合并资源成本计算合并评分,并依据评分阈值和累计资源上限形成合并集合;
7、对合并集合执行几何、材质及纹理合并,合并时记录各原对象在合并对象中的几何区间和材质区域,生成几何合并映射,并将几何合并映射标识及合并对象标识写入业务属性映射;
8、为合并对象生成多级细节层次资源,将资源引用写入相应业务属性映射;
9、运行时根据摄像机状态和屏幕误差选择细节层次资源;响应条件合并对象的交互请求时,根据业务属性映射返回对象属性,并根据几何合并映射确定其几何子区域;当交互请求包括局部高亮且当前细节层次资源未保留几何子区域时,根据高精度资源引用加载相应资源,并利用几何子区域或高精度资源执行局部高亮。
10、优选地,将多源三维数据的原对象转换为统一中间表示,包括:
11、按照数据来源类型解析多源三维数据,获得原对象的几何数据、材质数据、纹理数据及层级路径;
12、根据源坐标参考、源坐标原点和源单位生成坐标变换矩阵,根据坐标变换矩阵,将原对象的几何数据转换至采用米制单位的项目局部坐标系;
13、采用原对象的稳定标识作为对象标识;原对象不存在稳定标识时,根据数据源标识、规范化层级路径及源对象局部标识生成对象标识;
14、在项目局部坐标系下计算空间包围体,并根据顶点数、索引数、纹理数据量及数据包大小确定对象资源成本。
15、优选地,交互标志包括对象级查询标志、局部高亮标志、编辑标志、告警显示标志及独立更新标志;
16、对象分类按照强制独立对象、条件合并对象和可合并对象的顺序执行,已划分为强制独立对象的原对象不参与候选组合生成及合并评分;
17、对于条件合并对象,在执行合并前生成用于对象拾取的选择代理,并建立包含对象标识、对象属性、原始包围体及对象级高精度资源引用的业务属性映射初始记录。
18、优选地,生成候选组合,包括:
19、根据原对象的空间包围体建立空间索引,将原对象写入对应空间单元,并检索该空间单元及其相邻空间单元内的原对象;
20、在两个原对象的空间包围体间距不大于候选半径时,将两个原对象组成候选组合;
21、对候选组合执行兼容性约束检查,兼容性约束包括坐标变换关系有效、渲染队列及深度状态相容、对象更新边界相容、各原对象的几何数据能够转换至同一坐标系,以及合并后的顶点数、索引数、数据量、纹理图集面积和空间跨度未超过相应资源上限。
22、优选地,将空间邻近度、材质相似度、纹理兼容度、属性兼容度、查询独立性惩罚及合并资源成本归一化至[0,1],并按照下式计算候选组合中两个原对象之间的合并评分:
23、
24、其中,mij为原对象i与原对象j之间的合并评分;pij为空间邻近度;mij为材质相似度;uij为纹理兼容度;aij为属性兼容度;qij为查询独立性惩罚;zij为合并资源成本,用于表征两个原对象合并后的预计资源量相对于对应资源上限的占用程度;wp、wm、wu、wa、wq和wz分别为对应因素的归一化权重,并且满足:
25、wp+wm+wu+wa+wq+wz=1
26、空间邻近度根据两个原对象的空间包围体间距及候选半径确定;材质相似度根据规范化材质参数确定;纹理兼容度根据纹理格式、通道语义、色彩空间及采样方式确定;属性兼容度根据属性结构及更新方式确定;查询独立性惩罚根据对象级查询标志和局部高亮标志确定;
27、合并资源成本为顶点数利用率、索引数利用率、数据量利用率、纹理图集面积利用率及空间跨度利用率中的最大值,各资源利用率为合并后的预计资源量与对应资源上限的比值。
28、优选地,形成合并集合,包括:
29、以原对象为节点、候选组合为边、合并评分为边权构建候选图;
30、选取未分配的原对象作为种子对象,建立包含种子对象的当前合并集合;
31、从一端节点属于当前合并集合且另一端节点未分配的候选边中,选取合并评分最高的候选边,并将该候选边的未分配节点确定为待加入对象;
32、计算待加入对象加入当前合并集合后的累计顶点数、累计索引数、累计数据量、纹理图集占用面积及空间跨度;
33、当候选边的合并评分达到评分阈值,且各项累计资源量均未超过对应资源上限时,将待加入对象加入当前合并集合,并继续选取下一候选边;
34、当候选边的合并评分低于评分阈值,或者待加入对象加入后任一累计资源量超过对应资源上限时,将候选边标记为已处理,并继续选取下一候选边;
35、当不存在满足评分阈值及累计资源上限的候选边时,输出当前合并集合,并从剩余未分配的原对象中重新选取种子对象。
36、优选地,对合并集合执行几何、材质及纹理合并,包括:
37、根据原对象局部坐标系与合并对象局部坐标系之间的坐标变换关系,将原对象的顶点转换至合并对象局部坐标系,并采用坐标变换关系对应的线性变换矩阵的逆转置矩阵转换原对象的法线;
38、在写入每一原对象的几何数据前,记录顶点起始位置和索引起始位置;将原对象的顶点写入合并对象的顶点序列,并对原对象的各索引值增加顶点起始位置;写入完成后,记录原对象对应的顶点区间、索引区间、三角形区间及子网格区间;
39、根据着色模型、透明状态、双面状态、材质参数及纹理语义生成材质特征标识,将材质特征标识相同的材质合并为同一材质实例;
40、将纹理格式、通道语义、色彩空间及采样方式相容的纹理写入纹理图集,并根据纹理在纹理图集中的区域,对原对象的纹理坐标进行偏移和缩放,得到合并后的纹理坐标;
41、生成几何合并映射,几何合并映射记录对象标识、合并对象标识、顶点区间、索引区间、三角形区间、子网格区间、材质槽、纹理图集区域及合并对象局部坐标系下的包围体;对于条件合并对象,几何合并映射还记录选择代理标识;当原对象的几何数据在合并对象中不连续时,几何合并映射记录多个几何区间或者选择掩码标识。
42、优选地,业务属性映射在完成对象分类后建立初始记录,在完成几何、材质及纹理合并后写入几何合并映射标识,在完成多级细节层次资源生成后写入各级资源引用;
43、业务属性映射与几何合并映射通过对象标识及几何合并映射标识关联;
44、业务属性映射、几何合并映射和合并对象的资源文件分别设置相互匹配的版本标识及校验值;检测到版本标识或校验值不匹配时,停止依据几何合并映射定位几何区间,并加载版本相匹配的业务属性映射、几何合并映射及资源文件。
45、优选地,为合并对象生成多级细节层次资源,包括:
46、采用基于二次误差度量的边折叠方式对合并对象的几何数据进行逐级简化,并对纹理数据进行逐级降采样,确定各级细节层次资源的几何误差及纹理误差;
47、在条件合并对象对应的预设查询层级内,保留该条件合并对象的几何区间或选择代理,并在业务属性映射中保留该条件合并对象的高精度资源引用;
48、根据各级细节层次资源的几何误差、视口像素高度、摄像机至合并对象空间包围体的距离及摄像机垂直视场角,确定各级细节层次资源的几何屏幕误差;
49、根据各级细节层次资源的纹理误差、合并对象在视口中的投影面积及纹理分辨率,确定各级细节层次资源的纹理屏幕误差;
50、在几何屏幕误差和纹理屏幕误差均不超过对应误差阈值的细节层次资源中,选取数据量最小的细节层次资源,并对相邻层级设置不同的进入阈值和退出阈值。
51、优选地,响应条件合并对象的交互请求,包括:
52、通过空间包围体对交互位置进行初步筛选,并通过对象标识缓冲区或者选择代理的射线求交结果,确定目标条件合并对象的对象标识;
53、根据对象标识查询业务属性映射,返回目标条件合并对象的对象属性,根据原始包围体确定目标条件合并对象的定位位置,并根据几何合并映射标识查询几何合并映射;
54、当当前细节层次资源保留目标条件合并对象的索引区间、子网格区间或选择掩码时,仅对索引区间、子网格区间或选择掩码执行附加绘制;
55、当当前细节层次资源未保留目标条件合并对象的几何子区域时,加载目标条件合并对象的对象级高精度资源,并对对象级高精度资源执行附加绘制;
56、当对象级高精度资源不存在或者不能独立加载时,加载目标条件合并对象所在合并对象的高精度细节层次资源,并根据几何合并映射确定目标条件合并对象的几何子区域,对所确定的几何子区域执行附加绘制;
57、交互请求结束后,撤销附加绘制,并恢复根据摄像机状态和屏幕误差选择细节层次资源。
58、与现有技术相比,本发明具有以下有益效果:
59、(1)根据原对象的交互需求进行分类,将需要保持独立更新、编辑或者告警显示的原对象排除在合并范围之外,并结合空间关系、材质及纹理兼容程度、属性结构、对象级交互需求和资源规模形成合并集合,能够在控制合并对象资源规模的同时减少场景节点及绘制调用。
60、(2)在执行几何、材质及纹理合并时,同步记录各原对象在合并对象中的几何区间和材质区域,并通过业务属性映射建立原对象、几何合并映射、合并对象及细节层次资源之间的关联,使原对象在完成模型合并后仍具有可追溯的几何及属性对应关系。
61、(3)根据屏幕误差选择细节层次资源,并根据当前细节层次资源对目标条件合并对象几何子区域的保留情况,选择相应的几何子区域或者按需加载高精度资源,从而在降低三维场景渲染资源开销的同时,保持对象级查询和局部高亮的准确性。
62、(4)通过业务属性映射、几何合并映射和资源文件之间的版本对应及校验,在映射版本与资源版本不匹配时停止使用原有几何区间,能够减少因映射数据与模型资源不一致而产生的错误定位。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com