渲染海浪的方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:29929164 阅读:23 留言:0更新日期:2021-09-04 18:54
本申请涉及计算机图形学领域,提供了渲染海浪的方法、装置、设备和计算机可读存储介质,以提升海浪渲染效果,使游戏中的海浪更接近于现实世界的海浪。所述方法包括:根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;截取平行于海岸线的实时条带状遮罩,形成实时海浪线;将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;将实时相对海岸移动的海浪效果与实时海浪线叠加,得到海浪的最终渲染效果。相对于现有技术,本申请的技术方案渲染出来的海浪的变化性更强,使游戏场景中的海浪更接近于现实世界的海浪,给游戏玩家更加真实的视觉感。给游戏玩家更加真实的视觉感。给游戏玩家更加真实的视觉感。

【技术实现步骤摘要】
渲染海浪的方法、装置、设备和计算机可读存储介质


[0001]本专利技术涉及计算机图形学领域,特别涉及一种渲染海浪的方法、装置、设备和计算机可读存储介质。

技术介绍

[0002]海面在游戏中是一种比较常见的效果,它是增强游戏场景视觉效果的重要元素之一,在一些游戏场景中所占画面的面积较大,而很多游戏是采用游戏引擎开发,Unreal Engine 4就是其中较为著名的一种游戏开发工具。
[0003]Unreal Engine 4是由Epic Games公司开发的强大的三维游戏引擎,可以创建三维视频游戏、二维平面游戏和建筑实时展示的多平台综合型游戏。在利用Unreal Engine 4游戏引擎开发移动端游戏时,若需要渲染海浪,现有的方法是在水面和岸边接触的部分显示一个海浪纹理的方式,采用这种方式来表现海浪的效果。
[0004]然而,上述现有渲染海浪的方法只能表现一些海浪纹理流动的简单效果,不能渲染海浪从海上冲向岸边的效果,因而视觉效果差强人意。

技术实现思路

[0005]本申请提供一种渲染海浪的方法、装置、设备和计算机可读存储介质,以提升海浪渲染效果,使游戏中的海浪更接近于现实世界的海浪。
[0006]一方面,本申请提供了一种渲染海浪的方法,包括:
[0007]根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;
[0008]截取所述实时条带状遮罩,形成实时海浪线;
[0009]将预先制作的移动海浪纹理映射至所述实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;
[0010]将所述实时相对海岸移动的海浪效果与所述实时海浪线叠加,得到海浪的最终渲染效果。
[0011]可选地,所述根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩,包括:根据所述场景深度、所述像素深度、当前时刻以及所述当前时刻的正弦值,确定与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度;取所述移动方向与移动幅度之和的小数部分;以所述小数部分为变量,计算得到所述平行于海岸线的实时条带状遮罩。
[0012]可选地,所述根据所述场景深度、所述像素深度、当前时刻以及所述当前时刻的正弦值,确定与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度之和,包括:计算所述场景深度与所述像素深度的差值,将所述差值作为与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向;计算所述当前时刻与所述当前时刻的正弦值之和,将所述当前时刻与所述当前时刻的正弦值之和作为与所述当前时刻相关的平行于海岸
线的条带状遮罩的移动幅度;所述以所述小数部分为变量,计算得到所述平行于海岸线的实时条带状遮罩,包括:以所述小数部分为参数,调用取整函数Ceil((1

x)

0.5),将Ceil((1

x)

0.5)赋值给α,所述x为所述小数部分;以所述α为参数,调用第一截断函数Saturate(α);以power(2x,8)、2x和Saturate(α)为参数,调用第二截断函数Lerp(power(2x,8),2x,Saturate(α)),将所述第二截断函数的返回值作为所述平行于海岸线的实时条带状遮罩,所述power(2x,8)表示对2x求8次幂。
[0013]可选地,所述截取所述实时条带状遮罩,形成实时海浪线,包括:以所述实时条带状遮罩与海浪线宽度可调参数之差为参数,调用取整函数Ceil(FlowMask

_WaveLineWidth),所述FlowMask为所述实时条带状遮罩,所述_WaveLineWidth为所述海浪线宽度可调参数;以power(FlowMask*x,4)、0、所述Ceil(FlowMask

_WaveLineWidth)的返回值为参数,调用第二截断函数Lerp(power(FlowMask*x,4),0,Ceil(FlowMask

_WaveLineWidth)),所述power(FlowMask*x,4)表示对FlowMask*x求4次幂;将所述第二截断函数Lerp(power(FlowMask*x,4),0,Ceil(FlowMask

_WaveLineWidth))的返回值与部分所述实时条带状遮罩相加,得到所述实时海浪线,所述部分实时条带状遮罩为所述FlowMask与预设小数的乘积。
[0014]可选地,所述移动海浪纹理通过如下方式制作:以1

(SceneDepth

PixelDepth)/500为参数,调用第一截断函数Saturate(1

(SceneDepth

PixelDepth)/500),所述SceneDepth

PixelDepth为所述场景深度与像素深度的差值;基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值;将所述第一截断函数Saturate(1

(SceneDepth

PixelDepth)/500)的返回值与所述海浪纹理采样值相乘,得到所述移动海浪纹理。
[0015]可选地,所述基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值,包括:以所述海浪的纹理以及sin(Time*_WaveLoopSpeed)与TexCoord0为参数,调用纹理采样函数tex2D(TexWave,sin(Time*_WaveLoopSpeed)+TexCoord0),将所述纹理采样函数tex2D(TexWave,sin(Time*_WaveLoopSpeed)+TexCoord0)的返回值作为所述海浪纹理采样值,所述TexWave为所述海浪的纹理,所述_WaveLoopSpeed为所述海浪循环速度调节参数,所述Time为当前时间,所述sin(Time*_WaveLoopSpeed)表示对所述Time与_WaveLoopSpeed的乘积求取正弦值,所述TexCoord0为纹理采样的坐标。
[0016]可选地,所述方法还包括:根据遮罩纹理的采样值和所述实时相对海岸移动的海浪渲染效果,控制所述海浪的显示范围。
[0017]可选地,所述根据遮罩纹理的采样值和所述实时相对海岸移动的海浪渲染效果,控制所述海浪的显示范围,包括:根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01;根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02;采用区间限定函数,对所述第一遮罩范围值Mask01和/或所述第二遮罩范围值Mask02进行限制,得到所述海浪的显示范围。
[0018]可选地,所述根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种渲染海浪的方法,其特征在于,所述方法包括:根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;截取所述实时条带状遮罩,形成实时海浪线;将预先制作的移动海浪纹理映射至所述实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;将所述实时相对海岸移动的海浪效果与所述实时海浪线叠加,得到海浪的最终渲染效果。2.如权利要求1所述渲染海浪的方法,其特征在于,所述根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩,包括:根据所述场景深度、所述像素深度、当前时刻以及所述当前时刻的正弦值,确定与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度;取所述移动方向与移动幅度之和的小数部分;以所述小数部分为变量,计算得到所述平行于海岸线的实时条带状遮罩。3.如权利要求2所述渲染海浪的方法,其特征在于,所述根据所述场景深度、所述像素深度、当前时刻以及所述当前时刻的正弦值,确定与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度之和,包括:计算所述场景深度与所述像素深度的差值,将所述差值作为与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向;计算所述当前时刻与所述当前时刻的正弦值之和,将所述当前时刻与所述当前时刻的正弦值之和作为与所述当前时刻相关的平行于海岸线的条带状遮罩的移动幅度;所述以所述小数部分为变量,计算得到所述平行于海岸线的实时条带状遮罩,包括:以所述小数部分为参数,调用取整函数Ceil((1

x)

0.5),将Ceil((1

x)

0.5)赋值给α,所述x为所述小数部分;以所述α为参数,调用第一截断函数Saturate(α);以power(2x,8)、2x和Saturate(α)为参数,调用第二截断函数Lerp(power(2x,8),2x,Saturate(α)),将所述第二截断函数的返回值作为所述平行于海岸线的实时条带状遮罩,所述power(2x,8)表示对2x求8次幂。4.如权利要求1所述渲染海浪的方法,其特征在于,所述截取所述实时条带状遮罩,形成实时海浪线,包括:以所述实时条带状遮罩与海浪线宽度可调参数之差为参数,调用取整函数Ceil(FlowMask

_WaveLineWidth),所述FlowMask为所述实时条带状遮罩,所述_WaveLineWidth为所述海浪线宽度可调参数;以power(FlowMask*x,4)、0、所述Ceil(FlowMask

_WaveLineWidth)的返回值为参数,调用第二截断函数Lerp(power(FlowMask*x,4),0,Ceil(FlowMask

_WaveLineWidth)),所述power(FlowMask*x,4)表示对FlowMask*x求4次幂;将所述第二截断函数Lerp(power(FlowMask*x,4),0,Ceil(FlowMask

_WaveLineWidth))的返回值与部分所述实时条带状遮罩相加,得到所述实时海浪线,所述部分实时条带状遮罩为所述FlowMask与预设小数的乘积。5.如权利要求1所述渲染海浪的方法,其特征在于,所述移动海浪纹理通过如下方式制作:以1

(SceneDepth

PixelDepth)/500为参数,调用第一截断函数Saturate(1

(SceneDepth

PixelDepth)/500),所述SceneDepth

PixelDepth为所述场景深度与像素深度的差值;基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值;将所述第一截断函数Satura...

【专利技术属性】
技术研发人员:姜星宇
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1