一种三维空间关系判定方法及装置制造方法及图纸

技术编号:30017507 阅读:25 留言:0更新日期:2021-09-11 06:28
本发明专利技术公开了一种三维空间关系判定方法及装置,该方法包括:获取查询几何体的可选空间关系,可选空间关系为相交、相离和包含中的任意一种;依据可选空间关系,构建与可选空间关系匹配的深度纹理,将查询几何体的深度值输出到对应的纹理,其中,深度值包括:第一深度值和第二深度值;获取与查询几何体关联的被查询模型的ID值;渲染被查询模型,获取渲染后的被查询模型中当前片元的当前深度值;基于当前深度值、深度纹理中深度值和ID值,判断查询几何体与被查询模型的空间关系。上述过程中,基于纹理中的深度值、当前深度值和ID值确定空间关系,不需要利用空间型数据库及三维几何体进行几何运算判定空间关系,提高了处理速度,保证了实时性。了实时性。了实时性。

【技术实现步骤摘要】
一种三维空间关系判定方法及装置


[0001]本专利技术设计三维空间分析
,尤其涉及一种三维空间关系判定方法及装置。

技术介绍

[0002]在三维GIS场景中,经常需要对场景中的三维对象进行空间查询与空间关系判定。例如,查询一个三维体内包含哪些三维对象,或者与哪些三维对象相交,并返回查询到的三维对象的ID。
[0003]三维空间查询通常分为基于空间关系特征(相交、相离、包含等)的查询和基于属性特征的查询。基于属性特征的三维空间查询通常是采用结构化查询语言(Structure Query Language,SQL)实现。基于空间关系特征的三维空间查询是基于三维对象的空间关系来查询满足条件的三维对象,因此往往需要先判定三维对象间的空间关系。
[0004]传统的三维空间查询方法往往是基于空间型数据库进行的,因此这种查询方式需要使用空间数据库进行查询,并且还要另外计算三维对象的空间关系。随着GIS应用的发展,一方面,客户端产品越来越轻量化、Web化,但轻量级前端的计算能力往往有限,并且对后台的查询服务还会受网络条件和响应速度的制约,导致无法实现实时获取查询结果。

技术实现思路

[0005]鉴于上述问题,本专利技术提供了一种三维空间关系判定方法及装置,用于解决现有技术中三维空间查询方法往往是基于空间型数据库进行的,因此这种查询方式需要使用空间数据库进行查询,并且还要另外计算三维对象的空间关系。随着GIS应用的发展,一方面,客户端产品越来越轻量化、Web化,但轻量级前端的计算能力往往有限,并且对后台的查询服务还会受网络条件和响应速度的制约,导致无法实现实时获取查询结果的问题,具体方案如下:
[0006]一种三维空间关系判定方法,包括:
[0007]获取查询几何体的可选空间关系,其中,所述可选空间关系为相交、相离和包含中的任意一种;
[0008]依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,将所述查询几何体的深度值渲染输出到对应的深度纹理中,其中,所述深度值包括:第一深度值和第二深度值;
[0009]获取与所述查询几何体关联的被查询模型的ID值;
[0010]渲染所述被查询模型,获取渲染后的被查询模型中当前片元的当前深度值;
[0011]基于所述当前深度值、所述深度纹理中所述深度值和所述ID值,判断所述查询几何体与所述被查询模型的空间关系。
[0012]上述的方法,可选的,若所述可选空间关系为相交,依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,包括:
[0013]构建与渲染视口大小相同的深度纹理:frontDepthTex、backDepthTex和idTex,其中,frontDepthTex为32位float格式,backDepthTex为32位float格式,idTex为32位RGBA深度纹理。
[0014]上述的方法,可选的,若所述空间关系为相离,依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,包括:
[0015]构建与渲染视口大小相同的深度纹理:frontDepthTex、backDepthTex、insideIDTex和outsideIDTex,其中,frontDepthTex为32位float格式,backDepthTex为32位float格式,insideIDTex和outsideIDTex为32位RGBA深度纹理。
[0016]上述的方法,可选的,若所述空间关系为包含,依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,包括:
[0017]构建与渲染视口大小相同的深度纹理:frontDepthTex、backDepthTex、insideIDTex和outsideIDTex,其中,frontDepthTex为32位float格式,backDepthTex为32位float格式,insideIDTex和outsideIDTex为32位RGBA深度纹理。
[0018]上述的方法,可选的,将所述查询几何体的深度值渲染输出到对应的深度纹理中,包括:
[0019]采用单面渲染的方式渲染所述查询几何体的正面,渲染完成后,获取第一深度值,将所述第一深度值输出到frontDepthTex;
[0020]采用单面渲染的方式渲染所述查询几何体的反面,渲染完成后,获取第二深度值,将所述第二深度值输出到backDepthTex。
[0021]上述的方法,可选的,基于所述当前深度值、所述深度纹理中所述深度值和所述ID值,判断所述查询几何体与所述被查询模型的空间关系,包括:
[0022]若不满足所述当前深度值<所述第一深度值或所述当前深度值>所述第二深度值,将所述ID值输出到idTex;
[0023]读取所述idTex中的像素值,若所述像素值不是(0,0,0,0),确定所述像素值对应的目标ID值;
[0024]基于所述目标ID值确定与所述查询几何体存在相交关系的目标被查询模型。
[0025]上述的方法,可选的,基于所述当前深度值、所述深度纹理中所述深度值和所述ID值,判断所述查询几何体与所述被查询模型的空间关系,包括:
[0026]若不满足所述当前深度值>所述第一深度值或者所述当前深度值<所述第二深度值,将所述ID值输出到outsideIDTex;
[0027]读取所述insideIDTex中读取全部像素值,将所述全部像素值中不为(0,0,0,0)转化为ID值并记录在第一集合中,同样将outsideIDTex中像素值不为(0,0,0,0)的转化为ID值记录在第二集合中;
[0028]遍历所述第二集合中的ID值,如果存在目标ID在所述第一集合中未出现,基于所述目标ID值确定与所述查询几何体存在相离关系的目标被查询模型。
[0029]上述的方法,可选的,基于所述当前深度值、所述深度纹理中所述深度值和所述ID值,判断所述查询几何体与所述被查询模型的空间关系,包括:
[0030]若不满足所述当前深度值>所述第一深度值或者所述当前深度值<所述第二深度值,将所述ID值输出到outsideIDTex;
[0031]遍历所述outsideIDTex的所有像素值,若存在不为(0,0,0,0)的目标像素值,将所述目标像素值转化为目标ID值;
[0032]基于所述目标ID值确定与所述查询几何体存在包含关系的目标被查询模型。
[0033]一种三维空间关系判定装置,包括:
[0034]第一获取模块,用于获取查询几何体的可选空间关系,其中,所述可选空间关系为相交、相离和包含中的任意一种;
[0035]构建模块,用于依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,将所述查询几何体的深度值渲染输出到对应的深度纹理中,其中,所述深度值包括:第一深度值和第二深度值;
[0036]第二获取模块,用于获取与所述查询几何体关联的被查询模型的ID值;
[0037]渲染和获取模块,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三维空间关系判定方法,其特征在于,包括:获取查询几何体的可选空间关系,其中,所述可选空间关系为相交、相离和包含中的任意一种;依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,将所述查询几何体的深度值渲染输出到对应的深度纹理中,其中,所述深度值包括:第一深度值和第二深度值;获取与所述查询几何体关联的被查询模型的ID值;渲染所述被查询模型,获取渲染后的被查询模型中当前片元的当前深度值;基于所述当前深度值、所述深度纹理中所述深度值和所述ID值,判断所述查询几何体与所述被查询模型的空间关系。2.根据权利要求1所述的方法,其特征在于,若所述可选空间关系为相交,依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,包括:构建与渲染视口大小相同的深度纹理:frontDepthTex、backDepthTex和idTex,其中,frontDepthTex为32位float格式,backDepthTex为32位float格式,idTex为32位RGBA深度纹理。3.根据权利要求1所述的方法,其特征在于,若所述空间关系为相离,依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,包括:构建与渲染视口大小相同的深度纹理:frontDepthTex、backDepthTex、insideIDTex和outsideIDTex,其中,frontDepthTex为32位float格式,backDepthTex为32位float格式,insideIDTex和outsideIDTex为32位RGBA深度纹理。4.根据权利要求1所述的方法,其特征在于,若所述空间关系为包含,依据所述可选空间关系,构建与所述可选空间关系匹配的深度纹理,包括:构建与渲染视口大小相同的深度纹理:frontDepthTex、backDepthTex、insideIDTex和outsideIDTex,其中,frontDepthTex为32位float格式,backDepthTex为32位float格式,insideIDTex和outsideIDTex为32位RGBA深度纹理。5.根据权利要求1所述的方法,其特征在于,将所述查询几何体的深度值渲染输出到对应的深度纹理中,包括:采用单面渲染的方式渲染所述查询几何体的正面,渲染完成后,获取第一深度值,将所述第一深度值输出到frontDepthTex;采用单面渲染的方式渲染所述查询几何体的反面,渲染完成后,获取第二深度值,将所述第二深度值输出到backDepthTex。6.根据权利要求2所述的方法,其特征在于,基于所述当前深度值、所述深度纹理中所述深度值和所述ID值,判断所述查询几何体与所述被查询模型的空间关系,包括:若不满足所述当前深度值<...

【专利技术属性】
技术研发人员:宋关福冯振华李娜孙寅乐白崇锦高峰杨芳陈鹏陆国伟赵亚东李濛李广明王博张文燕范玲张永府李正文任飞翔
申请(专利权)人:北京超图软件股份有限公司
类型:发明
国别省市:

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

1