基于压平多边形的三维场景局部区域动态压平方法及装置制造方法及图纸

技术编号:28784546 阅读:25 留言:0更新日期:2021-06-09 11:18
本发明专利技术公开了一种基于压平多边形的三维场景局部区域动态压平方法及装置,在用户坐标系中定义压平多边形确定压平区;根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵;使用压平相机生成压平多边形深度图;将压平相机的观察矩阵、投影矩阵以及压平多边形深度图传入GPU可编程流水线;在GPU的顶点着色器中,判断压平多边形与顶点的包含关系,将位于压平多边形里面且高于压平多边形的顶点进行移位压平。本发明专利技术对压平区的限制性较低,不局限于水平面,可以为任意斜面,并且可以根据用户需要,采用不精确共面的空间多边形来定义压平区。义压平区。义压平区。

【技术实现步骤摘要】
基于压平多边形的三维场景局部区域动态压平方法及装置


[0001]本专利技术属于空间信息领域,具体涉及一种基于压平多边形的三维场景局部区域动态压平方法及装置。

技术介绍

[0002]三维模型是三维可视化的重要数据基础,其精确性与三维场景的可视化效果密切相关,精细模型能提高三维可视化的质量,而低质量模型的存在则有碍观感甚至影响应用效果。精细模型一般采用人工建模或lidar建模,但由于生产成本较高,一般只针对重点目标采用精细建模方法。倾斜摄影是全要素三维建模方法,生产成本低,生产速度快,可以实现大场景包含几何结构和纹理的批量三维重建,但是受目前技术的限制,对树木、电杆等细小零散目标的建模效果差,容易导致大量低质量模型的产生。
[0003]可以采用专业修模软件移除低质量模型,以改善可视化的效果。移除操作本质上是对原有模型的二次建模,需要重新采集数据(如纹理图像)才能实现对移除区域的三维重建。目前一些修模软件如MeshMixer,wish3D等则提供了模型的局部压平功能,无需重新采集数据,直接将低质量模型(如树木)压平到地面,间接实现移除低质量模型的要求。但该方法存在以下问题:(1)压平需要专业用户操作,也需要专业的修模软件支持,除了增加额外的工作量,对于普通用户来说基本不可行。(2)修模软件压平本质上是对三维模型的物理破坏,将反映模型质量高低的“1

N”问题变成体现模型有无的“0

1”问题,导致虚拟场景和实际场景新的不一致,由于其操作不可逆,在部分应用中是不可接受的。

技术实现思路

[0004]专利技术目的:本专利技术提出一种基于压平多边形的三维场景局部区域动态压平方法及装置,对压平区的限制性较低,不局限于水平面,可以为任意斜面,且具有较强的交互性,可便捷的查看实际压平效果并进行动态调整。
[0005]技术方案:本专利技术提出一种基于压平多边形的三维场景局部区域动态压平方法,具体包括以下步骤:
[0006](1)在用户坐标系中定义压平多边形确定压平区:根据待压平目标定义压平多边形,使压平多边形紧密贴合待压平目标的压平区;
[0007](2)根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵;
[0008](3)使用压平相机生成压平多边形深度图;
[0009](4)将压平相机的观察矩阵、投影矩阵以及压平多边形深度图传入GPU可编程流水线;
[0010](5)在GPU的顶点着色器中,判断压平多边形与顶点的包含关系,将位于压平多边形里面且高于压平多边形的顶点进行移位压平。
[0011]进一步地,所述步骤(2)包括以下步骤:
[0012](21)计算压平多边形包围盒:所述的压平多边形包围盒是包含压平多边形所有顶
点的最小轴对齐立方体,其中上底面Z值bTop等于所有顶点Z值的最大值,下底面Z值bBottom等于所有顶点Z值的最小值,修正bTop=max(bTop,bBottom+f),其中f为任意大于0的值;
[0013](22)设置压平相机观察矩阵:通过压平多边形包围盒的上下底面中心确定直线L,选择L上任一高于包围盒的空间点,作为观察坐标系原点O,定义观察坐标系的X、Y和Z轴分别与用户坐标系的X、Y和Z轴方向一致,建立观察坐标系,根据观察坐标系设置压平相机观察矩阵;
[0014](23)设置压平相机投影矩阵:将压平多边形包围盒设置为压平相机的观察空间,然后根据正交投影类型和压平相机的观察空间设置压平相机的投影矩阵;
[0015](24)设置压平相机视口矩阵:设置压平相机的视口宽度W和高度H,其中W和H均大于0;根据视口宽度和高度设置压平相机的视口矩阵。
[0016]进一步地,所述步骤(3)包括以下步骤:
[0017](31)将压平多边形分解为三角网;
[0018](32)输出压平多边形深度图:关闭颜色缓存,开启深度缓存,将分解得到的三角网输入到GPU中,生成压平多边形深度图。
[0019]进一步地,所述步骤(5)包括以下步骤:
[0020](51)在顶点着色器中,根据压平相机的观察矩阵、投影矩阵,将用户坐标系中的顶点坐标V0(x0,y0,z0)变换到压平相机纹理空间,设变换后的坐标为V1(x1,y1,z1);
[0021](52)若x1和y1都在[0,1]的范围内,用坐标(x1,y1)采样压平多边形深度图,获得深度值z2,如果z2<1.0,则根据压平相机的观察矩阵、投影矩阵将坐标(x1,y1,z2)逆变换到用户坐标系,得到坐标(x3,y3,z3):若z3<z0,则该顶点需要压平,修改V0的z值为z3;否则,保持VO不变;
[0022](53)用V0参加正常的渲染流程。
[0023]基于相同的专利技术构思,本专利技术还提供一种基于压平多边形的三维场景局部区域动态压平装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于压平多边形的三维场景局部区域动态压平方法。
[0024]有益效果:与现有技术相比,本专利技术的有益效果:与传统的需要修改模型文件的压平方式相比,本专利技术无需修改三维模型,且具有较强的交互性,可便捷的查看实际压平效果并进行动态调整;同时本专利技术对压平区的限制性较低,不局限于水平面,可以为任意斜面,并且可以根据用户需要,采用不精确共面的空间多边形来定义压平区。
附图说明
[0025]图1为本专利技术的流程图;
[0026]图2为电杆未压平前的可视化效果图;
[0027]图3为交互式定义压平多边形图;
[0028]图4为压平相机设置示意图;
[0029]图5为电杆压平后的可视化效果图。
具体实施方式
[0030]下面结合附图对本专利技术作进一步详细说明。
[0031]本专利技术提供一种基于压平包围球的三维场景局部区域动态压平方法,如图1所示,具体包括以下步骤:
[0032]步骤1:在用户坐标系中定义压平多边形确定压平区:根据待压平目标定义压平多边形,使压平多边形紧密贴合待压平目标的压平区。
[0033]图2为电杆未压平前的可视化效果图,如图3所示,用屏幕取点方式获得压平多边形顶点的屏幕坐标,要求压平多边形紧密贴合待压平目标的压平区。压平区即模型要压平到底部的基准面,一般与地面一致,压平多边形是用户定义的近似压平区的空间多边形,然后借助于渲染相机视点下的视口矩阵、投影矩阵和视图矩阵,将屏幕坐标变换到用户坐标系。在3D渲染引擎库OpenGL中,可以使用gluUnProject函数实现。
[0034]步骤2:根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵。
[0035](2.1)计算压平多边形包围盒:如图4所示,压平多边形包围盒是包含压平多边形所有顶点的最小轴对齐立方体,其中上底面Z值bTop等于所有顶点Z值的最大值,下底面Z值bBottom等于所有顶点Z值的最小值本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于压平多边形的三维场景局部区域动态压平方法,其特征在于,包括以下步骤:(1)在用户坐标系中定义压平多边形确定压平区:根据待压平目标定义压平多边形,使压平多边形紧密贴合待压平目标的压平区;(2)根据压平多边形创建压平相机,设置观察矩阵、投影矩阵及视口矩阵;(3)使用压平相机生成压平多边形深度图;(4)将压平相机的观察矩阵、投影矩阵以及压平多边形深度图传入GPU可编程流水线;(5)在GPU的顶点着色器中,判断压平多边形与顶点的包含关系,将位于压平多边形里面且高于压平多边形的顶点进行移位压平。2.根据权利要求1所述的基于压平多边形的三维场景局部区域动态压平方法,其特征在于,所述步骤(2)包括以下步骤:(21)计算压平多边形包围盒:所述的压平多边形包围盒是包含压平多边形所有顶点的最小轴对齐立方体,其中上底面Z值bTop等于所有顶点Z值的最大值,下底面Z值bBottom等于所有顶点Z值的最小值,修正bTop=max(bTop,bBottom+f),其中f为任意大于0的值;(22)设置压平相机观察矩阵:通过压平多边形包围盒的上下底面中心确定直线L,选择L上任一高于包围盒的空间点,作为观察坐标系原点O,定义观察坐标系的X、Y和Z轴分别与用户坐标系的X、Y和Z轴方向一致,建立观察坐标系,根据观察坐标系设置压平相机观察矩阵;(23)设置压平相机投影矩阵:将压平多边形包围盒设置为压平相机的观察空间,然后根据正交投影类型和压平相机的观察空间设置压平相机的投影矩阵;(24)设置压平相机视口矩阵...

【专利技术属性】
技术研发人员:孙瑞张宇航祝炜胡斌
申请(专利权)人:南京师范大学
类型:发明
国别省市:

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

1