CN110458922A - 图形渲染方法及相关产品 - Google Patents
图形渲染方法及相关产品 Download PDFInfo
- Publication number
- CN110458922A CN110458922A CN201910763285.7A CN201910763285A CN110458922A CN 110458922 A CN110458922 A CN 110458922A CN 201910763285 A CN201910763285 A CN 201910763285A CN 110458922 A CN110458922 A CN 110458922A
- Authority
- CN
- China
- Prior art keywords
- color
- liquid
- frame
- texel
- frame buffering
- 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
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了图形理领域的一种图形渲染方法及相关产品,该方法可包括:使用渲染到纹理的技术将地表模型渲染至帧缓冲;将目标液体渲染至所述帧缓冲;在第一时刻所述目标液体中第一位置的颜色为液体颜色和第一颜色的加权和,在第二时刻所述第一位置的颜色为所述液体颜色和第二颜色的加权和,所述第一颜色为所述第一位置的纹素的颜色,所述第二颜色为所述帧缓冲中第二位置的纹素的颜色,所述第一位置和所述第二位置不同;所述第一位置未处于所述目标液体的表面;将所述帧缓冲中的内容显示至屏幕。本申请实施例中,从液体摇曳的物理原理出发,通过调整目标液体中各个位置的颜色来模拟液体的摇曳效果,实现的摇曳效果更加逼真,符合现实。
Description
技术领域
本申请涉及图形理领域,尤其涉及一种图形渲染方法及相关产品。
背景技术
现实世界液体(水面)受外界因素(风)的影响,从液体外表面观察向液体,会观察到液体与其内的物质一并发生摇曳。同时,根据液体的深度不同,呈现出不同的透明视觉。特别的,当物体部分浸入液体,只有浸入部分发生位移与摇曳,未浸入部分保持不变。在渲染场景或制作动画、影片时,往往需要模拟液体被风吹动后的摇曳效果,让用户的体验更加真实与逼真。
当前,模拟液体摇曳的方法通常只是在液体的表面进行处理(例如对液体的纹理做简单的UV动画),达到类似摇曳的效果。UV动画是一种常用的渲染技巧,经常用来描述水的流动、霓虹灯的闪烁等。实现的原理就是动态修改贴图的UV坐标,使物体表面产生变化。然而,这种方案只是在液体的表面进行处理,模拟的摇曳效果不够逼真。因此,需要研究能够更逼真的模拟液体的摇曳效果的图形渲染方法。
发明内容
本申请实施例公开了一种图形渲染方法及相关产品,能够更逼真的模拟液体的摇曳效果,视觉效果好。
第一方面,本申请实施例提供了一种图形渲染方法,该方法可包括:将地表模型渲染至帧缓冲;所述地表模型包括至少一个凹陷;所述帧缓冲中任一位置对应一个纹素,所述帧缓冲中纹素的初始颜色与所述地表模型中纹素的颜色相同;将目标液体渲染至所述帧缓冲;其中,所述目标液体在所述帧缓冲中对应的渲染区域包含于所述至少一个凹陷在所述帧缓冲中对应的渲染区域;在目标时刻所述帧缓冲中第一位置的颜色为根据所述目标液体的液体颜色和参考颜色得到的,所述参考颜色为所述帧缓冲中第二位置的纹素在所述目标时刻之前的颜色,所述第一位置和所述第二位置不同;将所述帧缓冲中的内容显示至屏幕。
该第一位置可以是所述目标液体在所述帧缓冲中对应的渲染区域中的任意位置。液体颜色为一个常量,例如一个RGB颜色值。在目标时刻将该第一位置的颜色为根据该目标液体的液体颜色和参考颜色得到的,这样产生的效果是该第二位置的液体摇曳至该第一位置。
本申请实施例中,从液体摇曳的物理原理出发,通过调整帧缓冲中各个位置的颜色来模拟液体的摇曳效果,而不是停留在液体表面的处理上,实现的摇曳效果更加逼真,符合现实,能够体验者带来更佳的场景感受与体验。
在一个可选的实现方式中,所述第一位置处于所述目标液体在所述帧缓冲中对应的渲染区域;所述将目标液体渲染至所述帧缓冲包括:
根据所述第一位置在所述目标液体中对应的液体深度,计算所述第一位置的液体透明度;
根据所述第一位置的液体透明度,确定所述液体颜色的第一加权系数以及所述参考颜色的第二加权系数;
根据所述第一加权系数和所述第二加权系数,在所述目标时刻将所述液体颜色和所述参考颜色的加权和设置为所述第一位置的颜色。
在该实现方式中,根据第一位置在目标液体对应的液体深度来计算该第一位置的液体透明度,进而计算该液体透明度设置该第一位置的颜色,能够使得液体随着其所处的深度呈现出相应的透明效果,更加符合真实场景。
在一个可选的实现方式中,所述根据所述第一加权系数和所述第二加权系数,在所述目标时刻将所述液体颜色和所述参考颜色的加权和设置为所述第一位置的颜色之前,所述方法还包括:
根据所述目标时刻的风向,确定偏移量;所述偏移量的方向与所述风向相同;
根据所述第一位置和所述偏移量,确定所述第二位置;
获取所述缓冲帧中所述第二位置的纹素在所述目标时刻之前的颜色,得到所述参考颜色;
计算所述液体颜色和所述参考颜色的加权和。
该偏移量的大小可以是预置的常值,也可以与该目标时刻的风力大小正相关,即可根据该目标时刻的风力的大小来确定该偏移量的大小。根据该目标时刻的风向确定偏移量,进而确定该第二置的液体待摇曳至第一位置。在实际场景中,水池中的液体被风吹动之后发生摇曳,且液体摇曳的方向与风向相同。
在该实现方式中,根据目标时刻的风向确定偏移量,以及根据该偏移量来确定第一位置对应的第二位置,使得液体摇曳的方向与风向一致,更符合实际场景。
在一个可选的实现方式中,所述根据所述第一加权系数和所述第二加权系数,在所述目标时刻将所述液体颜色和所述参考颜色的加权和设置为所述第一位置的颜色之前,所述方法还包括:
采用随机噪声技术,生成偏移量;
根据所述第一位置和所述偏移量,确定所述第二位置;
获取所述缓冲帧中所述第二位置的纹素在所述目标时刻之前的颜色,得到所述参考颜色;
计算所述液体颜色和所述参考颜色的加权和。
采用随机噪声技术,生成偏移量;根据该偏移量来确定第二位置。由于采用随机噪声技术每次生成的偏移量不同,液体在每次摇曳时摇曳的幅度也不同。由于在实际场景中,液体的摇曳幅度是不断变化的,采用随机噪声技术可以随机生成偏移量,使得液体在不同时刻的摇曳幅度不同,更符合实际场景。
在一个可选的实现方式中,所述根据所述第一位置的液体深度,计算所述第一位置的液体透明度之前,所述方法还包括:
计算参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度;所述参考深度值为所述第一位置在所述地表模型的深度图中对应的深度值;所述帧缓冲中任一位置在所述深度图对应一个深度值。
在该实现方式中,可以快速、准确地计算出第一位置的液体深度。
在一个可选的实现方式中,所述计算所述参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度之前,所述方法还包括:
判断所述第一位置在所述目标液体中对应的水面深度值是否小于所述参考深度值;
若是,则执行所述计算参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度的步骤。
在一个可选的实现方式中,所述帧缓冲中第三位置的颜色为所述第三位置的纹素的初始颜色且保持不变,所述第三位置未处于所述目标液体在所述帧缓冲中对应的渲染区域。
在该帧缓冲中,帧缓冲中不同位置的颜色在发生摇曳时会改变,该帧缓冲中除该目标液体对应的渲染区域之外的部分的颜色保持不变。对于一个进入液体的物体来说,其浸入液体中的部分随着液体摇曳(颜色发生改变),没有浸入液体中的部分保持不动。当有风吹拂时,部分浸入液体中的物体,其浸入部分随之摇曳,在液体面上方的部分保持不动。
在该实现方式中,帧缓冲中处于目标液体在帧缓冲中对应的渲染区域之外的区域的颜色保持不变,以便于逼真的模拟液体摇曳场景。
在一个可选的实现方式中,所述第一位置的液体透明度与所述第一位置在所述目标液体中对应的液体深度负相关。
在该实现方式中,第一位置的液体透明度与该第一位置在目标液体中对应的液体深度负相关,符合实际场景。
在一个可选的实现方式中,所述第一加权系数与所述第一位置的液体透明度负相关,所述第二加权系数与所述第一位置的液体透明度正相关。
在该实现方式中,能够使得液体随着其所处的深度呈现出相应的透明效果,更加符合真实场景。
第二方面,本申请实施例提供了一种图形渲染装置,该装置可包括:
处理器,用于将地表模型渲染至帧缓冲;所述地表模型包括至少一个凹陷;所述帧缓冲中任一位置对应一个纹素,所述帧缓冲中纹素的初始颜色与所述地表模型中纹素的颜色相同;
将目标液体渲染至所述帧缓冲;其中,所述目标液体在所述帧缓冲中对应的渲染区域包含于所述至少一个凹陷在所述帧缓冲中对应的渲染区域;在目标时刻所述帧缓冲中第一位置的颜色为根据所述目标液体的液体颜色和参考颜色得到的,所述参考颜色为所述帧缓冲中第二位置的纹素在所述目标时刻之前的颜色,所述第一位置和所述第二位置不同;
将所述帧缓冲中的内容显示至屏幕。
本申请实施例中,从液体摇曳的物理原理出发,通过调整帧缓冲中各个位置的颜色来模拟液体的摇曳效果,而不是停留在液体表面的处理上,实现的摇曳效果更加逼真,符合现实,能够体验者带来更佳的场景感受与体验。
在一个可选的实现方式中,
所述处理器,具体用于根据所述第一位置在所述目标液体中对应的液体深度,计算所述第一位置的液体透明度;
根据所述第一位置的液体透明度,确定所述液体颜色的第一加权系数以及所述参考颜色的第二加权系数;
根据所述第一加权系数和所述第二加权系数,在所述目标时刻将所述液体颜色和所述参考颜色的加权和设置为所述第一位置的颜色。
在一个可选的实现方式中,所述处理器,还用于根据所述目标时刻的风向,确定偏移量;所述偏移量的方向与所述风向相同;
根据所述第一位置和所述偏移量,确定所述第二位置;
获取所述缓冲帧中所述第二位置的纹素在所述目标时刻之前的颜色,得到所述参考颜色;
计算所述液体颜色和所述参考颜色的加权和。
在一个可选的实现方式中,所述处理器,还用于采用随机噪声技术,生成偏移量;
根据所述第一位置和所述偏移量,确定所述第二位置;
获取所述缓冲帧中所述第二位置的纹素在所述目标时刻之前的颜色,得到所述参考颜色;
计算所述液体颜色和所述参考颜色的加权和。
在一个可选的实现方式中,所述处理器,还用于计算参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度;所述参考深度值为所述第一位置在所述地表模型的深度图中对应的深度值;所述帧缓冲中任一位置在所述深度图对应一个深度值。
在一个可选的实现方式中,所述处理器,还用于判断所述第一位置在所述目标液体中对应的水面深度值是否小于所述参考深度值;
若是,则执行所述计算参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度的步骤。
在一个可选的实现方式中,所述帧缓冲中第三位置的颜色为所述第三位置的纹素的初始颜色且保持不变,所述第三位置未处于所述目标液体在所述帧缓冲中对应的渲染区域。
在一个可选的实现方式中,所述第一位置的液体透明度与所述第一位置在所述目标液体中对应的液体深度负相关。
在一个可选的实现方式中,所述第一加权系数与所述第一位置的液体透明度负相关,所述第二加权系数与所述第一位置的液体透明度正相关。
第三方面,本申请实施例提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行如上述第一方面以及任一种可选的实现方式的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面以及任一种可选的实现方式的方法。
第五方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面以及任一种可选的实现方式的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种图形渲染方法流程图;
图2为本申请实施例提供的一种初始化的帧缓冲的示意图;
图3为本申请实施例提供的一种使用渲染到纹理的技术将地表模型渲染至帧缓冲的示意图;
图4为本申请实施例提供的一种水池侧视图;
图5为本申请实施例提供的一种帧缓冲的示意图;
图6为本申请实施例提供的一种液体被风吹动之后的摇曳效果示意图;
图7为本申请实施例提供的一种液体被风吹动之后的摇曳效果示意图;
图8为本申请实施例提供的一种图形渲染装置的结构示意图;
图9为本申请实施例提供的另一种图形渲染装置的结构示意图;
图10为本申请实施例提供的又一种图形渲染装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”、和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
当前,模拟液体摇曳的方法通常只是在液体的表面进行处理(例如对液体的纹理做简单的UV动画),达到类似摇曳的效果。在现实场景中,当液体摇曳时,液体面下的物质与液体一并摇曳,同时液体的摇曳所产生的透明度变化随着液体池的深度变化而改变。但是,当前采用的模拟液体摇曳的方案只是对液体的表面进行处理,并不能模拟液体摇曳时的透明度变化,也不能模拟液面下的物体与液体一并摇曳的情况,模拟的摇曳效果不够逼真。因此,需要研究能够更逼真的模拟液体的摇曳效果的图形渲染方法。本申请实施例提供的图形渲染方法,从液体摇曳的物理原理出发,模拟液体的摇曳效果,而不是停留在对液体的表面进行处理上,使得液体池中液体的摇曳效果更加逼真,符合现实,为体验者带来更佳的场景感受与体验。
本申请实施例提供的图形渲染方法能够应用在游戏、影片、CG动画等场景,能够让用户在游戏、CG动画和影片中体验更加真实的液体摇曳效果。举例来说,终端设备(例如手机)显示水池中的水体随风摇曳的游戏场景时,采用本申请实施例的图形渲染方法模拟液体摇曳效果,可以呈现一个更逼真的液体摇曳效果。又举例来说,在播放影片或CG动画时,可采用本申请实施例的图形渲染方法来模拟一个更逼真的液体摇曳效果。
在上述场景中,采用本申请提供的图形渲染方法模拟液体摇曳效果产生的画面中,摇曳液体的透明度随着液体池底部深度变化而变化,液体的摇曳效果并不只停留在液体表面,能够使用户体验更真实的液体摇曳效果。
请参见图1,图1为本申请实施例提供的一种图形渲染方法流程图,该方法可包括:
101、图形渲染装置将地表模型渲染至帧缓冲。
可选的,图形渲染装置使用渲染到纹理的技术将地表模型渲染至帧缓冲。该图形渲染装置可以是具备图形渲染引擎(中央处理器或者图形处理器)的电子设备,例如手机、平板电脑、笔记本电脑、游戏机、增强现实(Augmented Reality,简称AR)设备、虚拟现实(Virtual Reality,VR)设备、混合现实(Mixed Reality,MR)设备以及服务器等。该地表模型包括至少一个凹陷,地表模型可以是一个三维模型,带有深度/纹理等信息。该地表模型的深度信息可以是该地表模型对应的深度图。该地表模型的纹理可以是使用渲染到纹理的技术渲染的纹理。该地表模型中至少一个凹陷所处的区域在其对应的深度图中对应的深度值大于该地表模型中其他区域在该深度图对应的深度值。该至少一个凹陷用于填充目标液体以得到至少一个水池、池塘等。该帧缓冲中任一位置对应一个纹素,该帧缓冲中纹素的初始颜色与该地表模型中纹素的颜色相同。可选的,图形渲染装置在执行步骤101之前,可初始化一个屏幕大小的帧缓冲,这样帧缓冲中的纹素与地表模型的中的纹素一一对应。例如图形渲染装置使用一个叫做glGenFramebuffers的函数来创建一个帧缓冲对象(FrameBuffer Object,FBO),即初始化的帧缓冲。帧缓冲(Framebuffer),由颜色缓冲,深度缓冲,模板缓冲结合,被存储于内存中。目前所做的渲染操作都是在默认的帧缓冲之上进行的,通过渲染操作可以将各种场景渲染到一个不同的帧缓冲中,可以使我们能够在场景中创建镜子这样的效果,或者做出一些炫酷的特效。图2为本申请实施例提供的一种初始化的帧缓冲的示意图。如图2所示,初始化的帧缓冲的大小与显示帧缓冲中内容的屏幕的大小相同,即帧缓冲的高和宽与该屏幕的高和宽相同。可选的,该地表模型的大小与该帧缓冲的大小可以相同,也可以不同。渲染到纹理的技术是图像处理领域一种常用的技术手段,这里不再详述步骤101的具体实现方式。图3为本申请实施例提供的一种使用渲染到纹理的技术将地表模型渲染至帧缓冲的示意图。图3中,301表示地表模型,3011表示凹陷水池,3012表示地面(301中除3011之外的区域),302表示初始化的帧缓冲。如图3所示,地面模型的高和宽分别与初始化的缓冲帧的高和宽相同,该地表模型包括一个凹陷水池。应理解,地表模型也可包括两个或两个以上凹陷,以便于后续渲染得到两个或两个以上凹陷水池。
102、图形渲染装置将目标液体渲染至帧缓冲。
该目标液体可以是湖水、海水、池塘水、溪水等。请参阅图3,该目标液体处于地表模型的至少一个凹陷中。该目标液体在该帧缓冲中对应的渲染区域包含于该至少一个凹陷在该帧缓冲中对应的渲染区域。在目标时刻该帧缓冲中第一位置的颜色为根据该目标液体的液体颜色和参考颜色得到的,该参考颜色为该帧缓冲中第二位置的纹素在该目标时刻之前的颜色,该第一位置和该第二位置不同。液体颜色为一个常量,例如一个红绿蓝(RedGreen Blue,RGB)颜色值。该第一位置可以是该目标液体在该帧缓冲中对应的渲染区域中任意位置。该目标时刻可以为该目标液体发生摇曳的时刻,即模拟该目标液体摇曳的时刻。可以理解,该第一位置的颜色的调整仅是该目标液体在该帧缓冲中对应的渲染区域中一个位置的颜色调整的具体示例,该渲染区域中各个位置的颜色均会采用相同的方式进行调整。
在一些实施例中,该目标液体发生摇曳时,该第二位置的液体摇曳至该第一位置。可选的,在该目标液体未发生摇曳时,该目标液体在帧缓冲中对应的渲染区域中任一位置的颜色为该任一位置的纹素的颜色与液体颜色的加权和,其中,该任一位置的纹素的颜色为将地表模型渲染到帧缓冲中的颜色;在该目标液体发生摇曳时,该任一位置的颜色为摇曳至该任一位置的位置的纹素的颜色与液体颜色的加权和。摇曳至该任一位置的位置可以是指在该目标液体摇曳时摇曳至该任一位置的位置。举例来说,目标液体摇曳时第二位置摇曳至第一位置,则该第二位置为该第一位置摇曳至该第一位置的位置。举例来说,目标液体在帧缓冲中对应的渲染区域中有A位置、B位置以及C位置,在该目标液体未发生摇曳时,A位置的颜色为液体颜色和A位置的纹素的颜色的加权和,B位置的颜色为液体颜色和B位置的纹素的颜色的加权和,C位置的颜色为液体颜色和C位置的纹素的颜色的加权和;在第一时刻要模拟A位置摇曳至B位置时,B位置的颜色为液体颜色和A位置的纹素在该第一时刻之前的颜色的加权和;在第二时刻要模拟B位置摇曳至C位置,C位置的颜色为液体颜色和B位置的纹素在该第二时刻之前的颜色的加权和。
在一些实施例中,该目标液体发生摇曳时,该第一位置的液体摇曳至该第二位置。可选的,在该目标液体未发生摇曳时,该目标液体在帧缓冲中对应的渲染区域中任一位置的颜色为该任一位置的纹素的颜色与液体颜色的加权和,其中,该任一位置的纹素的颜色为将地表模型渲染到帧缓冲中的颜色;在该目标液体发生摇曳时,该任一位置的颜色为该任一位置摇曳至的位置的纹素的颜色与液体颜色的加权和。举例来说,目标液体在帧缓冲中对应的渲染区域中有A位置、B位置以及C位置,在该目标液体未发生摇曳时,A位置的颜色为液体颜色和A位置的纹素的颜色的加权和,B位置的颜色为液体颜色和B位置的纹素的颜色的加权和,C位置的颜色为液体颜色和C位置的纹素的颜色的加权和;在第一时刻要模拟A位置摇曳至B位置时,A位置的颜色为液体颜色和B位置的纹素在该第一时刻之前的颜色的加权和;在第二时刻要模拟B位置摇曳至C位置,A位置的颜色为液体颜色和B位置的纹素在该第二时刻之前的颜色的加权和。
可选的,该帧缓冲中第三位置的颜色为该第三位置的纹素的初始颜色且保持不变,该第三位置未处于该目标液体在该帧缓冲中对应的渲染区域。应理解,帧缓冲中处于目标液体对应的渲染区域之外的区域中各位置的颜色均保持不变。也就是说,若帧缓冲中某个位置不处于目标液体在帧缓冲中对应的渲染区域,则该位置的颜色保持不变。
103、图形渲染装置将该帧缓冲中的内容显示至屏幕。
本申请实施例中,从液体摇曳的物理原理出发,通过调整目标液体中各个位置的颜色来模拟液体的摇曳效果,而不是停留在液体表面的处理上,实现的摇曳效果更加逼真,符合现实,能够体验者带来更佳的场景感受与体验。
前述实施例未详述步骤102的实现方式,下面描述图形渲染装置使用渲染到纹理的技术将地表模型渲染至帧缓冲的实现方式。
在一个可选的实现方式中,该第一位置处于该目标液体在该帧缓冲中对应的渲染区域;将目标液体渲染至该帧缓冲包括:
根据该第一位置在目标液体中对应的液体深度,计算该第一位置的液体透明度;该第一位置的液体透明度与该第一位置在该目标液体中对应的液体深度负相关;
在该目标时刻将该液体颜色和该参考颜色的加权和设置为该第一位置的颜色;该液体颜色的加权系数与该第一位置的液体透明度负相关,该第一颜色的加权系数与该第一位置的液体透明度正相关。负相关(Negative correlation),是指两个变量变动方向相反,一个变量由大到小变化时,另一个变量由小到大变化,或者,一个变量由小到大变化时,另一个变量由大到小变化。正相关(Positive correlation),是指两个变量变动方向相同,一个变量由大到小或由小到大变化时,另一个变量亦由大到小或由小到大变化。
可选的,图形渲染装置可根据该第一位置的液体透明度,确定该液体颜色的第一加权系数以及该参考颜色的第二加权系数。示例性的,第一加权系数为第一位置的液体透明度,第二加权系数为(1-第一位置的液体透明度)。其中,该第一位置的液体透明度大于0且小于1。在该目标时刻将该液体颜色和该参考颜色的加权和设置为该第一位置的颜色可以是:根据该第一加权系数和该第二加权系数,在该目标时刻将该液体颜色和该参考颜色的加权和设置为该第一位置的颜色。
可选的,图形渲染装置在根据该第一位置在目标液体中对应的液体深度,计算该第一位置的液体透明度之前,可以判断该第一位置在该目标液体中对应的水面深度值是否小于该参考深度值;若是,则执行所述算参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度的步骤。该参考深度值为该第一位置在该地表模型的深度图中对应的深度值;该帧缓冲中任一位置在该深度图对应一个深度值。通过这种方式可以准确、快速的确定帧缓冲中任一位置是否位于液体中。该第一位置在目标液体中对应的液体深度可以是指目标液体的水面至该第一位置在该目标液体对应的底部的距离,该第一位置在该目标液体中对应的水面深度值是可以指图形渲染装置确定的人眼或摄像头至目标液体的水面的距离。
在实际应用中,图形渲染装置可计算得到该目标液体中任意位置的液体深度,这也是本领常用的技术手段。在一些实施例中,图形渲染装置可计算目标液体中任一位置的水面深度值与该任一位置在地表模型的深度图中的深度值之差,以得到该任一位置的液体深度。图4为本申请实施例提供的一种水池侧视图。图4中的黑色圆点表示目标液体中的一个位置,箭头401指示的距离为该位置的水面深度值表示的距离,该位置的液体深度为该位置至水池底部的距离,即图中的箭头402指示的距离,该位置的地表深度值对应的距离为箭头401指示的距离和箭头402指示的距离之和。该位置的地表深度值是该位置在该地表模型的深度图中对应的深度值。该地表模型的深度图是图形渲染装置预先获取或预先设置好的,该图形渲染装置可采用本领域一些现有技术来计算得到该目标液体中任意位置的水面深度值。在实际应用中,图形处理装置根据实际情况设置液体透明度区间,例如海水的透明度的区间为[0.2,0.6],游泳池中的水的透明度区间为[0.2,0.8]。应理解,液体透明度的数值越大,则该液体越不透明。示例性的,假定目标液体透明度区间为[0.2,0.8],第一位置的液体深度为x,则该第一位置的液体透明度为y=0.8x+0.2;其中,x为归一化之后的数值,该x的数值范围为[0.0,1.0],可见任意位置的液体透明度不小于0.2且不大于0.8。示例性的,假定目标液体透明度区间为[0.3,0.7],第一位置的液体深度为x,则该第一位置的液体透明度为y=0.7x+0.3;其中,x为归一化之后的数值,该x的数值范围为[0.0,1.0],可见任意位置的液体透明度不小于0.3且不大于0.7。应理解,图形渲染装置可存储有目标映射公式(例如y=0.8x+0.2),利用该目标映射公式可计算得到目标液体中各位置的液体透明度。假定目标液体透明度区间为[a,b],则该目标映射公式为y=ax+b;其中,a和b均为大于0且小于1的实数,x为目标液体中某一位置的液体深度,y为该位置的液体透明度。
可选的,图形渲染装置可采用如下公式计算目标液体在帧缓冲中对应的渲染区域中任一位置在第一时刻的颜色:
P=液体颜色×液体透明度+任一位置的纹素的颜色×(1-液体透明度);(1)
其中,P为该任一位置的颜色。从公式(1)可以看出,该任一位置的颜色为液体颜色和该任一位置的纹素的颜色的加权和;该任一位置的液体颜色的加权系数为该任一位置的液体透明度,该任一位置的纹素的颜色(例如第一颜色)的加权系数为(1-该任一位置的液体透明度)。液体透明度的越大,表示液体越不透明。因此,液体颜色的加权系数与液体透明度负相关;任一位置的纹素的颜色的加权系数与液体透明度正相关。应理解,图形渲染装置可采用与公式(1)计算目标液体在帧缓冲中对应的渲染区域中各位置在第一时刻的颜色。该第一时刻为目标液体未发生摇曳的时刻。也就是说,当目标液体未发生摇曳时,目标液体在帧缓冲中对应的渲染区域中各位置的颜色都满足公式(1)。在该目标液体未发生摇曳时,该目标液体中任一位置的颜色为该任一位置的纹素的颜色与液体颜色的加权和。图5为本申请实施例提供的一种帧缓冲的示意图。图5中,501表示渲染地表模型至初始的帧缓冲得到的帧缓冲,5011表示凹陷水池,5012表示地面(501中除5011之外的区域),502表示风向,即西北风。该帧缓冲中每个位置对应一个纹素,每个纹素对应一个颜色,因此图形渲染装置可获得该帧缓冲中各位置的纹素的颜色。
可选的,图形渲染装置可采用如下公式计算目标液体在帧缓冲中对应的渲染区域中任一位置在第二时刻(对应于目标时刻)的颜色:
P=液体颜色×液体透明度+参考位置的纹素的颜色×(1-液体透明度);(2)
其中,P为该任一位置的颜色。从公式(2)可以看出,该任一位置的颜色为液体颜色和该参考位置的纹素在第二时刻之前的颜色的加权和;该任一位置的液体颜色的加权系数为该任一位置的液体透明度,该参考位置的纹素的颜色的加权系数为(1-该任一位置的液体透明度)。该参考位置可以理解为液体在发生摇曳时摇曳至该任一位置的位置;也可以理解为在液体摇曳时该任一位置摇曳至的位置。举例来说,目标液体在帧缓冲中对应的渲染区域中第一位置的坐标为(c,d),该第一位置的液体发生摇曳时的偏移量为(5,5),则该第一位置摇曳至的第二位置的坐标为(c-5,d-5)。应理解,图形渲染装置可采用公式(2)计算目标液体在帧缓冲中对应的渲染区域中各位置在第二时刻的颜色。该第二时刻为目标液体发生摇曳的时刻,对应于目标时刻。也就是说,当目标液体发生摇曳时,该目标液体在帧缓冲中对应的渲染区域中各位置的颜色都满足公式(2)。可以理解,在该目标液体发生摇曳时,该任一位置的颜色为该任一位置摇曳至的位置的纹素在本次摇曳之前的颜色与液体颜色的加权和。纹素的颜色可以为一个RGB颜色值。
在该实现方式中,根据帧缓冲中各位置的液体透明度来设置各位置的颜色,能够使得液体随着其所处的深度呈现出相应的透明效果,更加符合真实场景。另外,通过调整目标水体中各位置的颜色来模拟液体的摇曳效果,模拟的摇曳效果更符合真实场景。
在实际场景中,通常是水池中的液体被风吹动后才会摇曳效果。下面介绍本申请实施例提供的一种根据风向来模拟液体摇曳效果的方式。
在一个可选的实现方式中,图形渲染装置在目标时刻将液体颜色和参考颜色的加权和设置为该第一位置的颜色之前,可采用以下方式计算该第一位置待设置的颜色:
根据该目标时刻的风向,确定偏移量;该偏移量的方向与该风向相同;
根据该第一位置和该偏移量,确定该第二位置;
获取该缓冲帧中该第二位置的纹素在目标时刻之前的颜色,得到该参考颜色;
计算该液体颜色和该参考颜色的加权和。
在实际场景中,水池中的液体被风吹动之后发生摇曳,且液体摇曳的方向与风向相同。通过风向来确定目标液体在帧缓冲中对应的渲染区域中各位置摇曳的方向,即该目标液体的摇曳方向,符合实际场景。根据该目标时刻的风向确定偏移量,进而确定该第一位置的液体摇曳至的第二位置。该偏移量的大小可以是预置的常值,也可以与该第二时刻的风力大小正相关,即图形渲染装置可根据该目标时刻的风力的大小来确定该偏移量的大小,也可以是其他方式设定的,在此不做限定。图形渲染装置可根据该偏移量确定目标液体在该帧缓冲中对应的渲染区域中各位置摇曳至的位置,例如第一位置摇曳至第二位置。举例来说,目标液体在该帧缓冲中对应的渲染区域中某个位置的坐标为(50,50),偏移量为(5,5),根据该位置和该偏移量确定的位置的坐标为(45,45)。该帧缓冲中每个位置对应一个纹素,每个纹素对应一个颜色,因此图形渲染装置可获得该帧缓冲中各位置的纹素的颜色。该液体颜色和该参考颜色可以均为一个RGB颜色值。假定液体颜色为(A,B,C),第二颜色为(D,E,F),该液体颜色的加权系数为0.6,该第二颜色的加权系数为0.4,则该液体颜色和该第二颜色的加权和为(0.6A+0.4D,0.6B+0.4E,0.6C+0.4F)。图6为本申请实施例提供的一种液体被风吹动之后的摇曳效果示意图。图6中,601表示风向,602表示凹陷水池,603表示波纹,604表示石头未处于液体的部分,605表示该石头处于液体的部分,图6中的箭头指示的距离表示液体摇曳时纹素的跨度。如图6所示,风向为西北方向,帧缓冲的宽为w、帧缓冲的高为h,纹素每次跨度(即偏移量的大小)为5个单位(纹素),摇曳频率为0.5秒,液体往东南方向摇曳出去时,帧缓冲中任一的纹素(即texel)位置从其当前位置往右及上/下偏移5个单位的倍数(例如第一位置往右及上/下偏移5的倍数至第二位置)。为模拟图6中的液体摇曳效果,图形渲染装置在液体发生摇曳时,将目标液体在该帧缓冲中对应的渲染区域中任一位置的颜色设置为该任一位置的液体颜色和该任一位置摇曳至的位置的纹素在本次摇曳之前的颜色之和。其中,该任一位置摇曳至的位置为图形渲染装置根据该任一位置和偏移量确定的位置。例如第一位置摇曳至的位置为第二位置。图7为本申请实施例提供的另一种液体被风吹动之后的摇曳效果示意图。图7中,701表示凹陷水池,702表示波纹,703表示石头未处于液体的部分,704表示该石头处于液体的部分,图7中的箭头指示的距离表示液体摇曳时纹素的跨度。如图7所示,液体往西北方向摇曳回来时,帧缓冲中任一纹素的(即texel)位置从其当前位置往左及下/上偏移5个单位的倍数。应理解,液体摇曳时,图形渲染装置可根据实际需要设置纹素的跨度以及液体的摇曳频率。
在该实现方式中,根据目标时刻的风向确定偏移量,以及根据该偏移量来确定第一位置的液体摇曳至的第二位置,使得液体摇曳的方向与风向一致,更符合实际场景。
在实际场景中,液体摇曳时每次摇曳的幅度往往不一致。下面介绍一种采用随机噪声(nosie)技术来生成偏移量,进而使得液体每次摇曳时摇曳幅度不同。
在一个可选的实现方式中,在目标时刻将液体颜色和参考颜色的加权和设置为第一位置的颜色之前,该方法还包括:
采用随机噪声技术,生成偏移量;
根据该第一位置和该偏移量,确定该第二位置;
获取该缓冲帧中该第二位置的纹素在目标时刻之前的颜色,得到参考颜色;
计算该液体颜色和该参考颜色的加权和。
采用随机噪声技术,生成偏移量;根据该偏移量来确定第二位置。图形渲染装置可在液体每次摇曳之前生成一个随机噪声作为偏移量。由于采用随机噪声技术每次生成的偏移量不同,液体在每次摇曳时摇曳的幅度也不同。由于在实际场景中,液体的摇曳幅度是不断变化的,采用随机噪声技术可以随机生成偏移量,使得液体在不同时刻的摇曳幅度不同,更符合实际场景。
下面结合图形渲染装置的结构来描述前述实施例中图形渲染方法的具体实现方式。图8为本申请实施例提供的一种图形渲染装置的结构示意图。如图8所示,该图形渲染装置可包括:
处理器801,用于将地表模型渲染至帧缓冲;该地表模型包括至少一个凹陷;该帧缓冲中任一位置对应一个纹素,该帧缓冲中纹素的初始颜色与该地表模型中纹素的颜色相同;
将目标液体渲染至该帧缓冲;其中,该目标液体在该帧缓冲中对应的渲染区域包含于该至少一个凹陷在该帧缓冲中对应的渲染区域;在目标时刻该帧缓冲中第一位置的颜色为根据该目标液体的液体颜色和参考颜色得到的,该参考颜色为该帧缓冲中第二位置的纹素在该目标时刻之前的颜色,该第一位置和该第二位置不同;
将该帧缓冲中的内容显示至屏幕。
处理器801可以是中央处理器(CentralProcessingUnit,CPU),也可以是图形处理器(GraphicsProcessingUnit,GPU)。应理解,屏幕802不是必要的,图形渲染装置可不包括屏幕802。也就是说,处理器801就可实现前述实施例中的图形渲染方法。该图形渲染装置可以是终端设备,例如手机、平板电脑、笔记本电脑等。该图形渲染装置在显示游戏画面、CG动画或者播放影片时,采用前述实施例中的图形渲染方法对显示的画面进行渲染,以模拟液体摇曳效果。
可选的,图形渲染装置还包括存储器803,存储器803存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器801执行时使该处理器执行前述实施例中实现的各操作。
本申请实施例中,从液体摇曳的物理原理出发,通过调整目标液体中各个位置的颜色来模拟液体的摇曳效果,而不是停留在液体表面的处理上,实现的摇曳效果更加逼真,符合现实,能够体验者带来更佳的场景感受与体验。
在一个可选的实现方式中,第一位置处于该目标液体在该帧缓冲中对应的渲染区域;
处理器801,具体用于根据该第一位置在该目标液体中对应的液体深度,计算该第一位置的液体透明度;
根据该第一位置的液体透明度,确定该液体颜色的第一加权系数以及该参考颜色的第二加权系数;
根据该第一加权系数和该第二加权系数,在该目标时刻将该液体颜色和该参考颜色的加权和设置为该第一位置的颜色
在该实现方式中,根据目标液体中各位置的液体透明度来设置各位置的颜色,能够使得液体随着其所处的深度呈现出相应的透明效果,更加符合真实场景。
在一个可选的实现方式中,处理器801,还用于根据该目标时刻的风向,确定偏移量;该偏移量的方向与该风向相同;
根据该第一位置和该偏移量,确定该第二位置;
获取该缓冲帧中该第二位置的纹素在该目标时刻之前的颜色,得到该参考颜色;
计算该液体颜色和该参考颜色的加权和。
在该实现方式中,根据目标时刻的风向确定偏移量,以及根据该偏移量来确定第一位置的液体摇曳至的第二位置,使得液体摇曳的方向与风向一致,更符合实际场景。
在一个可选的实现方式中,处理器801,还用于采用随机噪声技术,生成偏移量;
根据该第一位置和该偏移量,确定该第二位置;
获取该缓冲帧中该第二位置的纹素在该目标时刻之前的颜色,得到该参考颜色;
计算该液体颜色和该参考颜色的加权和。
在该实现方式中,采用随机噪声技术可以随机生成偏移量,使得液体在不同时刻的摇曳幅度不同,更符合实际场景。
在一个可选的实现方式中,处理器802,还用于计算参考深度值与该第一位置的水面深度值之差以得到该第一位置的液体深度;该参考深度值为该第一位置在该地表模型的深度图中对应的深度值;该帧缓冲中任一位置在该深度图对应一个深度值。
在该实现方式中,可以快速、准确地计算出第一位置在目标液体中对应的液体深度。
在一个可选的实现方式中,处理器802,还用于判断该第一位置在该目标液体中对应的水面深度值是否小于该参考深度值;
若是,则执行该算参考深度值与该第一位置的水面深度值之差以得到该第一位置的液体深度的步骤。
在一个可选的实现方式中,该帧缓冲中第三位置的颜色为该第三位置的纹素的初始颜色且保持不变,该第三位置未处于该目标液体在该帧缓冲中对应的渲染区域。
在一个可选的实现方式中,该第一位置的液体透明度与该第一位置在该目标液体中对应的液体深度负相关。
在一个可选的实现方式中,该第一加权系数与该第一位置的液体透明度负相关,该第二加权系数与该第一位置的液体透明度正相关。
应理解以上图形渲染装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个单元可以为单独设立的处理元件,也可以集成同一个芯片中实现,此外,也可以以程序代码的形式存储于控制器的存储元件中,由处理器的某一个处理元件调用并执行以上各个单元的功能。此外各个单元可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如CPU、GPU,还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application-specific integrated circuit,简称:ASIC),或,一个或多个微处理器(英文:digital signal processor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:field-programmable gate array,简称:FPGA)等。
进一步地,请参见图9,是本发明实施例提供的另一种图形渲染装置的结构示意图。如图9所示,该图形渲染装置900可以包括:至少一个处理器901,例如GPU,至少一个网络接口904,用户接口903,存储器905,至少一个通信总线902。其中,通信总线902用于实现这些组件之间的连接通信。其中,用户接口903可以包括显示屏(例如触摸屏)、键盘(Keyboard),可选用户接口903还可以包括标准的有线接口、无线接口。网络接口904可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器905可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器905可选地还可以是至少一个位于远离前述处理器901的存储装置。如图9所示,作为一种计算机存储介质的存储器905中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。该图形渲染装置可以在显示游戏画面、CG动画或者播放影片时,采用前述实施例中的图形渲染方法对显示的画面进行渲染,以模拟液体摇曳效果。
在图9所示的图形渲染装置900中,网络接口904主要用于连接图形渲染装置和服务器;而用户接口903主要用于为用户提供输入的接口;而处理器901可以用于调用存储器905中存储的设备控制应用程序,以实现:将地表模型渲染至帧缓冲;该地表模型包括至少一个凹陷;该帧缓冲中任一位置对应一个纹素,该帧缓冲中纹素的初始颜色与该地表模型中纹素的颜色相同;将目标液体渲染至该帧缓冲;其中,该目标液体在该帧缓冲中对应的渲染区域包含于该至少一个凹陷在该帧缓冲中对应的渲染区域;在目标时刻该帧缓冲中第一位置的颜色为根据该目标液体的液体颜色和参考颜色得到的,该参考颜色为该帧缓冲中第二位置的纹素在该目标时刻之前的颜色,该第一位置和该第二位置不同;将该帧缓冲中的内容显示至屏幕。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且该计算机存储介质中存储有前文提及的图形渲染装置所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前述实施例中对该图形渲染方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
进一步地,请参见图10,是本发明实施例提供的一种服务器的结构示意图,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1022(例如,一个CPU,一个GPU)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。服务器1000可以为本发明提供的图形渲染装置。
服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
在一些实施例中,服务器1000可执行实现如下操作:将地表模型渲染至帧缓冲;该地表模型包括至少一个凹陷;该帧缓冲中任一位置对应一个纹素,该帧缓冲中纹素的初始颜色与该地表模型中纹素的颜色相同;将目标液体渲染至该帧缓冲;其中,该目标液体在该帧缓冲中对应的渲染区域包含于该至少一个凹陷在该帧缓冲中对应的渲染区域;在目标时刻该帧缓冲中第一位置的颜色为根据该目标液体的液体颜色和参考颜色得到的,该参考颜色为该帧缓冲中第二位置的纹素在该目标时刻之前的颜色,该第一位置和该第二位置不同;将该帧缓冲中的内容显示至屏幕。可以理解,在一些应用场景中,服务器来实现前述实施例中的渲染操作,终端设备从服务器获取渲染后的画面,并显示。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,该的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种图形渲染方法,其特征在于,包括:
将地表模型渲染至帧缓冲;所述地表模型包括至少一个凹陷;所述帧缓冲中任一位置对应一个纹素,所述帧缓冲中纹素的初始颜色与所述地表模型中纹素的颜色相同;
将目标液体渲染至所述帧缓冲;其中,所述目标液体在所述帧缓冲中对应的渲染区域包含于所述至少一个凹陷在所述帧缓冲中对应的渲染区域;在目标时刻所述帧缓冲中第一位置的颜色为根据所述目标液体的液体颜色和参考颜色得到的,所述参考颜色为所述帧缓冲中第二位置的纹素在所述目标时刻之前的颜色,所述第一位置和所述第二位置不同;
将所述帧缓冲中的内容显示至屏幕。
2.根据权利要求1所述的方法,其特征在于,所述第一位置处于所述目标液体在所述帧缓冲中对应的渲染区域;所述将目标液体渲染至所述帧缓冲包括:
根据所述第一位置在所述目标液体中对应的液体深度,计算所述第一位置的液体透明度;
根据所述第一位置的液体透明度,确定所述液体颜色的第一加权系数以及所述参考颜色的第二加权系数;
根据所述第一加权系数和所述第二加权系数,在所述目标时刻将所述液体颜色和所述参考颜色的加权和设置为所述第一位置的颜色。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一加权系数和所述第二加权系数,在所述目标时刻将所述液体颜色和所述参考颜色的加权和设置为所述第一位置的颜色之前,所述方法还包括:
根据所述目标时刻的风向,确定偏移量;所述偏移量的方向与所述风向相同;
根据所述第一位置和所述偏移量,确定所述第二位置;
获取所述缓冲帧中所述第二位置的纹素在所述目标时刻之前的颜色,得到所述参考颜色;
计算所述液体颜色和所述参考颜色的加权和。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第一加权系数和所述第二加权系数,在所述目标时刻将所述液体颜色和所述参考颜色的加权和设置为所述第一位置的颜色之前,所述方法还包括:
采用随机噪声技术,生成偏移量;
根据所述第一位置和所述偏移量,确定所述第二位置;
获取所述缓冲帧中所述第二位置的纹素在所述目标时刻之前的颜色,得到所述参考颜色;
计算所述液体颜色和所述参考颜色的加权和。
5.根据权利要求2所述的方法,其特征在于,所述根据所述第一位置的液体深度,计算所述第一位置的液体透明度之前,所述方法还包括:
计算参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度;所述参考深度值为所述第一位置在所述地表模型的深度图中对应的深度值;所述帧缓冲中任一位置在所述深度图对应一个深度值。
6.根据权利要求5所述的方法,其特征在于,所述计算所述参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度之前,所述方法还包括:
判断所述第一位置在所述目标液体中对应的水面深度值是否小于所述参考深度值;
若是,则执行所述计算参考深度值与所述第一位置的水面深度值之差以得到所述第一位置的液体深度的步骤。
7.一种图形渲染装置,其特征在于,包括:
处理器,用于将地表模型渲染至帧缓冲;所述地表模型包括至少一个凹陷;所述帧缓冲中任一位置对应一个纹素,所述帧缓冲中纹素的初始颜色与所述地表模型中纹素的颜色相同;
将目标液体渲染至所述帧缓冲;其中,所述目标液体在所述帧缓冲中对应的渲染区域包含于所述至少一个凹陷在所述帧缓冲中对应的渲染区域;在目标时刻所述帧缓冲中第一位置的颜色为根据所述目标液体的液体颜色和参考颜色得到的,所述参考颜色为所述帧缓冲中第二位置的纹素在所述目标时刻之前的颜色,所述第一位置和所述第二位置不同;
将所述帧缓冲中的内容显示至屏幕。
8.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求1至6中任一项所述的方法。
9.一种电子设备,其特征在于,包括:存储器,用于存储程序;屏幕,用于显示图像;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被移动设备的处理器执行时,使所述处理器执行权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910763285.7A CN110458922B (zh) | 2019-08-14 | 2019-08-14 | 图形渲染方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910763285.7A CN110458922B (zh) | 2019-08-14 | 2019-08-14 | 图形渲染方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110458922A true CN110458922A (zh) | 2019-11-15 |
CN110458922B CN110458922B (zh) | 2022-12-27 |
Family
ID=68487472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910763285.7A Active CN110458922B (zh) | 2019-08-14 | 2019-08-14 | 图形渲染方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110458922B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112138378A (zh) * | 2020-09-22 | 2020-12-29 | 网易(杭州)网络有限公司 | 2d游戏中闪光效果的实现方法、装置、设备及存储介质 |
CN112489101A (zh) * | 2020-11-04 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 基于球谐函数的场景信息的表达方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040066386A1 (en) * | 2002-10-04 | 2004-04-08 | Criterion Software Limited | Three-dimensional computer graphics |
US20050007372A1 (en) * | 2003-06-26 | 2005-01-13 | Canon Kabushiki Kaisha | Rendering successive frames in a graphic object system |
US20080094395A1 (en) * | 2006-10-18 | 2008-04-24 | Samsung Electronics Co., Ltd. | Method, medium, and system rendering 3D graphic data to enhance image quality of transparent objects |
US20140354645A1 (en) * | 2013-05-29 | 2014-12-04 | Imagination Technologies Limited | Relightable texture for use in rendering an image |
US20170084055A1 (en) * | 2015-09-22 | 2017-03-23 | Samsung Electronics Co., Ltd. | Method and apparatus for processing compressed texture |
CN110111408A (zh) * | 2019-05-16 | 2019-08-09 | 洛阳众智软件科技股份有限公司 | 基于图形学的大场景快速求交方法 |
-
2019
- 2019-08-14 CN CN201910763285.7A patent/CN110458922B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040066386A1 (en) * | 2002-10-04 | 2004-04-08 | Criterion Software Limited | Three-dimensional computer graphics |
US20050007372A1 (en) * | 2003-06-26 | 2005-01-13 | Canon Kabushiki Kaisha | Rendering successive frames in a graphic object system |
US20080094395A1 (en) * | 2006-10-18 | 2008-04-24 | Samsung Electronics Co., Ltd. | Method, medium, and system rendering 3D graphic data to enhance image quality of transparent objects |
US20140354645A1 (en) * | 2013-05-29 | 2014-12-04 | Imagination Technologies Limited | Relightable texture for use in rendering an image |
US20170084055A1 (en) * | 2015-09-22 | 2017-03-23 | Samsung Electronics Co., Ltd. | Method and apparatus for processing compressed texture |
CN110111408A (zh) * | 2019-05-16 | 2019-08-09 | 洛阳众智软件科技股份有限公司 | 基于图形学的大场景快速求交方法 |
Non-Patent Citations (1)
Title |
---|
朱礼楠: "面向多视图三维重建的纹理映射方法", 《中国优秀硕士论文全文库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112138378A (zh) * | 2020-09-22 | 2020-12-29 | 网易(杭州)网络有限公司 | 2d游戏中闪光效果的实现方法、装置、设备及存储介质 |
CN112489101A (zh) * | 2020-11-04 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 基于球谐函数的场景信息的表达方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110458922B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109377546B (zh) | 虚拟现实模型渲染方法及装置 | |
CN108479067B (zh) | 游戏画面的渲染方法和装置 | |
CN106652007B (zh) | 虚拟海面渲染方法及系统 | |
CN103503032B (zh) | 图形硬件中的纹理化 | |
EP2973423B1 (en) | System and method for display of a repeating texture stored in a texture atlas | |
CN110458930A (zh) | 三维地图的渲染方法、装置及存储介质 | |
CN108579082A (zh) | 游戏中显示光影的方法、装置和终端 | |
CN106898040A (zh) | 虚拟资源对象渲染方法和装置 | |
WO2023185262A1 (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
CN110400372B (zh) | 一种图像处理的方法及装置、电子设备、存储介质 | |
CN107180441A (zh) | 生成眼睛图像的方法和装置 | |
CN107886552A (zh) | 贴图处理方法和装置 | |
WO2019052313A1 (zh) | 一种液体仿真方法、液体交互方法及装置 | |
CN109712226A (zh) | 虚拟现实的透明模型渲染方法及装置 | |
CN110458959A (zh) | 体三维显示仿真方法、装置、设备及计算机可读存储介质 | |
CN110458922A (zh) | 图形渲染方法及相关产品 | |
WO2008014384A2 (en) | Real-time scenery and animation | |
CN108765520A (zh) | 文本信息的渲染方法和装置、存储介质、电子装置 | |
CN108074285B (zh) | 体积云模拟方法和体积云模拟装置 | |
CN115228083A (zh) | 一种资源渲染方法及装置 | |
CN106355631A (zh) | 虚拟现实中实时阴影的显示方法 | |
CN112231020B (zh) | 模型切换方法和装置、电子设备和存储介质 | |
CN114937103A (zh) | 动态效果的模型渲染方法、装置、电子设备及存储介质 | |
CN103733221B (zh) | 通过对不可分离的fir滤波器进行划分的图像模糊 | |
CN114245907A (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 |