CN112370777A - 图像渲染方法、装置和电子设备 - Google Patents
图像渲染方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112370777A CN112370777A CN202011264805.9A CN202011264805A CN112370777A CN 112370777 A CN112370777 A CN 112370777A CN 202011264805 A CN202011264805 A CN 202011264805A CN 112370777 A CN112370777 A CN 112370777A
- Authority
- CN
- China
- Prior art keywords
- grid
- sub
- rendering
- level
- region
- 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.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 301
- 238000000034 method Methods 0.000 title claims abstract description 64
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 116
- 230000007704 transition Effects 0.000 claims description 23
- 238000010586 diagram Methods 0.000 claims description 18
- 238000007499 fusion processing Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 10
- 230000007547 defect Effects 0.000 abstract description 8
- 238000004364 calculation method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000013179 statistical model Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 239000013535 sea water Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种图像渲染方法、装置和电子设备;其中,该方法包括:获取多层级网格图,多层级网格图包含多个网格密度不同的层级网格图,每个层级网格图包含多个网格,并且多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息,根据子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取目标网格;进而基于子区域对应的目标网格的网格顶点携带的渲染控制信息进行渲染。该方式中,每个层级的网格的网格顶点对应有相对固定的位置区域,且网格顶点携带该区域位置的渲染控制信息,因而可以更加灵活地渲染图像,尤其对于水体的渲染,渲染效果较为逼真,不存在明显的缺陷和瑕疵。
Description
技术领域
本发明涉及游戏技术领域,尤其是涉及一种图像渲染方法、装置和电子设备。
背景技术
在渲染虚拟世界时,考虑到距离相机较近的物体,所占屏幕像素较多,需要具有较多的细节表现,因而需要使用比较多的顶点数,网格顶点分布较为密集;而距离相机较远的物体,由于所占屏幕像素较少,细节看不清楚,为了降低渲染开销,则需要使用比较少的顶点数,网格顶点分布较为稀疏。相关技术中,将相机所在的位置设置为中心位置,根据与相机的距离,生成近密远疏的网格;随着相机在虚拟世界中的不断移动,生成的网格也在不断移动,基于不断移动的网格渲染河湖、河湖入海处等水体时,存在较为明显的缺陷,导致渲染效果存在瑕疵。
发明内容
有鉴于此,本发明的目的在于提供一种图像渲染方法、装置和电子设备,以更加灵活地渲染图像,尤其对于水体的渲染,可以使渲染效果较为逼真,不存在明显的缺陷和瑕疵。
第一方面,本发明实施例提供了一种图像渲染方法,方法包括:获取目标图像区域对应的多层级网格图;其中,多层级网格图包含多个网格密度不同的层级网格图,每个层级网格图包含多个网格;在多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息;根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取子区域的位置上的目标网格;其中,目标图像区域包含多个子区域;基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染,以得到目标图像区域的渲染结果。
上述多层级网格图为:按照层级由低到高的顺序将网格密度依次降低形成的网格图。
上述获取目标图像区域对应的多层级网格图的步骤,包括:获取目标图像区域的初始区域图;初始区域图包括目标图像区域中各个位置的渲染控制信息;基于预设的网格边长,划分初始区域图,得到最低层级的网格图;基于最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图。
上述基于最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图的步骤,包括:将最低层级的网格图作为基准网格图,基于预设的合并规则,对基准网格图中的相邻网格进行合并,得到基准网格图的上一层级的网格图;将上一层级的网格图作为更新的基准网格图,继续执行基于预设的合并规则,对基准网格图中的相邻网格进行合并的步骤,直至网格图的层级数满足预设数量,得到多层级网格图。
上述基于最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图的步骤之后,方法还包括:针对每层级的网格图中的每个网格顶点,从初始区域图中获取当前网格顶点所处位置的渲染控制信息,将渲染控制信息携带至当前网格顶点。
上述子区域与虚拟相机的距离越远,与子区域相匹配的目标网格的层级越高。
上述多层级网格图中每个层级的网格图设置有该层级对应的距离范围;上述根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图的步骤,包括:根据多层级网格图中最低层级的网格图,将目标图像区域划分为多个子区域;每个子区域对应最低层级的网格图中的一个网格;针对每个子区域,计算当前子区域与虚拟相机的距离;确定距离所属的目标距离范围,将目标距离范围对应的层级的网格图,确定为当前子区域相匹配的目标层级网格图。
上述基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染的步骤,包括:基于子区域对应的目标网格的网格顶点携带的渲染控制信息,确定子区域中是否包含水体;其中,水体包括河湖水体、海体或河湖入海交汇水体;如果包含水体,基于水体对应的渲染方式对子区域进行渲染,得到子区域的渲染结果。
上述基于水体对应的渲染方式对子区域进行渲染,得到子区域的渲染结果的步骤,包括:如果水体为河湖水体,获取河湖水体对应的多层级高度图;多层级高度图包含多个网格密度不同的层级高度图,每个层级高度图包含多个网格;每个层级的高度图中,每个网格顶点携带有网格顶点对应的区域位置的高度信息;根据子区域与虚拟相机的距离,从多层级高度图中确定与子区域相匹配的目标高度图,从目标高度图中获取子区域的位置上的目标高度信息;基于目标高度信息对子区域进行渲染,得到子区域的渲染结果。
上述多层级高度图为:按照层级由低到高的顺序将网格密度依次降低形成的高度图。
上述基于目标高度信息对子区域进行渲染,得到子区域的渲染结果的步骤,包括:从子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取水流方向信息;水流方向信息用于指示网格顶点的位置的水流方向;基于目标高度信息和水流方向信息,对子区域进行渲染,得到子区域的渲染结果。
上述基于水体对应的渲染方式对子区域进行渲染,得到子区域的渲染结果的步骤,包括:如果水体为海体,根据子区域的目标相邻区域的网格密度,对子区域的网格顶点进行插值处理,以使子区域的网格密度按照预设规则变化;对插值后的子区域进行渲染,得到子区域的渲染结果。
上述目标相邻区域与子区域相邻,且目标相邻区域的网格密度高于子区域的网格密度;预设规则包括:子区域中,距离目标相邻区域越近的位置的网格密度越高。
上述基于水体对应的渲染方式对子区域进行渲染,得到子区域的渲染结果的步骤,包括:如果水体为河湖入海交汇水体,采用水体为河湖水体时的渲染方式对子区域进行渲染,得到第一初始渲染结果;采用水体为海体时的渲染方式对子区域进行渲染,得到第二初始渲染结果;对第一初始渲染结果和第二初始渲染结果进行融合处理,得到子区域的渲染结果。
上述对第一初始渲染结果和第二初始渲染结果进行融合处理,得到子区域的渲染结果的步骤,包括:从子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取过渡系数;过渡系数用于指示:网格顶点的位置属于河湖体的程度或属于海体的程度;基于过渡系数,对第一初始渲染结果和第二初始渲染结果进行加权融合处理,得到子区域的渲染结果。
第二方面,本发明实施例提供了一种图像渲染装置,装置包括:网格图获取模块,用于获取目标图像区域对应的多层级网格图;其中,多层级网格图包含多个网格密度不同的层级网格图,每个层级网格图包含多个网格;在多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息;网格确定模块,用于根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取子区域的位置上的目标网格;其中,目标图像区域包含多个子区域;渲染模块,用于基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染,以得到目标图像区域的渲染结果。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述图像渲染方法。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述图像渲染方法。
本发明实施例带来了以下有益效果:
上述图像渲染方法、装置和电子设备,目标图像区域设置有多层级网格图,该多层级网格图中包含多个网格密度不同的层级网格图;并且在多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息;根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取子区域的位置上的目标网格;进而基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染,以得到目标图像区域的渲染结果。该方式中,每个层级的网格的网格顶点对应有相对固定的位置区域,且网格顶点携带该区域位置的渲染控制信息,因而可以更加灵活地渲染图像,尤其对于水体的渲染,渲染效果较为逼真,不存在明显的缺陷和瑕疵。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种图像渲染方法的流程图;
图2为本发明实施例提供的目标图像区域对应的多层级网格图的获取方式的流程图;
图3为本发明实施例提供的一种多层级网格图的示意图;
图4为本发明实施例提供的一种图像渲染装置的结构示意图;
图5为本发明实施例提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于对本实施例的理解,首先描述海体波形以及海体波形的生成方式。海体波形主要指的是如何生成水体表面顶点的偏移量,并将这些偏移量其放置在一张贴图上。为了能够形成尖锐的波形,即GerstnerWave波,上述偏移量既有水平面上x轴和z轴方向上的偏移量,也有竖直方向即y轴上的偏移量。这些偏移量信息存储在一个三通道的贴图中,每个通道中保存有一个轴向的偏移量。在进行海体波形渲染时,从上述贴图中获取某个顶点的偏移量,然后叠加在该顶点的当前坐标值上。
上述偏移量可以通过海体波形统计学模型得到,输入XoZ平面上的坐标位置,即可通过给定了参数的海体波形统计学模型得到该坐标位置的水体表面偏移量。在海体波形统计学模型中,将海洋视作无限多个振幅不同、频率不同、方向不同,且相位杂乱的波组成,这些波便构成了海浪谱。
实际应用中,每个波是Gerstner Wave波,其形式如下:
y=A*cos(k*x0-ω*t)
其中x=(x,z)代表的是GerstnerWave计算得到的波形在XoZ平面的偏移量;x0=(x0,z0)代表的是顶点在XoZ平面上的初始位置;k是波向量,代表的是当前计算的波在XoZ平面的运动方向,其长度为|k|=2π/λ,λ是波长;A代表波的振幅;sin代表正弦函数;ω代表波的频率,与k存在相关性;t代表时间;y代表的是GerstnerWave计算得到的y方向偏移;cos代表余弦函数。
LOD(Levels of Detail,多细节层次)系统主要用来生成网格,具体指的是生成绘制时使用的顶点排布。鉴于显示于屏幕上时,近处物体所占屏幕像素较多,有足够的细节需要表现,应该使用比较多的顶点数。而远处物体所占屏幕像素较少,细节看不清楚,多的顶点数无法带来任何表现提升,反而可能导致显示跳变和性能下降。故而通过合理布置网格顶点的分布,对渲染水体这种大面积的物体意义重大。
在分层海浪谱波形生成技术中,考虑到离相机较远的地方高频率的波浪无法看清楚,可以忽略,故而将波形数据依据离相机的远近距离进行分层。覆盖相机近距离的波形图计算全部的频率的波的结果,覆盖相机较远距离的波形图包含的波的频率逐渐减少。实际实现中,每张图覆盖的世界范围(即网格的网格边长)两倍递增,而像素数目保持不变。考虑到这样会使得每张图都需要计算大量的GerstnerWave的叠加,导致开销巨大。算法再度进行优化,将整个分层波形图计算分为两个步骤:
步骤一,对于每张波形图仅仅计算由它覆盖的世界范围内符合其顶点精度的n个频率的波,即当波频率足够低出现在其下一级中了,则自己不计算。只有最后一层波形图需要计算余下的全部频率的波,但是往往也不剩几个。
步骤二,将波形图N的中间部分的结果,叠加回波形图N-1,然后将波形图N-1中间部分的结果叠加回波形图N-2,以此不断进行下去,直到波形图1计算完成,至此整个分层波形图计算完成。
其中,波形图N表示的是N张波形图中的第N张,每张波形图应该包含其表示范围内的所有GerstnerWave的结果。如表示的波共计5N个,分别标号1~5N表示,那么第1层最终应含有序号为1~5N波在x轴、y轴和z轴偏移结果。第2层含有序号为6~5N的波在x轴、y轴和z轴偏移结果。但是由于直接暴力计算开销较大,通过上述步骤二同样达到这个最终结果,通过优化可以极大减小这一过程开销。波形图N的中间部分可以理解为位于波形图N中间位置的部分;例如,波形图N的左下角的坐标为(0,0),中心位置的坐标为(0.5,0.5),而右上角为(1,1)。那么这里的中间部分指的是[0.25,0.75]×[0.25,0.75]这部分区域。
通过上述步骤一和步骤二的计算方式,可以将所有层的波形数据计算出来的开销降低为几乎和只计算单张含有全部频率的波形图的开销一样,且由于单张波形图尺寸很小,因而开销非常低。
通过上述波形图即可开始渲染图像,通常是在渲染采用的顶点着色器中,依据当前顶点所在世界坐标决定采样的波形图层级,然后再采样下一层级波形图,依据世界坐标计算过度系数,再两个层级的波形之间进行插值,以保证渲染时没有表现上的跳变。同时诸如计算渲染时的法向量等时也会依据相邻层波形图进行计算。
GeometryClipmap可以用于离线生成近疏远密的网格,运行时每帧图像将其中心设置为相机所在位置,从而自然得到离相机近密远疏的网格结果。通过GeometryClipmap技术得到的网格,始终跟随相机在移动,无法在网格顶点上存储额外基于世界坐标的信息,使得他在渲染非海体的水体,如河湖时比较难以处理,这是由于河湖在相机周围不是所有区域都有,如果到了陆地较多区域,GeometryClipmap剔除某些无河湖区域的网格渲染比较困难。另外,河湖渲染所需要的高度信息会记录在贴图上,GeometryClipmap生成的顶点采样这些贴图信息时容易出现瑕疵现象。
并且,通过GeometryClipmap技术得到的网格,渲染海体和河湖相结合的地方时有诸多不便产生,比如无法很好的处理河湖入海处的表现,不当的处理可能导致在交界处存在一层海体和一层河湖的渲染效果,且难以规避。
基于上述,本实施例提供的一种图像渲染方法、装置和电子设备。可以应用于各类场景(如游戏中)的图像渲染,尤其可以应用于河流、湖泊、海水等水体的渲染中。
首先,参见图1所示的一种图像渲染方法的流程图;该方法的执行主体可以为服务器、移动终端或计算机;该方法包括如下步骤:
步骤S102,获取目标图像区域对应的多层级网格图;其中,多层级网格图包含多个网格密度不同的层级网格图,每个层级网格图包含多个网格;在多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息;
上述目标图像区域通常为游戏场景中的区域;目标图像区域对应的多层级网格图可以预先生成,在需要渲染目标图像区域中,直接获取已生成的多层级网格图。每个层级的网格图中通常包括连续排列的多个网格,网格的形状可以矩形或其他多边形,网格密度可以根据网格的边长确定。不同层级的网格图的网格边长不同。每个层级的网格图的网格密度与其他层级的网格图的网格密度不同。
一种具体的实现方式中,上述多层级网格图为:按照层级由低到高的顺序将网格密度依次降低形成的网格图。该多层级网格图中,按照层级由低到高的顺序,网格图的网格密度依次降低;可以理解为,按照层级由低到高的顺序,网格图的网格边长依次增大。在大多情况下,上述每个层级网格图的尺寸相同,例如每个层级网格图的尺寸与目标图像区域的尺寸相同,这样,每个层级的网格图中的网格顶点在目标图像区域中均对应有相对固定的区域位置。
由于每个层级的网格图中的网格顶点在目标图像区域中均对应有相对固定的区域位置,因此可以在网格顶点上携带一些用于渲染网格顶点对应的区域位置的渲染控制信息。该渲染控制信息可以用于指示该网格顶点对应的区域位置的属性信息,如大陆、河流、湖泊、大海等;基于这些属性信息可以采用相应的渲染方式渲染这些区域位置;渲染控制信息还可以包含特定属性的区域位置的具体渲染信息,例如河流的流向信息、高度信息等。渲染控制信息所包含的具体内容可以根据目标图像区域的渲染需求确定,不做具体限定。
步骤S104,根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取子区域的位置上的目标网格;其中,目标图像区域包含多个子区域;
目标图像区域需要被预先划分为多个子区域;通常在进行图像渲染时,是以网格为单位进行渲染的,基于此,在对目标图像区域划分子区域时,子区域的大小可以等于最低层级的网格图中的网格大小,也可以小于最低层级的网格图中的网格大小。对于某个子区域来说,如果该子区域与游戏场景中的虚拟相机较近,则该子区域需要较多的细节展现,此时,该子区域的网格密度需要较高;此时,可以从较低层级的网格图中获取该子区域的位置上的目标网格,由于较低层级的网格图的网格密度较高,因而这里的目标网格的密度较高。
如果该子区域与游戏场景中的虚拟相机较远,为了节约渲染开销,则该子区域无需展示细节图像,此时,该子区域的网格密度需要较低。此时,可以从较高层级的网格图中获取该子区域的位置上的目标网格,由于较高层级的网格图的网格密度较低,因而这里的目标网格的密度较低。
步骤S106,基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染,得到子区域的渲染结果,以得到目标图像区域的渲染结果。
目标网络中的各个网格顶点携带的渲染控制信息可能相同,也可能不同;子区域对应的目标网格越多,渲染控制信息的种类可能就越多,设置的贴图种类可能也就越多,因而该子区域所能展现的细节就越多。得到每个子区域的渲染结果后,将每个子区域的渲染结果进行拼接、融合等处理,即可得到目标图像区域整体的渲染结果。
上述图像渲染方法,目标图像区域设置有多层级网格图,该多层级网格图中包含多个网格密度不同的层级网格图;并且在多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息;根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取子区域的位置上的目标网格;进而基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染,以得到目标图像区域的渲染结果。该方式中,每个层级的网格的网格顶点对应有相对固定的位置区域,且网格顶点携带该区域位置的渲染控制信息,因而可以更加灵活地渲染图像,尤其对于水体的渲染,渲染效果较为逼真,不存在明显的缺陷和瑕疵。
下述实施例进一步说明目标图像区域对应的多层级网格图的获取方式。如图2所示,共包括如下步骤:
步骤S202,获取目标图像区域的初始区域图;该初始区域图包括目标图像区域中各个位置的渲染控制信息;
该目标图像区域的初始区域图可以通过绘制得到,可以根据目标图像区域的场景需求,在初始区域图中标记目标图像区域中各个位置的渲染控制信息。例如,如果目标图像区域包括陆地、河流和海洋三种区域属性时,该渲染控制信息可以标记目标图像区域中各个位置的区域属性;在河流和海洋的交汇处,该渲染控制信息还可以标记各个位置属于河流的程度或属于海洋的程度,以使交汇处的渲染效果逐渐过渡变化。
步骤S204,基于预设的网格边长,划分初始区域图,得到最低层级的网格图;
网格边长也可以称为网格的世界范围,该网格边长可以确定最低层级的网格图中的网格大小;例如,当网格形状为正方形时,最低层级的网格图中的网格大小为边长的平方。
步骤S206,基于最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图。
除了最低层级以外的其他层级的网格图的网格密度均低于最低层级的网格密度;为了得到除最低层级以外的其他层级的网格图,本实施例中可以对最低层级的网格图中的网格进行合并,从而得到网格密度低于最低层级的网格图的网格密度的网格图,例如,可以合并相邻的两个网格,从而将网格密度降低一倍;也可以合并相邻的四个网格、十六个网格等;合并的相邻网格的数量越多,网格图中的网格密度越低,从而得到网格密度逐渐降低的多层级网格图。
在一个具体的实现方式中,可以将最低层级的网格图作为基准网格图,基于预设的合并规则,对基准网格图中的相邻网格进行合并,得到基准网格图的上一层级的网格图;将上一层级的网格图作为更新的基准网格图,继续执行基于预设的合并规则,对基准网格图中的相邻网格进行合并的步骤,直至网格图的层级数满足预设数量,得到多层级网格图。
上述合并规则可以包括合并的相邻网格的数量、排列方式等;其中一个具体的合并规则可以为:合并的相邻网格的数量为四个,四个网格呈“田”字型排列。当网格为正方形或其他矩形时,基于该规则合并得到的网格的形状不发生变化。
作为一个具体的示例,可以采用四叉树剖分的方式得到上述多层级网格,如图3所示,图3左侧图中示出了三个层级的网格图,分别为Lod0、Lod1和Lod2,其中Lod0层级的网格图的网格边长最短,网格密度最大;Lod2层级的网格图的网格边长最长,网格密度最小。Lod1层级的网格图中一个网格由Lod0层级的网格图中的四个相邻的网格合并得到,同理,Lod2层级的网格图中一个网格由Lod1层级的网格图中的四个相邻的网格合并得到。
通过相邻网格合并的方式得到多层级网格图之后,还需要将各个层级的网格图中的网格顶点携带有渲染控制信息,此时,则需要针对每层级的网格图中的每个网格顶点,从初始区域图中获取当前网格顶点所处位置的渲染控制信息,将渲染控制信息携带至当前网格顶点。
为了对靠近虚拟相机的图像进行精细渲染,对远离虚拟相机的图像进行粗糙渲染,在对目标图像区域中的各个子区域匹配目标网格时,子区域与虚拟相机的距离越远,与子区域相匹配的目标网格的层级越高。在具体实现时,上述多层级网格图中每个层级的网格图设置有该层级对应的距离范围;然后根据多层级网格图中最低层级的网格图,将目标图像区域划分为多个子区域;每个子区域对应最低层级的网格图中的一个网格;针对每个子区域,计算当前子区域与虚拟相机的距离;确定该距离所属的目标距离范围,将目标距离范围对应的层级的网格图,确定为当前子区域相匹配的目标层级网格图。确定了当前子区域相匹配的目标层级网格图后,即可从该目标层级网格图中,与当前子区域相同的位置获取该当前区域的目标网格。
为了便于理解,再次参考图3,图3右侧图中标记“C”字符的位置为虚拟相机所在的位置,距离虚拟相机最近的四个子区域采用Lod0层级的网格图中的网格,距离虚拟相机较远的三个子区域采用Lod1层级的网格图中的网格,距离虚拟相机最远的三个子区域采用Lod0层级的网格图中的网格,基于此,得到目标图像区域上的大小不等的网格,从而将目标图像区域划分为大小不等的区域,可以理解,基于小网格渲染的图像细节展现较多,基于大网格渲染的图像细节展现较少,从而节约渲染开销。
需要说明的是,将目标图像区域通过上述方式进行剖分,然后铺满整个世界,对于海体这种无限延伸的来说通常是不可能的。所幸对于海体并没有渲染控制信息需要存储于网格块中,故而这个预剖分实际中只需要通过知道不同Lod级别下的网格大小即可,而后当虚拟相机的位置确定时,以取模运算的方式对网格进行定位。
下面继续说明基于网格顶点携带的渲染控制信息渲染子区域的过程。在本实施例中,需要重点解决各类水体的渲染方式,基于此,首先需要基于子区域对应的目标网格的网格顶点携带的渲染控制信息,确定子区域中是否包含水体;其中,水体包括河湖水体、海体或河湖入海交汇水体;如果包含水体,基于水体对应的渲染方式对子区域进行渲染,得到子区域的渲染结果。
上述渲染控制信息中可以包括网格顶点所处位置的属性,例如,陆地、水体等;还可以包括各属性的具体类型,如,当网格顶点所处的位置为水体时,渲染控制信息中还可以包括该水体的具体种类,例如,河湖水体、海体或河湖入海交汇水体等;当网格顶点所处的位置为河湖入海交汇水体时,渲染控制信息中还可以包括该网格顶点所述的位置属于河湖水体的程度,或者属于海体的程度,例如,可以通过一个浮点数表示,不同顶点由于位置不同,其浮点数也不同;该浮点数越大,表示该位置属于海体的程度越大,该浮点数越小,表示该位置属于河湖水体的程度越大。不同的水体具有不同的渲染方式,渲染控制信息可以指示当前子区域的渲染需要采用的渲染方式。
下面分别描述各类水体的渲染方式。
首先,如果水体为河湖水体,获取河湖水体对应的多层级高度图;其中,多层级高度图包含多个网格密度不同的层级高度图,每个层级高度图包含多个网格;每个层级的高度图中,每个网格顶点携带有网格顶点对应的区域位置的高度信息;根据子区域与虚拟相机的距离,从多层级高度图中确定与子区域相匹配的目标高度图,从目标高度图中获取子区域的位置上的目标高度信息;基于目标高度信息对子区域进行渲染,得到子区域的渲染结果。
上述多层级高度图为:按照层级由低到高的顺序将网格密度依次降低形成的高度图;即,在该多层级高度图中,按照层级由低到高的顺序,多层级高度图中的网格密度依次降低。这里的多层级高度图的结构可以参考前述实施例的多层级网格图;与多层级网格图不同的是,多层级高度图中的网格顶点中保存的是该网格顶点对应的区域位置的高度信息;该高度信息具体可以为河湖水体的高度抬升信息;该高度信息可以控制该网格顶点对应的区域位置渲染至相应的高度。
在渲染河湖水体过程中,除了需要参考目标高度信息,还需要考虑水流方向信息,以使渲染出来的河湖水体更加生动逼真;该水流方向信息可以保存在多层级网格图中的网格顶点中;在渲染过程中,可以从子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取水流方向信息;水流方向信息用于指示:网格顶点的位置的水流方向;基于目标高度信息和水流方向信息,对子区域进行渲染,得到子区域的渲染结果。
如果水体为海体,根据子区域的目标相邻区域的网格密度,对子区域的网格顶点进行插值处理,以使子区域的网格密度按照预设规则变化;然后对插值后的子区域进行渲染,得到子区域的渲染结果。由于多层级网格图中,相邻的两个层级的网格密度均具有一定的差距,所以,如果相邻子区域的网格密度不同,则容易在相邻子区域的相接处出现网格密度的跳变,容易导致渲染后的图像效果过渡生硬不自然。基于此,对于海体这种区域面积较大的水体,需要对网格顶点进行插值处理,使得各个子区域之间的网格密度逐渐过渡变化。
具体而言,上述目标相邻区域与子区域相邻,且目标相邻区域的网格密度高于子区域的网格密度;在对子区域的网格顶点进行插值时,需要以高于子区域的网格密度的相邻区域的网格密度为基准进行插值,为了使子区域的网格密度逐渐变化至与目标相邻区域的网格密度相同,上述预设规则可以设置为:子区域中,距离目标相邻区域越近的位置的网格密度越高;对于子区域中与目标相邻区域相接触的位置,其网格密度可以与目标相邻区域的网格密度相同,也可以略低于目标相邻区域的网格密度。
另一种具体的实现方式中,对子区域的网格顶点进行插值的具体过程描述如下:
步骤1),假设网格的形状为正方形,设置每个层级的网格图中网格边和最小顶点间距,如最低层级的网格图的网格密度最高,网格边长为L0,最小顶点间距为D0,上一层级的网格边长为L1,最小顶点间距为D1;以此类推,直到规定的最大层数;其中,且L1=2*L0,L2=2*L1;即L(N)=2^N*L0。D1=2*D0,D2=2*D1,即D(N)=2*N*D0。
步骤2),当需要从第N层级过渡到第N+1层级时,第N层级的网格图中网格边长为L(N)=2^N*L0,最小顶点间距为D(N)=2^N*D0;而第N+1层级的网格图中的网格边长为L(N+1)=2^(N+1)*L0,最小顶点间距为D(N+1)=2^(N+1)*D0。假设正在进行过渡的顶点坐标为(x,z),则其插值系数计算公式为:
其中,Factor(x)和Factor(z)就是计算插值系数的结果,是当前层级的高密度的顶点向下一级低密度进行过渡时采用的系数;Factor(x)为x轴方向的插值系数;Factor(z)为z轴方向的插值相同;Abs代表求绝对值;CameraPosition.x代表虚拟相机的位置的x坐标值;CameraPosition.z代表虚拟相机的位置的z坐标值。
步骤3),计算顶点的偏移offset=frac(x/4*D(N))-0.5,如果顶点的位置恰好等于4*D(N)*t+2*D(N),t为任意整数,则offset为0,即顶点保持不变,这些就是中线,当过渡系数逐渐变为1时,其相邻点会逐渐靠近中线。最终新顶点的x坐标为:
New(x)=x+offset*Factor(x)
同理得到新顶点的z坐标为:
New(z)=z+offset*Factor(y)
如果水体为河湖入海交汇水体,采用水体为河湖水体时的渲染方式对子区域进行渲染,得到第一初始渲染结果;采用水体为海体时的渲染方式对子区域进行渲染,得到第二初始渲染结果;对第一初始渲染结果和第二初始渲染结果进行融合处理,得到子区域的渲染结果。
具体而言,当子区域的水体为河湖入海交汇水体时,首先将子区域的水体视为河湖水体,通过上述实施例中提到的多级高度图对子区域进行渲染,得到第一初始渲染结果;然后将子区域的水体视为海体,通过上述实施例中提到的,先对子区域的网格顶点进行插值,再对插值后的子区域进行渲染,得到第二初始渲染结果;最后将第一初始渲染结果和第二初始渲染结果进行融合处理,得到子区域中的河湖入海交汇水体的渲染结果。
在对第一初始渲染结果和第二初始渲染结果进行融合时,还需要用到相关的过渡系数,具体而言,从子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取过渡系数;该过渡系数用于指示:网格顶点的位置属于河湖体的程度或属于海体的程度;基于过渡系数,对第一初始渲染结果和第二初始渲染结果进行加权融合处理,得到子区域的渲染结果。例如,上述过渡系数可以为取值范围为0-1之间的数,过渡系数越接近0,代表网格顶点的位置属于河湖体的程度越高,再进行融合时,第一初始渲染结果的比重就越大,最终的渲染结果越偏重于河湖体的渲染结果;过渡系数越接近1,代表网格顶点的位置属于海体的程度越高,再进行融合时,第二初始渲染结果的比重就越大,最终的渲染结果越偏重于海体的渲染结果。通过该过渡系数将两次渲染结果进行融合,使得最终融合结果平滑自然过渡。
上述方式中,每个层级的网格的网格顶点对应有相对固定的位置区域,且网格顶点携带该区域位置的渲染控制信息,因而可以更加灵活地渲染图像,尤其对于海体的渲染,渲染效果较为逼真,同时可以将海体与河湖水体进行良好的结合,不存在明显的缺陷和瑕疵。
对应于上述方法实施例,参见图4所示的一种图像渲染装置的结构示意图,该装置包括:
网格图获取模块40,用于获取目标图像区域对应的多层级网格图;其中,多层级网格图包含多个网格密度不同的层级网格图,每个层级网格图包含多个网格;在多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息;
网格确定模块42,用于根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取子区域的位置上的目标网格;其中,目标图像区域包含多个子区域;
渲染模块44,用于基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染,得到子区域的渲染结果,以得到目标图像区域的渲染结果。
上述图像渲染装置,目标图像区域设置有多层级网格图,该多层级网格图中包含多个网格密度不同的层级网格图;并且在多层级网格图中,网格对应的网格顶点携带有对应的区域位置的渲染控制信息;根据目标图像区域的子区域与虚拟相机的距离,从多层级网格图中确定与子区域相匹配的目标层级网格图,从目标层级网格图中获取子区域的位置上的目标网格;进而基于子区域对应的目标网格的网格顶点携带的渲染控制信息,对子区域进行渲染,以得到目标图像区域的渲染结果。该方式中,每个层级的网格的网格顶点对应有相对固定的位置区域,且网格顶点携带该区域位置的渲染控制信息,因而可以更加灵活地渲染图像,尤其对于水体的渲染,渲染效果较为逼真,不存在明显的缺陷和瑕疵。
上述多层级网格图为:按照层级由低到高的顺序将网格密度依次降低形成的网格图。
上述网格图获取模块,还用于:获取目标图像区域的初始区域图;初始区域图包括目标图像区域中各个位置的渲染控制信息;基于预设的网格边长,划分初始区域图,得到最低层级的网格图;基于最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图。
上述网格图获取模块,还用于:将最低层级的网格图作为基准网格图,基于预设的合并规则,对基准网格图中的相邻网格进行合并,得到基准网格图的上一层级的网格图;将上一层级的网格图作为更新的基准网格图,继续执行基于预设的合并规则,对基准网格图中的相邻网格进行合并的步骤,直至网格图的层级数满足预设数量,得到多层级网格图。
上述装置还包括信息携带模块,用于:针对每层级的网格图中的每个网格顶点,从初始区域图中获取当前网格顶点所处位置的渲染控制信息,将渲染控制信息携带至当前网格顶点。
上述子区域与虚拟相机的距离越远,与子区域相匹配的目标网格的层级越高。
上述多层级网格图中每个层级的网格图设置有该层级对应的距离范围;上述网格确定模块,还用于:根据多层级网格图中最低层级的网格图,将目标图像区域划分为多个子区域;每个子区域对应最低层级的网格图中的一个网格;针对每个子区域,计算当前子区域与虚拟相机的距离;确定距离所属的目标距离范围,将目标距离范围对应的层级的网格图,确定为当前子区域相匹配的目标层级网格图。
上述渲染模块,还用于:基于子区域对应的目标网格的网格顶点携带的渲染控制信息,确定子区域中是否包含水体;其中,水体包括河湖水体、海体或河湖入海交汇水体;如果包含水体,基于水体对应的渲染方式对子区域进行渲染,得到子区域的渲染结果。
上述渲染模块,还用于:如果水体为河湖水体,获取河湖水体对应的多层级高度图;多层级高度图包含多个网格密度不同的层级高度图,每个层级高度图包含多个网格;每个层级的高度图中,每个网格顶点携带有网格顶点对应的区域位置的高度信息;根据子区域与虚拟相机的距离,从多层级高度图中确定与子区域相匹配的目标高度图,从目标高度图中获取子区域的位置上的目标高度信息;基于目标高度信息对子区域进行渲染,得到子区域的渲染结果。
上述多层级高度图为:按照层级由低到高的顺序将网格密度依次降低形成的高度图。
上述渲染模块,还用于:从子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取水流方向信息;水流方向信息用于指示:网格顶点的位置的水流方向;基于目标高度信息和水流方向信息,对子区域进行渲染,得到子区域的渲染结果。
上述渲染模块,还用于:如果水体为海体,根据子区域的目标相邻区域的网格密度,对子区域的网格顶点进行插值处理,以使子区域的网格密度按照预设规则变化;对插值后的子区域进行渲染,得到子区域的渲染结果。
上述目标相邻区域与子区域相邻,且目标相邻区域的网格密度高于子区域的网格密度;预设规则包括:子区域中,距离目标相邻区域越近的位置的网格密度越高。
上述渲染模块,还用于:如果水体为河湖入海交汇水体,采用水体为河湖水体时的渲染方式对子区域进行渲染,得到第一初始渲染结果;采用水体为海体时的渲染方式对子区域进行渲染,得到第二初始渲染结果;对第一初始渲染结果和第二初始渲染结果进行融合处理,得到子区域的渲染结果。
上述渲染模块,还用于:从子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取过渡系数;过渡系数用于指示:网格顶点的位置属于河湖体的程度或属于海体的程度;基于过渡系数,对第一初始渲染结果和第二初始渲染结果进行加权融合处理,得到子区域的渲染结果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述图像渲染方法。
参见图5所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述图像渲染方法。
进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述图像渲染方法。
本发明实施例所提供的图像渲染方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种图像渲染方法,其特征在于,所述方法包括:
获取目标图像区域对应的多层级网格图;其中,所述多层级网格图包含多个网格密度不同的层级网格图,每个层级网格图包含多个网格;在所述多层级网格图中,所述网格对应的网格顶点携带有对应的区域位置的渲染控制信息;
根据所述目标图像区域的子区域与虚拟相机的距离,从所述多层级网格图中确定与所述子区域相匹配的目标层级网格图,从所述目标层级网格图中获取所述子区域的位置上的目标网格;其中,所述目标图像区域包含多个子区域;
基于所述子区域对应的目标网格的网格顶点携带的渲染控制信息,对所述子区域进行渲染,以得到所述目标图像区域的渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述多层级网格图为:按照层级由低到高的顺序将网格密度依次降低形成的网格图。
3.根据权利要求1所述的方法,其特征在于,获取目标图像区域对应的多层级网格图的步骤,包括:
获取所述目标图像区域的初始区域图;所述初始区域图包括所述目标图像区域中各个位置的渲染控制信息;
基于预设的网格边长,划分所述初始区域图,得到最低层级的网格图;
基于所述最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图。
4.根据权利要求3所述的方法,其特征在于,基于所述最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图的步骤,包括:
将所述最低层级的网格图作为基准网格图,基于预设的合并规则,对所述基准网格图中的相邻网格进行合并,得到所述基准网格图的上一层级的网格图;
将所述上一层级的网格图作为更新的基准网格图,继续执行基于预设的合并规则,对所述基准网格图中的相邻网格进行合并的步骤,直至网格图的层级数满足预设数量,得到所述多层级网格图。
5.根据权利要求3所述的方法,其特征在于,基于所述最低层级的网格图,采用相邻网格合并的方式,得到多层级网格图的步骤之后,所述方法还包括:
针对每层级的网格图中的每个网格顶点,从所述初始区域图中获取当前网格顶点所处位置的渲染控制信息,将所述渲染控制信息携带至所述当前网格顶点。
6.根据权利要求1所述的方法,其特征在于,所述子区域与所述虚拟相机的距离越远,与所述子区域相匹配的目标网格的层级越高。
7.根据权利要求1所述的方法,其特征在于,所述多层级网格图中每个层级的网格图设置有该层级对应的距离范围;
所述根据所述目标图像区域的子区域与虚拟相机的距离,从所述多层级网格图中确定与所述子区域相匹配的目标层级网格图的步骤,包括:
根据所述多层级网格图中最低层级的网格图,将所述目标图像区域划分为多个子区域;每个所述子区域对应所述最低层级的网格图中的一个网格;
针对每个所述子区域,计算当前子区域与虚拟相机的距离;
确定所述距离所属的目标距离范围,将所述目标距离范围对应的层级的网格图,确定为所述当前子区域相匹配的目标层级网格图。
8.根据权利要求1所述的方法,其特征在于,基于所述子区域对应的目标网格的网格顶点携带的渲染控制信息,对所述子区域进行渲染的步骤,包括:
基于所述子区域对应的目标网格的网格顶点携带的渲染控制信息,确定所述子区域中是否包含水体;其中,所述水体包括河湖水体、海体或河湖入海交汇水体;
如果包含所述水体,基于所述水体对应的渲染方式对所述子区域进行渲染,得到所述子区域的渲染结果。
9.根据权利要求8所述的方法,其特征在于,基于所述水体对应的渲染方式对所述子区域进行渲染,得到所述子区域的渲染结果的步骤,包括:
如果所述水体为河湖水体,获取所述河湖水体对应的多层级高度图;所述多层级高度图包含多个网格密度不同的层级高度图,每个层级高度图包含多个网格;每个层级的高度图中,每个网格顶点携带有所述网格顶点对应的区域位置的高度信息;
根据所述子区域与虚拟相机的距离,从所述多层级高度图中确定与所述子区域相匹配的目标高度图,从所述目标高度图中获取所述子区域的位置上的目标高度信息;
基于所述目标高度信息对所述子区域进行渲染,得到所述子区域的渲染结果。
10.根据权利要求9所述的方法,其特征在于,所述多层级高度图为:按照层级由低到高的顺序将网格密度依次降低形成的高度图。
11.根据权利要求9所述的方法,其特征在于,基于所述目标高度信息对所述子区域进行渲染,得到所述子区域的渲染结果的步骤,包括:
从所述子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取水流方向信息;所述水流方向信息用于指示网格顶点的位置的水流方向;
基于所述目标高度信息和所述水流方向信息,对所述子区域进行渲染,得到所述子区域的渲染结果。
12.根据权利要求8所述的方法,其特征在于,基于所述水体对应的渲染方式对所述子区域进行渲染,得到所述子区域的渲染结果的步骤,包括:
如果所述水体为海体,根据所述子区域的目标相邻区域的网格密度,对所述子区域的网格顶点进行插值处理,以使所述子区域的网格密度按照预设规则变化;
对插值后的所述子区域进行渲染,得到所述子区域的渲染结果。
13.根据权利要求12所述的方法,其特征在于,所述目标相邻区域与所述子区域相邻,且所述目标相邻区域的网格密度高于所述子区域的网格密度;
所述预设规则包括:所述子区域中,距离所述目标相邻区域越近的位置的网格密度越高。
14.根据权利要求8所述的方法,其特征在于,基于所述水体对应的渲染方式对所述子区域进行渲染,得到所述子区域的渲染结果的步骤,包括:
如果所述水体为河湖入海交汇水体,采用所述水体为河湖水体时的渲染方式对所述子区域进行渲染,得到第一初始渲染结果;
采用所述水体为海体时的渲染方式对所述子区域进行渲染,得到第二初始渲染结果;
对所述第一初始渲染结果和所述第二初始渲染结果进行融合处理,得到所述子区域的渲染结果。
15.根据权利要求14所述的方法,其特征在于,对所述第一初始渲染结果和所述第二初始渲染结果进行融合处理,得到所述子区域的渲染结果的步骤,包括:
从所述子区域对应的目标网格的网格顶点携带的渲染控制信息中,获取过渡系数;所述过渡系数用于指示:网格顶点的位置属于河湖体的程度或属于海体的程度;
基于所述过渡系数,对所述第一初始渲染结果和所述第二初始渲染结果进行加权融合处理,得到所述子区域的渲染结果。
16.一种图像渲染装置,其特征在于,所述装置包括:
网格图获取模块,用于获取目标图像区域对应的多层级网格图;其中,所述多层级网格图包含多个网格密度不同的层级网格图,每个层级网格图包含多个网格;在所述多层级网格图中,所述网格对应的网格顶点携带有对应的区域位置的渲染控制信息;
网格确定模块,用于根据所述目标图像区域的子区域与虚拟相机的距离,从所述多层级网格图中确定与所述子区域相匹配的目标层级网格图,从所述目标层级网格图中获取所述子区域的位置上的目标网格;其中,所述目标图像区域包含多个子区域;
渲染模块,用于基于所述子区域对应的目标网格的网格顶点携带的渲染控制信息,对所述子区域进行渲染,以得到所述目标图像区域的渲染结果。
17.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-15任一项所述的图像渲染方法。
18.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-15任一项所述的图像渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011264805.9A CN112370777B (zh) | 2020-11-12 | 2020-11-12 | 图像渲染方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011264805.9A CN112370777B (zh) | 2020-11-12 | 2020-11-12 | 图像渲染方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112370777A true CN112370777A (zh) | 2021-02-19 |
CN112370777B CN112370777B (zh) | 2024-09-10 |
Family
ID=74583662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011264805.9A Active CN112370777B (zh) | 2020-11-12 | 2020-11-12 | 图像渲染方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112370777B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114187397A (zh) * | 2021-12-06 | 2022-03-15 | 完美世界(北京)软件科技发展有限公司 | 虚拟毛发渲染方法、装置、介质、电子设备及程序产品 |
CN114186318A (zh) * | 2021-12-14 | 2022-03-15 | 博锐尚格科技股份有限公司 | 一种Revit模型轻量化渲染方法和装置 |
CN116342784A (zh) * | 2023-05-25 | 2023-06-27 | 湖南马栏山视频先进技术研究院有限公司 | 大场景水体交互的实时渲染方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1588641A1 (ru) * | 1988-02-29 | 1990-08-30 | В. И. Романов и Е. В. Погребн к | Контактный опреснитель |
KR970076220A (ko) * | 1996-05-17 | 1997-12-12 | 김광호 | 불규칙메쉬들을 이용한 대상물 지향 화상표현방법 및 그 장치 |
JPH1091760A (ja) * | 1996-09-13 | 1998-04-10 | Oki Electric Ind Co Ltd | 3次元地形出力方法、3次元地形出力装置及び記録媒体 |
CN101493952A (zh) * | 2009-02-26 | 2009-07-29 | 北京像素软件科技股份有限公司 | 一种3d地形渲染方法和渲染装置 |
CN101587594A (zh) * | 2009-06-19 | 2009-11-25 | 大连海事大学 | 航海模拟器场景中的海浪构网算法 |
CN104050708A (zh) * | 2014-06-09 | 2014-09-17 | 无锡梵天信息技术股份有限公司 | 一种3d游戏引擎lod系统的实现方法 |
CN106384386A (zh) * | 2016-10-08 | 2017-02-08 | 广州市香港科大霍英东研究院 | Lod模型生成中网格处理方法、系统以及3d重建方法和系统 |
CN106504290A (zh) * | 2016-10-20 | 2017-03-15 | 北京化工大学 | 一种高精度的摄像机动态标定方法 |
-
2020
- 2020-11-12 CN CN202011264805.9A patent/CN112370777B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1588641A1 (ru) * | 1988-02-29 | 1990-08-30 | В. И. Романов и Е. В. Погребн к | Контактный опреснитель |
KR970076220A (ko) * | 1996-05-17 | 1997-12-12 | 김광호 | 불규칙메쉬들을 이용한 대상물 지향 화상표현방법 및 그 장치 |
JPH1091760A (ja) * | 1996-09-13 | 1998-04-10 | Oki Electric Ind Co Ltd | 3次元地形出力方法、3次元地形出力装置及び記録媒体 |
CN101493952A (zh) * | 2009-02-26 | 2009-07-29 | 北京像素软件科技股份有限公司 | 一种3d地形渲染方法和渲染装置 |
CN101587594A (zh) * | 2009-06-19 | 2009-11-25 | 大连海事大学 | 航海模拟器场景中的海浪构网算法 |
CN104050708A (zh) * | 2014-06-09 | 2014-09-17 | 无锡梵天信息技术股份有限公司 | 一种3d游戏引擎lod系统的实现方法 |
CN106384386A (zh) * | 2016-10-08 | 2017-02-08 | 广州市香港科大霍英东研究院 | Lod模型生成中网格处理方法、系统以及3d重建方法和系统 |
CN106504290A (zh) * | 2016-10-20 | 2017-03-15 | 北京化工大学 | 一种高精度的摄像机动态标定方法 |
Non-Patent Citations (1)
Title |
---|
蒲一磊等: "基于Geometry Clipmap的海洋模拟", 《中国体视学与图像分析》, vol. 23, no. 2, 30 June 2018 (2018-06-30), pages 133 - 136 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114187397A (zh) * | 2021-12-06 | 2022-03-15 | 完美世界(北京)软件科技发展有限公司 | 虚拟毛发渲染方法、装置、介质、电子设备及程序产品 |
CN114186318A (zh) * | 2021-12-14 | 2022-03-15 | 博锐尚格科技股份有限公司 | 一种Revit模型轻量化渲染方法和装置 |
CN116342784A (zh) * | 2023-05-25 | 2023-06-27 | 湖南马栏山视频先进技术研究院有限公司 | 大场景水体交互的实时渲染方法 |
CN116342784B (zh) * | 2023-05-25 | 2023-07-21 | 湖南马栏山视频先进技术研究院有限公司 | 大场景水体交互的实时渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112370777B (zh) | 2024-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112370777A (zh) | 图像渲染方法、装置和电子设备 | |
CN105336003B (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
US11676335B2 (en) | Tessellation method using vertex tessellation factors | |
CN106251384B (zh) | 使用三角形的递归再分的细分方法 | |
CN104732479B (zh) | 对图像进行调整大小 | |
CN117178297A (zh) | 微网格,用于计算机图形的结构化几何体 | |
KR20130079819A (ko) | 절차적 방법에 의해 생성된 지형 데이터를 편집하는 방법 | |
JP2008521103A (ja) | 3次元グラフィックスをレンダリングする方法及びデバイス | |
CN114049420A (zh) | 一种模型训练方法、图像渲染方法、装置和电子设备 | |
CN115018968B (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN110136262B (zh) | 水体虚拟可视化方法和装置 | |
JPH0554149A (ja) | エツジリスト作成装置 | |
Yang et al. | Efficient simplification of large vector maps rendered onto 3D landscapes | |
Masood et al. | A novel method for adaptive terrain rendering using memory-efficient tessellation codes for virtual globes | |
JP2655056B2 (ja) | テクスチャデータ生成装置 | |
CN112348881B (zh) | 图像渲染方法、装置和电子设备 | |
Venkatesh et al. | 3D-visualization of power system data using triangulation and subdivision techniques | |
CN115641402A (zh) | 水体渲染方法、装置和电子设备 | |
WO2003012599A2 (en) | Methods and apparatus for determining intersections of a particular line with cells in a lattice | |
CN118681213A (zh) | 虚拟地形渲染方法、装置、程序产品与电子设备 | |
CN118196244A (zh) | 序列帧动画的制作方法、装置和电子设备 | |
CN114972686A (zh) | 一种沿城市道路采样的电磁辐射地理环境制图方法、装置、计算可读存储介质及计算机设备 | |
Wang et al. | Collapsible 3D GIS Visualization | |
CN117974951A (zh) | 模型生成方法及装置、存储介质及电子设备 | |
Miller et al. | Computations on an Ellipsoid for GIS |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |