CN107886562A - 水面渲染方法、装置及可读存储介质 - Google Patents
水面渲染方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN107886562A CN107886562A CN201711268604.4A CN201711268604A CN107886562A CN 107886562 A CN107886562 A CN 107886562A CN 201711268604 A CN201711268604 A CN 201711268604A CN 107886562 A CN107886562 A CN 107886562A
- Authority
- CN
- China
- Prior art keywords
- water
- water body
- grid
- area
- color
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- 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
- A63F2300/663—Methods for processing data by generating or executing the game program for rendering three dimensional images for simulating liquid objects, e.g. water, gas, fog, snow, clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/24—Fluid dynamics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本发明实施例提供一种水面渲染方法、装置及可读存储介质。该方法包括:响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域;获得水体网格的各个顶点数据和当前游戏场景的光照数据;根据水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据光照数据,计算出水体区域的水体颜色;根据预先渲染的反射贴图获取水体区域的反射颜色,并根据菲涅尔值、反射颜色和水体颜色计算出水体区域的目标水体颜色;基于每个水体单元网格的水体透明度和目标水体颜色对水体区域进行渲染。由此,能够在移动终端上快速模拟出良好的水面效果,解决了通常移动终端上模拟水面效果时CPU和GPU性能消耗大的问题。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种水面渲染方法、装置及可读存储介质。
背景技术
在三维游戏当中,水被当作一种特殊的透明物体进行模拟渲染。为了达到实时反射效果,目前在对水的渲染过程中基本上需要额外渲染一遍游戏场景,对于性能和续航有限的移动终端来说无论是对CPU或GPU都是一种大量的性能消耗,容易出现卡顿掉帧的情况,影响用户的游戏体验。
发明内容
为了克服现有技术中的上述不足,本发明的目的在于提供一种水面渲染方法、装置及可读存储介质,以解决在移动终端上模拟水的自然效果时,移动终端的CPU或GPU性能消耗大的问题。
为了实现上述目的,本发明较佳实施例采用的技术方案如下:
本发明较佳实施例提供一种水面渲染方法,应用于移动终端,所述方法包括:
响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域;
获得所述水体网格的各个水体单元网格的顶点数据和当前游戏场景的光照数据,其中,所述顶点数据包括水面和地面之间的高度差,所述光照数据包括环境光值、主光颜色、主光方向以及菲涅尔值;
根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据所述光照数据,计算出所述水体区域的水体颜色;
根据预先渲染的反射贴图获取所述水体区域的反射颜色,并根据所述菲涅尔值、所述反射颜色和所述水体颜色计算出所述水体区域的目标水体颜色;
基于所述每个水体单元网格的水体透明度和所述目标水体颜色对所述水体区域进行渲染。
在本发明较佳实施例中,所述方法还包括:
渲染所述水体区域的水体流动效果;
所述渲染所述水体区域的水体流动效果,包括:
将所述水体网格的纹理坐标按照预定速度和预定方向移动,获得移动过程中的纹理坐标;
基于移动过程中的纹理坐标从法线贴图中获得移动过程中的法线值;
根据获得的法线值渲染所述水体区域的水体流动效果。
在本发明较佳实施例中,所述将所述水体网格的纹理坐标按照预定速度和预定方向移动,获得移动过程中的纹理坐标,包括:
获得初始纹理坐标;
根据移动时间、所述初始纹理坐标、所述预定速度和所述预定方向,计算移动过程中的纹理坐标。
在本发明较佳实施例中,所述根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,包括:
计算每个水体单元网格对应的水面和地面之间的高度差与预设高度差的比值,其中,当所述比值大于1时,所述比值记为1;
将所述比值作为每个水体单元网格的水体透明度;其中,所述比值越接近0,该水体单元网格的水体越透明,所述比值越接近1,该水体单元网格的水体越不透明。
在本发明较佳实施例中,所述根据所述光照数据,计算出所述水体区域的水体颜色,包括:
根据所述主光方向和当前观察方向计算出水体区域的漫射光系数和镜面高光系数;
根据所述环境光值、主光颜色、漫射光系数和镜面高光系数计算出水体区域的水体颜色。
在本发明较佳实施例中,所述预先渲染的反射贴图包括多个方向的反射图片,所述根据预先渲染的反射贴图获取所述水体区域的反射颜色,包括:
获取水体区域的反射朝向;
从预先渲染的反射贴图获取与所述水体区域的反射朝向对应纹理坐标的纹理颜色作为所述水体区域的反射颜色。
在本发明较佳实施例中,在所述响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域之前,所述方法还包括:
响应反射贴图的离线渲染请求,在游戏场景中设置位置放置反射球;
调用相机基于多个方向拍摄所述位置放置反射球在对应方向反射到的游戏场景中的反射图片;
根据拍摄到的多个方向的反射图片渲染所述游戏场景的反射贴图,所述反射贴图作为所述游戏场景的所有水体区域的反射贴图。
在本发明较佳实施例中,所述水体网格的单元网格大小等于地形网格的单元网格大小。
本发明较佳实施例还提供一种水面渲染装置,应用于移动终端,所述装置包括:
构建模块,用于响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域。
获得模块,用于获得所述水体网格的各个水体单元网格的顶点数据和当前游戏场景的光照数据,其中,所述顶点数据包括水面和地面之间的高度差,所述光照数据包括环境光值、主光颜色和主光方向。
计算模块,用于根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据所述光照数据,计算出水体区域的基础色和高光色。
获取模块,用于根据预先渲染的反射贴图获取所述水体区域的反射颜色。
渲染模块,用于基于所述每个水体单元网格的水体透明度、所述水体区域的基础色、高光色以及反射颜色对所述水体区域进行渲染。
本发明较佳实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述的水面渲染方法。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供一种水面渲染方法、装置及可读存储介质,通过响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域,获得水体网格的各个顶点数据和当前游戏场景的光照数据,然后根据水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据光照数据,计算出水体区域的水体颜色,同时根据预先渲染的反射贴图获取水体区域的反射颜色,并根据菲涅尔值、反射颜色和水体颜色计算出水体区域的目标水体颜色,而后基于每个水体单元网格的水体透明度和目标水体颜色对水体区域进行渲染。由此,通过以水体网格的各个水体单元网格的顶点数据计算水体透明度,使得水体透明度按照地形高低起伏合理变化,并根据水体透明度将水面渲染为透明,从而减少渲染水面折射图,能够在移动终端上快速模拟出良好的水面效果,解决了通常移动终端上模拟水面效果时CPU和GPU性能消耗大的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本发明较佳实施例提供的水面渲染方法的一种流程示意图;
图2为图1中所示的步骤S230包括的各个子步骤的一种流程示意图;
图3为本发明较佳实施例提供的水面渲染方法的另一种流程示意图;
图4为图3中所示的步骤S260包括的各个子步骤的一种流程示意图;
图5为本发明较佳实施例提供的水面渲染装置的一种功能模块图;
图6为本发明较佳实施例提供的移动终端的一种结构示意框图。
图标:100-移动终端;110-总线;120-处理器;130-存储介质;140-总线接口;150-网络适配器;160-用户接口;200-水面渲染装置;210-构建模块;220-获得模块;230-计算模块;240-获取模块;250-渲染模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语"第一"、"第二"等仅用于区分描述,而不能理解为指示或暗示相对重要性。
随着时代的进步,游戏行业也在不断的发展,三维游戏场景也不断的丰富。三维场景中主要的模块分为地形、水、静物等。水以区域的方式在自然界中存在,比如湖泊、海洋等。一般情况下水是一种透明无色的物体,它的颜色主要来自于它的折射和反射。但因为水中都含有杂质,当水的深度达到一定程度时,水的折射会受到影响。同时观察水时还存在着菲涅尔反射现象,观察方向和水面方向的夹角越大时,水面越体现反射颜色。另外由于水是可以流动的,往往还会伴随着高度的起伏变化。在三维游戏当中,水被当做一种特殊的透明物体进行模拟渲染。
本申请发明人研究发现,为了达到实时反射效果,目前在对水的渲染过程中基本上需要额外渲染一遍游戏场景,对于性能和续航有限的移动终端来说无论是对CPU或GPU都是一种大量的性能消耗,容易出现卡顿掉帧的情况,影响用户的游戏体验。同时,为了更好的模拟水的折射颜色时需要额外渲染一张水的折射图,最后在模拟计算水的颜色时需要利用设定的水平面高度、深度图数据来计算水体和地面的高度差,这需要先将深度非均匀变化的深度图转化为深度均匀变化的深度图。因为非均匀变化的深度图在计算水面和地面的高度差时得到的结果不对,这个过程明显会加大GPU的性能消耗。
鉴于上述问题,本申请发明人提出下述方法,该方法通过以水体网格的各个水体单元网格的顶点数据计算水体透明度,使得水体透明度按照地形高低起伏合理变化,并根据水体透明度将水面渲染为透明,从而减少渲染水面折射图,能够在移动终端上快速模拟出良好的水面效果,解决了通常移动终端上模拟水面效果时CPU和GPU性能消耗大的问题。下面结合附图,对本发明实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,为本发明较佳实施例提供的水面渲染方法的一种流程示意图。所应说明的是,本发明实施例提供的水面渲染方法不以图1及以下所述的具体顺序为限制。所述方法的具体流程如下:
步骤S210,响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域。
详细地,在三维渲染过程中,除了屏幕特效都需要使用到顶点网格,由于水体区域不是屏幕特效,此时就需要使用水体网格来表示水体区域范围。本实施例中,水体网格与地形网格相匹配,也即水体网格的单元网格大小等于所述地形网格的单元网格大小。地形网格从空中俯视是多个大小相等的方形网格,仅在高度方向随地势起伏而变化。水体网格和地形网格类似,但区别在于只是在同一水体区域内高度保持一致。
在实际实施时,美术人员在编辑游戏场景时,可以选择在认为有水的地方添加指定水平面高度的水体单元网格,移动终端100通过应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域。
步骤S220,获得所述水体网格的各个水体单元网格的顶点数据和当前游戏场景的光照数据。
经本申请发明人研究发现,以往的水体网格的各个水体单元网格的顶点数据仅仅是记录顶点的世界位置和UV坐标(也即纹理坐标)。而以往模拟水体的方案中仅仅是以一个统一的参数作为整个水体的透明度使用,这样并不能够满足水体透明度随着水底地形起伏而变化的需求。在本实施例中,根据发明人研究,提出在每个单元网格的顶点数据中增加水面和地面之间的高度差,以用于计算该水体单元网格的透明度,也即所述顶点数据中可以包括水面和地面之间的高度差。所述光照数据可以包括环境光值、主光颜色、主光方向以及菲涅尔值。
所述菲涅尔值可以通过菲涅尔反射原理获得,在此不作赘述。菲涅尔反射原理简单来说,当视线垂直于水体表面时,反射较弱,而当视线非垂直表面时,夹角越小,反射越明显。也即观察一个圆球,则靠近圆球中心的反射较弱,靠近圆球边缘反射较强。
步骤S230,根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据所述光照数据,计算出所述水体区域的水体颜色。
由于以往模拟水体区域的方案中仅仅是以一个统一的参数作为整个水体的透明度使用,这样不能够满足水体因为水底地形起伏而水体透明度变化的需求。本实施例中,可以通过计算每个水体单元网格对应的水面和地面之间的高度差与预设高度差的比值,并将所述比值作为每个水体单元网格的水体透明度。需要注意的是,如果所述比值大于1,那么所述比值则记为1。如果所述比值越接近0,该水体单元网格的水体越透明,所述比值越接近1,该水体单元网格的水体越不透明。例如,所述高度差为h,所述预设高度差h0,如果所述高度差为h大于或者等于所述预设高度差h0,那么所述比值h/h0都记为1,如果所述高度差h小于所述预设高度差h0,那么所述比值h/h0小于1,如果所述比值h/h0越接近0,则表示水面和地面之间的高度差越小,相应的水体也就越透明。如此,可以实现水体透明度按照地形高低起伏合理变化,水体渲染效果更加真实逼真。
水体区域的水体颜色一般与游戏场景中的光照数据相关,下面对水体区域的水体颜色的一种计算实施方式进行阐述,请参阅图2,所述步骤S230还可以包括以下子步骤:
子步骤S231,根据所述主光方向和当前观察方向计算出水体区域的漫射光系数和镜面高光系数。
本实施例中,假设获取到的当前环境的环境光值为AmbientColor,主光颜色为LightColor,主光方向为LightDir。首先可以根据观察水体的当前观察方向View、所述主光方向LightDir计算出水体的漫射光系数Diffuse和镜面高光系数Specular。具体公式如下:
ambient=1
diffuse=((n·l)<0)?0:n·l
specular=((n·l)<0)||((n·h)<0)?0:((n·h)m)
其中,ambient表示环境光系数,本实施例中设置为1,diffuse表示漫射光系数,n表示法线,l表示主光方向,specular表示镜面高光系数,h表示主光方向和观察方向的半角方向,m表示预设的水体镜面高光指数。
子步骤S232,根据所述环境光值、主光颜色、漫射光系数和镜面高光系数计算出水体区域的水体颜色。
本实施例中,根据水体的漫射光系数Diffuse、镜面高光系数Specular、水体的DiffuseColor、水体的SpecularColor、场景环境的环境光值AmbientColor和主光颜色LightColor计算出水体的颜色WaterColor。具体公式如下:
WaterColor=AmbientColor*Ambient+DiffuseColor*Diffuse*LightColor+SpecularColor*Specular*LightColor
其中,上述水体的SpecularColor和DiffuseColor为预设值。
步骤S240,根据预先渲染的反射贴图获取所述水体区域的反射颜色,并根据所述菲涅尔值、所述反射颜色和所述水体颜色计算出所述水体区域的目标水体颜色。
目前移动终端100的水体渲染过程中,渲染水的反射图是在渲染水体之前先渲染一遍高于水平面的场景物体,将渲染结果记录在一张图片中,此过程基本上相当于多渲染一遍场景。因此这样基本上需要额外渲染一遍场景,这在性能和续航有限的移动终端100上并不是一个合适的方案。
为了减轻移动终端100的性能压力,本实施例中,可以在渲染水体之前,预先渲染一个反射贴图作为所述游戏场景的所有水体区域的反射贴图。具体渲染方式可以是通过响应美术人员的反射贴图的离线渲染请求,在游戏场景中设置位置放置反射球,然后调用相机基于多个方向拍摄所述位置放置反射球在对应方向反射到的游戏场景中的反射图片,而后根据拍摄到的多个方向的反射图片渲染所述游戏场景的反射贴图,所述反射贴图即作为所述游戏场景的所有水体区域的反射贴图。在实际实施时,首先通过获取水体区域的反射朝向,然后从上述预先渲染的反射贴图中获取与所述水体区域的反射朝向对应纹理坐标的纹理颜色作为所述水体区域的反射颜色。如此,不需要每次都渲染一遍周围的场景物体,减轻了移动终端100的性能压力。
当然可以理解的是,上述渲染方式也可以选择性地开启或者关闭,若关闭,则可以采用现有的渲染方案。
在上述基础上,在获取到水体区域的反射颜色之后,将所述反射颜色设为ReflectColor,并根据获得的菲涅尔值fresnel、反射颜色ReflectColor和水体颜色WaterColor计算得到最终的目标水体颜色FinalWaterColor。FinalWaterColor为水体颜色和反射颜色按照菲涅尔值插值得到,具体计算公式如下:
FinalWaterColor=WaterColor*(1.0-fresnel)+ReflectColor*fresnel
步骤S250,基于所述每个水体单元网格的水体透明度和所述目标水体颜色对所述水体区域进行渲染。
本实施例中,将上述目标水体颜色的透明值设为对应的每个水体单元网格的水体透明度可以计算所得待渲染水体区域的WaterAlpha,从而通过透明混合的方式将待渲染水体区域和场景地形拼接起来,完成所述水体区域的渲染。
基于上述步骤,通过以水体网格的各个水体单元网格的顶点数据计算水体透明度,使得水体透明度按照地形高低起伏合理变化,并根据水体透明度将水面渲染为透明,从而减少渲染水面折射图,能够在移动终端100上快速模拟出良好的水面效果,同时不需要每次都渲染一遍周围的场景物体,减轻了移动终端100的性能压力,解决了通常移动终端100上模拟水面效果时CPU和GPU性能消耗大的问题。
另外,为了进一步地提高水面渲染效果,造成一种水表面细微波动的假象,请参阅图3,所述方法还可以包括:
步骤S260,渲染所述水体区域的水体流动效果。
详细地,请参阅图4,所述步骤S260可以包括以下子步骤:
子步骤S261,将所述水体网格的纹理坐标按照预定速度和预定方向移动,获得移动过程中的纹理坐标。
本实施例中,首先获得水体网格的初始纹理坐标,然后根据移动时间、所述初始纹理坐标、所述预定速度和所述预定方向,计算移动过程中的纹理坐标,具体地,可以根据所述预定速度和预定时间获得坐标移动位移,然后根据预定方向和所述初始纹理坐标获得获得移动过程中的纹理坐标。
子步骤S262,基于移动过程中的纹理坐标从法线贴图中获得移动过程中的法线值。
本实施例中,所述法线贴图是用来描述模型表面凹凸度的一张纹理。根据移动过程中的纹理坐标既可以通过纹理采样获得对应的法线值。
子步骤S263,根据获得的法线值渲染所述水体区域的水体流动效果。
本实施例中,当水面网格的网格顶点不动时,利用移动纹理坐标的方式既可以将水体法线按照设定的方向滚动,进而形成水体流动假象,如此即可达到所述水体区域的水体流动效果。
进一步地,请参阅图5,本发明较佳实施例还提供一种水面渲染装置200,所述装置可包括:
构建模块210,用于响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域。
获得模块220,用于获得所述水体网格的各个水体单元网格的顶点数据和当前游戏场景的光照数据,其中,所述顶点数据包括水面和地面之间的高度差,所述光照数据包括环境光值、主光颜色和主光方向。
计算模块230,用于根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据所述光照数据,计算出水体区域的基础色和高光色。
获取模块240,用于根据预先渲染的反射贴图获取所述水体区域的反射颜色。
渲染模块250,用于基于所述每个水体单元网格的水体透明度、所述水体区域的基础色、高光色以及反射颜色对所述水体区域进行渲染。
可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
进一步地,请参阅图6,为本发明实施较佳实施例提供的移动终端100的一种结构示意框图。本实施例中,所述移动终端100可以是包括硬体、软体或内嵌逻辑元件或者两个或多个此类元件的组合的电子装置,例如包括室内或室外、手持、穿戴或车载设备。例如,所述移动终端100可以是手机(mobile phone)、平板电脑(Pad)、虚拟现实(Virtual Reality,VR)终端设备、增强现实(Augmented Reality,AR)终端设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对应用场景不做限定。
如图6所示,移动终端100可以由总线110作一般性的总线体系结构来实现。根据移动终端100的具体应用和整体设计约束条件,总线110可以包括任意数量的互连总线和桥接。总线110将各种电路连接在一起,这些电路包括处理器120、存储介质130和总线接口140。可选地,移动终端100可以使用总线接口140将网络适配器150等经由总线110连接。网络适配器150可用于实现移动终端100中物理层的信号处理功能,并通过天线实现射频信号的发送和接收。用户接口160可以连接外部设备,例如:键盘、显示器、鼠标或者操纵杆等。总线110还可以连接各种其它电路,如定时源、外围设备、电压调节器或者功率管理电路等,这些电路是本领域所熟知的,因此不再详述。
可以替换的,移动终端100也可配置成通用处理系统,例如通称为芯片,该通用处理系统包括:提供处理功能的一个或多个微处理器,以及提供存储介质130的至少一部分的外部存储器,所有这些都通过外部总线体系结构与其它支持电路连接在一起。
可替换的,移动终端100可以使用下述来实现:具有处理器120、总线接口140、用户接口160的ASIC(专用集成电路);以及集成在单个芯片中的存储介质130的至少一部分,或者,移动终端100可以使用下述来实现:一个或多个FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本发明通篇所描述的各种功能的电路的任意组合。
其中,处理器120负责管理总线110和一般处理(包括执行存储在存储介质130上的软件)。处理器120可以使用一个或多个通用处理器和/或专用处理器来实现。处理器120的例子包括微处理器、微控制器、DSP处理器和能够执行软件的其它电路。应当将软件广义地解释为表示指令、数据或其任意组合,而不论是将其称作为软件、固件、中间件、微代码、硬件描述语言还是其它。
在图6中存储介质130被示为与处理器120分离,然而,本领域技术人员很容易明白,存储介质130或其任意部分可位于移动终端100之外。举例来说,存储介质130可以包括传输线、用数据调制的载波波形、和/或与无线节点分离开的计算机制品,这些介质均可以由处理器120通过总线接口140来访问。可替换地,存储介质130或其任意部分可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
所述处理器120可执行上述实施例,具体地,所述存储介质130中可以存储有所述水面渲染装置200,所述处理器120可以用于执行所述水面渲染装置200。
综上所述,本发明实施例提供一种水面渲染方法、装置及可读存储介质,通过响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域,获得水体网格的各个顶点数据和当前游戏场景的光照数据,然后根据水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据光照数据,计算出水体区域的水体颜色,同时根据预先渲染的反射贴图获取水体区域的反射颜色,并根据菲涅尔值、反射颜色和水体颜色计算出水体区域的目标水体颜色,而后基于每个水体单元网格的水体透明度和目标水体颜色对水体区域进行渲染。由此,通过以水体网格的各个水体单元网格的顶点数据计算水体透明度,使得水体透明度按照地形高低起伏合理变化,并根据水体透明度将水面渲染为透明,从而减少渲染水面折射图,能够在移动终端100上快速模拟出良好的水面效果,解决了通常移动终端100上模拟水面效果时CPU和GPU性能消耗大的问题。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的电子设备、服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其它的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种水面渲染方法,其特征在于,应用于移动终端,所述方法包括:
响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域;
获得所述水体网格的各个水体单元网格的顶点数据和当前游戏场景的光照数据,其中,所述顶点数据包括水面和地面之间的高度差,所述光照数据包括环境光值、主光颜色、主光方向以及菲涅尔值;
根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据所述光照数据,计算出所述水体区域的水体颜色;
根据预先渲染的反射贴图获取所述水体区域的反射颜色,并根据所述菲涅尔值、所述反射颜色和所述水体颜色计算出所述水体区域的目标水体颜色;
基于所述每个水体单元网格的水体透明度和所述目标水体颜色对所述水体区域进行渲染。
2.根据权利要求1所述的水面渲染方法,其特征在于,所述方法还包括:
渲染所述水体区域的水体流动效果;
所述渲染所述水体区域的水体流动效果,包括:
将所述水体网格的纹理坐标按照预定速度和预定方向移动,获得移动过程中的纹理坐标;
基于移动过程中的纹理坐标从法线贴图中获得移动过程中的法线值;
根据获得的法线值渲染所述水体区域的水体流动效果。
3.根据权利要求2所述的水面渲染方法,其特征在于,所述将所述水体网格的纹理坐标按照预定速度和预定方向移动,获得移动过程中的纹理坐标,包括:
获得初始纹理坐标;
根据移动时间、所述初始纹理坐标、所述预定速度和所述预定方向,计算移动过程中的纹理坐标。
4.根据权利要求1所述的水面渲染方法,其特征在于,所述根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,包括:
计算每个水体单元网格对应的水面和地面之间的高度差与预设高度差的比值,其中,当所述比值大于1时,所述比值记为1;
将所述比值作为每个水体单元网格的水体透明度;其中,所述比值越接近0,该水体单元网格的水体越透明,所述比值越接近1,该水体单元网格的水体越不透明。
5.根据权利要求1所述的水面渲染方法,其特征在于,所述根据所述光照数据,计算出所述水体区域的水体颜色,包括:
根据所述主光方向和当前观察方向计算出水体区域的漫射光系数和镜面高光系数;
根据所述环境光值、主光颜色、漫射光系数和镜面高光系数计算出水体区域的水体颜色。
6.根据权利要求1所述的水面渲染方法,其特征在于,所述预先渲染的反射贴图包括多个方向的反射图片,所述根据预先渲染的反射贴图获取所述水体区域的反射颜色,包括:
获取水体区域的反射朝向;
从预先渲染的反射贴图获取与所述水体区域的反射朝向对应纹理坐标的纹理颜色作为所述水体区域的反射颜色。
7.根据权利要求1所述的水面渲染方法,其特征在于,在所述响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域之前,所述方法还包括:
响应反射贴图的离线渲染请求,在游戏场景中设置位置放置反射球;
调用相机基于多个方向拍摄所述位置放置反射球在对应方向反射到的游戏场景中的反射图片;
根据拍摄到的多个方向的反射图片渲染所述游戏场景的反射贴图,所述反射贴图作为所述游戏场景的所有水体区域的反射贴图。
8.根据权利要求1所述的水面渲染方法,其特征在于,所述水体网格的单元网格大小等于地形网格的单元网格大小。
9.一种水面渲染装置,其特征在于,应用于移动终端,所述装置包括:
构建模块,用于响应水体区域的构建请求,在游戏场景的目标区域构建由水体网格组成的水体区域;
获得模块,用于获得所述水体网格的各个水体单元网格的顶点数据和当前游戏场景的光照数据,其中,所述顶点数据包括水面和地面之间的高度差,所述光照数据包括环境光、主光颜色和主光方向;
计算模块,用于根据所述水体网格的各个水体单元网格的顶点数据,计算出每个水体单元网格的水体透明度,并根据所述光照数据,计算出水体区域的基础色和高光色;
获取模块,用于根据预先渲染的反射贴图获取所述水体区域的反射颜色;
渲染模块,用于基于所述每个水体单元网格的水体透明度、所述水体区域的基础色、高光色以及反射颜色对所述水体区域进行渲染。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-8中任意一项所述的水面渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711268604.4A CN107886562B (zh) | 2017-12-05 | 2017-12-05 | 水面渲染方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711268604.4A CN107886562B (zh) | 2017-12-05 | 2017-12-05 | 水面渲染方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107886562A true CN107886562A (zh) | 2018-04-06 |
CN107886562B CN107886562B (zh) | 2021-08-31 |
Family
ID=61772774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711268604.4A Active CN107886562B (zh) | 2017-12-05 | 2017-12-05 | 水面渲染方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107886562B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109453519A (zh) * | 2018-11-09 | 2019-03-12 | 网易(杭州)网络有限公司 | 一种地形的创建方法和装置 |
CN110163945A (zh) * | 2019-05-25 | 2019-08-23 | 北京工业大学 | 一种实时渲染中的水面仿真方法 |
CN111028320A (zh) * | 2019-12-11 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 布料动画的生成方法、装置、计算机可读存储介质 |
CN111243075A (zh) * | 2020-03-17 | 2020-06-05 | 广东趣炫网络股份有限公司 | 一种面向手游的生成水深度图的方法、装置和设备 |
CN111862291A (zh) * | 2020-07-10 | 2020-10-30 | 完美世界(北京)软件科技发展有限公司 | 水系的烘焙方法及装置、存储介质、电子装置 |
CN111862324A (zh) * | 2020-07-10 | 2020-10-30 | 完美世界(北京)软件科技发展有限公司 | 水系的烘焙方法及装置、存储介质、电子装置 |
CN112044077A (zh) * | 2020-09-02 | 2020-12-08 | 北京冰封互娱科技有限公司 | 水体配置方法、装置、设备和存储介质 |
CN112200902A (zh) * | 2020-09-30 | 2021-01-08 | 北京达佳互联信息技术有限公司 | 图像渲染方法、装置、电子设备及存储介质 |
CN112819941A (zh) * | 2021-03-05 | 2021-05-18 | 网易(杭州)网络有限公司 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
CN112860063A (zh) * | 2021-02-02 | 2021-05-28 | 杭州电魂网络科技股份有限公司 | 交互水的实现方法、系统、电子装置和存储介质 |
CN112967367A (zh) * | 2021-03-19 | 2021-06-15 | 完美世界(北京)软件科技发展有限公司 | 水波特效生成方法及装置、存储介质、计算机设备 |
CN113450443A (zh) * | 2021-07-08 | 2021-09-28 | 网易(杭州)网络有限公司 | 海面模型的渲染方法和装置 |
CN113627038A (zh) * | 2021-10-09 | 2021-11-09 | 武汉幻城经纬科技有限公司 | 管网排水增强可视化方法及装置、存储介质、电子设备 |
WO2024067138A1 (zh) * | 2022-09-30 | 2024-04-04 | 北京字跳网络技术有限公司 | 液体渲染方法、装置、设备、计算机可读存储介质及产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181382A1 (en) * | 2003-03-14 | 2004-09-16 | Yaohua Hu | Visualizing the surface of a liquid |
CN102789650A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于粒子系统的海面航迹并行化仿真方法 |
CN105321200A (zh) * | 2015-07-10 | 2016-02-10 | 苏州蜗牛数字科技股份有限公司 | 离线渲染的预处理方法 |
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN106355636A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 虚拟现实三维水体渲染中水体网格的处理方法 |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及系统 |
US20170200301A1 (en) * | 2016-01-13 | 2017-07-13 | Sony Interactive Entertainment Inc. | Apparatus and method of image rendering |
CN106991135A (zh) * | 2017-03-15 | 2017-07-28 | 江苏物联网研究发展中心 | 面向遥感影像数据的快速瓦片生成方法 |
-
2017
- 2017-12-05 CN CN201711268604.4A patent/CN107886562B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181382A1 (en) * | 2003-03-14 | 2004-09-16 | Yaohua Hu | Visualizing the surface of a liquid |
CN102789650A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于粒子系统的海面航迹并行化仿真方法 |
CN105321200A (zh) * | 2015-07-10 | 2016-02-10 | 苏州蜗牛数字科技股份有限公司 | 离线渲染的预处理方法 |
US20170200301A1 (en) * | 2016-01-13 | 2017-07-13 | Sony Interactive Entertainment Inc. | Apparatus and method of image rendering |
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN106355636A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 虚拟现实三维水体渲染中水体网格的处理方法 |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及系统 |
CN106991135A (zh) * | 2017-03-15 | 2017-07-28 | 江苏物联网研究发展中心 | 面向遥感影像数据的快速瓦片生成方法 |
Non-Patent Citations (2)
Title |
---|
周毓: "游戏中实时渲染的研究与应用", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
唐勇等: "近岛海洋场景海水色彩真实感实时绘制", 《小型微型计算机系统》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109453519B (zh) * | 2018-11-09 | 2022-02-22 | 网易(杭州)网络有限公司 | 一种地形的创建方法和装置 |
CN109453519A (zh) * | 2018-11-09 | 2019-03-12 | 网易(杭州)网络有限公司 | 一种地形的创建方法和装置 |
CN110163945A (zh) * | 2019-05-25 | 2019-08-23 | 北京工业大学 | 一种实时渲染中的水面仿真方法 |
CN110163945B (zh) * | 2019-05-25 | 2022-11-29 | 北京工业大学 | 一种实时渲染中的水面仿真方法 |
CN111028320A (zh) * | 2019-12-11 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 布料动画的生成方法、装置、计算机可读存储介质 |
CN111243075A (zh) * | 2020-03-17 | 2020-06-05 | 广东趣炫网络股份有限公司 | 一种面向手游的生成水深度图的方法、装置和设备 |
CN111862291A (zh) * | 2020-07-10 | 2020-10-30 | 完美世界(北京)软件科技发展有限公司 | 水系的烘焙方法及装置、存储介质、电子装置 |
CN111862324A (zh) * | 2020-07-10 | 2020-10-30 | 完美世界(北京)软件科技发展有限公司 | 水系的烘焙方法及装置、存储介质、电子装置 |
CN111862291B (zh) * | 2020-07-10 | 2024-01-09 | 完美世界(北京)软件科技发展有限公司 | 水系的烘焙方法及装置、存储介质、电子装置 |
CN111862324B (zh) * | 2020-07-10 | 2023-07-28 | 完美世界(北京)软件科技发展有限公司 | 水系的烘焙方法及装置、存储介质、电子装置 |
CN112044077A (zh) * | 2020-09-02 | 2020-12-08 | 北京冰封互娱科技有限公司 | 水体配置方法、装置、设备和存储介质 |
CN112200902A (zh) * | 2020-09-30 | 2021-01-08 | 北京达佳互联信息技术有限公司 | 图像渲染方法、装置、电子设备及存储介质 |
CN112860063B (zh) * | 2021-02-02 | 2022-04-29 | 杭州电魂网络科技股份有限公司 | 交互水的实现方法、系统、电子装置和存储介质 |
CN112860063A (zh) * | 2021-02-02 | 2021-05-28 | 杭州电魂网络科技股份有限公司 | 交互水的实现方法、系统、电子装置和存储介质 |
CN112819941B (zh) * | 2021-03-05 | 2023-09-12 | 网易(杭州)网络有限公司 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
CN112819941A (zh) * | 2021-03-05 | 2021-05-18 | 网易(杭州)网络有限公司 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
CN112967367B (zh) * | 2021-03-19 | 2022-04-08 | 完美世界(北京)软件科技发展有限公司 | 水波特效生成方法及装置、存储介质、计算机设备 |
WO2022193614A1 (zh) * | 2021-03-19 | 2022-09-22 | 完美世界(北京)软件科技发展有限公司 | 水波特效生成方法及装置、存储介质、计算机设备 |
CN112967367A (zh) * | 2021-03-19 | 2021-06-15 | 完美世界(北京)软件科技发展有限公司 | 水波特效生成方法及装置、存储介质、计算机设备 |
CN113450443A (zh) * | 2021-07-08 | 2021-09-28 | 网易(杭州)网络有限公司 | 海面模型的渲染方法和装置 |
CN113627038A (zh) * | 2021-10-09 | 2021-11-09 | 武汉幻城经纬科技有限公司 | 管网排水增强可视化方法及装置、存储介质、电子设备 |
WO2024067138A1 (zh) * | 2022-09-30 | 2024-04-04 | 北京字跳网络技术有限公司 | 液体渲染方法、装置、设备、计算机可读存储介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN107886562B (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107886562A (zh) | 水面渲染方法、装置及可读存储介质 | |
WO2021129044A1 (zh) | 对象渲染方法和装置、存储介质及电子装置 | |
WO2020125785A1 (zh) | 毛发渲染方法、装置、电子设备和存储介质 | |
US20170154468A1 (en) | Method and electronic apparatus for constructing virtual reality scene model | |
US8803880B2 (en) | Image-based lighting simulation for objects | |
WO2023185262A1 (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
CN110533707A (zh) | 照明估计 | |
CN109102560A (zh) | 三维模型渲染方法及装置 | |
CN110930497B (zh) | 一种全局光照相交加速方法、装置及计算机存储介质 | |
CN106780707B (zh) | 模拟场景中全局光照的方法和装置 | |
CN103959340A (zh) | 用于自动立体三维显示器的图形呈现技术 | |
US20190206109A1 (en) | Method, apparatus and device for generating live wallpaper and medium | |
CN112489179B (zh) | 目标模型的处理方法、装置、存储介质及计算机设备 | |
CN116051713B (zh) | 渲染方法、电子设备和计算机可读存储介质 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
US10909752B2 (en) | All-around spherical light field rendering method | |
CN116152419A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN102880470A (zh) | 一种三维游戏引擎内核结构 | |
CN115439594A (zh) | 虚拟模型的滤光镜效果渲染方法、装置及存储介质 | |
CN115359172A (zh) | 渲染方法及相关装置 | |
CN114245907A (zh) | 自动曝光的光线追踪 | |
WO2024027286A1 (zh) | 渲染方法、装置、设备及存储介质 | |
CN116681814B (zh) | 一种图像渲染方法和电子设备 | |
CN116524063B (zh) | 光照颜色的计算方法、装置、设备及介质 | |
CN117392305A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |