CN111145085B - 拣选片元的方法和模型栅格化的方法、系统、设备和介质 - Google Patents
拣选片元的方法和模型栅格化的方法、系统、设备和介质 Download PDFInfo
- Publication number
- CN111145085B CN111145085B CN201911368096.6A CN201911368096A CN111145085B CN 111145085 B CN111145085 B CN 111145085B CN 201911368096 A CN201911368096 A CN 201911368096A CN 111145085 B CN111145085 B CN 111145085B
- Authority
- CN
- China
- Prior art keywords
- depth
- fragment
- queue
- primitives
- viewpoint
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 239000012634 fragment Substances 0.000 claims abstract description 217
- 238000005070 sampling Methods 0.000 claims description 55
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000000717 retained effect Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 16
- 230000005484 gravity Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 235000019587 texture Nutrition 0.000 description 4
- 235000019580 granularity Nutrition 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/08—Projecting images onto non-planar surfaces, e.g. geodetic screens
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及数据采集技术领域,特别涉及拣选片元的方法和模型栅格化的方法、系统、设备和介质。本发明的方法包括:建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元。本发明在保证结果可靠性的基础上模糊化片元拣选过程中的精确定量计算,减少了大量的计算过程,效率较高,可以用于三维模型栅格化和三维模型可见区域的化简等。
Description
技术领域
本发明涉及数据采集技术领域,特别涉及拣选片元的方法和模型栅格化的方法、系统、设备和介质。
背景技术
传统的三维模型栅格化方法比较低效,通常需要遍历三维模型中的所有片元。然而,由于三维模型中绝大多数的片元最终没有投影到虚拟全景图中,因此计算过程存在冗余。例如,在实际测试中,几百万个片元最终使用的只有几千个片元。
虽然三维引擎在三维模型的加载过程中都有拣选过程,以减少参与预算的片元。但是,传统的拣选过程是一个缓慢动态的过程,而且大多针对普通视角视锥体,不适合全景视点的使用场景。
发明内容
本发明的目的在于提供拣选片元的方法和模型栅格化的方法、系统、设备和介质,在保证结果可靠性的基础上模糊化片元拣选过程中的精确定量计算,减少了大量的计算过程,效率较高,可以用于三维模型栅格化和三维模型可见区域的化简等。
本发明的实施方式公开了一种拣选三维模型中的片元的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元。
可选地,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
可选地,在计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度之前,还包括:
计算所述区域块中的一个片元的法向量和与所述片元对应的所述视线射线之间的夹角;
判断所述片元的法向量和与所述片元对应的所述视线射线之间的夹角是否小于90度;
如果所述片元的法向量和与所述片元对应的所述视线射线之间的夹角小于90度,则丢弃所述片元,并且判断所述区域块中是否还存在未计算的片元,否则继续计算所述片元和所述视点之间的距离作为所述片元的深度。
本发明的实施方式公开了一种三维模型的栅格化的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的所述片元中与所述空间射线相交的所述片元;
采样所述片元来更新所述像素点。
本发明的实施方式公开了一种三维模型的栅格化的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过保留的所述片元上的采样点发出空间射线,查找虚拟全景图中与所述空间射线相交的像素点;
采样所述片元来更新所述像素点。
本发明的实施方式公开了一种拣选三维模型中的片元的系统,所述系统包括:
网格建立模块,建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
层级确定模块,基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元。
本发明的实施方式公开了一种三维模型的栅格化的系统,所述系统包括:
网格建立模块,建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
层级确定模块,基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
片元查找模块,从所述视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的所述片元中与所述空间射线相交的所述片元;
像素点更新模块,采样所述片元来更新所述像素点。
本发明的实施方式公开了一种三维模型的栅格化的系统,所述系统包括:
网格建立模块,建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
层级确定模块,基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
像素点查找模块,从所述视点经过保留的所述片元上的采样点发出空间射线,查找虚拟全景图中与所述空间射线相交的像素点;
像素点更新模块,采样所述片元来更新所述像素点。
本发明的实施方式公开了一种使用计算机程序编码的计算机存储介质,所述计算机程序包括指令,所述指令被一个以上的计算机执行以实施拣选三维模型中的片元的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元。
本发明的实施方式公开了一种使用计算机程序编码的计算机存储介质,所述计算机程序包括指令,所述指令被一个以上的计算机执行以实施三维模型的栅格化的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的所述片元中与所述空间射线相交的所述片元;
采样所述片元来更新所述像素点。
本发明的实施方式公开了一种使用计算机程序编码的计算机存储介质,所述计算机程序包括指令,所述指令被一个以上的计算机执行以实施三维模型的栅格化的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过保留的所述片元上的采样点发出空间射线,查找虚拟全景图中与所述空间射线相交的像素点;
采样所述片元来更新所述像素点。
本发明实施方式与现有技术相比,主要区别及其效果在于:
在本发明中,建立以视点为中心的经纬网格,可以模拟从视点向所有方向发出的视线射线,并且基于一定的采样间隔来设置视线射线,采样间隔可调整,从而可以适应不同的计算能力要求和采样精度要求。
在本发明中,以三维模型中的区域块为单位来确定LOD层级,可以体现三维模型中的各个部分的细节水平,并且根据区域块和视点之间的距离的不同,动态选取不同的LOD层级,满足效率的需要,实现流程的流畅性和多线程优化的便捷性。
在本发明中,分别判断每个区域块中的所有片元对于与该片元对应的视线射线是否可见,如果可见则保留该片元,否则丢弃该片元,从而可以拣选三维模型中的可用的片元,大幅度精简了片元的处理数量。
在本发明中,将片元的深度插入到与片元对应的视线射线经过的网格节点的深度队列中,并且在深度队列具有队列长度阈值的情况下,保留所有深度队列中的片元,从而可以拣选三维模型中的可用的片元,大幅度精简了片元的处理数量,并且可以尽可能地弥补算法遗漏的区域。
在本发明中,在计算区域块中的一个片元和视点之间的距离作为片元的深度之前,先判断片元的法向量和与片元对应的视线射线之间的夹角是否小于90度,从而可以丢弃正面背对视线射线的片元,进一步拣选三维模型中的可用的片元,大幅度精简了片元的处理数量,保证了拣选的效果。
在本发明中,首先模糊拣选对于从视点经过经纬网格中的每个网格节点分别发出的视线射线可见的片元,然后在这些片元中查找与从视点经过虚拟全景图中的每个像素点发出的空间射线相交的片元,可以减少在采用反投影方式进行三维模型栅格化时所需处理的片元的数量,从而减少大量的计算过程,栅格化效率高。
在本发明中,首先模糊拣选对于从视点经过经纬网格中的每个网格节点分别发出的视线射线可见的片元,然后查找虚拟全景图中与从视点经过保留的片元上的采样点发出的空间射线相交的像素点,可以减少在采用正投影方式进行三维模型栅格化时所需处理的片元的数量,从而减少大量的计算过程,栅格化效率高。
附图说明
图1示出根据本发明的第一实施方式的拣选三维模型中的片元的方法的流程图;
图2示出根据本发明的第一实施方式的建立以视点为中心的经纬网格的示意图;
图3示出根据本发明的第一实施方式的确定与区域块对应的LOD层级的示意图;
图4示出根据本发明的第一实施方式的保留对于与片元对应的视线射线可见的片元的示意图;
图5示出根据本发明的第一实施方式的拣选三维模型中的片元的方法的又一流程图;
图6示出根据本发明的第二实施方式的三维模型的栅格化的方法的流程图;
图7示出根据本发明的第二实施方式的三维模型的栅格化的示意图;
图8示出根据本发明的第三实施方式的三维模型的栅格化的方法的流程图;
图9示出根据本发明的第三实施方式的三维模型的栅格化的示意图;
图10示出根据本发明的第四实施方式的拣选三维模型中的片元的系统的结构图;
图11示出根据本发明的第五实施方式的三维模型的栅格化的系统的结构图;
图12示出根据本发明的第六实施方式的三维模型的栅格化的系统的结构图。
具体实施方式
为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1示出根据本发明的第一实施方式的拣选三维模型中的片元的方法的流程图。
如图1所示,方法100包括:
步骤102,建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
步骤104,基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
步骤106,对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元。
三维模型可以包括三维倾斜摄影模型。三维倾斜摄影模型为地理信息系统(GIS)应用中的一种重要数据类型,具有强大的三维空间信息以及一定的实景信息存储和展示能力。随着倾斜摄影测量软硬件技术的发展,可以提供精细纹理与几何特征以及高精度定位的三维倾斜摄影测量产品已经成为建立大规模地形地貌、特别是城市区域中数字表面模型(DSM)与数字高程模型(DEM)的重要源数据。
片元可以包括三角面片或其他几何面片。
图2示出根据本发明的第一实施方式的建立以视点为中心的经纬网格的示意图。
如图2所示,可以以视点为中心并且基于一定的角度粒度来建立经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线。
例如,水平方向每0.5度划分一条经线,垂直方向每0.5度划分一条纬线,从而建立经纬网格。从该经纬网格可以看出,南北极的网格较密集,赤道的网格较稀疏,从而拣选的片元也会是同样的分布情况。因此,也可以根据区域的不同,来设置不同的角度粒度,以优化内存的使用。例如,在赤道附近采用0.5度的间隔,在南北极附近采用1度的间隔,在上下45度附近采用0.75度的间隔。
另外,从视点发出的视线射线,距离视点越远越稀疏,这样会造成远处可见片元的缺失。因此,也可以根据与视点的距离,来调整视线射线的稀疏。例如,在短距离内视线射线较稀疏,在距离大于某个数值(例如,200)之外采用较密集的视线射线。
在本发明中,建立以视点为中心的经纬网格,可以模拟从视点向所有方向发出的视线射线,并且基于一定的采样间隔来设置视线射线,采样间隔可调整,从而可以适应不同的计算能力要求和采样精度要求。
图3示出根据本发明的第一实施方式的确定与区域块对应的LOD层级的示意图。
如图3所示,三维模型可以具有多个LOD(Levels of Detail,细节水平)层级,根据与视点的不同的距离,采用不同的LOD层级,从而可以提供完美的显示效果。并且,从人类观察物体由近及远细节渐失的客观规律来看,根据与视点的距离来选择对应的LOD层级也是可行的。
但是,如果将三维模型作为一个整体来确定与三维模型对应的LOD层级,往往不能体现三维模型中的各个部分的细节水平。因此,可以将三维模型划分为一个或多个区域块,每个区域块可以用包围盒来表示。并且,基于三维模型中的每个区域块和视点之间的距离,可以确定与每个区域块分别对应的LOD层级。区域块和视点之间的距离越近,与区域块对应的LOD层级越精细,并且区域块和视点之间的距离越远,与区域块对应的LOD层级越粗糙。另外,在确定与区域块对应的LOD层级时,可以首先加载该区域块的最粗糙的LOD层级。
例如,三维模型的LOD层级可以被设置为18,19,20三个层级,其中数字越大的LOD层级越精细,并且可以将区域块和视点之间的距离设置为300,150,70三个阈值距离点;如果一个区域块和视点之间的距离超过300,则可以丢弃(即,不显示)该区域块;如果一个区域块和视点之间的距离在[300,150)的范围内,则可以选取18层级;如果一个区域块和视点之间的距离在[150,70)的范围内,则可以选取19层级;如果一个区域块和视点之间的距离在[70,0]的范围,则可以选取20层级。LOD层级的数量与区域块和视点之间的阈值距离点的数量可以相同,也可以不同。在两者数量不同的情况下,如果一个区域块和视点之间的距离在某个范围内,但是在查找对应的LOD层级的时候失败,则可以选取离其最近的次精细LOD层级。例如,如果在查找20层级的时候,发现该区域块的数据只到19层级,则可以选取19层级。
根据LOD的分布规律,计算区域块和视点之间的水平距离是最为合理的。但是,假如采集数据不规范导致三维模型的底面倾斜的话,使用区域块和视点之间的沿地平面的距离来代替坐标系水平距离,将更能体现距离与LOD层级的对应关系。
可以采用绝对距离来确定LOD层级,从而对于贴近地面以外的场景更加适用。例如,如果视点位于高空中,此时主要场景大都位于经纬网格的南半球,从视点发出的视线射线基本全部与水平面有倾斜角度,如果再根据水平距离来确定LOD层级就不太准确,因此可以采用绝对距离。
假如LOD层级分布有变化,例如,并不是数字越大的LOD层级越精细,而是相反,那就需要把距离与LOD层级的对应关系做相应的转换,或者对层级数字做预处理,映射为数字越大越精细的方式。
另外,可以通过大量数据测试,来统计距离与LOD层级的最合适的对应关系,也可以建立数学模型,来计算距离与LOD层级的最合适的对应关系。
在本发明中,以三维模型中的区域块为单位来确定LOD层级,可以体现三维模型中的各个部分的细节水平,并且根据区域块和视点之间的距离的不同,动态选取不同的LOD层级,满足效率的需要,实现流程的流畅性和多线程优化的便捷性。
由于在上面描述的基于一定的采样间隔来设置视线射线的情况下,如果以每个区域块中的点为单位进行拣选,则会造成中间间隔区域数据的丢失,因此可以以片元为单位进行拣选,这样就会产生数据的冗余,以抵消算法原生的不准确性,也可以减少运算量。在确定了LOD层级之后,对于每个区域块中的所有片元,在对应的LOD层级上,可以保留对于与片元对应的视线射线可见的片元,并且丢弃留对于与片元对应的视线射线不可见的片元。
每个区域块中的所有片元均具有位置信息。例如,对于每个片元,可以计算其重心p;可以计算从视点e发出经过重心p的空间射线e-p和三维模型的x轴正方向之间的夹角,作为该片元的水平方向的角度angle_x;可以计算从视点e发出经过重心p的空间射线e-p和三维模型的xoy平面之间的夹角,作为该片元的垂直方向的角度angle_y;可以将角度angle_x和角度angle_y作为该片元在三维模型坐标系下的位置信息。根据该片元的位置信息,可以确定与该位置信息对应的从视点e发出经过经纬网格中的某个网格节点的视线射线,例如与该片元相交的视线射线,该视线射线即为与该片元对应的视线射线。如果该片元对于与该片元对应的该视线射线是可见的,则保留该片元,否则丢弃该片元。
另外,除了重心之外,也可以计算片元的内心、中心或其他定位点,并且也可以选取若干点计算平均值。
在本发明中,分别判断每个区域块中的所有片元对于与该片元对应的视线射线是否可见,如果可见则保留该片元,否则丢弃该片元,从而可以拣选三维模型中的可用的片元,大幅度精简了片元的处理数量。
图4示出根据本发明的第一实施方式的保留对于与片元对应的视线射线可见的片元的示意图。
如图4所示,经纬网格中的每个网格节点分别具有按深度排序的深度队列。在上面描述的水平方向每0.5度划分一条经线,垂直方向每0.5度划分一条纬线的情况下,可以生成面向各个方向的720*360个深度队列。而在上面描述的考虑到从视点发出的视线射线,距离视点越远越稀疏的情况下,可以在短距离内使用720*360个深度队列,在距离大于某个数值(例如,200)之外使用1440*720个深度队列。
可以计算区域块中的一个片元和视点之间的距离作为片元的深度。例如,对于该片元,计算其重心p;计算重心p和视点e之间的距离,作为该片元和视点之间的距离。
另外,除了重心之外,也可以计算片元的内心、中心或其他定位点,并且也可以选取若干点计算平均值。类似于区域块和视点之间的距离,片元和视点之间的距离可以采用水平距离、沿地平面的距离和/或绝对距离来确定,在此不再赘述。
在确定了该片元和视点之间的距离作为该片元的深度之后,可以将该片元的深度插入到与该片元对应的视线射线经过的网格节点的深度队列中。对于每个视线射线来说,最终可见的片元应该是和该视线射线相交并且和视点之间的距离最小的片元,即深度最小的片元。然而,对于每个视线射线,可以保留深度由小到大的N个片元,这样在一定程度上会弥补算法遗漏的区域。例如,某个片元在A视线射线处被别的片元遮挡了,但是在B视线射线处却是可见的。理论上来讲,当N较大时,可以取得较多的片元,从而拣选的结果较准确,但是拣选的效率较低,而当N较小时,可以取得较少的片元,从而拣选的效率较高,但是可能有遗漏的区域。
每个深度队列分别具有队列长度阈值,即上面描述的N。每个深度队列的队列长度阈值可以相同,也可以不同。队列长度阈值可以为输入参数,并且一般情况下可以根据以下方面来确定队列长度阈值:深度队列的密度以及最终效果的完备程度要求。例如,在720*360个深度队列的情况下,每个深度队列的队列长度阈值可以为10,即每个深度队列保存10个深度。另外,也可以建立与上面描述的方面相关的数学模型,来计算每个深度队列的最合适的队列长度阈值。
在将该片元的深度插入到与该片元对应的视线射线经过的网格节点的深度队列中之后,可以判断该深度队列的队列长度是否超过该深度队列的队列长度阈值。如果该深度队列的队列长度超过队列长度阈值,则丢弃深度队列中的深度最大的片元。
可以遍历三维模型中的所有区域块中的所有片元,依次计算并且插入每个片元的深度,在深度队列的队列长度超过队列长度阈值时丢弃深度队列中的深度最大的片元,并且最终保留所有深度队列中的片元。在保留片元时,可以保留该片元的深度信息、位置信息和/或纹理信息。
在本发明中,将片元的深度插入到与片元对应的视线射线经过的网格节点的深度队列中,并且在深度队列具有队列长度阈值的情况下,保留所有深度队列中的片元,从而可以拣选三维模型中的可用的片元,大幅度精简了片元的处理数量,并且可以尽可能地弥补算法遗漏的区域。
在计算区域块中的一个片元和视点之间的距离作为片元的深度之前,可以先计算该片元的法向量和与该片元对应的视线射线之间的夹角,并且可以判断该片元的法向量和与该片元对应的视线射线之间的夹角是否小于90度。如果该片元的法向量和与该片元对应的视线射线之间的夹角小于90度,则表示该片元的正面背对与该片元对应的视线射线,因此可以丢弃该片元,而无需再计算该片元和视点之间的距离作为该片元的深度,并且可以判断该区域块中是否还存在未计算的片元。如果该片元的法向量和与该片元对应的视线射线之间的夹角大于等于90度,则表示该片元的正面面对与该片元对应的视线射线,因此可以继续计算该片元和视点之间的距离作为该片元的深度。
在本发明中,在计算区域块中的一个片元和视点之间的距离作为片元的深度之前,先判断片元的法向量和与片元对应的视线射线之间的夹角是否小于90度,从而可以丢弃正面背对视线射线的片元,进一步拣选三维模型中的可用的片元,大幅度精简了片元的处理数量,保证了拣选的效果。
图5示出根据本发明的第一实施方式的拣选三维模型中的片元的方法的又一流程图。
如图5所示,方法500包括:
步骤502,建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
步骤504,基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
步骤506,对于每个区域块中的所有片元,在对应的LOD层级上,计算区域块中的一个片元的法向量和与片元对应的视线射线之间的夹角;
步骤508,判断片元的法向量和与片元对应的视线射线之间的夹角是否小于90度;
如果片元的法向量和与片元对应的视线射线之间的夹角小于90度,则进入步骤510,丢弃片元,并且进入步骤520,判断区域块中是否还存在未计算的片元,否则进入步骤512,计算片元和视点之间的距离作为片元的深度;
步骤514,经纬网格中的每个网格节点分别具有按深度排序的深度队列,将片元的深度插入到与片元对应的视线射线经过的网格节点的深度队列中;
步骤516,每个深度队列分别具有队列长度阈值,判断深度队列的队列长度是否超过队列长度阈值;
如果深度队列的队列长度超过队列长度阈值,则进入步骤518,丢弃深度队列中的深度最大的片元,并且进入步骤520,判断区域块中是否还存在未计算的片元,否则直接进入步骤520,判断区域块中是否还存在未计算的片元;
如果区域块中还存在未计算的片元,则返回步骤506继续计算未计算的片元中的一个片元的法向量和与片元对应的视线射线之间的夹角,否则进入步骤522,保留所有深度队列中的片元。
图6示出根据本发明的第二实施方式的三维模型的栅格化的方法的流程图。
如图6所示,方法600包括:
步骤602,建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
步骤604,基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
步骤606,对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元;
步骤608,从视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的片元中与空间射线相交的片元;
步骤610,采样片元来更新像素点。
在本发明中,首先模糊拣选对于从视点经过经纬网格中的每个网格节点分别发出的视线射线可见的片元,然后在这些片元中查找与从视点经过虚拟全景图中的每个像素点发出的空间射线相交的片元,可以减少在采用反投影方式进行三维模型栅格化时所需处理的片元的数量,从而减少大量的计算过程,栅格化效率高。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
图7示出根据本发明的第二实施方式的三维模型的栅格化的示意图。
如图7所示,虚拟全景图中的所有像素点均具有位置信息。例如,对于虚拟全景图中的一个像素点pp,可以计算从视点e发出经过像素点pp的空间射线e-pp的水平角度a_x和垂直角度a_y;可以将水平角度a_x和垂直角度a_y作为像素点pp在虚拟全景图坐标系下的位置信息。根据像素点pp在虚拟全景图坐标系下的位置信息,可以转换为像素点pp在三维模型坐标系下的位置信息,并且确定与该位置信息对应的从视点e发出经过经纬网格中的某个网格节点的视线射线,例如与像素点pp相交的视线射线,该视线射线即为在三维模型坐标系下从视点e发出经过虚拟全景图中的像素点pp的空间射线e-pp。
在保留的片元中,可以查找与该空间射线e-pp相交的片元,并且采样该片元的纹理信息来更新像素点pp的像素值。可以初始化像素点pp的深度为MAX_DEPTH,并且采样该片元的深度信息来更新像素点pp的深度值,其中该片元的深度信息可以被插入在上面描述的深度队列中。
可以以该空间射线e-pp为中心,扩大一定的角度范围,从而形成以视点e为顶点的四角锥。在保留的片元中,可以首先查找在该四角锥范围内的片元,然后在这些片元中查找与该空间射线e-pp相交的片元。可以逐步扩大角度范围,如果查找到与该空间射线e-pp相交的片元,则不再扩大角度范围,否则继续扩大角度范围,直到查找到与该空间射线e-pp相交的片元或者扩大到角度范围的最大阈值。角度范围的最大阈值一般与纬度有关,纬度越低,角度范围的最大阈值越大,并且纬度越高,角度范围的最大阈值越小。
可以遍历虚拟全景图中的所有像素点,从而可以将三维模型的数据转换到虚拟全景图和深度图中。
图8示出根据本发明的第三实施方式的三维模型的栅格化的方法的流程图。
如图8所示,方法800包括:
步骤802,建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
步骤804,基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
步骤806,对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元;
步骤808,从视点经过保留的片元上的采样点发出空间射线,查找虚拟全景图中与空间射线相交的像素点;
步骤810,采样片元来更新像素点。
在本发明中,首先模糊拣选对于从视点经过经纬网格中的每个网格节点分别发出的视线射线可见的片元,然后查找虚拟全景图中与从视点经过保留的片元上的采样点发出的空间射线相交的像素点,可以减少在采用正投影方式进行三维模型栅格化时所需处理的片元的数量,从而减少大量的计算过程,栅格化效率高。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
图9示出根据本发明的第三实施方式的三维模型的栅格化的示意图。
如图9所示,对于保留的片元中的一个片元,可以在该片元的每条边上取得一定数量的点,并且加上该片元的数个顶点,构成该片元的所有采样点。可以根据片元在不同纬度区域的投影畸变程度,或者统计结果,来确定片元的采样点的数量。例如,由于在赤道附近畸变较小,因此使用较少的采样点就可以确定投影区域,而由于在南北极附近畸变大,因此需要使用较多的采样点来确定精确的投影区域。
所有采样点均具有位置信息。例如,对于该片元的一个采样点sp,可以计算从视点e发出经过采样点sp的空间射线e-sp的水平角度xoy_degree和垂直角度z_degree;可以将水平角度xoy_degree和垂直角度z_degree作为采样点sp在三维模型坐标系下的位置信息。根据采样点sp在三维模型坐标系下的位置信息,可以转换为采样点sp在虚拟全景图坐标系下的位置信息,并且确定与该位置信息对应的在虚拟全景图坐标系下从视点e发出经过采样点sp的空间射线e-sp。
在虚拟全景图中,可以查找与该空间射线e-sp相交的像素点pp,并且采样该片元的纹理信息来更新像素点pp的像素值。可以初始化像素点pp的深度为MAX_DEPTH,并且采样该片元的深度信息来更新像素点pp的深度值,其中该片元的深度信息可以被插入在上面描述的深度队列中。
可以初始化虚拟全景图的投影范围roi,投影范围可以为矩形,投影范围的最左端为x_left,投影范围的最右端为x_right,投影范围的最下端为y_bottom,并且投影范围的最上端为y_top。例如,虚拟全景图的投影范围为-4,4,2,-2,单位为弧度。
对于保留的片元中的一个片元,可以首先判断该片元在三维模型坐标系下是否与平面y=0(x<0)相交。如果相交,则说明该片元处于虚拟全景图的两头位置,并可能被分为两部分(当该片元处于经纬网格的南北极时,可以连成一部分)。此时,可以计算该片元的所有采样点的水平角度xoy_degree和垂直角度z_degree,并且当采样点的水平角度xoy_degree<0时,说明该采样点落在虚拟全景图的右半部分,则对比投影范围的最左端x_left和采样点的水平角度xoy_degree,如果采样点的水平角度xoy_degree>投影范围的最左端x_left,则更新投影范围的最左端x_left为采样点的水平角度xoy_degree;否则,对比投影范围的最右端x_right和采样点的水平角度xoy_degree,若采样点的水平角度xoy_degree<投影范围的最右端x_right,则更新投影范围的最右端x_right为采样点的水平角度xoy_degree。
在三维模型坐标系下,可以确定从视点e经过经纬网格中的南极点发出的视线射线,并且判断该视线射线是否与保留的片元中的一个或多个片元相交。如果相交,则说明该片元处于虚拟全景图的最下端部分,更新投影范围的最左端x_left为π,投影范围的最右端x_right为-π,并且投影范围的最下端y_bottom为-π/2,以避免遗漏区域。
根据虚拟全景图的投影范围roi,可以计算虚拟全景图的具体区域p_roi。可以按照水平从投影范围的最左端x_left到投影范围的最右端x_right,垂直从投影范围的最下端y_bottom到投影范围的最上端y_top的顺序遍历具体区域中的像素点(当x或y越出边界时要变为0),查找与从视点e发出经过采样点sp的空间射线e-sp相交的像素点pp,从而可以将三维模型的数据转换到虚拟全景图和深度图中。
在采用正投影方式进行三维模型栅格化时,可以采用多线程并行处理。例如,可以把不同的片元投影过程分到不同的线程中,同时使用多个线程来处理多个片元,并且在投影写入时保持数据同步。
图10示出根据本发明的第四实施方式的拣选三维模型中的片元的系统的结构图。
如图10所示,系统1000包括:
网格建立模块1002,建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
层级确定模块1004,基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块1006,对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
图11示出根据本发明的第五实施方式的三维模型的栅格化的系统的结构图。
如图11所示,系统1100包括:
网格建立模块1102,建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
层级确定模块1104,基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块1106,对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元;
片元查找模块1108,从视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的片元中与空间射线相交的片元;
像素点更新模块1110,采样片元来更新像素点。
第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
图12示出根据本发明的第六实施方式的三维模型的栅格化的系统的结构图。
如图12所示,系统1200包括:
网格建立模块1202,建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
层级确定模块1204,基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块1206,对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元;
像素点查找模块1208,从视点经过保留的片元上的采样点发出空间射线,查找虚拟全景图中与空间射线相交的像素点;
像素点更新模块1210,采样片元来更新像素点。
第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
本发明的第七实施方式涉及一种使用计算机程序编码的计算机存储介质,计算机程序包括指令,指令被一个以上的计算机执行以实施拣选三维模型中的片元的方法,方法包括:
建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
本发明的第八实施方式涉及一种使用计算机程序编码的计算机存储介质,计算机程序包括指令,指令被一个以上的计算机执行以实施三维模型的栅格化的方法,方法包括:
建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元;
从视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的片元中与空间射线相交的片元;
采样片元来更新像素点。
第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
本发明的第九实施方式涉及一种使用计算机程序编码的计算机存储介质,计算机程序包括指令,指令被一个以上的计算机执行以实施三维模型的栅格化的方法,方法包括:
建立以视点为中心的经纬网格,从视点经过经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的LOD层级上,保留对于与片元对应的视线射线可见的片元;
从视点经过保留的片元上的采样点发出空间射线,查找虚拟全景图中与空间射线相交的像素点;
采样片元来更新像素点。
第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
需要说明的是,本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically ErasableProgrammable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
需要说明的是,本发明各设备实施方式中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种拣选三维模型中的片元的方法,其特征在于,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
2.根据权利要求1所述的方法,其特征在于,在计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度之前,还包括:
计算所述区域块中的一个片元的法向量和与所述片元对应的所述视线射线之间的夹角;
判断所述片元的法向量和与所述片元对应的所述视线射线之间的夹角是否小于90度;
如果所述片元的法向量和与所述片元对应的所述视线射线之间的夹角小于90度,则丢弃所述片元,并且判断所述区域块中是否还存在未计算的片元,否则继续计算所述片元和所述视点之间的距离作为所述片元的深度。
3.一种三维模型的栅格化的方法,其特征在于,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的所述片元中与所述空间射线相交的所述片元;
采样所述片元来更新所述像素点;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
4.一种三维模型的栅格化的方法,其特征在于,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过保留的所述片元上的采样点发出空间射线,查找虚拟全景图中与所述空间射线相交的像素点;
采样所述片元来更新所述像素点;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
5.一种拣选三维模型中的片元的系统,其特征在于,所述系统包括:
网格建立模块,建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
层级确定模块,基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
6.一种三维模型的栅格化的系统,其特征在于,所述系统包括:
网格建立模块,建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
层级确定模块,基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
片元查找模块,从所述视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的所述片元中与所述空间射线相交的所述片元;
像素点更新模块,采样所述片元来更新所述像素点;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
7.一种三维模型的栅格化的系统,其特征在于,所述系统包括:
网格建立模块,建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
层级确定模块,基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
片元拣选模块,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
像素点查找模块,从所述视点经过保留的所述片元上的采样点发出空间射线,查找虚拟全景图中与所述空间射线相交的像素点;
像素点更新模块,采样所述片元来更新所述像素点;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
8.一种使用计算机程序编码的计算机存储介质,其特征在于,所述计算机程序包括指令,所述指令被一个以上的计算机执行以实施拣选三维模型中的片元的方法,所述方法包括:建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
9.一种使用计算机程序编码的计算机存储介质,其特征在于,所述计算机程序包括指令,所述指令被一个以上的计算机执行以实施三维模型的栅格化的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过虚拟全景图中的每个像素点发出空间射线,查找保留的所述片元中与所述空间射线相交的所述片元;
采样所述片元来更新所述像素点;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
10.一种使用计算机程序编码的计算机存储介质,其特征在于,所述计算机程序包括指令,所述指令被一个以上的计算机执行以实施三维模型的栅格化的方法,所述方法包括:
建立以视点为中心的经纬网格,从所述视点经过所述经纬网格中的每个网格节点分别发出视线射线;
基于三维模型中的每个区域块和所述视点之间的距离,确定与每个区域块分别对应的LOD层级;
对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元;
从所述视点经过保留的所述片元上的采样点发出空间射线,查找虚拟全景图中与所述空间射线相交的像素点;
采样所述片元来更新所述像素点;
其中,对于每个区域块中的所有片元,在对应的所述LOD层级上,保留对于与所述片元对应的所述视线射线可见的所述片元包括:
计算所述区域块中的一个片元和所述视点之间的距离作为所述片元的深度;
所述经纬网格中的每个网格节点分别具有按深度排序的深度队列,将所述片元的深度插入到与所述片元对应的所述视线射线经过的所述网格节点的所述深度队列中;
每个深度队列分别具有队列长度阈值,判断所述深度队列的队列长度是否超过所述队列长度阈值;
如果所述深度队列的队列长度超过所述队列长度阈值,则丢弃所述深度队列中的深度最大的所述片元,并且判断所述区域块中是否还存在未计算的片元,否则直接判断所述区域块中是否还存在未计算的片元;
如果所述区域块中还存在未计算的片元,则继续计算未计算的片元中的一个片元和所述视点之间的距离作为所述片元的深度,否则保留所有深度队列中的所述片元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911368096.6A CN111145085B (zh) | 2019-12-26 | 2019-12-26 | 拣选片元的方法和模型栅格化的方法、系统、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911368096.6A CN111145085B (zh) | 2019-12-26 | 2019-12-26 | 拣选片元的方法和模型栅格化的方法、系统、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111145085A CN111145085A (zh) | 2020-05-12 |
CN111145085B true CN111145085B (zh) | 2023-09-22 |
Family
ID=70520444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911368096.6A Active CN111145085B (zh) | 2019-12-26 | 2019-12-26 | 拣选片元的方法和模型栅格化的方法、系统、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111145085B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112002015B (zh) * | 2020-09-10 | 2021-05-04 | 熵智科技(深圳)有限公司 | 无序点云生成网格数据结构的方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915563A (zh) * | 2012-09-07 | 2013-02-06 | 深圳市旭东数字医学影像技术有限公司 | 三维网格模型透明绘制的方法及其系统 |
CN103500463A (zh) * | 2013-10-17 | 2014-01-08 | 北京大学 | 一种gpu上多层形状特征融合的可视化方法 |
WO2014043814A1 (en) * | 2012-09-21 | 2014-03-27 | Tamaggo Inc. | Methods and apparatus for displaying and manipulating a panoramic image by tiles |
US8970583B1 (en) * | 2012-10-01 | 2015-03-03 | Google Inc. | Image space stylization of level of detail artifacts in a real-time rendering engine |
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
CN110458871A (zh) * | 2019-08-14 | 2019-11-15 | 上海霁目信息科技有限公司 | 模型与全景图的配准方法、系统、设备和介质以及地图 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060132488A1 (en) * | 2004-12-17 | 2006-06-22 | Electronics And Telecommunications Research Institute | Apparatus and method for representing multi-level LOD three-dimensional image |
-
2019
- 2019-12-26 CN CN201911368096.6A patent/CN111145085B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915563A (zh) * | 2012-09-07 | 2013-02-06 | 深圳市旭东数字医学影像技术有限公司 | 三维网格模型透明绘制的方法及其系统 |
WO2014043814A1 (en) * | 2012-09-21 | 2014-03-27 | Tamaggo Inc. | Methods and apparatus for displaying and manipulating a panoramic image by tiles |
US8970583B1 (en) * | 2012-10-01 | 2015-03-03 | Google Inc. | Image space stylization of level of detail artifacts in a real-time rendering engine |
CN103500463A (zh) * | 2013-10-17 | 2014-01-08 | 北京大学 | 一种gpu上多层形状特征融合的可视化方法 |
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
CN110458871A (zh) * | 2019-08-14 | 2019-11-15 | 上海霁目信息科技有限公司 | 模型与全景图的配准方法、系统、设备和介质以及地图 |
Non-Patent Citations (3)
Title |
---|
基于GPU的复杂三角网格模型多分辨率绘制;王化雨;刘惠义;冯艳蓉;李奎生;;电子测量技术(01);全文 * |
基于九宫格的累进LOD地形绘制算法;印桂生;陈怀友;张菁;李建军;;西南交通大学学报(03);全文 * |
基于遥感数据的选线三维地理环境建模方法;吕希奎;易思蓉;;铁道标准设计(S1);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111145085A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6618047B1 (en) | Visibility calculations for 3d computer graphics | |
US20030193527A1 (en) | System and method related to data structures in the context of a computer graphics system | |
US20200043219A1 (en) | Systems and Methods for Rendering Optical Distortion Effects | |
LU102117A1 (en) | Method and system for measuring mountain view visible area in city | |
US10699467B2 (en) | Computer-graphics based on hierarchical ray casting | |
US10553012B2 (en) | Systems and methods for rendering foveated effects | |
Scheiblauer | Interactions with gigantic point clouds | |
CN113012063B (zh) | 一种动态点云修复方法、装置及计算机设备 | |
CN111080798A (zh) | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 | |
EP1371021A1 (en) | Generation of a three-dimensional representation from multiple images using octrees | |
TW201312499A (zh) | 景深網格化 | |
CN116342783B (zh) | 一种实景三维模型数据渲染优化方法及系统 | |
CN113012274B (zh) | 一种阴影渲染的方法、装置以及电子设备 | |
Faust et al. | Real-time global data model for the digital earth | |
CN111744183B (zh) | 游戏中的光照采样方法、装置以及计算机设备 | |
CN114332134A (zh) | 一种基于密集点云的建筑物立面提取方法和装置 | |
CN111145085B (zh) | 拣选片元的方法和模型栅格化的方法、系统、设备和介质 | |
CN109785421B (zh) | 一种基于空地影像组合的纹理映射方法及系统 | |
CN109783842B (zh) | 一种基于体素数据的射线检测方法及系统 | |
CN113345072A (zh) | 一种多视角遥感地形影像点云重建方法及系统 | |
Frommholz et al. | Reconstructing buildings with discontinuities and roof overhangs from oblique aerial imagery | |
Frommholz et al. | Inlining 3d reconstruction, multi-source texture mapping and semantic analysis using oblique aerial imagery | |
CN115063497B (zh) | 一种点云数据处理方法及装置 | |
CN115033972B (zh) | 一种建筑主体结构批量单体化方法、系统及可读存储介质 | |
CN113487741B (zh) | 稠密三维地图更新方法及装置 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200728 Address after: Room a644-16, building 2, No. 351, GuoShouJing Road, free trade zone, Pudong New Area, Shanghai 201207 Applicant after: SHANGHAI JIETU TIANXIA NETWORK TECHNOLOGY Co.,Ltd. Address before: 200120 building I, floor 4, No. 2981, Dongfang Road, Pudong New Area, Shanghai Applicant before: Shanghai Jimu Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |