CN114494623A - 基于lod的地形渲染方法及装置 - Google Patents
基于lod的地形渲染方法及装置 Download PDFInfo
- Publication number
- CN114494623A CN114494623A CN202210078656.XA CN202210078656A CN114494623A CN 114494623 A CN114494623 A CN 114494623A CN 202210078656 A CN202210078656 A CN 202210078656A CN 114494623 A CN114494623 A CN 114494623A
- Authority
- CN
- China
- Prior art keywords
- terrain
- node
- rendering
- level
- lod
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种基于LOD的地形渲染方法及装置,本申请方法包括获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;若否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;若是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。本申请解决如何高效的对海量地形和影像数据的管理的问题。
Description
技术领域
本申请涉及三维地形可视化技术领域,具体而言,涉及一种基于LOD的地形渲染方法及装置。
背景技术
虚拟地球(Virtual globe)是一种能表示地球或另一个世界的三维软件模型,能够提供给用户自由移动环境与改变观察角度与位置的功能。虚拟地球技术的实现涉及全球范围地形和影像数据的可视化处理,而且针对全球范围的地形和影像数据可视化处理数据量是巨大的。比如按分辨率1米/像素精度来表示覆盖整个地球的矩形影像为例,地球的赤道周长大约为4万公里,这个图像需要大约1千万亿(1*1015)个像素,每个像素的颜色用24位色表示,整个图像的存储空间接近2PB(还未包含地形数据),经过压缩可以减少一些,但是在当前的计算机上,不管是内存还是GPU的显存都无法容纳如此巨量的数据,在主流的应用场景通常达到0.5米/像素甚至达到0.2米/像素,这会对数据量的增加成几何级增长。这种级别的地形和图像数据集需要特殊的技术来进行管理,因此如何更高效的对这种级别的地形和图像数据进行管理是目前急需解决的问题之一。
发明内容
本申请的主要目的在于提供一种基于LOD的地形渲染方法及装置,解决如何高效的对海量地形和影像数据的管理的问题。
为了实现上述目的,根据本申请的第一方面,提供了一种基于LOD的地形渲染方法。
根据本申请的基于LOD的地形渲染方法包括:
获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;
从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;
若否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;
若是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
可选的,所述从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值包括:
根据渲染场景选择所述树结构中预设层级的所有节点作为场景简化层节点,所述预设层级为非0层;
从所述场景简化层节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值。
可选的,所述方法还包括:
在对节点对应的地形瓦片数据进行渲染的过程中,当不同层级的地形瓦片数据相邻并存在裂缝时,通过插值方式在相邻的不同层级的地形瓦片数据之间引入过渡层。
可选的,所述树结构为四叉树结构或八叉树结构。
可选的,所述对节点对应的地形瓦片数据进行渲染包括:
根据地形瓦片数据中包括的该地形瓦片所有顶点的位置、法线、纹理坐标、索引缓存进行渲染。
为了实现上述目的,根据本申请的第二方面,提供了一种基于LOD的地形渲染装置。
根据本申请的基于LOD的地形渲染装置包括:
根节点确定单元,用于获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;
第一判断单元,用于从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;
第二判断单元,用于若第一判断单元的判断结果为否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;
渲染单元,用于若第一判断单元的判断结果为是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
可选的,所述第一判断单元包括:
选择模块,用于根据渲染场景选择所述树结构中某一层级的所有节点作为场景简化层节点;
判断模块,用于从所述场景简化层节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值。
可选的,所述装置还包括:
裂缝处理单元,用于在对节点对应的地形瓦片数据进行渲染的过程中,当不同层级的地形瓦片数据相邻并存在裂缝时,通过插值方式在相邻的不同层级的地形瓦片数据之间引入过渡层。
可选的,所述树结构为四叉树结构或八叉树结构。
可选的,所述渲染单元还用于,根据地形瓦片数据中包括的该地形瓦片所有顶点的位置、法线、纹理坐标、索引缓存进行渲染。
为了实现上述目的,根据本申请的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述第一方面中任意一项所述的基于LOD的地形渲染方法。
为了实现上述目的,根据本申请的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行上述第一方面中任意一项所述的基于LOD的地形渲染方法。
在本申请实施例的基于LOD的地形渲染方法及装置中,是基于LOD技术对海量地形和影像数据进行管理的。具体的,将LOD地形层级的第0层节点确定为渲染地形对应的树结构的根节点;然后从根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;若否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;若是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。可以看到,本申请实施例中对于地形数据在渲染前不是获取所有的地形数据,而是从地形极简化版本(第0层)开始,基于地形瓦片投影到屏幕空间后的像素比与预设阈值进行比较,根据比较结果选择足够细节的瓦片数据进行渲染。在实际的应用中,通常渲染前的工作是由CPU处理的,渲染是由GPU处理的,依照本申请实施例中的方式,在渲染前由于不需要获取所有的地形数据,只需要获取足够细节的地形瓦片数据,因此可以减少CPU处理的数据量,对应的CPU传送给GPU进行渲染的地形数据同样也会相对减少,因此也可以减少GPU的处理量。减少CPU和GPU的数据处理量,便会提高数据管理的效率,即在一定程度上实现对海量地形和影像数据的高效处理。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的一种基于LOD的地形渲染方法流程图;
图2是根据本申请实施例提供的一种4叉树结构示意图;
图3是根据本申请实施例提供的另一种基于LOD的地形渲染方法流程图;
图4根据本申请实施例提供的一种基于LOD的地形渲染装置的组成框图;
图5是根据本申请实施例提供的另一种基于LOD的地形渲染装置的组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本申请实施例,提供了一种基于LOD的地形渲染方法,如图1所示,该方法包括如下的步骤S101-S104:
S101.获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;
S102.从根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;
对于步骤S102的判断结果,若判断结果为是,则执行步骤S104,若判断结果为否,则执行步骤S103。
S103.继续对节点的下一层级节点分别进行像素比与预设阈值的比较;
S104.对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
在步骤S101中,LOD技术即Levels of Detail的简称,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。在大规模的三维可视化场景中,不可能一次渲染所有的三角形,常用的做法就是采用LOD。基于LOD的地形渲染实现中最主要的是如何根据地形在显示环境中所处的位置和重要度,决定地形渲染的资源分配。
将地形模型分割并存储在一个多分辨率的空间数据结构中,例如一个八叉树或四叉树,该树的根部是极度简化的地形模型。如图2所示为4叉树结构示意图,把整个地形分解成了一个四叉树,树中节点的层级对应LOD地形层级,树中根节点是整个世界的低细节表示,如图2中所示,即地形层级的第0层作为根节点;树结构的根节点的四个子节点将世界分成4个(若为八叉树,则是8个,本申请实施例主要是以4叉树为例进行说明)大小相等的面积,并提供了较高的细节表示;四个子节点可以继续被分割,每个子节点包含了其父亲节点的一个子集,每个子集比其父亲的细节更多,但空间上更小。树上任何一个层次的所有节点的集合就一个完整版本的模型。Level 0(第0层)的节点是最简化的版本。深度最大的所有节点的集合就表示的是该模型全分辨率的版本。
基于LOD的地形渲染的实现中根据地形在显示环境中所处的位置和重要度,决定地形渲染的资源分配,也就是将地形进行简化,不进行全部地形全分辨率的渲染。如何对地形进行简化就是本申请实施例解决的重点。本申请实施例是基于地形瓦片投影到屏幕空间后的像素比与预设阈值的比较结果来对地形进行简化的。具体的参见步骤S102-步骤S104:
步骤S102中,是从根节点也就是最简化版地形开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值。其中,地形瓦片为地形块,每个地形块都是由三角形组成的(三角形的数量可能是一个也可能是多个),本实施例中的地形瓦片是基于上述的LOD地形切分的,即树结构中每个节点对应的地形可以称作一个地形瓦片。关于地形瓦片投影到屏幕空间后的像素比,是地形瓦片在通过投影变换到屏幕空间后根据屏幕的分辨率可以计算出地形瓦片所占的像素的个数,然后根据地形瓦片所占的像素的个数与整个屏幕像素作比,就可以得到对应的像素比,像素比是实时计算的。预设阈值是在数据预处理时设置的。比如可以为5%,10%,20%等数值。另外,还需要说明的是,在具体计算地形瓦片投影到屏幕空间后的像素比时,投影变换到屏幕空间的是地形瓦片对应的包围体,包围体是在数据预处理时就计算好的。每个地形分块必须包含在一个已知的包围体中,子节点对应的地形分块的包围体必须包含在其父节点对应的地形分块的包围体中。在实践中,可以使用AABB包围盒或包围球对该分块进行包围体的计算。
步骤S103是在节点对应的地形瓦片投影到屏幕空间后的像素比大于预设阈值时执行的。即,当节点对应的地形瓦片投影到屏幕空间后的像素比大于预设阈值时,表示当前地形瓦片还需要进行精细化处理,即需要对下一层级的所有的节点对应的地形瓦片继续进行像素比与预设阈值的比较,若像素比小于或等于预设阈值,则可以对像素比小于或等于预设阈值对应的地形瓦片数据进行进行渲染处理,若下一层级的节点中还存在像素比大于预设阈值的节点,则对该节点还需要继续进行该节点下一层级所有节点的对应的地形瓦片继续进行像素比与预设阈值的比较。
步骤S104是在节点对应的地形瓦片投影到屏幕空间后的像素比小于等于预设阈值时执行的。即,当节点对应的地形瓦片投影到屏幕空间后的像素比小于等于该节点对应得地形瓦片对应的预设阈值时,则可以对该节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
经过上述步骤后,CPU只需要将需要渲染的地形瓦片数据传送给GPU进行渲染,在实际的实现中,对于需要渲染的地形瓦片数据可以加入到渲染队列中,使GPU按照渲染队列中的排序对地形瓦片进行渲染。具体的,渲染时根据地形瓦片数据中包括的该地形瓦片包含的所有顶点的位置、法线、纹理坐标、索引缓存进行渲染。每个地形瓦片对应的地形瓦片数据中包含的所有顶点的位置、法线、纹理坐标、索引缓存都是在数据预处理的时候就处理好并存储在存储空间中的。
在实际应用中,步骤S102-步骤S104的实现可以通过递归算法实现。
从以上的描述中,可以看出,本申请实施例的基于LOD的地形渲染方法中,将LOD地形层级的第0层节点确定为渲染地形对应的树结构的根节点;然后从根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;若否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;若是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。可以看到,本申请实施例中对于地形数据在渲染前不是获取所有的地形数据,而是从地形极简化版本(第0层)开始,基于地形瓦片投影到屏幕空间后的像素比与预设阈值进行比较,根据比较结果选择足够细节的瓦片数据进行渲染。在实际的应用中,通常渲染前的工作是由CPU处理的,渲染是由GPU处理的,依照本申请实施例中的方式,在渲染前由于不需要获取所有的地形数据,只需要获取足够细节的地形瓦片数据,因此可以减少CPU处理的数据量,对应的CPU传送给GPU进行渲染的地形数据同样也会相对减少,因此也可以减少GPU的处理量。减少CPU和GPU的数据处理量,便会提高数据管理的效率,即在一定程度上实现对海量地形和影像数据的高效处理。
为了进一步的提高海量地形和影像数据的管理效率,本申请实施例还提供了另一种实现方式,具体的实现步骤,如图3所示,包括步骤S201-S205。
S201.获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;
本步骤与图1实施例中步骤S101的实现方式相同,此处不再赘述。
S202.根据渲染场景选择树结构中预设层级的所有节点作为场景简化层节点;
其中,预设层级为非0层,因此场景简化层节点组成的也不是整个地形对应的LOD地形的最简化模型,场景简化层节点对应的是场景简化层,但不是最简化层。本步骤中确定场景简化层节点是为了从比简化模型更精细化的某一模型开始进行渲染时需要的地形瓦片的选择。比如可以将第1层或者第2层作为预设层级。
S203.从场景简化层节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;
本步骤与图1中步骤S102的区别是开始的节点不同,其他的都相同,此处不再赘述。需要说明的是,相比于图1中从第0层开始的方式,图2中的实施例的方式在一定程度上也可以减少数据的处理量的,因此可以进一步提高效率。
对于步骤S203的判断结果,若判断结果为是,则执行步骤S205,若判断结果为否,则执行步骤S204。
S204.继续对节点的下一层级节点分别进行像素比与预设阈值的比较;
本步骤与图1实施例中步骤S103的实现方式相同,此处不再赘述。
S205.对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
本步骤与图1实施例中步骤S104的实现方式相同,此处不再赘述。
从上述的描述可以看出,图3中的基于LOD的地形渲染的方式可以在图1的实施例的基础上进一步的提高管理的效率。图3中关键的是根据实际的渲染场景的需求选择比较合适的预设层级。
进一步的,对于图1和图3的实施例中,在选择的需要渲染的地形瓦片可能会存在不同层级的地形瓦片相邻的情况,这样就会在相邻的边界出现裂缝,对于这种裂缝,本申请实施例通过插值的方式在两者之间进行逐渐的变形,具体的是通过插值方式在相邻的不同层级的地形瓦片数据之间引入过渡层,实现细节变换平滑过渡。具体的,是在数据采样时,保留边上点,并进隔点采样,即跳过去的点去掉,从而得到过渡层
进一步的,对于图1和图3实施例中的预设阈值,在实际应用中也可以设置为一个数值范围,由左右两个边界值构成,比如可以为(5%,20%),其中5%为左边界值,20%为右边界值。当预设阈值变成一个数值范围时,前述实施例中将地形瓦片投影到屏幕空间的像素比与阈值阈值的比较,就需要对应的调整。具体的,“判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值”变为“判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否在一个预设的数值范围内(即大于或等于左边值并且小于或等于右边界值)”。而对于判断的结果,“若是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据”没有变化。对于判断结果,“若否,继续对节点的下一层级节点分别进行像素比与预设阈值的比较”变为“若否,并且是大于右边界值,则继续对节点的下一层级节点分别进行像素比与一个预设的数值范围的比较”。
进一步的,图1和图3实施例中,对于当前已经渲染好的地形瓦片,当视点变化或者其他操作时,对应的预设阈值(或预设数值范围)以及实时计算的投影到屏幕空间的像素比也会变化,这时需要重新进行地形瓦片投影到屏幕空间后的像素比与预设阈值(或预设数值范围)的比较,这个过程中不仅会出现对地形瓦片精细化,也会出现对地形瓦片粗糙化的过程。如果地形瓦片投影到屏幕空间后的像素比大于预设阈值(或大于预设数值范围的右边界值),则对地形瓦片进行精细化,即获取下一层节点,并继续进行像素比与预设阈值的比较;如果地形瓦片投影到屏幕空间后的像素比小于预设阈值(小于预设数值范围的左边界值),即需要对地形瓦片进行粗糙化,则获取上一层节点(如果没有上一层节点,则不进行粗糙化),并继续进行像素比与预设阈值的比较。在上述没有说到的比较结果,依然保持当前地形瓦片不变,即不精细化也不粗糙化。对于图1和图3实施例中没有涉及粗糙化的过程,是因为是从最简化的根节点或者比较简化的节点开始判断的,最简化就是最粗糙,因此从最粗糙开始只能是不断精细化的过程,到可以渲染的层级后,就选择进行渲染,不会再返回出现粗糙化的过程。即图1和图3主要是在初始进行地形渲染的过程,本段中描述的是在初期地形渲染好后,需要对已经渲染的地形进行其他操作变化的过程中,会出现进一步精细化或者粗糙化的过程。比如当视点靠近当前地形瓦片时,或者对地形瓦片进行放大时,需要对当前已经渲染的地形瓦片进行精细化处理;当视点远离当前地形瓦片时,或者对地形瓦片进行缩小时,需要对已经渲染的地形瓦片进行粗糙化处理。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述图1-3方法的基于LOD的地形渲染装置,如图4所示,该装置包括:
根节点确定单元31,用于获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;
第一判断单元32,用于从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;
第二判断单元33,用于若第一判断单元的判断结果为否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;
渲染单元34,用于若第一判断单元的判断结果为是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
具体的,本申请实施例的装置中各单元、模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
从以上的描述中,可以看出,本申请实施例的基于LOD的地形渲染装置中,是基于LOD技术对海量地形和影像数据进行管理的。具体的,将LOD地形层级的第0层节点确定为渲染地形对应的树结构的根节点;然后从根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;若否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;若是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。可以看到,本申请实施例中对于地形数据在渲染前不是获取所有的地形数据,而是从地形极简化版本(第0层)开始,基于地形瓦片投影到屏幕空间后的像素比与预设阈值进行比较,根据比较结果选择足够细节的瓦片数据进行渲染。在实际的应用中,通常渲染前的工作是由CPU处理的,渲染是由GPU处理的,依照本申请实施例中的方式,在渲染前由于不需要获取所有的地形数据,只需要获取足够细节的瓦片数据,因此可以减少CPU处理的数据量,对应的CPU传送给GPU进行渲染的地形数据同样也会相对减少,因此也可以减少GPU的处理量。减少CPU和GPU的数据处理量,便会提高数据管理的效率,即在一定程度上实现对海量地形和影像数据的高效处理。
进一步的,如图5所示,所述第一判断单元32还包括:
选择模块321,用于根据渲染场景选择所述树结构中某一层级的所有节点作为场景简化层节点;
判断模块322,用于从所述场景简化层节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值。
进一步的,如图5所示,所述装置还包括:
裂缝处理单元35,用于在对节点对应的地形瓦片数据进行渲染的过程中,当不同层级的地形瓦片数据相邻并存在裂缝时,通过插值方式在相邻的不同层级的地形瓦片数据之间引入过渡层。
进一步的,所述树结构为四叉树结构或八叉树结构。
进一步的,所述渲染单元34还用于,根据地形瓦片数据中包括的该地形瓦片所有顶点的位置、法线、纹理坐标、索引缓存进行渲染。
具体的,本申请实施例的装置中各单元、模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
根据本申请实施例,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述方法实施例中的基于LOD的地形渲染方法。
根据本申请实施例,还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行上述方法实施例中的基于LOD的地形渲染方法。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于LOD的地形渲染方法,其特征在于,所述方法包括:
获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;
从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;
若否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;
若是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
2.根据权利要求1所述的基于LOD的地形渲染方法,其特征在于,所述从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值包括:
根据渲染场景选择所述树结构中预设层级的所有节点作为场景简化层节点,所述预设层级为非0层;
从所述场景简化层节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值。
3.根据权利要求1或2所述的基于LOD的地形渲染方法,其特征在于,所述方法还包括:
在对节点对应的地形瓦片数据进行渲染的过程中,当不同层级的地形瓦片数据相邻并存在裂缝时,通过插值方式在相邻的不同层级的地形瓦片数据之间引入过渡层。
4.根据权利要求1所述的基于LOD的地形渲染方法,其特征在于,所述树结构为四叉树结构或八叉树结构。
5.根据权利要求1所述的基于LOD的地形渲染方法,其特征在于,所述对节点对应的地形瓦片数据进行渲染包括:
根据地形瓦片数据中包括的该地形瓦片所有顶点的位置、法线、纹理坐标、索引缓存进行渲染。
6.一种基于LOD的地形渲染装置,其特征在于,所述装置包括:
根节点确定单元,用于获取LOD地形层级的第0层节点并将所述第0层节点确定为渲染地形对应的树结构的根节点;
第一判断单元,用于从所述根节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值;
第二判断单元,用于若第一判断单元的判断结果为否,则继续对节点的下一层级节点分别进行像素比与预设阈值的比较;
渲染单元,用于若第一判断单元的判断结果为是,则对节点对应的地形瓦片数据进行渲染,并不再获取该节点的下一层级节点的地形瓦片数据。
7.根据权利要求6所述的基于LOD的地形渲染装置,其特征在于,所述第一判断单元包括:
选择模块,用于根据渲染场景选择所述树结构中某一层级的所有节点作为场景简化层节点;
判断模块,用于从所述场景简化层节点开始,判断每一层级每个节点对应的地形瓦片投影到屏幕空间后的像素比是否小于或等于预设阈值。
8.根据权利要求6所述的基于LOD的地形渲染装置,其特征在于,所述装置还包括:
裂缝处理单元,用于在对节点对应的地形瓦片数据进行渲染的过程中,当不同层级的地形瓦片数据相邻并存在裂缝时,通过插值方式在相邻的不同层级的地形瓦片数据之间引入过渡层。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1至5中任意一项所述的基于LOD的地形渲染方法。
10.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1至5中任意一项所述的基于LOD的地形渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210078656.XA CN114494623A (zh) | 2022-01-24 | 2022-01-24 | 基于lod的地形渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210078656.XA CN114494623A (zh) | 2022-01-24 | 2022-01-24 | 基于lod的地形渲染方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114494623A true CN114494623A (zh) | 2022-05-13 |
Family
ID=81475225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210078656.XA Pending CN114494623A (zh) | 2022-01-24 | 2022-01-24 | 基于lod的地形渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114494623A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116433862A (zh) * | 2023-04-08 | 2023-07-14 | 北京联横科创有限公司 | 一种3d全球地形的模型架构方法及装置 |
-
2022
- 2022-01-24 CN CN202210078656.XA patent/CN114494623A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116433862A (zh) * | 2023-04-08 | 2023-07-14 | 北京联横科创有限公司 | 一种3d全球地形的模型架构方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270756B (zh) | 一种应用于bim模型文件的数据渲染方法 | |
US8725466B2 (en) | System and method for hybrid solid and surface modeling for computer-aided design environments | |
CN110276820B (zh) | 基于lod组织与调度方法的gis模型优化方法及系统 | |
CN113628314B (zh) | 一种虚幻引擎中摄影测量模型的可视化方法、装置和设备 | |
CA2834575A1 (en) | Method of rendering a terrain stored in a massive database | |
JP6864495B2 (ja) | 3dシーンのグローバル・イルミネーションの描画 | |
WO2022063260A1 (zh) | 一种渲染方法、装置及设备 | |
KR100959349B1 (ko) | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법 | |
EP2881918B1 (en) | Method for visualizing three-dimensional data | |
CN112085826A (zh) | 一种高效的三维空间网格渲染方法及装置 | |
CN115578536A (zh) | 一种分层分块三维模型节点合并方法、装置和电子装置 | |
CN114494623A (zh) | 基于lod的地形渲染方法及装置 | |
CN112906125B (zh) | 铁路固定设施bim模型轻量化加载方法 | |
KR20160068204A (ko) | 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체 | |
CN114549761A (zh) | 基于分布式存储的实景三维模型分层渲染优化方法及系统、存储介质 | |
CN116958457A (zh) | 一种基于OSGEarth的战争迷雾效果绘制方法 | |
US20040181373A1 (en) | Visual simulation of dynamic moving bodies | |
CN113495935A (zh) | 一种基于不规则三角化网格剖分的地形切片方法和系统 | |
Masood et al. | A novel method for adaptive terrain rendering using memory-efficient tessellation codes for virtual globes | |
CN115205434B (zh) | 一种点云数据的可视化处理方法和装置 | |
Kang et al. | An efficient simplification and real-time rendering algorithm for large-scale terrain | |
CN111729303B (zh) | 一种大地图烘焙切割方法及恢复方法 | |
CN116993894B (zh) | 虚拟画面的生成方法、装置、设备、存储介质及程序产品 | |
CN116188552B (zh) | 基于区域的深度测试方法、装置、设备及存储介质 | |
CN116824028B (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 |