一种图像渲染方法、装置、设备及存储介质与流程

文档序号:19421700发布日期:2019-12-14 01:34阅读:246来源:国知局
一种图像渲染方法、装置、设备及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种图像渲染方法、装置、设备及存储介质。



背景技术:

目前很多应用中都会以图像形式为用户提供相应交互服务,而在图像形式为用户提供交互服务时,为了吸引用户关注提高画面质感和用户沉浸感,往往是以多种实现不同画面效果的贴图叠加的方式进行渲染。

一般情况下,针对待绘制的场景会指定一张基础图像,将这张基础图像进行切分得到n个基础图像分块,根据视口大小绘制对应的目标基础图像分块,同样的,对每种具有其他画面效果的图像即效果贴图也分别进行切分得到n个对应的效果贴图分块,根据视口大小将对应的效果贴图分块分别叠加绘制在基础图像上以实现最终的效果。

目前这种图像渲染方法针对基础图像和每种效果图像都需要单独分块绘制,绘制次数随着效果贴图的个数以及分块个数成线性增长,而绘制次数越多对处理器的资源占用时间就会越长,从而会影响处理器的处理性能,最为明显的是会直接导致图像渲染效率降低,以图像交互为基础的应用的响应速率就降低。



技术实现要素:

本申请实施例提供了一种图像渲染方法、装置、设备及存储介质,能够有效地减少图像渲染过程中的绘制次数,提高图像渲染效率。

有鉴于此,本申请第一方面提供了一种图像渲染方法,包括:

获取待渲染画面中指定的基础图像;

获取与所述基础图像对应的画面效果指示数组,所述画面效果指示数组中包括所述基础图像的像素位置对应的画面效果指示值;

将所述基础图像渲染到与设备屏幕尺寸匹配的渲染纹理对象上得到基础纹理贴图;

根据所述画面效果指示数组对所述基础纹理贴图进行颜色混合渲染。

本申请第二方面提供一种图像渲染装置,包括:

第一获取模块,用于获取待渲染画面中指定的基础图像;

第二获取模块,用于获取与所述基础图像对应的画面效果指示数组,所述画面效果指示数组中包括所述基础图像的像素位置对应的画面效果指示值;

第一渲染模块,用于将所述基础图像渲染到与设备屏幕尺寸匹配的渲染纹理对象上得到基础纹理贴图;

第二渲染模块,用于根据所述画面效果指示数组对所述基础纹理贴图进行颜色混合渲染。

本申请第三方面提供一种终端设备,包括:

中央处理器、图形处理器、存储器以及显示器;

其中,所述存储器用于存储计算机程序;

所述中央处理器用于执行所述计算机程序,并在需要画面渲染时控制所述图形处理器执行计算机程序以实现第一方面所述的图像渲染方法;

所述显示器用于在所述图形处理器的控制下显示图像画面。

本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面所述的图像渲染方法。

本申请第五方面提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面所述的图像渲染方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例提供了一种图像渲染方法,该方法综合考虑了图像中的阴影、高光、遮挡等效果,针对图像中各像素位置相应地确定能够表示其最终颜色显示效果的画面效果指示值,并利用各像素位置各自对应的画面效果指示值组成了画面效果指示数组;在对图像进行渲染时,获取待渲染画面中指定的基础图像以及该基础图像对应的画面效果指示数组,将基础图像渲染至与设备屏幕尺寸匹配的渲染纹理对象上得到基础纹理贴图后,利用所获取的画面效果指示数组对该基础纹理贴图中的像素值进行调整,进而基于调整后的像素值完成图像渲染。相比相关技术中在基础纹理贴图的基础上叠加渲染各个效果图的图像渲染方法,本申请实施例提供的图像渲染方法利用画面效果指示数组对基础纹理贴图中的像素值进行调整,实现画面显示效果的添加,省略了对各个效果图进行渲染的过程,也相应地节省了图像渲染过程中所需耗费的计算量,有效地提升了图像渲染效率。

附图说明

图1为本申请实施例提供的图像渲染方法的应用场景示意图;

图2为本申请实施例提供的图像渲染方法的流程示意图;

图3为本申请实施例提供的图像渲染方法的原理示意图;

图4为采用本申请实施例提供的图像渲染方法渲染得到的游戏画面;

图5为本申请实施例提供的一种图像渲染装置的结构示意图;

图6为本申请实施例提供的另一种图像渲染装置的结构示意图;

图7为本申请实施例提供的又一种图像渲染装置的结构示意图;

图8为本申请实施例提供的一种终端设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

采用相关技术中的图像渲染方法进行图像渲染时,通常需要在画面背景图的基础上叠加渲染阴影、高光、遮挡等效果贴图,如此多次渲染各种效果贴图将耗费大量的计算资源,导致图像渲染效率降低,并且多次渲染得到的效果贴图还会在一定程度上造成存储空间的浪费。

针对上述技术问题,本申请实施例提供了一种图像渲染方法,该方法将图像中的阴影、高光、遮挡等效果综合起来,以一组数据(即画面效果指示数组)来表征图像中各像素位置最终的颜色效果值;针对待渲染画面进行图像渲染时,利用该画面效果指示数组对基础纹理贴图中的像素值进行调整,该基础纹理贴图是将待渲染画面中指定的基础图像渲染至与设备屏幕尺寸匹配的渲染纹理对象上得到的,进而基于调整后的像素值完成对于待渲染画面的图像渲染。如此,无需多次渲染多种效果贴图,节省了图像渲染过程所需耗费的计算资源,有效地提升了图像渲染效率;并且,由于省略了多次独立渲染各效果贴图的过程,终端设备也相应地无需存储每次渲染得到的效果贴图,一定程度上节省了存储空间。

应理解,本申请实施例提供的图像渲染方法可以应用于具备图像处理功能的终端设备,如智能手机、计算机、个人数字助理(personaldigitalassitant,pda)、平板电脑等。

为了便于理解本申请实施例提供的技术方案,下面对本申请实施例提供的图像渲染方法适用的应用场景进行介绍。

参见图1,图1为本申请实施例提供的图像渲染方法的应用场景示意图。如图1所示,该应用场景包括终端设备110和服务器120,终端设备110与服务器120通过网络进行通信;服务器120用于为终端设备110提供待渲染画面中指定的基础图像以及该基础图像对应的画面效果指示数组;终端设备110用于执行本申请实施例提供的图像渲染方法,基于服务器110提供的基础图像及其对应的画面效果指示数组,在屏幕上渲染显示待渲染画面。

具体的,终端设备110可以在检测到用户触发相关操作的情况下,向服务器120发送图像获取请求。服务器120接收到该图像获取请求后,基于该图像获取请求确定终端设备110当前所要渲染的待渲染画面,并确定该待渲染画面中指定的基础图像以及该基础图像对应的画面效果指示数组,该画面效果指示数组中包括有基础图像的像素位置对应的画面效果指示值,进而,将所确定的基础图像以及该基础图像对应的画面效果指示数组发送至终端设备110。

终端设备110接收到服务器120发送基础图像及其对应的画面效果指示数组后,将该基础图像渲染至与自身屏幕尺寸相匹配的渲染纹理对象上得到基础纹理贴图;进而,利用所接收的画面效果指示数组中的画面效果指示值,对基础纹理贴图中的像素值进行相应地调整,以得到与待渲染画面最终的颜色显示效果相对应的像素值;最终,基于调整后的像素值进行图像渲染,获得叠加显示有阴影、高光、遮挡等显示效果的图像。

如此,省略了对于各效果贴图的渲染过程,节省了图像渲染过程中所需耗费的计算资源,大大提升了图像渲染效率。

应理解,图1所示的应用场景仅为示例,在实际应用中,终端设备自身可以存储待渲染画面中指定的基础图像及其对应的画面效果指示数组,并直接基于自身存储的基础图像及其对应的画面效果指示数组完成图像渲染,无需与服务器进行通信。在此不对本申请实施例提供的图像渲染方法所适用的应用场景做任何限定。

下面通过实施例对本申请提供的图像渲染方法进行介绍。

参见图2,图2为本申请实施例提供的图像渲染方法的流程示意图。如图2所示,该图像渲染方法包括以下步骤:

步骤201:获取待渲染画面中指定的基础图像。

在实际应用中,终端设备检测到用户触发用于控制渲染显示待渲染画面的指定操作后,将相应地获取待渲染画面中指定的基础图像。

需要说明的是,上述基础图像具体是指待渲染显示画面中固定的画面背景图像。在不同的应用场景下,可以相应地将不同类型的背景图像作为基础图像,例如,在渲染游戏画面的场景下,可以将待渲染的游戏画面中指定的场景地图作为基础图像;本申请在此不对基础图像的类型做任何限定。

在一种可能的实现方式中,终端设备可以与服务器进行通信,从服务器处获取待渲染画面中指定的基础图像。具体的,终端设备检测到用户触发指定操作后,可以相应地向服务器发送图像获取请求;服务器接收到该图像后续请求后,基于该图像获取请求确定终端设备请求获取的待渲染画面,并将该待渲染画面中指定的基础图像返回至终端设备。

以本申请实施例提供的图像渲染方法应用于游戏场景为例,终端设备检测到用户触发跳转游戏界面的操作时,相应地向服务器发送图像获取请求;服务器接收到该图像获取请求后,基于该图像获取请求确定当前待渲染的游戏界面(即触发跳转游戏界面操作后应显示的游戏界面),获取该游戏界面中指定的场景地图作为基础图像,进而向终端设备返回该基础图像。

在另一种可能的实现方式中,终端设备可以从自身存储的数据中,调取当前待渲染画面中指定的基础图像。具体的,终端设备可以利用自身的内存存储若干幅画面对应的基础图像,当终端设备检测到用户触发显示某幅画面时,终端设备相应地从自身的内存中调取该幅画面中指定的基础图像。

仍以本申请实施例提供的图像渲染方法应用于游戏场景为例,在终端设备已缓存有当前待渲染显示的游戏界面对应的基础图像的情况下,终端设备检测到用户触发显示该游戏界面时,可以直接从自身的缓存中调取该游戏界面中指定的基础图像。

应理解,上述获取基础图像的方式仅为示例,在实际应用中,终端设备还可以采用其他方式获取基础图像,在此不对终端设备获取基础图像的方式做任何限定。

步骤202:获取与所述基础图像对应的画面效果指示数组,所述画面效果指示数组中包括所述基础图像的像素位置对应的画面效果指示值。

终端设备检测到用户触发用于控制渲染显示待渲染画面的指定操作后,除了需要获取该待渲染画面中指定的基础图像外,还需要获取与该基础图像对应的画面效果指示数组。该画面效果指示数组中包括有基础图像的像素位置对应的画面效果指示值。

需要说明的是,画面效果指示数组中的画面效果指示值是综合考虑待渲染画面中阴影、高光、遮挡等显示效果确定的。以画面效果指示值包括指示透明度的红色(red,r)通道数值、指示高光亮度的绿色(green,g)通道数值以及指示阴影度的蓝色(blue,b)通道数值为例,对于待渲染画面中需要遮挡的区域,可以将对应位置的画面效果指示值中的r通道数值设置为大于0的值,遮挡物透明度越低r通道数值越小;对于待渲染画面中需要高光显示的区域,可以将对应位置的画面效果指示值中的g通道数值设置为大于0的值,高光亮度越高g通道数值越大;对于待渲染画面中会被阴影覆盖的区域,可以将对应位置的画面效果指示值中的b通道数值设置为大于0的值,阴影越暗b通道数值越大。

在一种可能的实现方式中,终端设备可以与服务器进行通信,从服务器处获取基础图像对应的画面效果指示数组。具体的,终端设备检测到用户触发指定操作后,可以向服务器发送图像获取请求,以请求服务器同时为其提供待渲染画面中指定的基础图像以及该基础图像对应的画面效果指示数组;进而,接收服务器响应于该图像获取请求返回的基础图像以及基础图像对应的画面效果指示数组。

当然,在实际应用中,终端设备也可以先从服务器处获取基础图像,再基于该基础图像向服务器发送画面效果指示数组获取请求,以请求服务器为其提供该基础图像对应的画面效果指示数组;进而,接收服务器响应于该画面效果指示数组获取请求返回的画面效果指示数组。

在另一种可能的实现方式中,终端设备可以从自身存储的数据中,调取基础图像对应的画面效果指示数组。具体的,终端设备可以利用自身的内存存储多幅基础图像及其对应的画面效果指示数组,当终端设备检测到用户触发指定操作后,终端设备可以从自身的内存中同时调取基础图像及其对应的画面效果指示数组。

当然,在实际应用中,终端设备也可以先从内存中调取待渲染画面中指定的基础图像,再基于基础图像与画面效果指示数组之间的对应关系,从其内存中调取该基础图像对应的画面效果指示数组。

应理解,上述获取基础图像对应的画面效果指示数组的方式仅为示例,在实际应用中,终端设备还可以采用其他方式获取画面效果指示数组,在此不对终端设备获取画面效果指示数组的方式做任何限定。

可选的,为了进一步提升图像渲染效率,终端设备可以获取图像形式的画面效果指示数组,以使图形处理器(graphicsprocessingunit,gpu)可以同时对基础图像以及该图像形式的画面效果指示数组进行处理。具体的,终端设备获取画面效果指示图像,该画面效果指示图像承载有画面效果指示数组;进而,从该画面效果指示图像中读取各像素位置的像素值,根据各像素位置的像素值生成画面效果指示图像对应的画面效果指示数组。即,所述画面效果指示图像对应的画面效果指示数组包括从画面效果指示图像中读取的各个像素位置的像素值。

具体实现时,可以预先通过美术制作生成画面效果指示图像,并将该画面效果指示图像的大小设置为与基础图像的大小相同,例如,在游戏场景中,可以将画面效果指示图像的大小设置为游戏场景地图的大小。然后,按照上文介绍的设置画面效果指示值的方式,设置该画面效果指示图像中的像素值,即对于需要遮挡的区域设置其对应的像素值中r通道数值大于0,对于需要高光显示的区域设置其对应的像素值中g通道数值大于0,对于会被阴影覆盖的区域设置其对应的像素值中b通道数值大于0。进而,再将该画面效果指示图缩小至合适的大小,如1024*1024。

步骤203:将所述基础图像渲染到与设备屏幕尺寸匹配的渲染纹理对象上得到基础纹理贴图。

终端设备获取到基础图像后,不直接将该基础图像渲染至帧缓存(framebuffer),而是将该基础图像渲染至与自身屏幕尺寸匹配的渲染纹理对象如rendertexture,该渲染纹理对象属于帧缓存对象(framebufferobject,fbo)中的一种,由此渲染得到基础纹理贴图,即得到显示有基础图像的基础纹理贴图;在游戏场景中,该基础纹理贴图即为显示有游戏场景地图的贴图。

需要说明的是,在渲染游戏画面的应用场景下,除了需要将场景地图渲染至与设备屏幕匹配的渲染纹理对象上得到基础纹理贴图外,通常还需要获取物体图像,并采用屏幕后处理方式对所获取的物体图像进行渲染得到物体贴图。

应理解,上述物体图像具体可以为游戏画面中由玩家操控的游戏角色,也可以为游戏画面中系统分配设置的游戏角色,在此不对该物体图像所对应的对象做具体限定。终端设备具体获取该物体图像的方式,与上文中获取基础图像以及获取画面效果指示数组的方式相类似,可以通过与服务器进行通信来获取物体图像,或者可以从自身缓存的数据中获取物体图像,在此也不对获取该物体图像的方式做任何限定。此外,终端设备所获取的物体图像可以为一个,也可以为多个,在此也不对终端设备获取的物体图像的数量做任何限定。

终端设备获取到物体图像后,可以采用屏幕后处理方式对所获取的物体图像进行渲染,完成对于待渲染画面中全部物体图像的渲染后,得到与设备屏幕尺寸匹配的包含有全部物体的物体贴图。

更进一步地,终端设备还需要将渲染基础图像得到的基础纹理贴图,与渲染物体图像得到的物体贴图进行颜色混合,以得到场景物体融合贴图。具体的,终端设备可以将物体贴图的阿尔法通道(alphachannel)作为权值,利用该权值对物体贴图和基础纹理贴图进行加权平均处理,得到场景物体融合贴图。

假设基础纹理贴图为贴图b,物体贴图为贴图c,对二者进行颜色混合得到的场景物体融合贴图为贴图d;终端设备具体对贴图b和贴图c进行颜色融合时,可以采用式(1)计算得到贴图d中各像素值:

drgb=brgb*(1-cα)+crgb*cα(1)

其中,brgb为贴图b中的像素值,crgb为贴图c中的像素值,drgb为贴图d中的像素值,cα为贴图c的阿尔法通道值。

需要说明的是,为了避免每次渲染的图像面积过大,减少每次渲染过程耗费的计算资源,可以将待渲染画面中指定的基础图像分成n(n为大于或等于1的整数)个基础图像分块;进而,在渲染基础图像渲染得到基础纹理贴图时,可以从n个基础图像分块中选择输入当前视口范围内的目标基础图像分块,将所选择的目标基础图像分块渲染至与设备屏幕尺寸匹配的渲染纹理对象,得到基础纹理贴图。

具体的,终端设备可以在其获取到基础图像后,按照预设的图像划分规则将该基础图像划分为n个基础图像分块。渲染基础纹理贴图时,终端设备可以先确定自身当前的视口范围,进而从已划分出的n个基础图像分块中选择处于该视口范围内的基础图像分块,作为目标基础图像分块,进而将所选择的目标基础图像分块渲染至设备屏幕尺寸匹配的渲染纹理对象,得到基础纹理贴图。

应理解,终端设备划分基础图像得到的n个基础图像分块大小可以相同,也可以不同,在此不对终端设备所采取的图像划分规则做任何限定。

步骤204:根据所述画面效果指示数组对所述基础纹理贴图进行颜色混合渲染。

终端设备渲染得到基础纹理贴图后,利用其在步骤202中获取的画面效果指示数组中的画面效果指示值,对基础纹理贴图中各像素值相应地进行调整,进而基于调整后像素值完成对于待渲染画面的渲染,从而在设备屏幕上显示承载有阴影、高光、遮挡等显示效果的画面。

在画面效果指示值中包括有指示透明度的r通道数值、指示高光亮度的g通道数值以及指示阴影度的b通道数值的情况下,终端设备具体可以通过以下方式实现对于待渲染画面的渲染:

将画面效果指示值中的b通道数值作为作为颜色强弱权值,对基础纹理贴图中各像素值进行加权得到对应的加权像素值;将画面效果指示值中的g通道数值作为高光增量值,对基础纹理贴图中各像素值进行增量处理得到对应的增量像素值;将画面效果指示值中的r通道数值作为透明度权值,对基础纹理贴图中各增量像素值和基础纹理贴图中各加权像素值进行加权平均得到待渲染的像素值;最终,基于待渲染的像素值进行画面渲染。

下面假设画面效果指示数组中的画面效果指示值为a,基础纹理贴图为贴图b,对确定待渲染画面中每个待渲染的像素值的方式进行介绍:使用a中b通道数值作为颜色强弱权值ab,对贴图b中相应位置的像素值brgb进行加权处理,得到加权像素值ab*brgb;使用a中g通道数值作为高光增量值ag,对贴图b中相应位置的像素值brgb进行增量处理,得到增量像素值brgb+ag;进而,利用a中r通道数值作为透明度权值ar,基于式(2)对相应的加权像素值和增量像素值进行加权平均得到待渲染的像素值:

(brgb+ag)*ar+brgb*ab*(1-ar)(2)

应理解,在实际应用中,终端设备除了可以基于上述方式确定待渲染画面中各待渲染的像素值外,还可以通过其他方式确定各待渲染的像素值,本申请在此不对确定待渲染的像素值的实现方式做任何限定。

正如步骤203所介绍的,当本申请实施例提供的图像渲染方法应用于渲染游戏画面的场景中时,除了需要渲染基础图像得到基础纹理贴图外,还需要渲染待渲染画面中各物体图像得到物体贴图,并且需要将渲染得到的基础纹理贴图与物体贴图进行颜色混合得到场景物体融合贴图。在该种情况下,对待渲染画面进行图像渲染时,需要根据画面效果指示数组对场景物体融合贴图和基础纹理贴图进行颜色融合,以便基于颜色融合后的像素值完成对于待渲染画面的图像渲染。

具体的,在画面效果指示值包括指示透明度的r通道数值、指示高光亮度的g通道数值以及指示阴影度的b通道数值的情况下,终端设备具体可以通过以下方式实现对待渲染画面的图像渲染:

将画面效果指示值中的b通道数值作为颜色强弱权值,对场景物体融合贴图中各像素值进行加权得到对应的加权像素值;将画面效果指示值中的g通道数值作为高光增量值,对基础纹理贴图中各像素值进行增量处理得到对应的增量像素值;将画面效果指示值中的r通道数值作为透明度权值,对基础纹理贴图中各增量像素值和场景物体融合贴图中各加权像素值进行加权平均得到待渲染的像素值;最终,基于待渲染的像素值进行画面渲染。

下面假设画面效果指示数组中的画面效果指示值为a,基础纹理贴图为贴图b,场景物体融合贴图为贴图d,对确定待渲染画面中每个待渲染的像素值的方式进行详细介绍:使用a中b通道数值作为场景物体层(贴图d)的颜色强弱权值ab,对贴图d中相应位置的像素值drgb进行加权处理,得到加权像素值ab*drgb;使用a中g通道数值作为场景遮挡层(贴图b)的高光增量值ag,对贴图b中相应位置的像素值brgb进行增量处理,得到增量像素值brgb+ag;进而,利用a中r通道数值作为场景遮挡层的透明度权值ar,基于式(3)对相应的加权像素值和增量像素值进行加权平均得到待渲染的像素值:

(brgb+ag)*ar+drgb*ab*(1-ar)(3)

根据步骤203中的相关介绍内容可知drgb=brgb*(1-cα)+crgb*cα,将其带入式(3)中得到待渲染的像素值的最终表现形式如式(4)所示:

(brgb+ag)*ar+(brgb*(1-cα)+crgb*cα)*ab*(1-ar)(4)

应理解,在实际应用中,终端设备除了可以基于上述方式确定待渲染画面中各待渲染的像素值外,还可以通过其他方式确定各待渲染的像素值,本申请在此不对确定待渲染的像素值的实现方式做任何限定。

上述图像渲染方法将图像中的阴影、高光、遮挡等效果综合起来,以一组数据(即画面效果指示数组)来表征图像中各像素位置最终的颜色效果值;针对待渲染画面进行图像渲染时,利用该画面效果指示数组对基础纹理贴图中的像素值进行调整,该基础纹理贴图是将待渲染画面中指定的基础图像渲染至与设备屏幕尺寸匹配的渲染纹理对象上得到的,进而基于调整后的像素值完成对于待渲染画面的图像渲染。如此,无需多次渲染多种效果贴图,节省了图像渲染过程所需耗费的计算资源,有效地提升了图像渲染效率;并且,由于省略了多次独立渲染各效果贴图的过程,终端设备也相应地无需存储每次渲染得到的效果贴图,一定程度上节省了存储空间。

为了便于进一步理解本申请实施例提供的图像渲染方法,下面以该图像渲染方法应用于渲染游戏画面的场景为例,对该图像渲染方法进行整体性介绍。

参见图3,图3为本申请实施例提供的图像渲染方法的原理示意图。如图3所示,服务器可以预先通过美术制作生成画面效果指示图像a,该画面效果指示图像a中承载有游戏场景地图对应的画面效果显示数组,该画面效果指示图像a可以被设置为与游戏场景地图的大小相同。然后,确定该场景地图中需要遮挡的区域,将相应位置的画面效果指示值中r通道数值设置为大于0的值,遮挡物透明度越低r通道数值越小;确定该场景地图中需要高光显示的区域,将相应位置的画面效果指示值中g通道数值设置为大于0的值,高光亮度越高g通道数值越大;确定该场景地图中会被阴影覆盖的区域,将相应位置的画面效果指示值中b通道数值设置为大于0的值,阴影越暗b通道数值越大;接着,再将该承载有画面效果显示数组的图像缩小至合适大小,如此画面效果指示图像a。

终端设备检测到用户在使用游戏应用的过程中触发指定操作后,向服务器发送图像获取请求;服务器基于该图像获取请求,相应地确定终端设备所要渲染的游戏画面,并获取该游戏画面中的场景地图、物体图像以及该场景地图对应的画面效果指示图像a,返回至终端设备。

终端设备接收到场景地图、物体图像以及该场景地图对应的画面效果指示图像a后,将场景地图渲染至与自身屏幕大小相同的rendertexture上得到基础纹理贴图b;采用屏幕后处理方式对所获取的物体图像进行渲染,待完成对所有物体图像的渲染后,得到与设备屏幕大小相同的物体贴图c。

最终进行图像渲染时,终端设备先在片段着色器(fragmentshader)中对基础纹理贴图b和物体贴图c进行颜色混合,得到场景物理融合贴图d;即以物体贴图c的alpha通道ca为权值对基础纹理贴图b和物体贴图c进行加权平均,得到场景物理融合贴图d为brgb*(1-ca)+crgb*ca。然后,使用画面效果指示图像a中b通道数值作为场景物体层的颜色强弱权值ab,对场景物理融合贴图d中各像素值进行加权处理,得到对应的加权像素值ab*drgb;使用画面效果指示图像a中g通道数值作为场景遮挡层的高光增量值ag,对基础纹理贴图b中各像素值进行增量处理,得到对应的增量像素值brgb+ag;进而,利用画面效果指示图像a中r通道数值作为场景遮挡层的透明度权值ar,对增量像素值brgb+ag和加权像素值ab*drgb进行加权平均,得到待渲染的像素值ar*(brgb+ag)+(1-ar)*ab*drgb。利用该待渲染的像素值渲染至framebuffer,如此完成对于游戏画面的渲染,如图4所示,为采用上述图像渲染方法渲染得到的游戏画面示意图。

应理解,本申请实施例提供的图像渲染方法除了可以用于渲染游戏画面外,也可以用于渲染动画画面,还可以用于其他需要额外增加显示效果的图像渲染场景,在此不对本申请实施例提供的图像渲染方法所适用的应用场景做任何限定。

假设将游戏场景地图划分为n块,且该游戏画面中仅有一个物体,采用相关技术中的图像渲染方法进行图像渲染时,针对该游戏画面中的物体需要进行1次绘制,针对被划分为n块的场景地图需要进行n次绘制,针对被划分为n块的遮挡层需要进行n次绘制,针对被划分为n块的高光层需要进行n次绘制,针对被划分为n块的阴影层需要进行n次绘制,如此,渲染该游戏画面时需要完成4n+1次绘制,共输出约4个全屏大小的像素,加载4个全屏大小图像。

而采用本申请实施例提供的图像渲染方法进行图像绘制时,针对游戏画面中的一个物体需要进行1次绘制,遮挡层、阴影层、高光层均不需要单独切图绘制,只利用一张画面效果指示图像将上述显示效果与物体、场景地图通过一次绘制合并即可得到最终显示效果,整个图像渲染过程仅需n+2次绘制,输出约1个全屏大小的像素,加载1个全屏大小图像、1个画面效果指示图像和1个物体图像,图像渲染效率明显提高。

针对上文描述的图像渲染方法,本申请还提供了对应的图像渲染装置,以使上述图像渲染方法在实际中的应用以及实现。

参见图5,图5为上文图2所示的图像渲染方法对应的一种图像渲染装置500的结构示意图,该图像渲染装置500包括:

第一获取模块501,用于获取待渲染画面中指定的基础图像;

第二获取模块502,用于获取与所述基础图像对应的画面效果指示数组,所述画面效果指示数组中包括所述基础图像的像素位置对应的画面效果指示值;

第一渲染模块503,用于将所述基础图像渲染到与设备屏幕尺寸匹配的渲染纹理对象上得到基础纹理贴图;

第二渲染模块504,用于根据所述画面效果指示数组对所述基础纹理贴图进行颜色混合渲染。

可选的,在图5所示的图像渲染装置的基础上,所述第一获取模块501,具体用于:

获取画面效果指示图像,所述画面效果指示图像承载有所述画面效果指示数组;

从所述画面效果指示图像中读取各像素位置的像素值,根据所述各像素位置的像素值生成所述画面效果指示图像对应的画面效果指示数组。

可选的,在图5所示的图像渲染装置的基础上,所述画面效果指示值包括指示透明度的红色通道数值、指示高光亮度的绿色通道数值以及指示阴影度的蓝色通道数值;

所述第二渲染模块504,具体用于:

以所述画面效果指示值中的蓝色通道数值作为颜色强弱权值,对所述基础纹理贴图中各像素值进行加权得到对应的加权像素值;

以所述画面效果指示值中的绿色通道数值作为高光增量值,对所述基础纹理贴图中各像素值进行增量处理得到对应的增量像素值;

以所述画面效果指示值中的红色通道数值作为透明度权值,对所述基础纹理贴图中各增量像素值和所述基础纹理贴图中各加权像素值进行加权平均得到待渲染的像素值;

基于所述待渲染的像素值进行画面渲染。

可选的,在图5所示的图像渲染装置的基础上,所述第一获取模块501具体用于:获取游戏应用的待渲染画面中指定的场景地图作为基础图像;参见图6,图6为本申请实施例提供的另一种图像渲染装置的结构示意图;如图6所示,则所述装置还包括:

第三获取模块601,用于获取物体图像,采用屏幕后处理方式对所述物体图像进行渲染得到物体贴图;

图像混合模块602,用于将所述基础纹理贴图和所述物体贴图进行颜色混合得到场景物体融合贴图;

则所述第二渲染模块504,具体用于根据所述画面效果指示数组对所述场景物体融合贴图和所述基础纹理贴图进行颜色融合。

可选的,在图6所示的图像渲染装置的基础上,所述画面效果指示值包括指示透明度的红色通道数值、指示高光亮度的绿色通道数值以及指示阴影度的蓝色通道数值;

所述图像混合模块602,具体用于以所述物体贴图的阿尔法通道为权值对所述物体贴图和所述基础纹理贴图进行加权平均得到场景物体融合贴图;

则所述第二渲染模块504,具体用于:

以所述画面效果指示值中的蓝色通道数值作为颜色强弱权值,对所述场景物体融合贴图中各像素值进行加权得到对应的加权像素值;

以所述画面效果指示值中的绿色通道数值作为高光权值,对所述基础纹理贴图中各像素值进行增量处理得到对应的增量像素值;

以所述画面效果指示值中的红色通道数值作为透明度权值,对所述基础纹理贴图中各增量像素值和所述场景物体融合贴图中各加权像素值进行加权平均得到待渲染的像素值;

基于所述待渲染的像素值进行画面渲染。

可选的,在图5所示的图像渲染装置的基础上,参见图7,图7为本申请实施例提供的另一种图像渲染装置的结构示意图;如图7所示,则所述装置还包括:所述装置还包括:

图像划分模块701,用于将所述基础图像切分成n个基础图像分块;

则所述第一渲染模块503具体用于:

从所述n个基础图像分块中选择属于所述当前视口范围的目标基础图像分块;

将所述目标基础图像分块渲染到与设备屏幕尺寸匹配的渲染纹理对象得到基础纹理贴图。

上述图像渲染装置将图像中的阴影、高光、遮挡等效果综合起来,以一组数据(即画面效果指示数组)来表征图像中各像素位置最终的颜色效果值;针对待渲染画面进行图像渲染时,利用该画面效果指示数组对基础纹理贴图中的像素值进行调整,该基础纹理贴图是将待渲染画面中指定的基础图像渲染至与设备屏幕尺寸匹配的渲染纹理对象上得到的,进而基于调整后的像素值完成对于待渲染画面的图像渲染。如此,无需多次渲染多种效果贴图,节省了图像渲染过程所需耗费的计算资源,有效地提升了图像渲染效率;并且,由于省略了多次独立渲染各效果贴图的过程,终端设备也相应地无需存储每次渲染得到的效果贴图,一定程度上节省了存储空间。

本申请实施例还提供了一种用于图像渲染的终端设备,下面将从硬件实体化的角度对本申请实施例提供的用于图像渲染的终端设备进行介绍。

参见图8,图8为本申请实施例提供的一种终端设备的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括计算机、平板电脑、个人数字助理(英文全称:personaldigitalassistant,英文缩写:pda)等任意终端设备,以终端为手机为例:

图8示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图8,手机包括:射频(英文全称:radiofrequency,英文缩写:rf)电路810、存储器820、输入单元830(其中包括触控面板831和其他输入设备832)、显示器840(其中包括显示面板841)、传感器850、音频电路860(其中包括扬声器861和传声器862)、无线保真(英文全称:wirelessfidelity,英文缩写:wifi)模块870、中央处理器880、图形处理器890以及电源8100等部件。本领域技术人员可以理解,图8中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储器820可用于存储软件程序以及模块,中央处理器880通过运行存储在存储器820的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

中央处理器880是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行计算机的各种功能和处理数据,从而对手机进行整体监控。可选的,中央处理器880可包括一个或多个处理单元;优选的,中央处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。

在本申请实施例中,在需要进行画面渲染时,中央处理器880将控制图形处理器890执行以下操作:

获取待渲染画面中指定的基础图像;

获取与所述基础图像对应的画面效果指示数组,所述画面效果指示数组中包括所述基础图像的像素位置对应的画面效果指示值;

将所述基础图像渲染到与设备屏幕尺寸匹配的渲染纹理对象上得到基础纹理贴图;

根据所述画面效果指示数组对所述基础纹理贴图进行颜色混合渲染。

可选的,所述图形处理器890还用于执行本申请实施例提供的图像渲染方法的任意一种实现方式的步骤。进而,在图形处理器890的控制下,通过显示器840显示图像画面。

本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种图像渲染方法中的任意一种实施方式。

本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种图像渲染方法中的任意一种实施方式。

在一些实施例中,上述终端或服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peertopeer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1