一种倾斜摄影实景三维模型单体化方法与流程

文档序号:13513958阅读:8673来源:国知局

本发明涉及三维地理信息领域,特别是涉及一种倾斜摄影实景三维模型单体化方法实现方法。



背景技术:

利用倾斜摄影测量技术获取地面多视角影像开展实景三维建模是近年来快速发展的一种新兴城市三维建模技术,该建模方法具有建模速度快,所生成模型真实性强的特征,因而得到了快速发展和广泛的应用。

但是由于倾斜模型得到的模型通常是近似格网分割的“表皮”模型,多为连续的三角面构成的表面模型,不能够区分出建筑、小品、道路、植被等地物信息。因此,在进一步进行数据分类,开展属性挂接等应用时,需要对倾斜模型进行“对象化”(或称单体化)操作,从而在“表皮”模型中,识别出具体的建筑、小品、道路、植被等地物对象,进而开展相应的三维应用。

目前,单体化的方式主要有以下几种,一种是硬切分,直接利用对象矢量线范围将对象从倾斜模型中分割出来,形成独立的对象,但硬切割需要提前进行,且会破坏原始数据的结构,并可能造成数据冗余,一种是id单体化,根据对象矢量线范围对倾斜模型三角面进行分割,属于同一个对象的三角面赋予相同的id,该种方式也需要事先确定好id值,不够灵活。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种倾斜摄影实景三维模型单体化方法。

为实现上述目的,本发明提供了一种倾斜摄影实景三维模型单体化方法,包括如下步骤:

s1、获取三维模型的底面轮廓信息,将底面轮廓信息转换成底面纹理图,并扩展底面轮廓范围;

s2、基于底面轮廓范围和底面纹理图,构建具有单体化信息的底面模型,用于单体化信息的存储;

s3、在三维场景中加载倾斜摄影三维模型和底面模型,将底面模型投影到倾斜摄影三维模型上;

所述步骤s2按以下步骤执行:

s21、计算底面纹理图对应的三维场景中的四个角点空间坐标为a(xmin,ymin,zmax),b(xmax,ymin,zmax),c(xmax,ymax,zmax),d(xmin,ymax,zmax),zmax值大于倾斜摄影三维模型中所有模型的z坐标值;

s22、利用上文得到的a,b,c,d四点构建矩形,得到底面模型文件,通过步骤s1的底面纹理图作为底面模型所使用的纹理,abcd四个点对应的纹理坐标为(0,1),(1,1),(1,0),(0,0);将底面模型加载到三维场景中,底面模型与人工三维仿真模型在同一位置,其纹理显示的底面范围与人工三维仿真模型底面一致;

s23、设置纹理的渲染状态参数,在采样时使用最邻近采样方式;

所述步骤s3按以下步骤执行:

s31、在三维场景中加载倾斜摄影三维模型,同时导入底面模型;

s32、在三维场景建立一个投影相机,设置对象模型信息数据库中每个底面模型的投影方式为投影至物体,将所有的底面模型作为投影相机的投影对象,利用渲染到纹理技术得到投影相机的投影纹理;

s33、将投影纹理投影到倾斜模型上,倾斜模型的表面被投影纹理所覆盖,底面模型的投影纹理投影到倾斜模型上。

进一步的,还包括以下步骤:

s4、通过gpu着色器编程,提供修改片元最终显示颜色的一致性变量值,结合底面纹理图,实现模型高亮、高亮颜色和透明度修改以及模型的显隐。

较佳的,所述步骤s1包括:

s11、获取底面轮廓信息;

s12、将获取的底面轮廓信息处理成底面轮廓纹理;属于对象底面的部分像素值为w(255,255,255,255)(rgba,前三位为颜色分量,第四位是透明度),其他位置的像素值为b(0,0,0,0);若范围线中心有空洞不属于底面,则空洞部分像素为b;

s13、底面轮廓纹理的大小根据包围盒的大小和需要设置的精度(m/pixel,每个像素表示的长度)来确定,并转换成2的指数幂;设物体底面轮廓的包围盒长h,宽w,精度为m,得到的纹理像素长度th,宽度tw为:

(th,tw)=(2^[log2(h/m)+0.5],2^[log2(w/m)+0.5]);

所述th与tw最大不超过1024,最小不小于16。

较佳的,所述步骤s4包括:

s41、获取当前底面模型的id,用于与属性信息的关联;

s42、基于gpu着色器编程,提供一致性变量color,用于颜色值修改;将底面模型纹理像素为w的片元的最终显示颜色gl_fragcolor进行混合得到片元最终颜色;

s43、设置当颜色修改值为(0,0,0,255)时,利用着色器的discard函数,舍弃底面模型纹理像素为w的片元,实现倾斜模型的显隐。

本发明的有益效果是:本发明的单体化方法属于动态单体化方法,与其他方法主要不同之处在于用于存储模型单体化信息的可以不是一个矢量范围线,而是利用图像表达的范围轮廓,这种表示的最小单元为像素,这种方式可以表示任意形状的对象(例如中间有空洞,或者中间有分割,导致不连续的建筑、小品或其他地物),同时,在利用gpu动态单体化时,根据像素值判断单体化模型的范围,更加简单高效;通过设置不同的像素值控制接口,实现单体化对象的高亮颜色更改和显隐控制。

具体实施方式

下面结合实施例对本发明作进一步说明:

一种倾斜摄影实景三维模型单体化方法,其特征在于,包括如下步骤:

s1、获取需要进行单体化三维模型的底面轮廓信息,将底面轮廓信息转换成底面纹理图,并按需扩展底面轮廓范围;

s2、基于底面轮廓范围和底面纹理图,构建具有单体化信息的底面模型,用于单体化信息的存储;

s3、在三维场景中加载倾斜摄影三维模型和底面模型,将底面模型投影到倾斜摄影三维模型上;

s4、通过gpu着色器编程,提供修改片元最终显示颜色的一致性变量值,结合底面纹理图,实现模型高亮、高亮颜色和透明度修改以及模型的显隐。

所述步骤s2按以下步骤执行:

s21、计算底面纹理图对应的三维场景中的四个角点空间坐标为a(xmin,ymin,zmax),b(xmax,ymin,zmax),c(xmax,ymax,zmax),d(xmin,ymax,zmax),zmax值统一取一个大值,本实施例取5000,保证其值大于倾斜摄影三维模型中所有模型的z坐标值;

s22、利用上文得到的a,b,c,d四点,构建矩形,得到底面模型文件,通过步骤s1的底面纹理图作为底面模型所使用的纹理,abcd四个点对应的纹理坐标为(0,1),(1,1),(1,0),(0,0);将底面模型加载到三维场景中,底面模型与人工三维仿真模型在同一位置,其纹理显示的底面范围与人工三维仿真模型底面一致;

s23、设置纹理的渲染状态参数,在采样时使用最邻近采样方式。

所述步骤s3按以下步骤执行:

s31、在三维场景中加载倾斜摄影三维模型,同时导入底面模型(含底面投影纹理)。

s32、在三维场景建立一个投影相机,设置对象模型信息数据库中每个底面模型的投影方式为投影至物体,将所有的底面模型作为投影相机的投影对象,利用渲染到纹理技术得到投影相机的投影纹理。

s33、利用投影至物体技术,将投影纹理投影到倾斜模型上;此时,倾斜模型的表面被投影纹理所覆盖,类似阴影(底面模型的投影纹理)投影到地面(倾斜模型)上,得到了倾斜模型的“假单体化”;通过以上步骤实现了将倾斜模型仅作为背景图层,将对象模型信息数据库作为应用信息,建立倾斜模型对象化应用模式。

所述步骤s1包括:

s11、获取底面轮廓信息;底面轮廓信息的来源包括:已有测绘成果或绘制的底面矢量轮廓线等形式。对于一个单体化对象,其底面轮廓可以为任意形状,例如,轮廓可以包含1个或多个矢量多边形,也可以是中间有空洞的面等。

s12、将获取的底面轮廓信息处理成底面轮廓纹理;属于对象底面的部分像素值为w(255,255,255,255)(rgba,前三位为颜色分量,第四位是透明度),其他位置的像素值为b(0,0,0,0);例如若底面信息为矢量范围线,处理后矢量范围线及其内部的像素为w,范围线外的像素为b,若范围线中心有空洞不属于底面,则空洞部分像素为b;

s13、底面轮廓纹理的大小根据包围盒的大小和需要设置的精度(m/pixel,每个像素表示的长度)来确定,并转换成2的指数幂;设物体底面轮廓的包围盒长h,宽w,精度为m,得到的纹理像素长度th,宽度tw为:

(th,tw)=(2^[log2(h/m)+0.5],2^[log2(w/m)+0.5]);

其中,“[]”表示取整;根据上式1得到的纹理尺寸为2的指数倍,同时,所述th与tw最大不超过1024,最小不小于16。

4、如权利要求1所述的一种倾斜摄影实景三维模型单体化方法,其特征在于,所述步骤s4包括:

s41、由于底面模型是场景中的模型,因此利用三维场景求交的方式,可以实现底面模型,即“对象化”的倾斜模型的选中,获取当前底面模型的id,用于与属性信息的关联;

s42、基于gpu着色器编程,提供一致性变量color,用于颜色值修改;将底面模型纹理像素为w的片元的最终显示颜色gl_fragcolor进行混合(利用着色器的mix函数)得到片元最终颜色;

s43、设置当颜色修改值为(0,0,0,255)时,利用着色器的discard函数,舍弃底面模型纹理像素为w的片元,实现倾斜模型的显隐。

通过以上方式,利用对底面模型的选中、颜色修改等控制,达到了对“对象化”的倾斜模型的控制和应用,而在实际中,倾斜模型仅作为三维场景的背景。所有的应用是基于对象模型信息数据库中所包含的底面模型进行的。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1