一种画面的渲染方法、装置、存储介质和电子装置与流程

文档序号:26437113发布日期:2021-08-27 13:35阅读:50来源:国知局
一种画面的渲染方法、装置、存储介质和电子装置与流程

本申请涉及计算机领域,尤其涉及一种画面的渲染方法、装置、存储介质和电子装置。



背景技术:

随着互联网的发展,用于播放画面的电子设备迅速发展,对画面的渲染要求也越来越高,既要求渲染得逼真又要求渲染效率要高。在现实场景中光照射到半透明物体上时能够在半透明物体上看到光的色散效果,但在目前的画面渲染技术中还无法逼真地模拟出该色散效果。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请提供了一种画面的渲染方法、装置、存储介质和电子装置,以至少解决相关技术中无法在画面上渲染出光的色散效果的技术问题。

根据本申请实施例的一个方面,提供了一种画面的渲染方法,包括:沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线;在检测到所述光线在所述虚拟场景中发生色散现象的情况下,从目标颜色范围中获取至少一个第一颜色值;根据所述至少一个第一颜色值和第二颜色值确定目标颜色值,其中,所述第二颜色值是所述光线与所述虚拟场景相交的场景点的颜色值;使用所述目标颜色值在所述待渲染画面上渲染所述像素点,得到渲染画面。

可选地,根据所述至少一个第一颜色值和第二颜色值确定目标颜色值包括:根据所述至少一个第一颜色值,所述色散现象对应的折射率和所述色散现象对应的法线方向模拟所述光线的传播过程,得到所述场景点;获取所述场景点的颜色值,得到所述第二颜色值;根据所述虚拟场景中的光源、所述第二颜色值和所述传播过程确定所述光线对应的光源颜色值;将所述光源颜色值与所述至少一个第一颜色值融合,得到所述目标颜色值。

可选地,根据所述虚拟场景中的光源、所述第二颜色值和所述传播过程确定所述光线对应的光源颜色值包括:获取所述虚拟场景中的光源;根据所述光源和所述第二颜色值,沿着所述传播过程的反向路径计算所述光源颜色值。

可选地,将所述光源颜色值与所述至少一个第一颜色值融合,得到所述目标颜色值包括:根据所述光源颜色值与所述至少一个第一颜色值计算中间颜色值;对所述中间颜色值进行修正处理,得到所述目标颜色值。

可选地,根据所述光源颜色值与所述至少一个第一颜色值计算中间颜色值包括:在所述至少一个第一颜色值为一个颜色值的情况下,将所述光源颜色值与所述第一颜色值的乘积确定为所述中间颜色值;在所述至少一个第一颜色值为多个颜色值的情况下,计算所述多个颜色值中的每个颜色值与对应的光源颜色值之间的乘积,得到多个乘积值;计算所述多个乘积值的加权平均值作为所述中间颜色值。

可选地,对所述中间颜色值进行修正处理,得到所述目标颜色值包括以下之一:通过降噪器对所述中间颜色值进行降噪处理,得到所述目标颜色值;获取所述待渲染画面的相邻画面中所述像素点所对应的相邻像素点的相邻颜色值;计算所述中间颜色值与所述相邻颜色值的加权平均值作为所述中间颜色值。

可选地,从所述目标颜色范围中获取所述至少一个第一颜色值包括:获取所述虚拟场景的场景信息;确定与所述场景信息匹配的颜色范围作为所述目标颜色范围;从所述目标颜色范围中获取一个或者多个颜色值作为所述至少一个第一颜色值。

可选地,在从所述目标颜色范围中获取所述至少一个第一颜色值之前,所述方法还包括以下之一:

在检测到所述光线与所述虚拟场景中的目标属性的物体相交的情况下,确定所述光线在所述虚拟场景中发生色散现象,其中,所述目标属性包括对不同颜色值的光具有不同折射率;

在检测到所述光线在所述虚拟场景中发生折射的情况下,确定所述光线在所述虚拟场景中发生色散现象。

根据本申请实施例的另一方面,还提供了一种画面的渲染装置,包括:构建模块,用于沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线;获取模块,用于在检测到所述光线在所述虚拟场景中发生色散现象的情况下,从目标颜色范围中获取至少一个第一颜色值;第一确定模块,用于根据所述至少一个第一颜色值和第二颜色值确定目标颜色值,其中,所述第二颜色值是所述光线与所述虚拟场景相交的场景点的颜色值;渲染模块,用于使用所述目标颜色值在所述待渲染画面上渲染所述像素点,得到渲染画面。

可选地,所述第一确定模块包括:模拟单元,用于根据所述至少一个第一颜色值,所述色散现象对应的折射率和所述色散现象对应的法线方向模拟所述光线的传播过程,得到所述场景点;第一获取单元,用于获取所述场景点的颜色值,得到所述第二颜色值;第一确定单元,用于根据所述虚拟场景中的光源、所述第二颜色值和所述传播过程确定所述光线对应的光源颜色值;融合单元,用于将所述光源颜色值与所述至少一个第一颜色值融合,得到所述目标颜色值。

可选地,所述第一确定单元用于:获取所述虚拟场景中的光源;根据所述光源和所述第二颜色值,沿着所述传播过程的反向路径计算所述光源颜色值。

可选地,所述融合单元用于:根据所述光源颜色值与所述至少一个第一颜色值计算中间颜色值;对所述中间颜色值进行修正处理,得到所述目标颜色值。

可选地,所述融合单元用于:在所述至少一个第一颜色值为一个颜色值的情况下,将所述光源颜色值与所述第一颜色值的乘积确定为所述中间颜色值;在所述至少一个第一颜色值为多个颜色值的情况下,计算所述多个颜色值中的每个颜色值与对应的光源颜色值之间的乘积,得到多个乘积值;计算所述多个乘积值的加权平均值作为所述中间颜色值。

可选地,所述融合单元用于以下之一:通过降噪器对所述中间颜色值进行降噪处理,得到所述目标颜色值;获取所述待渲染画面的相邻画面中所述像素点所对应的相邻像素点的相邻颜色值;计算所述中间颜色值与所述相邻颜色值的加权平均值作为所述中间颜色值。

可选地,所述获取模块包括:第二获取单元,用于获取所述虚拟场景的场景信息;第二确定单元,用于确定与所述场景信息匹配的颜色范围作为所述目标颜色范围;第三获取单元,用于从所述目标颜色范围中获取一个或者多个颜色值作为所述至少一个第一颜色值。

可选地,所述装置还包括以下之一:

第二确定模块,用于在从所述目标颜色范围中获取所述至少一个第一颜色值之前,在检测到所述光线与所述虚拟场景中的目标属性的物体相交的情况下,确定所述光线在所述虚拟场景中发生色散现象,其中,所述目标属性包括对不同颜色值的光具有不同折射率;

第三确定模块,用于在从所述目标颜色范围中获取所述至少一个第一颜色值之前,在检测到所述光线在所述虚拟场景中发生折射的情况下,确定所述光线在所述虚拟场景中发生色散现象。

根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本申请实施例中,采用沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线;在检测到光线在虚拟场景中发生色散现象的情况下,从目标颜色范围中获取至少一个第一颜色值;根据至少一个第一颜色值和第二颜色值确定目标颜色值,其中,第二颜色值是光线与虚拟场景相交的场景点的颜色值;使用目标颜色值在待渲染画面上渲染像素点,得到渲染画面的方式,沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线,当光线在虚拟场景中发生色散现象时表示该像素点在虚拟场景中发生色散现象,则结合从目标颜色范围中获取的至少一个第一颜色值以及光线与虚拟场景相交的场景点的第二颜色值确定出目标颜色值,使用该目标颜色值在待渲染画面上渲染像素点从而得到渲染画面,达到了在渲染虚拟场景时渲染出虚拟场景中出现的色散现象的目的,从而实现了在画面上渲染出光的色散效果的技术效果,进而解决了无法在画面上渲染出光的色散效果的技术问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本申请实施例的画面的渲染方法的硬件环境的示意图;

图2是根据本申请实施例的一种可选的画面的渲染方法的流程示意图;

图3是根据本申请实施例的一种画面中色散现象渲染过程的示意图;

图4是根据本申请实施例的一种可选的画面的渲染装置的示意图;

图5是根据本申请实施例的一种电子装置的结构框图。

具体实施方式

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

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

根据本申请实施例的一方面,提供了一种画面的渲染的方法实施例。

可选地,在本实施例中,上述画面的渲染方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于pc、手机、平板电脑等。本申请实施例的画面的渲染方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的画面的渲染方法也可以是由安装在其上的客户端来执行。

图2是根据本申请实施例的一种可选的画面的渲染方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线;

步骤s204,在检测到所述光线在所述虚拟场景中发生色散现象的情况下,从目标颜色范围中获取至少一个第一颜色值;

步骤s206,根据所述至少一个第一颜色值和第二颜色值确定目标颜色值,其中,所述第二颜色值是所述光线与所述虚拟场景相交的场景点的颜色值;

步骤s208,使用所述目标颜色值在所述待渲染画面上渲染所述像素点,得到渲染画面。

通过上述步骤s202至步骤s208,沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线,当光线在虚拟场景中发生色散现象时表示该像素点在虚拟场景中发生色散现象,则结合从目标颜色范围中获取的至少一个第一颜色值以及光线与所述虚拟场景相交的场景点的第二颜色值确定出目标颜色值,使用该目标颜色值在待渲染画面上渲染像素点从而得到渲染画面,达到了在渲染虚拟场景时渲染出虚拟场景中出现的色散现象的目的,从而实现了在画面上渲染出光的色散效果的技术效果,进而解决了无法在画面上渲染出光的色散效果的技术问题。

在步骤s202提供的技术方案中,虚拟场景可以但不限于包括游戏场景,动画场景等等。比如:动画场景中有一个桌子,桌子上有一个水瓶,从观察点看向虚拟场景,会在桌子上的水瓶表面看到色散现象。

可选地,在本实施例中,沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线,从而模拟从观察点看向虚拟场景的过程。如果光线在虚拟场景中发生了折射现象,则确定光线在虚拟场景中遇到了半透明物体,在半透明物体上可能会发生色散现象。

例如:图3是根据本申请实施例的一种画面中色散现象渲染过程的示意图,如图3所示,从观察点到待渲染画面screen上的a点的方向构建光线b,光线b遇到虚拟场景中的半透明球体发生色散现象。

作为一种可选的实施例,在步骤s204之前,还可以但不限于通过以下方式之一确定光线在虚拟场景中是否发生了色散现象:

方式一,在检测到所述光线与所述虚拟场景中的目标属性的物体相交的情况下,确定所述光线在所述虚拟场景中发生色散现象,其中,所述目标属性包括对不同颜色值的光具有不同折射率;

方式二,在检测到所述光线在所述虚拟场景中发生折射的情况下,确定所述光线在所述虚拟场景中发生色散现象。

可选地,在本实施例中,目标属性包括对不同颜色值的光具有不同折射率,复色光在射入上述目标属性的物体时会发生分解为单色光的现象,即上述色散现象,如果检测到构建的光线与虚拟场景中具有目标属性的物体相交,则可以确定光线在射入目标属性的物体时发生了色散现象。目标属性的物体可以但不限于包括虚拟场景中的半透明物体。

可选地,在本实施例中,光线在虚拟场景中是否发生了色散现象也可以根据光线在虚拟场景中是否发生了折射现象来判断。如果光线在虚拟场景中发生了折射,则可以确定光线可能射入了虚拟场景中的半透明物体,可以认为光线在半透明物体的表面发生了色散现象。

在步骤s204提供的技术方案中,材料的折射率随入射光频率的改变而改变的性质,称为“色散”。光的色散分为正常色散和反常色散。随着光频率升高介质折射率增大的色散称为正常色散,反之随着频率的降低介质折射率减小的现象称为反常色散。色散是复色光分解为单色光而形成光谱的现象。复色光进入材料后,由于它对各种频率的光具有不同折射率,各种色光的传播方向有程度的偏折,因而在离开材料时就各自分散,形成光谱。

可选地,在本实施例中,至少一个第一颜色值可以但不限于包括一个或者多个颜色值。为了减少渲染过程的计算量,提高渲染效率,节约渲染资源,可以但不限于对至少一个第一颜色值所包括的颜色值的数量进行限制,设置至少一个第一颜色值所包括的颜色值的数量不能超过目标数量,比如:3。

例如:如图3所示,当光线b遇到半透明球体发生色散现象时,可以但不限于从目标颜色范围中获取三个颜色值(x,y和z)作为第一颜色值。或者,也可以只获取两个颜色值(比如x和y),还可以只获取一个颜色值(比如x)。

可选地,在本实施例中,目标颜色范围可以但不限于为可见光的频谱范围,比如780-400nm。目标颜色范围也可以但不限于根据场景色调的需求来进行调整,比如:如果场景色调要求颜色偏蓝,则目标颜色范围可以但不限于使用蓝光的频谱范围450-435nm,如果场景色调要求颜色偏红,则目标颜色范围可以但不限于使用红光的频谱范围760-622nm等等。

作为一种可选的实施例,从所述目标颜色范围中获取所述至少一个第一颜色值包括:

s11,获取所述虚拟场景的场景信息;

s12,确定与所述场景信息匹配的颜色范围作为所述目标颜色范围;

s13,从所述目标颜色范围中获取一个或者多个颜色值作为所述至少一个第一颜色值。

可选地,在本实施例中,虚拟场景的场景信息可以但不限于包括场景的色调信息,场景的氛围信息等等能够对场景中展现的颜色产生影响的信息。

可选地,在本实施例中,与场景信息匹配的颜色范围可以但不限于是预先设置的匹配关系,也可以但不限于是根据场景信息动态调整的。

可选地,在本实施例中,至少一个第一颜色值可以但不限于是从目标颜色范围中随机获取的。比如:如图3所示,从目标颜色范围中获取的光线x对应的颜色值为colorlightx,光线y对应的颜色值为colorlighty,光线z对应的颜色值为colorlightz。

在步骤s206提供的技术方案中,结合从目标颜色范围中获取的至少一个第一颜色值以及光线与虚拟场景相交的场景点的第二颜色值确定像素点所使用的渲染色的颜色值。

例如:如图3所示,根据x的颜色值和m点的颜色值,y的颜色值和n点的颜色值,z的颜色值和p点的颜色值来确定像素点a的目标颜色值。

可选地,在本实施例中,对于未发生色散现象的像素点可以直接使用光线与虚拟场景相交的场景点的颜色值确定该像素点所使用的渲染色的颜色值。

作为一种可选的实施例,根据所述至少一个第一颜色值和第二颜色值确定目标颜色值包括:

s21,根据所述至少一个第一颜色值,所述色散现象对应的折射率和所述色散现象对应的法线方向模拟所述光线的传播过程,得到所述场景点;

s22,获取所述场景点的颜色值,得到所述第二颜色值;

s23,根据所述虚拟场景中的光源、所述第二颜色值和所述传播过程确定所述光线对应的光源颜色值;

s24,将所述光源颜色值与所述至少一个第一颜色值融合,得到所述目标颜色值。

可选地,在本实施例中,色散现象对应的折射率即光线在虚拟场景中所遇到的半透明物体的折射率。

可选地,在本实施例中,不同的颜色在同一半透明物体中会对应不同的折射率,即不同颜色的光线在同一折射率的半透明物体中会产生不同的偏折角度。

可选地,在本实施例中,根据至少一个第一颜色值能够确定色散现象在该颜色值下的折射率,根据该折射率和产生色散现象的位置的法线方向能够确定至少一个第一颜色值的光线进入半透明物体的角度以及从半透明物体中射出的角度,从而模拟出至少一个第一颜色值的光线进入半透明物体中以及从半透明物体中射出的光路传播过程,得到光路与虚拟场景相交的场景点。

可选地,在本实施例中,根据虚拟场景中的光源、场景点的第二颜色值以及光路的传播过程能够得到像素点的光源颜色值,将光源颜色值与至少一个第一颜色值融合即可得到像素点发生色散现象时的目标颜色值。

作为一种可选的实施例,根据所述虚拟场景中的光源、所述第二颜色值和所述传播过程确定所述光线对应的光源颜色值包括:

s31,获取所述虚拟场景中的光源;

s32,根据所述光源和所述第二颜色值,沿着所述传播过程的反向路径计算所述光源颜色值。

可选地,在本实施例中,虚拟场景中的光源可以但不限于包括一个或者多个光源,如果是多个光源可以叠加作用在场景点上。

可选地,在本实施例中,利用虚拟场景中的光源以及场景点的第二颜色值,沿着光路传播过程的反向路径可以计算出光线的光源颜色值。

作为一种可选的实施例,将所述光源颜色值与所述至少一个第一颜色值融合,得到所述目标颜色值包括:

s41,根据所述光源颜色值与所述至少一个第一颜色值计算中间颜色值;

s42,对所述中间颜色值进行修正处理,得到所述目标颜色值。

可选地,在本实施例中,通过修正处理能够将清晰的颜色分界线变得模糊,从而使得渲染出的色散效果更佳真实美观。

可选地,在本实施例中,计算中间颜色值的方式可以但不限于根据至少一个第一颜色值所包括的颜色值的数量来确定。总之可以是计算光源颜色值与至少一个第一颜色值的乘积作为中间颜色值。

作为一种可选的实施例,根据所述光源颜色值与所述至少一个第一颜色值计算中间颜色值包括:

s51,在所述至少一个第一颜色值为一个颜色值的情况下,将所述光源颜色值与所述第一颜色值的乘积确定为所述中间颜色值;

s52,在所述至少一个第一颜色值为多个颜色值的情况下,计算所述多个颜色值中的每个颜色值与对应的光源颜色值之间的乘积,得到多个乘积值;计算所述多个乘积值的加权平均值作为所述中间颜色值。

可选地,在本实施例中,如果至少一个第一颜色值为一个颜色值,则直接计算光源颜色值与第一颜色值的乘积作为中间颜色值。

可选地,在本实施例中,如果至少一个第一颜色值为多个颜色值,则首先计算每个颜色值与对应的光源颜色值之间的乘积值,再计算该乘积值的均值作为中间颜色值。比如:如图3所示,光线x对应的乘积值cx=colorlightx×colorx,其中,colorlightx为光线x对应的光源颜色值,colorx为光线x对应的第一颜色值,光线y对应的乘积值cy=colorlighty×colory,其中,colorlighty为光线y对应的光源颜色值,colory为光线y对应的第一颜色值,光线z对应的乘积值cz=colorlightz×colorz,其中,colorlightz为光线z对应的光源颜色值,colorz为光线z对应的第一颜色值。像素点a的中间颜色值为colora=(a1*cx+a2*cy+a3*cz)/3。

作为一种可选的实施例,对所述中间颜色值进行修正处理,得到所述目标颜色值包括以下之一:

s61,通过降噪器对所述中间颜色值进行降噪处理,得到所述目标颜色值;

s62,获取所述待渲染画面的相邻画面中所述像素点所对应的相邻像素点的相邻颜色值;计算所述中间颜色值与所述相邻颜色值的加权平均值作为所述中间颜色值。

可选地,在本实施例中,可以使用降噪器获取像素点的目标颜色值,还可以通过参考前后帧的方式获取像素点的目标颜色值。

比如:获取当前场景帧的前m1帧和后m2帧,确定像素点分别在前m1帧和后m2帧中的对应点的颜色值,对像素点在前m1帧和后m2帧中的对应点的颜色值与光线对应的光源颜色值的加权平均值作为像素点的目标颜色值。或者,也可以在显示刷新周期内计算多个帧,利用多帧对应像素点颜色值做加权平均,或利用之前计算的帧与当前帧对应的像素点颜色值做加权平均。

本申请还提供了一种可选实施例,该可选实施例提供了一种在画面上渲染出色散效果的过程,该过程可以但不限于包括以下步骤:

步骤s1,沿着观察点和屏幕上某个像素点a的连线方向构建光线b。

步骤s2,当光线b与场景中的物体相交时,判断光线b是否发生色散现象。如果发生了色散现象,则执行以下色散现象的模拟过程步骤s3-步骤s8。如果没有发生色散现象,则按照一般流程计算该像素点的颜色。

步骤s3,从预设的频谱范围中随机获取1个颜色值。比如:取出颜色值为colorx。

步骤s4,根据取出的颜色值colorx、半透明物体的折射率以及光线与物体交点的法线方向模拟颜色值为colorx的光线x进入物体,从物体射出,最终照射在场景中某个点上的过程。比如:光线x最终落在了场景中的m点。

步骤s5,根据场景中的光源和光线对应的场景点的颜色,沿着光线的反向路径计算光线对应的光源颜色值。比如:光线x对应的光源颜色值为colorlightx。

步骤s6,计算光线对应的光源颜色值与该光线的颜色值之间的乘积,得到光线对应的中间颜色值。比如:光线x对应的中间颜色值cx=colorlightx×colorx。

步骤s7,使用降噪器对光线对应的中间颜色值进行降噪处理,得到像素点a的目标颜色值。比如:像素点a的目标颜色值colora=f(cx)。

步骤s8,使用像素点a的目标颜色值渲染像素点a。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台电子设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

根据本申请实施例的另一个方面,还提供了一种用于实施上述画面的渲染方法的画面的渲染装置。图4是根据本申请实施例的一种可选的画面的渲染装置的示意图,如图4所示,该装置可以包括:

构建模块42,用于沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线;

获取模块44,用于在检测到所述光线在所述虚拟场景中发生色散现象的情况下,从目标颜色范围中获取至少一个第一颜色值;

第一确定模块46,用于根据所述至少一个第一颜色值和第二颜色值确定目标颜色值,其中,所述第二颜色值是所述光线与所述虚拟场景相交的场景点的颜色值;

渲染模块48,用于使用所述目标颜色值在所述待渲染画面上渲染所述像素点,得到渲染画面。

需要说明的是,该实施例中的构建模块42可以用于执行本申请实施例中的步骤s202,该实施例中的获取模块44可以用于执行本申请实施例中的步骤s204,该实施例中的第一确定模块46可以用于执行本申请实施例中的步骤s206,该实施例中的渲染模块48可以用于执行本申请实施例中的步骤s208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线,当光线在虚拟场景中发生色散现象时表示该像素点在虚拟场景中发生色散现象,则结合从目标颜色范围中获取的至少一个第一颜色值以及光线与虚拟场景相交的场景点的第二颜色值确定出目标颜色值,使用该目标颜色值在待渲染画面上渲染像素点从而得到渲染画面,达到了在渲染虚拟场景时渲染出虚拟场景中出现的色散现象的目的,从而实现了在画面上渲染出光的色散效果的技术效果,进而解决了无法在画面上渲染出光的色散效果的技术问题。

作为一种可选的实施例,所述第一确定模块包括:

模拟单元,用于根据所述至少一个第一颜色值,所述色散现象对应的折射率和所述色散现象对应的法线方向模拟所述光线的传播过程,得到所述场景点;

第一获取单元,用于获取所述场景点的颜色值,得到所述第二颜色值;

第一确定单元,用于根据所述虚拟场景中的光源、所述第二颜色值和所述传播过程确定所述光线对应的光源颜色值;

融合单元,用于将所述光源颜色值与所述至少一个第一颜色值融合,得到所述目标颜色值。

作为一种可选的实施例,所述第一确定单元用于:

获取所述虚拟场景中的光源;

根据所述光源和所述第二颜色值,沿着所述传播过程的反向路径计算所述光源颜色值。

作为一种可选的实施例,所述融合单元用于:

根据所述光源颜色值与所述至少一个第一颜色值计算中间颜色值;

对所述中间颜色值进行修正处理,得到所述目标颜色值。

作为一种可选的实施例,所述融合单元用于:

在所述至少一个第一颜色值为一个颜色值的情况下,将所述光源颜色值与所述第一颜色值的乘积确定为所述中间颜色值;

在所述至少一个第一颜色值为多个颜色值的情况下,计算所述多个颜色值中的每个颜色值与对应的光源颜色值之间的乘积,得到多个乘积值;计算所述多个乘积值的加权平均值作为所述中间颜色值。

作为一种可选的实施例,所述融合单元用于以下之一:

通过降噪器对所述中间颜色值进行降噪处理,得到所述目标颜色值;

获取所述待渲染画面的相邻画面中所述像素点所对应的相邻像素点的相邻颜色值;计算所述中间颜色值与所述相邻颜色值的加权平均值作为所述中间颜色值。

作为一种可选的实施例,所述获取模块包括:

第二获取单元,用于获取所述虚拟场景的场景信息;

第二确定单元,用于确定与所述场景信息匹配的颜色范围作为所述目标颜色范围;

第三获取单元,用于从所述目标颜色范围中获取一个或者多个颜色值作为所述至少一个第一颜色值。

作为一种可选的实施例,所述装置还包括以下之一:

第二确定模块,用于在从所述目标颜色范围中获取所述至少一个第一颜色值之前,在检测到所述光线与所述虚拟场景中的目标属性的物体相交的情况下,确定所述光线在所述虚拟场景中发生色散现象,其中,所述目标属性包括对不同颜色值的光具有不同折射率;

第三确定模块,用于在从所述目标颜色范围中获取所述至少一个第一颜色值之前,在检测到所述光线在所述虚拟场景中发生折射的情况下,确定所述光线在所述虚拟场景中发生色散现象。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本申请实施例的另一个方面,还提供了一种用于实施上述画面的渲染方法的电子装置。

图5是根据本申请实施例的一种电子装置的结构框图,如图5所示,该电子装置可以包括:一个或多个(图中仅示出一个)处理器501、存储器503、以及传输装置505,如图5所示,该电子装置还可以包括输入输出设备507。

其中,存储器503可用于存储软件程序以及模块,如本申请实施例中的画面的渲染方法和装置对应的程序指令/模块,处理器501通过运行存储在存储器503内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的画面的渲染方法。存储器503可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器503可进一步包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置505用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置505包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置505为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器503用于存储应用程序。

处理器501可以通过传输装置505调用存储器503存储的应用程序,以执行下述步骤:

沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线;

在检测到所述光线在所述虚拟场景中发生色散现象的情况下,从目标颜色范围中获取至少一个第一颜色值;

根据所述至少一个第一颜色值和第二颜色值确定目标颜色值,其中,所述第二颜色值是所述光线与所述虚拟场景相交的场景点的颜色值;

使用所述目标颜色值在所述待渲染画面上渲染所述像素点,得到渲染画面。

采用本申请实施例,提供了一种画面的渲染的方案。沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线,当光线在虚拟场景中发生色散现象时表示该像素点在虚拟场景中发生色散现象,则结合从目标颜色范围中获取的至少一个第一颜色值以及光线与虚拟场景相交的场景点的第二颜色值确定出目标颜色值,使用该目标颜色值在待渲染画面上渲染像素点从而得到渲染画面,达到了在渲染虚拟场景时渲染出虚拟场景中出现的色散现象的目的,从而实现了在画面上渲染出光的色散效果的技术效果,进而解决了无法在画面上渲染出光的色散效果的技术问题。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图5所示的结构仅为示意,电子装置可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等电子设备。图5其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令电子设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行画面的渲染方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

沿着观察点到待渲染画面上的像素点的方向,构建射向虚拟场景中的光线;

在检测到所述光线在所述虚拟场景中发生色散现象的情况下,从目标颜色范围中获取至少一个第一颜色值;

根据所述至少一个第一颜色值和第二颜色值确定目标颜色值,其中,所述第二颜色值是所述光线与所述虚拟场景相交的场景点的颜色值;

使用所述目标颜色值在所述待渲染画面上渲染所述像素点,得到渲染画面。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

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

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

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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