CN112907716A - 虚拟环境中的云朵渲染方法、装置、设备及存储介质 - Google Patents
虚拟环境中的云朵渲染方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112907716A CN112907716A CN202110296050.9A CN202110296050A CN112907716A CN 112907716 A CN112907716 A CN 112907716A CN 202110296050 A CN202110296050 A CN 202110296050A CN 112907716 A CN112907716 A CN 112907716A
- Authority
- CN
- China
- Prior art keywords
- cloud
- layer
- light
- backlight
- color
- 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
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/02—Non-photorealistic 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2012—Colour editing, changing, or manipulating; Use of colour codes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种虚拟环境中的云朵渲染方法、装置、设备及存储介质,属于虚拟环境渲染领域。该方法包括:基于双层云模型计算得到双层云贴图,双层云贴图包括向光云通道和背光云通道,向光云通道用于指示向光层的颜色层次信息,背光云通道用于指示背光层的颜色层次信息;计算向光层和背光层对应的第一权重;基于第一权重对向光层的颜色层次信息进行渲染,得到向光层的向光渲染结果;以及基于第一权重对背光层的颜色层次信息进行渲染,得到背光层的背光渲染结果;将向光渲染结果和所述背光渲染结果进行混合,得到云朵的渲染结果。上述方法使得虚拟环境中的双层云模型能模拟现实中的云朵,使得虚拟环境中的双层云更为真实。
Description
技术领域
本申请实施例涉及虚拟环境渲染领域,特别涉及一种虚拟环境中的云朵渲染方法、装置、设备及存储介质。
背景技术
在虚拟环境中,为获得更好的视觉效果往往需要采用复杂算法对云朵进行渲染。
相关技术采用了基于光线追踪的物理渲染方法,即首先通过虚拟环境中的云朵的3D噪点图计算出云朵的形状和坐标,再通过光线步进的方法对云朵进行渲染,通过相关技术渲染得到的云朵效果优异。
但是,相关技术渲染云朵的算法过于复杂繁琐,不适用于移动终端。
发明内容
本申请提供了一种虚拟环境中的云朵渲染方法、装置、设备及存储介质,能够在不消耗过多运算资源的前提下,提高虚拟环境中的云朵的真实性。所述技术方案如下:
根据本申请的一个方面,提供了一种虚拟环境中的云朵渲染方法,该方法包括:
基于双层云模型计算得到双层云贴图,双层云贴图包括向光云通道和背光云通道,向光云通道用于指示向光层的颜色层次信息,背光云通道用于指示背光层的颜色层次信息;
计算向光层和背光层对应的第一权重;
基于第一权重对向光层的颜色层次信息进行渲染,得到向光层的向光渲染结果;以及基于第一权重对背光层的颜色层次信息进行渲染,得到背光层的背光渲染结果;
将向光渲染结果和所述背光渲染结果进行混合,得到云朵的渲染结果。
根据本申请的另一方面,提供了一种虚拟环境中的云朵渲染装置,该装置包括:
计算模块,用于基于双层云模型计算得到双层云贴图,双层云贴图包括向光云通道和背光云通道,向光云通道用于指示向光层的颜色层次信息,背光云通道用于指示背光层的颜色层次信息;
计算模块,还用于计算向光层和背光层对应的第一权重;
渲染模块,用于基于第一权重对向光层的颜色层次信息进行渲染,得到向光层的向光渲染结果;以及基于第一权重对背光层的颜色层次信息进行渲染,得到背光层的背光渲染结果;
计算模块,还用于将向光渲染结果和背光渲染结果进行混合,得到云朵的渲染结果。
根据本申请的一个方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上所述的虚拟环境中的云朵渲染方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上所述的虚拟环境中的云朵渲染方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述虚拟环境中的云朵渲染方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过采样得到双层云贴图,并计算向光层和背光层的第一权重,然后基于第一权重对双层云模型中的向光层和背光层分别渲染,得到向光渲染结果和背光渲染结果,最终将向光渲染结果和背光渲染结果混合得到云朵的渲染结果。上述方案使得虚拟环境中的双层云模型能模拟现实中的云朵,使得虚拟环境中的双层云更为真实,在仅占用少量运算资源的情况下,达到了更好的仿真效果,大大提高了虚拟环境中云朵的渲染效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例的虚拟环境中的云朵渲染系统的结构框图;
图2是本申请一个示例性实施例提供的虚拟环境中的云朵渲染方法的流程图;
图3是本申请一个示例性实施例提供的双层云贴图三个通道的示意图;
图4是本申请一个示例性实施例的未限制的第一权重随V·L变化情况的示意图;
图5是本申请一个示例性实施例提供的不同场景下虚拟环境包含的颜色示意图;
图6是本申请另一个示例性实施例提供的未限制的第二权重随V·L变化情况的示意图;
图7是本申请另一个示例性实施例提供的虚拟环境中的云朵渲染方法的流程图;
图8是本申请一个示例性实施例提供的未限制的第三权重随V·L的变化情况的示意图;
图9是本申请另一个示例性实施例提供的虚拟环境中的云朵渲染方法的流程图;
图10是本申请一个示例性实施例提供的未限制的渐隐变量随V·L的变化情况的示意图;
图11是本申请一个示例性实施例提供的采用本申请提供的技术方案和未采用本申请的技术方案的虚拟环境中云朵的渲染效果对比图;
图12是本申请一个示例性实施例提供的采用本申请提供的技术方案和未采用本申请的技术方案的虚拟环境中云朵的渲染效果对比图;
图13是本申请一个示例性实施例提供的采用本申请提供的技术方案和未采用本申请的技术方案的虚拟环境中云朵的渲染效果对比图;
图14是本申请一个示例性实施例提供的虚拟环境中云朵的示意图;
图15是本申请一个示例性实施例提供的虚拟环境中的云朵渲染装置的结构框图;
图16是本申请一个示例性实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
通道:指双层云贴图中的RGB通道,在一个实施例中,双层云贴图的R通道即为向光云通道,用于存储向光层的相关信息,可选的,R通道存储向光层的颜色层次信息;双层云贴图的G通道即为背光云通道,用于存储背光层的相关信息,可选的,G通道存储背光层的颜色层次信息;双层云贴图的B通道为半透明通道,用于存储云的整体透明度。
对应关系:指基于双层云模型在虚拟环境中的位置信息,设置太阳光线对双层云模型产生相对应的影响。在一个实施例中,当双层云模型处于视野与太阳中间时,设置双层云模型出现暗部;当双层云模型远离太阳时,即视野方向夹角与太阳方向夹角无限接近180度时,设置双层云模型体现出更好的层次感。在一个实施例中,当双层云模型处于视野与太阳中间时,设置双层云模型出现明显光晕,当双层云模型远离太阳时,设置双层云模型的光晕逐渐消失。在一个实施例中,当双层云模型处于视野与太阳中间时,设置双层云模型较为明亮,清晰度高,当双层云模型远离太阳时,设置双层云模型呈现出较淡的颜色。
散射颜色:指太阳光线散发出来的颜色,示意性的,预设太阳为金色,则散射颜色为金色。可选的,散射颜色的RGB为(204,172,101)。
主颜色:指预设的虚拟环境的基础颜色,示意性的,虚拟环境基础颜色的RGB为(178,165,137)。
阴影颜色:指预设的虚拟环境中阴影的颜色,示意性的,阴影颜色的RGB为(140,40,140)。
光线追踪:光线追踪是三维计算机图形学中的特殊渲染算法,跟踪从眼睛发出的光线而不是光源发出的光线,通过这样一项技术将场景的模型渲染出来。
天空盒:天空盒是一个包裹整个场景的立方体,通过6个图像构成一个环绕的环境,当玩家身处天空盒中时,玩家容易误以为所处的场景比实际所处的场景更大。在一个实施例中,在视频游戏中使用包含群山、白云或者满天繁星的天空盒图像。
UV(二维坐标):UV展开是将具有体积和形状的3D表面平移到平坦2D纹理图像上的过程,UV就是展开的2D纹理图像的坐标。每个顶点都有一个UV参数值,UV坐标也称为纹理坐标。通过偏移UV坐标,可以实现贴图的移动,比如天空上云朵的位移。
定向散射:指将光线射入较厚的云层。当发生定向散射现象时,光线被云中的水或颗粒吸收,导致光线消失,云呈现出暗部。
银线:指当光线在云中散射时,闪烁银色的云边缘。由于光线在大片的薄云中更容易散射出去,因此当光线在大片的薄云中散射时,闪烁银色的云边缘会更加明显。
图1示出了本申请一个示例性实施例的虚拟环境中的云朵渲染系统的结构框图,如图1所示,该虚拟环境中的云朵渲染系统包括颜色渲染子系统110、光晕渲染子系统120和清晰度渲染子系统130。
响应于将双层云贴图输入颜色渲染子系统110,颜色渲染子系统110对双层云贴图的向光云通道中的向光层的颜色层次信息进行渲染,得到向光渲染结果;响应于将双层云贴图输入颜色渲染子系统110,颜色渲染子系统110对双层云贴图的背光云通道中的背光层的颜色层次信息进行渲染,得到背光渲染结果;颜色渲染子系统由向光渲染结果和背光渲染结果得到云朵的渲染结果;
响应于颜色渲染子系统110将云朵的颜色渲染结果输入光晕渲染子系统120,光晕渲染子系统120得到第一优化后的渲染结果;
响应于颜色渲染子系统110将云朵的颜色渲染结果输入清晰度渲染子系统130,清晰度渲染子系统130得到第二优化后的渲染结果。
在一个实施例中,光晕渲染子系统120将得到的第一优化后的渲染结果作为最终的添加光晕的云朵渲染结果。
在一个实施例中,将第二优化后的渲染结果输入光晕渲染子系统120,光晕渲染子系统120输出添加光晕的云朵渲染结果。
在一个实施例中,清晰度渲染子系统130将得到的第二优化后的渲染结果作为最终的添加清晰度的云朵渲染结果。
在一个实施例中,将第一优化后的渲染结果输入清晰度渲染子系统130,清晰度渲染子系统130输出添加清晰度的云朵渲染结果。
在一个实施例中,上述虚拟环境中的云朵渲染系统可以至少运行在终端上,或运行在服务器上,或运行在终端和服务器上。
本领域技术人员可以知晓,上述终端和服务器的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。上述服务器可以仅为一个,或者上述服务器为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型、服务器的数量不加以限定。
下述实施例以虚拟环境中的云朵渲染系统应用于终端为例,进行解释说明。
为渲染终端或客户端中处于虚拟环境的云朵,图2示出了本申请一个示例性实施例提供的虚拟环境中的云朵渲染方法的流程图,以图2所示的方法应用于图1所示的虚拟环境中的云朵渲染系统,该方法包括:
步骤201,基于双层云模型计算得到双层云贴图,双层云贴图包括向光云通道和背光云通道,向光云通道用于指示向光层的颜色层次信息,背光云通道用于指示背光层的颜色层次信息;
双层云模型指在虚拟环境中搭建,用于模拟现实云朵的模型。在一个实施例中,通过设置天空盒的方法来构建双层云模型。在一个实施例中,通过对云朵进行插片,得到双层云模型。在一个实施例中,通过在模型上绘制直接得到双层云模型,基于UV旋转,即得到的双层云模型可实现动态效果。
可选的,为生成写实的双层云模型,使用Houdini(一种设计视觉效果的工具)工具生成云的形状。
可选的,通过手绘的方式实现双层云模型的特殊定制。
在一个实施例中,双层云贴图包括向光云通道和背光云通道,向光云通道用于指示向光层的颜色层次信息,背光云通道用于指示背光层的颜色层次信息。
在一个实施例中,向光层表现为远离太阳时的云体信息,背光层,表现为云朵被太阳挡住时的云体信息。示意性的,图3示出了双层云贴图的向光云通道、背光云通道和半透明通道,可选的,从左往右为R通道、G通道和B通道。R通道存储了向光层的相关信息,即R通道为向光云通道;G通道存储了背光层的相关信息,即G通道为背光云通道;B通道为半透明通道,用于存储云的整体透明度。
在一个实施例中,终端首先对双层云模型进行二维采样,得到采样贴图;然后终端采用处理参数对采样贴图进行动态变化,得到双层云贴图;处理参数包括缩放参数、偏移参数和时间变量中的至少一种。
在一个实施例中,终端对双层云模型计算得到双层云贴图由以下代码实现:
float2 finalUV_scale=float2(uv.x,uv.y)*Tiling+Offset+Rotation;
其中,Tiling为缩放参数,Offset为偏移参数,Rotation为时间变量,uv.x为采样贴图的横坐标,uv.y为采样贴图的纵坐标。
响应于终端对双层云模型进行二维采样,得到双层云模型的采样贴图,之后终端对该采样贴图的横纵坐标进行缩放、偏移得到双层云贴图的横纵坐标。在一个可选的实施例中,上述对该采样贴图的横纵坐标进行缩放、偏移之后,横纵坐标还与时间变量累加,得到双层云贴图的横纵坐标,即得到双层云贴图,其中,时间变量指示双层云三维模型随时间的动态变化。
步骤202,计算向光层和背光层对应的第一权重;
在一个实施例中,响应于终端以视野方向与主光方向之间的向量积为输入,基于第一对应关系计算向光层和背光层对应的第一权重;
其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第一对应关系用于确定在不同的太阳光环境下将太阳光线的散射颜色融合至向光层和背光层时的权重。
在一个实施例中,上述第一对应关系指基于双层云模型在虚拟环境中的位置信息,设置太阳光线对双层云模型的颜色产生的影响,示意性的,基于双层云模型在虚拟环境中的位置信息映射得到第一权重,其中第一权重用于指示双层云模型的生成颜色占双层云模型固有颜色的比例。
可选的,响应于终端以视野方向与主光方向之间的向量积为输入,第一对应关系为正比例关系,计算得到向光层和背光层对应的第一权重。示意性的,第一权重与上述向量积的对应关系为y=(-x*50+50)-0.2-0.2,x为向量积,取值范围为[-1,1],y为第一权重,取值范围为[0,1]。
可选的,响应于终端以视野方向与主光方向之间的向量积为输入,第一对应关系为反比例关系,计算得到向光层和背光层对应的第一权重。示意性的,第一权重与上述向量积的对应关系为y=-kx+b,x为向量积,取值范围为[-1,1],y为第一权重,取值范围为[0,1]。
可选的,响应于终端以视野方向与主光方向之间的向量积为输入,第一对应关系存在分段对应,例如当上述向量积取值范围为[-1,0]时,第一权重为固定值,当上述向量积取值范围为[0,1]时,第一权重与上述向量积的对应关系为正比例关系。
值得注意的是,上述第一对应关系并不限制于所列出的映射关系,在实际应用中可能存在多种映射关系,本申请对此不加以限定。
在一个实施例中,通过下述代码得到第一权重:
scatter1=(-V·L*50+50)-0.2-0.2;
其中,scatter1为未限制的第一权重,V为视野方向的单位化向量,L为主光方向的单位化向量,V·L表示视野方向和主光方向的向量积,可用于描述视野方向和主光方向之间的夹角的大小和方向,因此V·L的范围为[-1,1]。图4示出了未限制的第一权重随V·L的变化情况,由图4可得,当V·L=1时,此时视野方向和主光方向的夹角为0度,即视野在直视太阳时,未限制的第一权重为无穷大;当V·L=-1时,此时视野方向和主光方向的夹角为180度,即视野在背向太阳时,第一权重为0.2。
通过下列代码将未限制的第一权重取值范围设置在[0,1],得到新的scatter1为第一权重。
scatter1=saturate(scatter1);
在一个实施例中,终端基于虚拟环境中的太阳高度和预设的太阳光线的初始方向,计算得到主光方向。
示例性的,在虚拟环境中建立三维坐标系xyz,其中y轴为上下方向的轴线,x轴为前后方向的轴线,z轴为左右方向的轴线。
在一个实施例中,太阳高度为沿x轴旋转的角度。
示例性的,响应于设置太阳高度为45度,太阳光线的初始方向为(0,0,1),即太阳光线的初始方向沿着x轴旋转45度,得到主光方向,此时主光方向为(0,1,1)。
示例性的,响应于设置太阳高度为90度,太阳光线的初始方向为(0,0,1),即太阳光线的初始方向沿着x轴旋转90度,得到主光方向,此时主光方向为(0,1,0)。
示例性的,响应于设置太阳高度为180度,太阳光线的初始方向为(0,0,1),即太阳光线的初始方向沿着x轴旋转180度,得到主光方向,此时主光方向为(0,0,-1)。
在一个实施例中,通过下述代码得到主光方向:
Quaternion a=finalLight.transform.rotation;//设置光照方向的初始旋转角sunHeightView=Quaternion.AngleAxis(a.eulerAngles.z,Vector3.forward)*Vector3.forward;
sunHeightView=Quaternion.AngleAxis(localEulerAngleX,Vector3.right)*sunHeightView;
sunHeightView=Quaternion.AngleAxis(a.eulerAngles.y,Vector3.up)*sunHeightView;
Shader.SetGlobalVector("_SunLightDirection",sunHeightView);//将主光方向设置给Shader
其中,a为光照方向的初始旋转角,finalLight.transform.rotation为标准化的光照方向,localEulerAngleX为高度值,Quaternion.AngleAxis()为四元数旋转变换,Vector3.forward为虚拟环境的z轴方向,Vector3.right为虚拟环境的x轴方向,Vector3.up为虚拟环境的y轴方向,sunHeightView为中间变量,以高度值沿x轴旋转光照方向即可得到主光方向,即SunLightDirection。
步骤203,基于第一权重对向光层的颜色层次信息进行渲染,得到向光层的向光渲染结果;以及基于第一权重对背光层的颜色层次信息进行渲染,得到背光层的背光渲染结果;
在一个实施例中,步骤203至少包括以下步骤:
步骤203-1,基于向光层的颜色层次信息,在双层云贴图的主颜色和阴影颜色之间进行插值,得到向光层的固有颜色;
颜色层次信息指向光层的颜色层次分布信息。在一个实施例中,向光层的颜色层次信息包括:云朵在向光情况下的边缘颜色信息。
在一个实施例中,通过下述代码得到向光层的固有颜色:
float3 ToLightCloud=lerp(_MainColor.rgb,_Color.xyz,1-col.x);
其中,ToLightCloud为向光层的固有颜色,MainColor.rgb为主颜色,_Color.xyz为阴影颜色,col.x为向光层的颜色层次信息。可选的,
lerp(_MainColor.rgb,_Color.xyz,1-col.x)=_MainColor.rgb+(_Color.xyz-_MainColor.rgb)*(1-col.x);
在一个实施例中,图5示出了不同场景下虚拟环境包含的颜色,在早晨时,主颜色为(178,165,37)、阴影颜色为(140,140,140),散射颜色为(204,172,101)、光晕颜色为(180,138,57);在黄昏时,主颜色为(166,121,100)、阴影颜色为(137,93,78),散射颜色为(204,97,0)、光晕颜色为(204,126,43);在夜晚时,主颜色为(80,95,113)、阴影颜色为(49,69,89),散射颜色为(102,132,178)、光晕颜色为(69,114,130)。
步骤203-2,计算太阳光线的散射颜色、第一权重和向光层的颜色层次信息的乘积,得到向光层的中间颜色;
在一个实施例中,通过下述代码得到向光层的中间颜色:
ToLightCloud1.xyz=(_CloudAddColor.xyz*col.x*scatter1);
_CloudAddColor.xyz为散射颜色,ToLightCloud1.xyz为向光层的中间颜色,scatter1为第一权重。
步骤203-3,将向光层的中间颜色叠加到向光层的固有颜色上,得到向光层的向光渲染结果;
在一个实施例中,通过下述代码得到向光渲染结果:
ToLightCloud.xyz=ToLightCloud+ToLightCloud1;
其中,上式左边ToLightCloud为向光渲染结果,上式右边ToLightCloud为向光层的固有颜色。
步骤203-4,基于背光层的颜色层次信息,在双层云贴图的主颜色和阴影颜色之间进行插值,得到背光层的固有颜色;
在一个实施例中,背光层的颜色层次信息包括:云朵在背光情况下的定向散射信息。
在一个实施例中,通过下述代码得到背光层的固有颜色。
float3 BackLightCloud=lerp(_MainColor.rgb,_Color.xyz,1-col.y);
其中,BackLightCloud为背光层的固有颜色,col.y为背光层的颜色层次信息。可选的,lerp(_MainColor.rgb,_Color.xyz,1-col.y)=_MainColor.rgb+(_Color.xyz-_MainColor.rgb)*(1-col.y);
步骤203-5,计算太阳光线的散射颜色、第一权重和背光层的颜色层次信息的乘积,得到背光层的中间颜色;
在一个实施例中,通过下述代码得到背光层的中间颜色:
BackLightCloud1.xyz=_CloudAddColor.xyz*col.y*scatter1;
其中,BackLightCloud1.xyz为背光层的中间颜色,scatter1为第一权重。
步骤203-6,将背光层的中间颜色叠加到背光层的固有颜色上,得到背光层的背光渲染结果。
在一个实施例中,通过下述代码得到背光渲染结果:
BackLightCloud.xyz=BackLightCloud+BackLightCloud1.xyz;
其中,上式左边BackLightCloud.xyz为背光渲染结果,上式右边BackLightCloud为背光层的固有颜色。
步骤204,将向光渲染结果和背光渲染结果进行混合,得到云朵的渲染结果。
在一个实施例中,将向光渲染结果和背光渲染结果进行混合,得到云朵的渲染结果的方法包括以下步骤:
步骤204-1,以视野方向与主光方向之间的向量积为输入,基于第二对应关系计算第二权重;
其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第二对应关系用于表示不同的太阳光环境与向光渲染结果和背光渲染结果的融合权重之间的对应关系。
在一个实施例中,第二权重指示双层云模型中背光层的所占比例。
在一个实施例中,上述第二对应关系指基于双层云模型在虚拟环境中的位置信息,设置双层云模型中背光层的所占比例。
在一个实施例中,第二权重由以下代码得到:
scatter2=(V·L)15;(1)
float scatter2=max(pow(saturate(VdotL),15),0);(2)
上式中(2)得到的scatter2为第二权重,saturate限制V·L取值范围为[0,1],pow限制第二权重为大于0的自然数,其中,V·L表示视野方向和主光方向的向量积,图6示出了未限制的第二权重随V·L的变化情况,当视野方向和主光方向的夹角为0度时,说明视野在直视太阳,此时V·L=1,scatter2为1,此时云表现出背光效果,尤其是较厚的地方表现为暗部背光;随着视野方向和主光方向夹角逐渐增大,即V·L逐渐减小,scatter2逐渐降低到0,表现为远离太阳的云呈现出向光云的特征。
在一个实施例中,在虚拟环境中建立三维坐标系xyz,其中x轴为前后方向,y轴为上下方向,z轴为左右方向,固定视野方向为(0,1,1),当太阳高度由0度逐渐增加至90度时,即视野方向与主光方向夹角逐渐减小时,即V·L逐渐增大时,直至太阳高度为90度,此时主光方向为(0,1,0),此时云的背光效果逐渐增强,向光效果逐渐减弱;
当太阳高度由90度逐渐增加至180度时,即视野方向与主光方向的夹角逐渐增大时,即V·L逐渐减小,当太阳高度为180度时,此时主光方向为(0,0,-1),此时云的背光效果逐渐减弱,向光效果逐渐增强。
步骤204-2,基于第二权重对向光渲染结果和背光渲染结果进行加权融合,得到云朵的渲染结果;
在一个实施例中,得到云朵的颜色渲染结果的代码如下所示:
float3 LightCloud=ToLightCloud*(1-scatter2)+BackLightCloud*scatter2;
其中,LightCloud为云朵的颜色渲染结果,ToLightCloud为向光层的向光渲染结果,BackLightCloud为背光层的背光渲染结果,scatter2为第二权重。
综上所述,通过采样得到双层云贴图,并计算向光层和背光层的第一权重,然后基于第一权重对双层云模型中的向光层和背光层分别渲染,得到向光渲染结果和背光渲染结果,最终将向光渲染结果和背光渲染结果混合得到云朵的渲染结果。上述方案使得虚拟环境中的双层云模型能模拟现实中的云朵,使得虚拟环境中的双层云更为真实,在仅占用少量运算资源的情况下,达到了更好的仿真效果,大大提高了虚拟环境中云朵的渲染效果。
上述方案还通过第一对应关系确定在不同的太阳光环境下将太阳光线的散射颜色融合至所述向光层和所述背光层时的权重,基于该权重将太阳光线的散射颜色融合至向光层和背光层,使得向光渲染结果和背光渲染结果基于太阳光线的散射颜色改变进行相应的改变。
上述方案还通过第二对应关系用于表示不同的太阳光环境与向光渲染结果和背光渲染结果的融合权重之间的对应关系,基于该融合权重将不同的太阳光环境与向光渲染结果和背光渲染结果融合,得到云朵的渲染结果,使得向光渲染结果和背光渲染结果基于该融合权重得到不同云朵的渲染结果。
上述方案还通过设置时间变量用于采样不同的双层云贴图,基于采样不同的双层云贴图,得到不同光环境下的双层云贴图,基于该不同光环境下的双层云贴图得到不同云朵的渲染结果。
图7示出了本申请一个示例性实施例提供的虚拟环境中的云朵渲染方法,与图2所示的方法区别在于,步骤204之后还包括步骤205和步骤206。
步骤205,计算云朵的当前光晕;
在一个可选的实施例中,响应于终端获取云朵的固有光晕,并以视野方向与主光方向之间的向量积为输入,基于第三对应关系计算第三权重;基于第三权重和固有光晕,终端计算得到云朵的当前光晕;
在一个实施例中,第三对应关系指基于双层云模型在虚拟环境中的位置信息,设置太阳光线对双层云模型的光晕产生的影响。示意性的,基于双层云模型在虚拟环境中的位置信息映射得到第三权重。
在一个实施例中,第三权重用于指示双层云模型的当前光晕占双层云模型固有光晕的比例。
其中,主光方向是虚拟环境中的摄像机模型所在位置朝向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第三对应关系用于确定在不同的太阳光环境下将当前光晕融合至云朵的渲染结果时的权重。示意性的,通过以下代码得到云朵的当前光晕。
scatter4=(-V·L*130+130)-0.3-0.3;(3)
float3 haloColor=saturate(scatter4)*_HaloColor.rgb;(4)
LightCloud2.xyz=haloColor*_HaloIntensity;(5)
其中,(3)中scatter4为未加限制的第三权重,由saturate(scatter4)得到第三权重。示意性的,图8示出了未加限制的第三权重随V·L的变化,横轴为V·L,范围为[-1,1],纵轴为scatter4。V·L表示了视野方向和主光方向的向量积,当视角方向和主光方向的夹角为0度时,说明视野在直视太阳,此时V·L=1,scatter4为无穷大;随着视野逐渐远离主光方向,scatter4变为0,LightCloud2为云朵的当前光晕参数。
其中,HaloColor为双层云的固有光晕,_HaloIntensity为光晕强度,saturate用于将scatter4的值限制在[0,1],即saturate(scatter4)为第三权重,由双层云的固有光晕和光晕强度结合。
在一个实施例中,在虚拟环境中建立三维坐标系xyz,其中x轴为前后方向,y轴为上下方向,z轴为左右方向,固定视野方向为(0,1,1),当太阳高度由0度逐渐增加至90度时,即视野方向与主光方向夹角逐渐减小时,即V·L逐渐增大时,直至太阳高度为90度,此时主光方向为(0,1,0),此时云的光晕效果逐渐增强;
当太阳高度由90度逐渐增加至180度时,即视野方向与主光方向的夹角逐渐增大时,即V·L逐渐减小,当太阳高度为180度时,此时主光方向为(0,0,-1),此时云的光晕效果逐渐减弱。
步骤206,将当前光晕叠加至所述云朵的渲染结果,得到第一优化后的渲染结果。
LightCloud.xyz=LightCloud2.xyz+LightCloud.xyz;
上式左边LightCloud.xyz为第一优化后的渲染结果,右边LightCloud.xyz为云朵的渲染结果。
综上所述,通过设置虚拟环境中双层云的光晕来优化虚拟环境中云朵的渲染效果,使得虚拟环境中的双层云模型能模拟现实中的云朵,使得虚拟环境中的双层云更为真实,在仅占用少量运算资源的情况下,达到了更好的仿真效果,大大提高了虚拟环境中云朵的渲染效果。
上述方案还通过第三对应关系确定在不同的太阳光环境下将当前光晕融合至云朵的渲染结果时的权重,基于该权重将光晕融合至云朵的渲染结果,使得云朵的渲染结果基于该权重的改变进行相应的改变。
图9示出了本申请一个示例性实施例提供的虚拟环境中的云朵渲染方法,与图2所示的方法区别在于,步骤204之后,还包括步骤207和步骤208,
步骤207,计算云朵的清晰度参数;
在一个实施例中,以视野方向与主光方向之间的向量积为输入,基于第四对应关系计算云朵的清晰度参数,其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型的朝向方向,向量积用于表示不同的太阳光环境,第四对应关系用于确定在不同的太阳光环境下对云朵的渲染结果进行模糊化处理时的权重。
在一个实施例中,第四对应关系用于表示基于双层云模型在虚拟环境中的位置信息,设置太阳光线对双层云模型的清晰度产生的影响。示意性的,基于双层云模型在虚拟环境中的位置信息映射得到清晰度参数。
在一个实施例中,清晰度参数指用于调节云朵的清晰度的参数。
响应于视野方向和主光方向之间的向量积不小于0,基于视野方向和主光方向之间的向量积,终端计算得到渐隐变量;终端设置云朵的清晰度参数等于渐隐变量;响应于视野方向和主光方向之间的向量积小于0,终端设置云朵的清晰度参数等于预设值。
示意性的,通过以下代码得到云朵的清晰度参数:
float scatter3=pow(-VdotLXZ*59.64+72.42,-0.15);(6)
scatter3*=(1.5+VdotLXZ*VdotLXZ)*0.9;(7)
scatter3=VdotLXZ>=0?scatter3:0.71;(8)
其中,上述(7)得到的scatter3为渐隐变量,(8)得到的scatter3为清晰度参数,V.xz·L.xz表示视野方向和主光方向的夹角在XZ平面上的投影(unity中y轴为纵轴)。
当(7)得到的scatter3不小于0时,设置(7)得到的scatter3为清晰度参数;当(7)得到的scatter3小于0时,设置清晰度参数为预设值0.71。
示意性的,图10示出了(6)得到的scatter3随V·L的变化,当视野方向和主光方向的夹角为0度时,即视野直视太阳,此时V·L=1,(1)得到的scatter3为1.535,此时云较为明亮;随着视野方向和主光方向的夹角逐渐增大,(6)得到的scatter3逐渐降低到0.71,并保持不变,云呈现出较淡的颜色。
在一个实施例中,在虚拟环境中建立三维坐标系xyz,其中x轴为前后方向,y轴为上下方向,z轴为左右方向,固定视野方向为(0,1,1),当太阳高度由0度逐渐增加至90度时,即视野方向与主光方向夹角逐渐减小时,即V·L逐渐增大时,直至太阳高度为90度,此时主光方向为(0,1,0),此时云的清晰度逐渐增大;
当太阳高度由90度逐渐增加至180度时,即视野方向与主光方向的夹角逐渐增大时,即V·L逐渐减小,当太阳高度为180度时,此时主光方向为(0,0,-1),此时云的清晰度逐渐减小。
步骤208,基于清晰度参数对云朵的渲染结果进行模糊化处理,得到第二优化后的渲染结果。
示意性的,通过以下代码得到第二优化后的渲染结果:
LightCloud.xyz*=scatter3;
此时计算得到的LightCloud.xyz为基于云朵的渲染效果的第二优化后的渲染结果,上式scatter3为清晰度参数。
综上所述,通过设置虚拟环境中双层云的清晰度来优化虚拟环境中云朵的渲染效果,使得虚拟环境中的双层云模型能模拟现实中的云朵,使得虚拟环境中的双层云更为真实,在仅占用少量运算资源的情况下,达到了更好的仿真效果,大大提高了虚拟环境中云朵的渲染效果。
上述方案还通过第四对应关系确定在不同的太阳光环境下对所述云朵的渲染结果进行模糊化处理时的权重,基于该权重对云朵的渲染结果进行模糊化处理时,使得在不同的太阳光环境下云朵的渲染结果基于该权重的改变进行相应的改变。
下面比较采用了本申请提供的技术方案和未采用本申请的技术方案的虚拟环境中云朵的效果。
其中图11、图12、图13的左半部分为采取了本申请提供的技术方案的虚拟环境中的云朵,右半部分为未采用本申请的技术方案的虚拟环境中的云朵。
图11示出了当处于夕阳下时,太阳高度为40的云朵,其中左半部分云多的颜色更为暗黄,且太阳周围有光晕溢出效果。
图12示出了当处于夕阳下时,太阳高度为0的云朵,由图12可以看出,随着太阳下降,太阳被一朵云挡住。左半部分云朵的边缘变得更加清晰,锐利,这是因为随着云朵与太阳的距离减小,云朵的边缘区域也被照亮,云朵体现出一定厚度,且增加了光晕溢出,云的大气散射效果得到明显增强。
图13示出了当处于夕阳下时,太阳高度为-20的云朵,由图13可以看出,随着太阳的进一步下降,左半部分图的底部逐渐出现薄云,且薄云呈现出明显的银色边缘。
图14为真实游戏场景中,加入夕阳天气后处理的整体效果,可以看到由于区分了背光云体和向光云体,太阳附近的云更多表现出背光云的厚重感,而远离太阳的云更多的表现向光云的层次感,无论是在早晨的天空,还是夕阳下的天空,都能够得到较好的体积感。
图15是本申请一个示例性实施例提供的虚拟环境中的云朵渲染装置的结构框图,如图15所示,该装置包括:
计算模块1501,用于基于双层云模型计算得到双层云贴图,双层云贴图包括向光云通道和背光云通道,向光云通道用于指示向光层的颜色层次信息,背光云通道用于指示背光层的颜色层次信息;
计算模块1501,还用于计算向光层和背光层对应的第一权重;
渲染模块1502,用于基于第一权重对向光层的颜色层次信息进行渲染,得到向光层的向光渲染结果;以及基于第一权重对背光层的颜色层次信息进行渲染,得到背光层的背光渲染结果;
计算模块1501,还用于将向光渲染结果和背光渲染结果进行混合,得到云朵的渲染结果。
在一个可选的实施例中,渲染模块1502还用于基于向光层的颜色层次信息,在双层云贴图的主颜色和阴影颜色之间进行插值,得到向光层的固有颜色。
在一个可选的实施例中,渲染模块1502还用于计算太阳光线的散射颜色、第一权重和向光层的颜色层次信息的乘积,得到向光层的中间颜色。
在一个可选的实施例中,渲染模块1502还用于将向光层的中间颜色叠加到向光层的固有颜色上,得到向光层的向光渲染结果。
在一个可选的实施例中,向光层的颜色层次信息包括:云朵在向光情况下的边缘颜色信息。
在一个可选的实施例中,渲染模块1502还用于基于背光层的颜色层次信息,在双层云贴图的主颜色和阴影颜色之间进行插值,得到背光层的固有颜色。
在一个可选的实施例中,渲染模块1502还用于计算太阳光线的散射颜色、吸收散射比和背光层的颜色层次信息的乘积,得到背光层的中间颜色。
在一个可选的实施例中,渲染模块1502还用于将背光层的中间颜色叠加到背光层的固有颜色上,得到背光层的背光渲染结果。
在一个可选的实施例中,背光层的颜色层次信息包括:云朵在背光情况下的定向散射信息。
在一个可选的实施例中,计算模块1501还用于以视野方向与主光方向之间的向量积为输入,基于第一对应关系计算向光层和背光层对应的第一权重。
其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第一对应关系用于确定在不同的太阳光环境下将太阳光线的散射颜色融合至向光层和背光层时的权重。
在一个可选的实施例中,计算模块1501还用于以视野方向与主光方向之间的向量积为输入,基于第二对应关系计算第二权重。
在一个可选的实施例中,计算模块1501还用于基于第二权重对向光渲染结果和背光渲染结果进行加权融合,得到云朵的渲染结果。
其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第二对应关系用于表示不同的太阳光环境与向光渲染结果和背光渲染结果的融合权重之间的对应关系。
在一个可选的实施例中,计算模块1501还用于计算云朵的当前光晕。
在一个可选的实施例中,计算模块1501还用于将当前光晕叠加至云朵的渲染结果,得到第一优化后的渲染结果。
在一个可选的实施例中,计算模块1501还用于获取云朵的固有光晕。
在一个可选的实施例中,计算模块1501还用于以视野方向与主光方向之间的向量积为输入,基于第三对应关系计算第三权重。
在一个可选的实施例中,计算模块1501还用于基于第三权重和固有光晕,计算得到云朵的当前光晕。
其中,主光方向是虚拟环境中的摄像机模型所在位置朝向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第三对应关系用于确定在不同的太阳光环境下将当前光晕融合至云朵的渲染结果时的权重。
在一个可选的实施例中,计算模块1501还用于计算云朵的清晰度参数。
在一个可选的实施例中,计算模块1501还用于基于清晰度参数对云朵的渲染结果进行模糊化处理,得到第二优化后的渲染结果。
在一个可选的实施例中,计算模块1501还用于以视野方向与主光方向之间的向量积为输入,基于第四对应关系计算云朵的清晰度参数。
其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型的朝向方向,向量积用于表示不同的太阳光环境,第四对应关系用于确定在不同的太阳光环境下对云朵的渲染结果进行模糊化处理时的权重。
在一个可选的实施例中,计算模块1501还用于响应于视野方向和主光方向之间的向量积不小于0,基于视野方向和主光方向之间的向量积,计算得到渐隐变量;设置云朵的清晰度参数等于渐隐变量。
在一个可选的实施例中,计算模块1501还用于响应于视野方向和主光方向之间的向量积小于0,设置云朵的清晰度参数等于预设值。
在一个可选的实施例中,计算模块1501还用于对双层云模型进行二维采样,得到采样贴图。
在一个可选的实施例中,计算模块1501还用于采用处理参数对采样贴图进行动态变化,得到双层云贴图;处理参数包括缩放参数、偏移参数和时间变量中的至少一种。
在一个可选的实施例中,计算模块1501基于虚拟环境中的太阳高度和预设的太阳光线的初始方向,计算得到主光方向。
需要说明的是:上述实施例提供的虚拟环境中的云朵渲染装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟环境中的云朵渲染装置,与虚拟环境中的云朵渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
综上所述,本实施例提供的装置,通过采样得到双层云贴图,并计算向光层和背光层的第一权重,然后基于第一权重对双层云模型中的向光层和背光层分别渲染,得到向光渲染结果和背光渲染结果,最终将向光渲染结果和背光渲染结果混合得到云朵的渲染结果。上述方案使得虚拟环境中的双层云模型能模拟现实中的云朵,使得虚拟环境中的双层云更为真实,在仅占用少量运算资源的情况下,达到了更好的仿真效果,大大提高了虚拟环境中云朵的渲染效果。
图16示出了本申请一个示例性实施例提供的电子设备1600的结构框图。该电子设备1600可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备1600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备1600包括有:处理器1601和存储器1602。
处理器1601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1601可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1601所执行以实现本申请中方法实施例提供的虚拟环境中的云朵渲染方法。
在一些实施例中,电子设备1600还可选包括有:外围设备接口1603和至少一个外围设备。处理器1601、存储器1602和外围设备接口1603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1603相连。具体地,外围设备包括:射频电路1604、显示屏1605、摄像头组件1606、音频电路1607、定位组件1608和电源1609中的至少一种。
外围设备接口1603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1601和存储器1602。在一些实施例中,处理器1601、存储器1602和外围设备接口1603被集成在同一芯片或电路板上;在一些其他实施例中,处理器1601、存储器1602和外围设备接口1603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1605是触摸显示屏时,显示屏1605还具有采集在显示屏1605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1601进行处理。此时,显示屏1605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1605可以为一个,设置在电子设备1600的前面板;在另一些实施例中,显示屏1605可以为至少两个,分别设置在电子设备1600的不同表面或呈折叠设计;在另一些实施例中,显示屏1605可以是柔性显示屏,设置在电子设备1600的弯曲表面上或折叠面上。甚至,显示屏1605还可以设置成非矩形的不规则图形,也即异形屏。显示屏1605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1606用于采集图像或视频。可选地,摄像头组件1606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1601进行处理,或者输入至射频电路1604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备1600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1601或射频电路1604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1607还可以包括耳机插孔。
定位组件1608用于定位电子设备1600的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1608可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1609用于为电子设备1600中的各个组件进行供电。电源1609可以是交流电、直流电、一次性电池或可充电电池。当电源1609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备1600还包括有一个或多个传感器1610。该一个或多个传感器1610包括但不限于:加速度传感器1611、陀螺仪传感器1612、压力传感器1613、指纹传感器1614、光学传感器1615以及接近传感器1616。
加速度传感器1611可以检测以电子设备1600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1611可以用于检测重力加速度在三个坐标轴上的分量。处理器1601可以根据加速度传感器1611采集的重力加速度信号,控制显示屏1605以横向视图或纵向视图进行用户界面的显示。加速度传感器1611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1612可以检测电子设备1600的机体方向及转动角度,陀螺仪传感器1612可以与加速度传感器1611协同采集用户对电子设备1600的3D动作。处理器1601根据陀螺仪传感器1612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1613以设置在电子设备1600的侧边框和/或显示屏1605的下层。当压力传感器1613设置在电子设备1600的侧边框时,可以检测用户对电子设备1600的握持信号,由处理器1601根据压力传感器1613采集的握持信号进行左右手识别或快捷操作。当压力传感器1613设置在显示屏1605的下层时,由处理器1601根据用户对显示屏1605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1614用于采集用户的指纹,由处理器1601根据指纹传感器1614采集到的指纹识别用户的身份,或者,由指纹传感器1614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1614可以被设置在电子设备1600的正面、背面或侧面。当电子设备1600上设置有物理按键或厂商Logo时,指纹传感器1614可以与物理按键或厂商Logo集成在一起。
光学传感器1615用于采集环境光强度。在一个实施例中,处理器1601可以根据光学传感器1615采集的环境光强度,控制显示屏1605的显示亮度。具体地,当环境光强度较高时,调高显示屏1605的显示亮度;当环境光强度较低时,调低显示屏1605的显示亮度。在另一个实施例中,处理器1601还可以根据光学传感器1615采集的环境光强度,动态调整摄像头组件1606的拍摄参数。
接近传感器1616,也称距离传感器,通常设置在电子设备1600的前面板。接近传感器1616用于采集用户与电子设备1600的正面之间的距离。在一个实施例中,当接近传感器1616检测到用户与电子设备1600的正面之间的距离逐渐变小时,由处理器1601控制显示屏1605从亮屏状态切换为息屏状态;当接近传感器1616检测到用户与电子设备1600的正面之间的距离逐渐变大时,由处理器1601控制显示屏1605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图16中示出的结构并不构成对电子设备1600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方法实施例提供的虚拟环境中的云朵渲染方法。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例提供的虚拟环境中的云朵渲染方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种虚拟环境中的云朵渲染方法,其特征在于,所述方法包括:
基于双层云模型计算得到双层云贴图,所述双层云贴图包括向光云通道和背光云通道,所述向光云通道用于指示向光层的颜色层次信息,所述背光云通道用于指示所述背光层的颜色层次信息;
计算所述向光层和所述背光层对应的第一权重;
基于所述第一权重对所述向光层的颜色层次信息进行渲染,得到所述向光层的向光渲染结果;以及基于所述第一权重对所述背光层的颜色层次信息进行渲染,得到所述背光层的背光渲染结果;
将所述向光渲染结果和所述背光渲染结果进行混合,得到所述云朵的渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一权重对所述向光层的颜色层次信息进行渲染,得到所述向光层的向光渲染结果,包括:
基于所述向光层的颜色层次信息,在所述双层云贴图的主颜色和阴影颜色之间进行插值,得到所述向光层的固有颜色;
计算太阳光线的散射颜色、所述第一权重和所述向光层的颜色层次信息的乘积,得到所述向光层的中间颜色;
将所述向光层的中间颜色叠加到所述向光层的固有颜色上,得到所述向光层的向光渲染结果。
3.根据权利要求2所述的方法,其特征在于,所述向光层的颜色层次信息包括:所述云朵在向光情况下的边缘颜色信息。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一权重对所述背光层的颜色层次信息进行渲染,得到所述背光层的背光渲染结果,包括:
基于所述背光层的颜色层次信息,在所述双层云贴图的主颜色和阴影颜色之间进行插值,得到所述背光层的固有颜色;
计算太阳光线的散射颜色、所述第一权重和所述背光层的颜色层次信息的乘积,得到所述背光层的中间颜色;
将所述背光层的中间颜色叠加到所述背光层的固有颜色上,得到所述背光层的背光渲染结果。
5.根据权利要求4所述的方法,其特征在于,所述背光层的颜色层次信息包括:所述云朵在背光情况下的定向散射信息。
6.根据权利要求1至5任一所述的方法,其特征在于,所述计算所述向光层和所述背光层对应的第一权重,包括:
以视野方向与主光方向之间的向量积为输入,基于第一对应关系计算所述向光层和所述背光层对应的第一权重;
其中,所述主光方向是所述虚拟环境中的摄像机模型所在位置指向所述虚拟环境中的太阳的方向,所述视野方向是所述摄像机模型朝向所述云朵的方向,所述向量积用于表示不同的太阳光环境,所述第一对应关系用于确定在不同的太阳光环境下将太阳光线的散射颜色融合至所述向光层和所述背光层时的权重。
7.根据权利要求1至5任一所述的方法,其特征在于,所述将所述向光渲染结果和所述背光渲染结果进行混合,得到所述云朵的渲染结果,包括:
以视野方向与主光方向之间的向量积为输入,基于第二对应关系计算第二权重;
基于所述第二权重对所述向光渲染结果和所述背光渲染结果进行加权融合,得到所述云朵的渲染结果;
其中,所述主光方向是所述虚拟环境中的摄像机模型所在位置指向所述虚拟环境中的太阳的方向,所述视野方向是所述摄像机模型朝向所述云朵的方向,所述向量积用于表示不同的太阳光环境,所述第二对应关系用于表示不同的太阳光环境与所述向光渲染结果和所述背光渲染结果的融合权重之间的对应关系。
8.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
计算所述云朵的当前光晕;
将所述当前光晕叠加至所述云朵的渲染结果,得到第一优化后的渲染结果。
9.根据权利要求8所述的方法,其特征在于,所述计算所述云朵的当前光晕参数,包括:
获取所述云朵的固有光晕;
以视野方向与主光方向之间的向量积为输入,基于第三对应关系计算第三权重;
基于所述第三权重和所述固有光晕,计算得到所述云朵的当前光晕;
其中,所述主光方向是所述虚拟环境中的摄像机模型所在位置朝向所述虚拟环境中的太阳的方向,所述视野方向是所述摄像机模型朝向所述云朵的方向,所述向量积用于表示不同的太阳光环境,所述第三对应关系用于确定在不同的太阳光环境下将所述当前光晕融合至所述云朵的渲染结果时的权重。
10.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
计算所述云朵的清晰度参数;
基于所述清晰度参数对所述云朵的渲染结果进行模糊化处理,得到第二优化后的渲染结果。
11.根据权利要求8所述的方法,其特征在于,所述计算所述云朵的清晰度参数,包括:
以视野方向与主光方向之间的向量积为输入,基于第四对应关系计算所述云朵的清晰度参数;
其中,所述主光方向是所述虚拟环境中的摄像机模型所在位置指向所述虚拟环境中的太阳的方向,所述视野方向是所述摄像机模型的朝向方向,所述向量积用于表示不同的太阳光环境,所述第四对应关系用于确定在不同的太阳光环境下对所述云朵的渲染结果进行模糊化处理时的权重。
12.根据权利要求11所述的方法,其特征在于,所述以视野方向与主光方向之间的向量积为输入,基于第四对应关系计算所述云朵的清晰度参数,包括:
响应于所述视野方向和所述主光方向之间的向量积不小于0,基于所述视野方向和所述主光方向之间的向量积,计算得到渐隐变量;设置所述云朵的清晰度参数等于所述渐隐变量;
响应于所述视野方向和所述主光方向之间的向量积小于0,设置所述云朵的清晰度参数等于预设值。
13.根据权利要求1至5任一所述的方法,其特征在于,所述基于双层云模型计算得到双层云贴图,包括:
对所述双层云模型进行二维采样,得到采样贴图;
采用处理参数对所述采样贴图进行动态变化,得到所述双层云贴图;所述处理参数包括缩放参数、偏移参数和时间变量中的至少一种。
14.根据权利要求6或7所述的方法,其特征在于,所述方法包括:
基于所述虚拟环境中的太阳高度和预设的太阳光线的初始方向,计算得到所述主光方向。
15.一种虚拟环境中的云朵渲染装置,其特征在于,所述装置包括:
计算模块,用于基于双层云模型计算得到双层云贴图,所述双层云贴图包括向光云通道和背光云通道,所述向光云通道用于指示向光层的颜色层次信息,所述背光云通道用于指示所述背光层的颜色层次信息;
所述计算模块,还用于计算所述向光层和所述背光层对应的第一权重;
渲染模块,用于基于所述第一权重对所述向光层的颜色层次信息进行渲染,得到所述向光层的向光渲染结果;以及基于所述第一权重对所述背光层的颜色层次信息进行渲染,得到所述背光层的背光渲染结果;
所述计算模块,还用于将所述向光渲染结果和所述背光渲染结果进行混合,得到所述云朵的渲染结果。
16.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至14任一所述的虚拟环境中的云朵渲染方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至14任一所述的虚拟环境中的云朵渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110296050.9A CN112907716B (zh) | 2021-03-19 | 2021-03-19 | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110296050.9A CN112907716B (zh) | 2021-03-19 | 2021-03-19 | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112907716A true CN112907716A (zh) | 2021-06-04 |
CN112907716B CN112907716B (zh) | 2023-06-16 |
Family
ID=76105625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110296050.9A Active CN112907716B (zh) | 2021-03-19 | 2021-03-19 | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112907716B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113313798A (zh) * | 2021-06-23 | 2021-08-27 | 完美世界(北京)软件科技发展有限公司 | 云图的制作方法及装置、存储介质、计算机设备 |
CN113384887A (zh) * | 2021-06-18 | 2021-09-14 | 网易(杭州)网络有限公司 | 游戏中模拟天气的方法、装置、电子设备和存储介质 |
CN116524063A (zh) * | 2023-07-04 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 光照颜色的计算方法、装置、设备及介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604657A (zh) * | 2003-09-01 | 2005-04-06 | 三星电子株式会社 | 调节图像颜色的方法和装置 |
US20060158466A1 (en) * | 2005-01-18 | 2006-07-20 | Sitronix Technology Corp. | Shared pixels rendering display |
US7570809B1 (en) * | 2004-07-03 | 2009-08-04 | Hrl Laboratories, Llc | Method for automatic color balancing in digital images |
US20180114476A1 (en) * | 2016-10-24 | 2018-04-26 | Samsung Electronics Co., Ltd. | Image processing apparatus and method, and electronic device |
CN108295467A (zh) * | 2018-02-06 | 2018-07-20 | 网易(杭州)网络有限公司 | 图像的呈现方法、装置及存储介质、处理器和终端 |
US20190266788A1 (en) * | 2018-02-28 | 2019-08-29 | Canon Kabushiki Kaisha | System and method of rendering a surface |
US20190304159A1 (en) * | 2018-03-28 | 2019-10-03 | Robert Bosch Gmbh | Method and System for Efficient Rendering of Cloud Weather Effect Graphics in Three-Dimensional Maps |
CN111145326A (zh) * | 2019-12-26 | 2020-05-12 | 网易(杭州)网络有限公司 | 三维虚拟云模型的处理方法、存储介质、处理器及电子装置 |
US20200211265A1 (en) * | 2018-12-28 | 2020-07-02 | Intel Corporation | Cloud-based realtime raytracing |
CN112150598A (zh) * | 2020-09-25 | 2020-12-29 | 网易(杭州)网络有限公司 | 云层的渲染方法、装置、设备及存储介质 |
CN112316420A (zh) * | 2020-11-05 | 2021-02-05 | 网易(杭州)网络有限公司 | 模型渲染方法、装置、设备及存储介质 |
CN112489180A (zh) * | 2020-10-30 | 2021-03-12 | 完美世界(北京)软件科技发展有限公司 | 数据处理方法、系统、电子设备及计算机可读介质 |
-
2021
- 2021-03-19 CN CN202110296050.9A patent/CN112907716B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604657A (zh) * | 2003-09-01 | 2005-04-06 | 三星电子株式会社 | 调节图像颜色的方法和装置 |
US7570809B1 (en) * | 2004-07-03 | 2009-08-04 | Hrl Laboratories, Llc | Method for automatic color balancing in digital images |
US20060158466A1 (en) * | 2005-01-18 | 2006-07-20 | Sitronix Technology Corp. | Shared pixels rendering display |
US20180114476A1 (en) * | 2016-10-24 | 2018-04-26 | Samsung Electronics Co., Ltd. | Image processing apparatus and method, and electronic device |
CN108295467A (zh) * | 2018-02-06 | 2018-07-20 | 网易(杭州)网络有限公司 | 图像的呈现方法、装置及存储介质、处理器和终端 |
US20190266788A1 (en) * | 2018-02-28 | 2019-08-29 | Canon Kabushiki Kaisha | System and method of rendering a surface |
US20190304159A1 (en) * | 2018-03-28 | 2019-10-03 | Robert Bosch Gmbh | Method and System for Efficient Rendering of Cloud Weather Effect Graphics in Three-Dimensional Maps |
US20200211265A1 (en) * | 2018-12-28 | 2020-07-02 | Intel Corporation | Cloud-based realtime raytracing |
CN111145326A (zh) * | 2019-12-26 | 2020-05-12 | 网易(杭州)网络有限公司 | 三维虚拟云模型的处理方法、存储介质、处理器及电子装置 |
CN112150598A (zh) * | 2020-09-25 | 2020-12-29 | 网易(杭州)网络有限公司 | 云层的渲染方法、装置、设备及存储介质 |
CN112489180A (zh) * | 2020-10-30 | 2021-03-12 | 完美世界(北京)软件科技发展有限公司 | 数据处理方法、系统、电子设备及计算机可读介质 |
CN112316420A (zh) * | 2020-11-05 | 2021-02-05 | 网易(杭州)网络有限公司 | 模型渲染方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
PRASHANT GOSWAMI: "A survey ofmodeling, rendering and animation of clouds in computer graphics", 《SPRINGERLINK》 * |
SHUCHANGXU: "VolumeCloud with 1. multi-layer rendering using GPU Instancing, 2. Depth-Difference Based Alpha Blending", 《HTTPS://GITHUB.COM/SHUCHANGXU/VOLUMECLOUD》 * |
张文辉;周小川;钟道欢;: "实时水面渲染", 计算机与数字工程, no. 03 * |
离原春草: "【Siggraph 2015】Real-Time VolumetricCloudscapes of Horizon Zero Dawn", 《HTTPS://WWW.JIANSHU.COM/P/CA4DBD94867F》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113384887A (zh) * | 2021-06-18 | 2021-09-14 | 网易(杭州)网络有限公司 | 游戏中模拟天气的方法、装置、电子设备和存储介质 |
CN113313798A (zh) * | 2021-06-23 | 2021-08-27 | 完美世界(北京)软件科技发展有限公司 | 云图的制作方法及装置、存储介质、计算机设备 |
CN113313798B (zh) * | 2021-06-23 | 2022-05-03 | 完美世界(北京)软件科技发展有限公司 | 云图的制作方法及装置、存储介质、计算机设备 |
CN116524063A (zh) * | 2023-07-04 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 光照颜色的计算方法、装置、设备及介质 |
CN116524063B (zh) * | 2023-07-04 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 光照颜色的计算方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112907716B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109993823B (zh) | 阴影渲染方法、装置、终端及存储介质 | |
CN109712224B (zh) | 虚拟场景的渲染方法、装置及智能设备 | |
CN112870707B (zh) | 虚拟场景中的虚拟物体展示方法、计算机设备及存储介质 | |
CN112037123B (zh) | 唇妆特效的显示方法、装置、设备及存储介质 | |
CN110152291A (zh) | 游戏画面的渲染方法、装置、终端及存储介质 | |
CN111464749B (zh) | 进行图像合成的方法、装置、设备及存储介质 | |
CN112907716B (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
CN110064200B (zh) | 基于虚拟环境的物体构建方法、装置及可读存储介质 | |
CN109685876A (zh) | 毛发渲染方法、装置、电子设备及存储介质 | |
CN110827391B (zh) | 图像渲染方法、装置、设备及存储介质 | |
CN110033503B (zh) | 动画显示方法、装置、计算机设备及存储介质 | |
CN110880204B (zh) | 虚拟植被显示方法、装置、计算机设备及存储介质 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
CN110853128B (zh) | 虚拟物体显示方法、装置、计算机设备及存储介质 | |
CN112884874A (zh) | 在虚拟模型上贴花的方法、装置、设备及介质 | |
CN112287852A (zh) | 人脸图像的处理方法、显示方法、装置及设备 | |
CN111738914A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN110928464A (zh) | 用户界面的显示方法、装置、设备及介质 | |
CN112308103B (zh) | 生成训练样本的方法和装置 | |
CN112750190B (zh) | 三维热力图生成方法、装置、设备及存储介质 | |
CN116672706B (zh) | 光照渲染方法、装置、终端和存储介质 | |
CN117274475A (zh) | 光晕效果的渲染方法、装置、电子设备和可读存储介质 | |
CN110728744A (zh) | 一种体绘制方法、装置及智能设备 | |
CN116828207A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN110992268B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40047810 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |