CN113345066B - 渲染海浪的方法、装置、设备和计算机可读存储介质 - Google Patents
渲染海浪的方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113345066B CN113345066B CN202110580640.4A CN202110580640A CN113345066B CN 113345066 B CN113345066 B CN 113345066B CN 202110580640 A CN202110580640 A CN 202110580640A CN 113345066 B CN113345066 B CN 113345066B
- Authority
- CN
- China
- Prior art keywords
- time
- real
- mask
- wave
- texture
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及计算机图形学领域,提供了渲染海浪的方法、装置、设备和计算机可读存储介质,以提升海浪渲染效果,使游戏中的海浪更接近于现实世界的海浪。所述方法包括:根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;截取平行于海岸线的实时条带状遮罩,形成实时海浪线;将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;将实时相对海岸移动的海浪效果与实时海浪线叠加,得到海浪的最终渲染效果。相对于现有技术,本申请的技术方案渲染出来的海浪的变化性更强,使游戏场景中的海浪更接近于现实世界的海浪,给游戏玩家更加真实的视觉感。
Description
技术领域
本发明涉及计算机图形学领域,特别涉及一种渲染海浪的方法、装置、设备和计算机可读存储介质。
背景技术
海面在游戏中是一种比较常见的效果,它是增强游戏场景视觉效果的重要元素之一,在一些游戏场景中所占画面的面积较大,而很多游戏是采用游戏引擎开发,UnrealEngine 4就是其中较为著名的一种游戏开发工具。
Unreal Engine 4是由Epic Games公司开发的强大的三维游戏引擎,可以创建三维视频游戏、二维平面游戏和建筑实时展示的多平台综合型游戏。在利用Unreal Engine 4游戏引擎开发移动端游戏时,若需要渲染海浪,现有的方法是在水面和岸边接触的部分显示一个海浪纹理的方式,采用这种方式来表现海浪的效果。
然而,上述现有渲染海浪的方法只能表现一些海浪纹理流动的简单效果,不能渲染海浪从海上冲向岸边的效果,因而视觉效果差强人意。
发明内容
本申请提供一种渲染海浪的方法、装置、设备和计算机可读存储介质,以提升海浪渲染效果,使游戏中的海浪更接近于现实世界的海浪。
一方面,本申请提供了一种渲染海浪的方法,包括:
根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;
截取所述实时条带状遮罩,形成实时海浪线;
将预先制作的移动海浪纹理映射至所述实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;
将所述实时相对海岸移动的海浪效果与所述实时海浪线叠加,得到海浪的最终渲染效果。
可选地,所述根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩,包括:根据所述场景深度、所述像素深度、当前时刻以及所述当前时刻的正弦值,确定与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度;取所述移动方向与移动幅度之和的小数部分;以所述小数部分为变量,计算得到所述平行于海岸线的实时条带状遮罩。
可选地,所述根据所述场景深度、所述像素深度、当前时刻以及所述当前时刻的正弦值,确定与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度之和,包括:计算所述场景深度与所述像素深度的差值,将所述差值作为与所述当前时刻相关的平行于海岸线的条带状遮罩的移动方向;计算所述当前时刻与所述当前时刻的正弦值之和,将所述当前时刻与所述当前时刻的正弦值之和作为与所述当前时刻相关的平行于海岸线的条带状遮罩的移动幅度;所述以所述小数部分为变量,计算得到所述平行于海岸线的实时条带状遮罩,包括:以所述小数部分为参数,调用取整函数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次幂。
可选地,所述截取所述实时条带状遮罩,形成实时海浪线,包括:以所述实时条带状遮罩与海浪线宽度可调参数之差为参数,调用取整函数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与预设小数的乘积。
可选地,所述移动海浪纹理通过如下方式制作:以1-(SceneDepth-PixelDepth)/500为参数,调用第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500),所述SceneDepth-PixelDepth为所述场景深度与像素深度的差值;基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值;将所述第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500)的返回值与所述海浪纹理采样值相乘,得到所述移动海浪纹理。
可选地,所述基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值,包括:以所述海浪的纹理以及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为纹理采样的坐标。
可选地,所述方法还包括:根据遮罩纹理的采样值和所述实时相对海岸移动的海浪渲染效果,控制所述海浪的显示范围。
可选地,所述根据遮罩纹理的采样值和所述实时相对海岸移动的海浪渲染效果,控制所述海浪的显示范围,包括:根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01;根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02;采用区间限定函数,对所述第一遮罩范围值Mask01和/或所述第二遮罩范围值Mask02进行限制,得到所述海浪的显示范围。
可选地,所述根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01,包括:按照计算公式Mask01=(Tex.AreaMask-0.5)+sin(Time*_Speed)*_MaskIntensity计算得到所述第一遮罩范围值Mask01,所述Tex.AreaMask表示所述遮罩纹理的采样值,所述_Speed表示所述海浪移动速度调节参数,所述Time表示当前时间,所述_MaskIntensity表示所述遮罩强度调整参数,所述sin(Time*_Speed)表示对Time*_Speed求取正弦函数值;所述根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02,包括:按照计算公式Mask02=(Tex.AreaMask-0.5)-sin(Time*_Speed)*_MaskIntensity计算得到所述第二遮罩范围值Mask02。
另一方面,本申请提供了一种渲染海浪的装置,包括:
获取模块,用于根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;
海浪线形成模块,用于截取所述实时条带状遮罩,形成实时海浪线;
中间效果形成模块,用于将预先制作的移动海浪纹理映射至所述实时条带状遮罩,得到实时相对海岸移动的海浪效果;
海浪效果形成模块,用于将所述实时相对海岸移动的海浪效果与所述实时海浪线叠加,得到海浪的最终渲染效果。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的渲染海浪的方法中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的渲染海浪的方法中的步骤。
从上述本申请提供的技术方案可知,可以根据场景深度和预设水面面片的像素深度形成实时海浪线,再将预先制作的移动海浪纹理映射至实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果,最后,将实时相对海岸移动的海浪渲染效果与实时海浪线叠加,得到海浪的最终渲染效果。由于海浪效果是实时相对海岸移动的,相对于现有技术只能表现一些海浪纹理流动的简单效果,不能渲染海浪从海上冲向岸边的效果,本申请的技术方案渲染出来的海浪的变化性更强,使游戏场景中的海浪更接近于现实世界的海浪,给游戏玩家更加真实的视觉感。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的渲染海浪的方法的流程图;
图2是本申请实施例提供的渲染海浪的装置的结构示意图;
图3是本申请另一实施例提供的渲染海浪的装置的结构示意图;
图4是本申请实施例提供的设备的结构示意图;
图5是本申请实施例提供的海浪的最终渲染效果示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请提出了一种渲染海浪的方法,如附图1所示,主要包括步骤S101至S104,详述如下:
步骤S101:根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩。
在本申请实施例中,可以预先在三维游戏场景中创建水面面片和陆地面片,其中,水面面片被赋予水面材质,而陆地面片则可以赋予任意不透明材质。然后,可以在着色器(shader)中读取场景深度(Scene Depth)和这些水面面片的像素深度(Pixel Depth)。
作为本申请一个实施例,根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩可以是:根据场景深度、水面面片的像素深度、当前时刻以及当前时刻的正弦值,确定与当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度,然后,取条带状遮罩的运动方向与移动幅度之和的小数部分,最后,以该小数部分为变量,计算得到平行于海岸线的实时条带状遮罩。上述实施例中,根据场景深度、水面面片的像素深度、当前时刻以及当前时刻的正弦值,确定与当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度具体可以是:计算场景深度与水面面片的像素深度的差值,将该差值作为与当前时刻相关的平行于海岸线的条带状遮罩的移动方向;计算当前时刻与当前时刻的正弦值之和,将当前时刻与当前时刻的正弦值之和作为与当前时刻相关的平行于海岸线的条带状遮罩的移动幅度,使用公式表达为x=Frac(Time+Sin(Time)+(SceneDepth-PixelDepth))其中,上述计算公式中的Time表示当前时间,Sin(Time)表示对Sin(Time)求取正弦函数值,SceneDepth表示场景深度,PixelDepth表示水面面片的像素深度,Frac(Time+Sin(Time)+(SceneDepth-PixelDepth))表示取Time+Sin(Time)+(SceneDepth-PixelDepth)这个计算结果即与当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度之和的小数部分,其中,Time+Sin(Time)为与当前时刻相关的平行于海岸线的条带状遮罩的移动幅度,SceneDepth–PixelDepth为与当前时刻相关的平行于海岸线的条带状遮罩的移动方向。上述实施例中,以该小数部分为变量,计算得到平行于海岸线的实时条带状遮罩可以是:以该小数部分为参数,调用取整函数Ceil((1-x)-0.5),将Ceil((1-x)-0.5)赋值给α;以所述α为参数,调用第一截断函数Saturate(α);以power(2x,8)、2x、和Saturate(α)为参数,调用第二截断函数Lerp(power(2x,8),2x,Saturate(α)),将第二截断函数的返回值作为所述平行于海岸线的实时条带状遮罩,即FlowMask=Lerp(power(2x,8),2x,Saturate(α)),其中,x为与当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度之和的小数部分,power(2x,8)表示对2x求8次幂,取整函数Ceil((1-x)-0.5)表示取大于(1-x)-0.5这个计算结果的最小整数,第一截断函数Saturate(α)的原型为当α≥1时,函数返回值1,当0≤α<1时,函数返回值α,当α<0时,函数返回值0,第二截断函数Lerp(power(2x,8),2x,Saturate(α))表示按照Saturate(α)在power(2x,8)和2x之间进行值截取。
通过上述计算公式,可以渲染出黑白相间的平行于海岸线的条带状遮罩FlowMask。一方面,由于条带状遮罩FlowMask最终表达式Lerp(power(2x,8),2x,Saturate(α))中,x是与当前时刻刻Time这一参数相关的变量,因此,这个条带状遮罩FlowMask具有实时性;另一方面,余弦值Sin(Time)本身表示了震荡的特性,条带状遮罩FlowMask随当前时刻刻Time不断向海岸间歇式移动。
步骤S102:截取平行于海岸线的实时条带状遮罩,形成实时海浪线。
作为本申请一个实施例,截取平行于海岸线的实时条带状遮罩,形成实时海浪线可以是:以平行于海岸线的实时条带状遮罩与海浪线宽度可调参数之差为参数,调用取整函数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))的返回值与部分平行于海岸线的实时条带状遮罩相加,得到实时海浪线WaveLine,其中,部分平行于海岸线的实时条带状遮罩为平行于海岸线的实时条带状遮罩与预设小数(例如,0.3)的乘积,具体地,可以按照下述公式计算得到实时海浪线WaveLine:
WaveLine=Lerp(Power(FlowMask*x,4),0,Ceil(FlowMask-_WaveLineWidth))+FlowMask*0.3
其中,x即前述实施例的Frac(Time+Sin(Time)+(SceneDepth-PixelDepth)),FlowMask即前述实施例的Lerp(power(2x,8),2x,Saturate(α)),_WaveLineWidth是一个海浪线宽可调参数,用于对WaveLine进行调节。至于函数Lerp()、函数Ceil()和函数Power(),与前述实施例类似,即Ceil(FlowMask-_WaveLineWidth))表示取大于FlowMask-_WaveLineWidth)这个计算结果的最小整数,Lerp(Power(FlowMask*x,4),0,Ceil(FlowMask-_WaveLineWidth))表示按照Ceil(FlowMask-_WaveLineWidth)在Power(FlowMask*x,4)和0之间进行值的截取,Power(FlowMask*x,4)表示求FlowMask*x的4次幂。
步骤S103:将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果。
经步骤S101得到的平行于海岸线的实时条带状遮罩,实际是黑白且没有纹理的条带状遮罩,因此,为了增强海浪的渲染效果,在本申请实施例中,可以将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果,其中,移动海浪贴图可通过如下方式事先制作:以1-(SceneDepth-PixelDepth)/500为参数,调用第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500),SceneDepth-PixelDepth为场景深度与预设水面面片的像素深度的差值;基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值;将第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500)的返回值与海浪纹理采样值相乘,得到移动海浪纹理,其中,上述实施例中的基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值可以是:以海浪的纹理以及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为纹理采样的坐标UV。步骤S103的实现具体可以按照如下计算公式得到移动海浪纹理WaveColor:
WaveColor=saturate(1-(SceneDepth-PixelDepth)/500)*tex2D(TexWave,sin(Time*_WaveLoopSpeed)+TexCoord0)
通过上述计算公式,可以得到在岸边来回移动的平铺的纹理效果,再将这个预先制作的移动海浪纹理WaveColor映射至经步骤S101得到的实时条带状遮罩,即将预先制作的移动海浪纹理WaveColo与经步骤S101得到的实时条带状遮罩FlowMask相乘,可以得到实时相对海岸移动的海浪渲染效果。
步骤S104:将实时相对海岸移动的海浪效果与实时海浪线叠加,得到海浪的最终渲染效果。
将实时相对海岸移动的海浪效果与实时海浪线叠加,即,将经前述步骤S101至步骤S103得到的WaveColor*FlowMask与WaveLine相加,WaveColor*FlowMask+WaveLine即海浪的最终渲染效果,其最终渲染效果如附图5所示。
进一步地,为了破坏海浪的连续性,使其更加接近现实世界中的海浪,上述实施例还包括根据遮罩纹理的采样值和实时相对海岸移动的海浪渲染效果,控制海浪的显示范围。增加了上述对海浪的显示范围的控制后,使波浪不再均匀地分布在岸边,而是按照海岸线产生变化。作为本申请一个实施例,根据遮罩纹理的采样值和实时相对海岸移动的海浪渲染效果,控制海浪的显示范围可以是:根据海浪移动速度调节参数、遮罩强度调整参数和遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01;根据海浪移动速度调节参数、遮罩强度调整参数和遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02;采用区间限定函数,对第一遮罩范围值Mask01和/或第二遮罩范围值Mask02进行限制,得到海浪的显示范围。
具体地,根据海浪移动速度调节参数、遮罩强度调整参数和遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01可以是:按照计算公式Mask01=(Tex.AreaMask-0.5)+sin(Time*_Speed)*_MaskIntensity计算得到第一遮罩范围值Mask01,其中,Tex.AreaMask表示遮罩纹理的采样值,_Speed表示海浪移动速度调节参数,Time表示当前时间,_MaskIntensity表示遮罩强度调整参数,sin(Time*_Speed)表示对Time*_Speed求取正弦函数值;根据海浪移动速度调节参数、遮罩强度调整参数和遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02可以是:按照计算公式Mask02=(Tex.AreaMask-0.5)-sin(Time*_Speed)*_MaskIntensity计算得到第二遮罩范围值Mask02。至于采用区间限定函数,对第一遮罩范围值Mask01和/或第二遮罩范围值Mask02进行限制,具体可以是AreaMask=Clamp(Max(Mask01,Mask02)*2,0,1),其中,Max(Mask01,Mask02)表示取Mask01和Mask02之间的较大值,Clamp()为区间限定函数,表示若Max(Mask01,Mask02)*2在[0,1]之间,则AreaMask取Max(Mask01,Mask02)*2,若Max(Mask01,Mask02)*2小于0,则AreaMask取0,若Max(Mask01,Mask02)*2大于1,则AreaMask取1。经过以上计算之后,可以得到一个随着时间不断变化的区域遮罩。
从上述附图1示例的渲染海浪的方法可知,可以根据场景深度和预设水面面片的像素深度形成实时海浪线,再将预先制作的移动海浪纹理映射至实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果,最后,将实时相对海岸移动的海浪渲染效果与实时海浪线叠加,得到海浪的最终渲染效果。由于海浪效果是实时相对海岸移动的,相对于现有技术只能表现一些海浪纹理流动的简单效果,不能渲染海浪从海上冲向岸边的效果,本申请的技术方案渲染出来的海浪的变化性更强,使游戏场景中的海浪更接近于现实世界的海浪,给游戏玩家更加真实的视觉感。
请参阅附图2,是本申请实施例提供的一种渲染海浪的装置,该装置可以包括获取模块201、海浪线形成模块202、中间效果形成模块203和海浪效果形成模块204,详述如下:
获取模块201,用于根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;
海浪线形成模块202,用于截取平行于海岸线的实时条带状遮罩,形成实时海浪线;
中间效果形成模块203,用于将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;
海浪效果形成模块204,用于将实时相对海岸移动的海浪渲染效果与平行于海岸线的实时条带状遮罩叠加,得到最终渲染效果。
可选地,上述附图2示例的装置中,获取模块201可以包括第一计算单元、小数处理单元和第二计算单元,其中:
第一计算单元,用于根据场景深度、预设水面面片的像素深度、当前时刻以及当前时刻的正弦值,确定与当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度;
小数处理单元,用于取与当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度之和的小数部分;
第二计算单元,用于以小数部分为变量,计算得到平行于海岸线的实时条带状遮罩。
可选地,上述示例的第一计算单元可以包括差值计算单元和求和单元,第二计算单元可以包括第一调用单元、第二调用单元和第三调用单元,其中:
差值计算单元,用于计算场景深度与预设水面面片的像素深度的差值,将该差值作为与当前时刻相关的平行于海岸线的条带状遮罩的移动方向;
求和单元,用于计算当前时刻与当前时刻的正弦值之和,将当前时刻与当前时刻的正弦值之和作为与当前时刻相关的平行于海岸线的条带状遮罩的移动幅度;
第一调用单元,用于以与当前时刻相关的平行于海岸线的条带状遮罩的移动方向与移动幅度之和的小数部分为参数,调用取整函数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次幂
上述附图2示例的装置中,海浪线形成模块202可以包括第四调用单元、第三计算单元和第四计算单元,其中:
第四调用单元,用于以平行于海岸线的实时条带状遮罩与海浪线宽度可调参数之差为参数,调用取整函数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与预设小数的乘积。
可选地,上述实施例中,移动海浪纹理通过如下方式制作:以1-(SceneDepth-PixelDepth)/500为参数,调用第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500),SceneDepth-PixelDepth为场景深度与预设水面面片的像素深度的差值;基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值;将第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500)的返回值与海浪纹理采样值相乘,得到移动海浪纹理。
可选地,上述实施例中,基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值可以是:以海浪的纹理以及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为纹理采样的坐标。
可选地,上述附图2示例的装置还可以包括范围控制模块301,如图3所示本申请另一实施例提供的渲染海浪的装置。范围控制模块301用于根据遮罩纹理的采样值和实时相对海岸移动的海浪渲染效果,控制海浪的显示范围。
可选地,附图3示例的装置中,范围控制模块301可以包括第五计算单元、第六计算单元和区间限制单元,其中:
第五计算单元,用于根据海浪移动速度调节参数、遮罩强度调整参数和遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01;
第六计算单元,用于根据海浪移动速度调节参数、遮罩强度调整参数和遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02;
区间限制单元,用于采用区间限定函数,对第一遮罩范围值Mask01和/或第二遮罩范围值Mask02进行限制,得到海浪的显示范围。
可选地,上述第五计算单元具体用于按照计算公式Mask01=(Tex.AreaMask-0.5)+sin(Time*_Speed)*_MaskIntensity计算得到第一遮罩范围值Mask01,其中,Tex.AreaMask表示遮罩纹理的采样值,_Speed表示海浪移动速度调节参数,Time表示当前时间,_MaskIntensity表示遮罩强度调整参数,sin(Time*_Speed)表示对Time*_Speed求取正弦函数值;第六计算单元具体用于按照计算公式Mask02=(Tex.AreaMask-0.5)-sin(Time*_Speed)*_MaskIntensity计算得到第二遮罩范围值Mask02。
从以上技术方案的描述中可以看出,可以根据场景深度和预设水面面片的像素深度形成实时海浪线,再将预先制作的移动海浪纹理映射至实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果,最后,将实时相对海岸移动的海浪渲染效果与实时海浪线叠加,得到海浪的最终渲染效果。由于海浪效果是实时相对海岸移动的,相对于现有技术只能表现一些海浪纹理流动的简单效果,不能渲染海浪从海上冲向岸边的效果,本申请的技术方案渲染出来的海浪的变化性更强,使游戏场景中的海浪更接近于现实世界的海浪,给游戏玩家更加真实的视觉感。
图4是本申请一实施例提供的计算机设备的结构示意图。如图4所示,该实施例的计算机设备4主要包括:处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42,例如渲染海浪的方法的程序。处理器40执行计算机程序42时实现上述渲染海浪的方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,处理器40执行计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图2所示获取模块201、海浪线形成模块202、中间效果形成模块203和海浪效果形成模块204的功能。
示例性地,渲染海浪的方法的计算机程序42主要包括:根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;截取平行于海岸线的实时条带状遮罩,形成实时海浪线;将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;将实时相对海岸移动的海浪效果与实时海浪线叠加,得到海浪的最终渲染效果。计算机程序42可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器41中,并由处理器40执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序42在计算机设备4中的执行过程。例如,计算机程序42可以被分割成获取模块201、海浪线形成模块202、中间效果形成模块203和海浪效果形成模块204(虚拟装置中的模块)的功能,各模块具体功能如下:获取模块201,用于根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;海浪线形成模块202,用于截取平行于海岸线的实时条带状遮罩,形成实时海浪线;中间效果形成模块203,用于将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;海浪效果形成模块204,用于将实时相对海岸移动的海浪效果与实时海浪线叠加,得到海浪的最终渲染效果。
计算机设备4可包括但不仅限于处理器40、存储器41。本领域技术人员可以理解,图4仅仅是计算机设备4的示例,并不构成对计算机设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算计算机设备还可以包括输入输出计算机设备、网络接入计算机设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器41可以是计算机设备4的内部存储单元,例如计算机设备4的硬盘或内存。存储器41也可以是计算机设备4的外部存储计算机设备,例如计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括计算机设备4的内部存储单元也包括外部存储计算机设备。存储器41用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,渲染海浪的方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,根据场景深度和预设水面面片的像素深度,获取平行于海岸线的实时条带状遮罩;截取平行于海岸线的实时条带状遮罩,形成实时海浪线;将预先制作的移动海浪纹理映射至平行于海岸线的实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;将实时相对海岸移动的海浪效果与实时海浪线叠加,得到海浪的最终渲染效果。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种渲染海浪的方法,其特征在于,所述方法包括:
计算场景深度与预设水面面片的像素深度的差值,将所述差值作为与当前时刻相关的平行于海岸线的条带状遮罩的移动方向;
计算所述当前时刻与所述当前时刻的正弦值之和,将所述当前时刻与所述当前时刻的正弦值之和作为与所述当前时刻相关的平行于海岸线的条带状遮罩的移动幅度;
取所述移动方向与移动幅度之和的小数部分;
以所述小数部分为变量,计算得到平行于海岸线的实时条带状遮罩;
截取所述实时条带状遮罩,形成实时海浪线;
将预先制作的移动海浪纹理映射至所述实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;
将所述实时相对海岸移动的海浪效果与所述实时海浪线叠加,得到海浪的最终渲染效果。
2.如权利要求1所述渲染海浪的方法,其特征在于,所述以所述小数部分为变量,计算得到所述平行于海岸线的实时条带状遮罩,包括:
以所述小数部分为参数,调用取整函数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次幂。
3.如权利要求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与预设小数的乘积。
4.如权利要求1所述渲染海浪的方法,其特征在于,所述移动海浪纹理通过如下方式制作:
以1-(SceneDepth-PixelDepth)/500为参数,调用第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500),所述SceneDepth-PixelDepth为所述场景深度与像素深度的差值;
基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值;
将所述第一截断函数Saturate(1-(SceneDepth-PixelDepth)/500)的返回值与所述海浪纹理采样值相乘,得到所述移动海浪纹理。
5.如权利要求4所述渲染海浪的方法,其特征在于,所述基于海浪循环速度调节参数,对海浪的纹理进行采样,得到海浪纹理采样值,包括:
以所述海浪的纹理以及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为纹理采样的坐标。
6.如权利要求1至5任意一项所述渲染海浪的方法,其特征在于,所述方法还包括:
根据遮罩纹理的采样值和所述实时相对海岸移动的海浪渲染效果,控制所述海浪的显示范围。
7.如权利要求6所述渲染海浪的方法,其特征在于,所述根据遮罩纹理的采样值和所述实时相对海岸移动的海浪渲染效果,控制所述海浪的显示范围,包括:
根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01;
根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02;
采用区间限定函数,对所述第一遮罩范围值Mask01和/或所述第二遮罩范围值Mask02进行限制,得到所述海浪的显示范围。
8.如权利要求7所述渲染海浪的方法,其特征在于,所述根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第一运算得到第一遮罩范围值Mask01,包括:按照计算公式Mask01=(Tex.AreaMask -0.5)+sin (Time *_Speed)*_MaskIntensity计算得到所述第一遮罩范围值Mask01,所述Tex.AreaMask表示所述遮罩纹理的采样值,所述_Speed表示所述海浪移动速度调节参数,所述Time表示当前时间,所述_MaskIntensity表示所述遮罩强度调整参数,所述sin (Time *_Speed)表示对Time *_Speed求取正弦函数值;
所述根据海浪移动速度调节参数、遮罩强度调整参数和所述遮罩纹理的采样值,通过第二运算得到第二遮罩范围值Mask02,包括:按照计算公式Mask02= (Tex.AreaMask -0.5)-sin (Time *_Speed) *_MaskIntensity计算得到所述第二遮罩范围值Mask02。
9.一种渲染海浪的装置,其特征在于,所述装置包括:
获取模块,用于计算场景深度与预设水面面片的像素深度的差值,将所述差值作为与当前时刻相关的平行于海岸线的条带状遮罩的移动方向;计算所述当前时刻与所述当前时刻的正弦值之和,将所述当前时刻与所述当前时刻的正弦值之和作为与所述当前时刻相关的平行于海岸线的条带状遮罩的移动幅度;取所述移动方向与移动幅度之和的小数部分;以所述小数部分为变量,计算得到平行于海岸线的实时条带状遮罩;
海浪线形成模块,用于截取所述实时条带状遮罩,形成实时海浪线;
中间效果形成模块,用于将预先制作的移动海浪纹理映射至所述实时条带状遮罩,得到实时相对海岸移动的海浪渲染效果;
海浪效果形成模块,用于将所述实时相对海岸移动的海浪效果与所述实时海浪线叠加,得到海浪的最终渲染效果。
10.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任意一项所述渲染海浪的方法的步骤。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任意一项所述渲染海浪的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110580640.4A CN113345066B (zh) | 2021-05-26 | 2021-05-26 | 渲染海浪的方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110580640.4A CN113345066B (zh) | 2021-05-26 | 2021-05-26 | 渲染海浪的方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113345066A CN113345066A (zh) | 2021-09-03 |
CN113345066B true CN113345066B (zh) | 2022-07-22 |
Family
ID=77472183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110580640.4A Active CN113345066B (zh) | 2021-05-26 | 2021-05-26 | 渲染海浪的方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113345066B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789650A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于粒子***的海面航迹并行化仿真方法 |
CN103021010A (zh) * | 2012-12-01 | 2013-04-03 | 王爽 | 基于gpu的海浪特效实时渲染 |
CN104574518A (zh) * | 2014-12-26 | 2015-04-29 | 浙江大学 | 具有丰富细节的大规模海洋场景半物理绘制方法 |
CN106530411A (zh) * | 2016-11-17 | 2017-03-22 | 姜雪伟 | 一种基于gpgpu渲染的3d海水的仿真方法和仿真*** |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及*** |
CN107292961A (zh) * | 2017-06-30 | 2017-10-24 | 浙江科澜信息技术有限公司 | 一种实现三维场景中地球海洋水效的方法 |
CN107918949A (zh) * | 2017-12-11 | 2018-04-17 | 网易(杭州)网络有限公司 | 虚拟资源对象的渲染方法、存储介质、处理器及终端 |
CN108230436A (zh) * | 2017-12-11 | 2018-06-29 | 网易(杭州)网络有限公司 | 三维场景中虚拟资源对象的渲染方法 |
CN109876441A (zh) * | 2019-03-13 | 2019-06-14 | 网易(杭州)网络有限公司 | 游戏中的渲染方法及装置、存储介质及电子设备 |
CN112734891A (zh) * | 2021-01-08 | 2021-04-30 | 中国船舶重工集团公司第七0七研究所 | 一种基于Unity3D的水体渲染实现***及方法 |
CN112819941A (zh) * | 2021-03-05 | 2021-05-18 | 网易(杭州)网络有限公司 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181382A1 (en) * | 2003-03-14 | 2004-09-16 | Yaohua Hu | Visualizing the surface of a liquid |
US20050228625A1 (en) * | 2004-04-12 | 2005-10-13 | Lachman Lawrence M | Method and system for modeling ocean waves |
US9070314B2 (en) * | 2012-06-05 | 2015-06-30 | Apple Inc. | Method, system and apparatus for rendering a map according to texture masks |
US11669913B2 (en) * | 2019-01-03 | 2023-06-06 | Lucomm Technologies, Inc. | System for physical-virtual environment fusion |
-
2021
- 2021-05-26 CN CN202110580640.4A patent/CN113345066B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789650A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于粒子***的海面航迹并行化仿真方法 |
CN103021010A (zh) * | 2012-12-01 | 2013-04-03 | 王爽 | 基于gpu的海浪特效实时渲染 |
CN104574518A (zh) * | 2014-12-26 | 2015-04-29 | 浙江大学 | 具有丰富细节的大规模海洋场景半物理绘制方法 |
CN106530411A (zh) * | 2016-11-17 | 2017-03-22 | 姜雪伟 | 一种基于gpgpu渲染的3d海水的仿真方法和仿真*** |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及*** |
CN107292961A (zh) * | 2017-06-30 | 2017-10-24 | 浙江科澜信息技术有限公司 | 一种实现三维场景中地球海洋水效的方法 |
CN107918949A (zh) * | 2017-12-11 | 2018-04-17 | 网易(杭州)网络有限公司 | 虚拟资源对象的渲染方法、存储介质、处理器及终端 |
CN108230436A (zh) * | 2017-12-11 | 2018-06-29 | 网易(杭州)网络有限公司 | 三维场景中虚拟资源对象的渲染方法 |
CN109876441A (zh) * | 2019-03-13 | 2019-06-14 | 网易(杭州)网络有限公司 | 游戏中的渲染方法及装置、存储介质及电子设备 |
CN112734891A (zh) * | 2021-01-08 | 2021-04-30 | 中国船舶重工集团公司第七0七研究所 | 一种基于Unity3D的水体渲染实现***及方法 |
CN112819941A (zh) * | 2021-03-05 | 2021-05-18 | 网易(杭州)网络有限公司 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
Non-Patent Citations (9)
Title |
---|
张维.海洋场景绘制关键技术研究及实现.《实验科学与技术》.2016,(第05期), * |
彭晶等.基于投影网格算法的海面波浪模拟.《武汉工程大学学报》.2018,(第05期), * |
朱安宏.基于分形理论与纹理映射的3D海浪仿真.《现代电子技术》.2009,(第18期), * |
李起成等.动态天空环境下的实时海洋渲染.《计算机辅助设计与图形学学报》.2007,(第02期), * |
罗玉等.基于海浪谱的3D海浪模拟.《武汉理工大学学报(交通科学与工程版)》.2008,(第02期), * |
谢攀等.基于Perlin噪声的海面仿真在Vega Prime中的应用.《计算机应用研究》.2009,(第11期), * |
金文标等.基于频谱的海浪实时模拟.《重庆邮电大学学报(自然科学版)》.2009,(第03期), * |
陆兴华等.基于Android***的自适应跟踪场景渲染技术.《计算机与网络》.2015,(第18期), * |
陆晓.基于OpenGL的海面波浪模拟研究.《无线电通信技术》.2018,(第06期), * |
Also Published As
Publication number | Publication date |
---|---|
CN113345066A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7386153B2 (ja) | 照明をシミュレートするレンダリング方法及び端末 | |
CN108470369B (zh) | 一种水面渲染方法及装置 | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
CN107680042B (zh) | 结合纹理及卷积网络的渲染方法、装置、引擎及存储介质 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
CN110211218B (zh) | 画面渲染方法和装置、存储介质及电子装置 | |
JP2017521766A (ja) | 3dモデルのレンダリング方法および装置ならびに端末デバイス | |
US9224233B2 (en) | Blending 3D model textures by image projection | |
CN108830923B (zh) | 图像渲染方法、装置及存储介质 | |
CN107527322B (zh) | 结合卷积神经网络的渲染方法、装置、引擎及存储介质 | |
CN112819941B (zh) | 渲染水体面的方法、装置、设备和计算机可读存储介质 | |
CN110866967B (zh) | 水波纹渲染方法、装置、设备及存储介质 | |
CN110917617A (zh) | 水波纹图像的生成方法、装置、设备及存储介质 | |
GB2531427A (en) | Graphics processing systems | |
CN108074285B (zh) | 体积云模拟方法和体积云模拟装置 | |
CN114241151A (zh) | 三维模型简化方法、装置、计算机设备和计算机存储介质 | |
CN116681860A (zh) | 一种特征线渲染方法、装置、电子设备及存储介质 | |
CN115512025A (zh) | 模型渲染性能的检测方法、装置、电子设备及存储介质 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN112516595B (zh) | 岩浆渲染方法、装置、设备和存储介质 | |
CN113345066B (zh) | 渲染海浪的方法、装置、设备和计算机可读存储介质 | |
CN110136262B (zh) | 水体虚拟可视化方法和装置 | |
CN109658495B (zh) | 环境光遮蔽效果的渲染方法、装置及电子设备 | |
CN110599576A (zh) | 文件渲染***、方法及电子设备 | |
CN113808246B (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 |