CN112907716B - 虚拟环境中的云朵渲染方法、装置、设备及存储介质 - Google Patents

虚拟环境中的云朵渲染方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112907716B
CN112907716B CN202110296050.9A CN202110296050A CN112907716B CN 112907716 B CN112907716 B CN 112907716B CN 202110296050 A CN202110296050 A CN 202110296050A CN 112907716 B CN112907716 B CN 112907716B
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.)
Active
Application number
CN202110296050.9A
Other languages
English (en)
Other versions
CN112907716A (zh
Inventor
郑爱玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110296050.9A priority Critical patent/CN112907716B/zh
Publication of CN112907716A publication Critical patent/CN112907716A/zh
Application granted granted Critical
Publication of CN112907716B publication Critical patent/CN112907716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information 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是本申请一个示例性实施例的未限制的第一权重随
Figure SMS_1
变化情况的示意图;
图5是本申请一个示例性实施例提供的不同场景下虚拟环境包含的颜色示意图;
图6是本申请另一个示例性实施例提供的未限制的第二权重随
Figure SMS_2
变化情况的示意图;
图7是本申请另一个示例性实施例提供的虚拟环境中的云朵渲染方法的流程图;
图8是本申请一个示例性实施例提供的未限制的第三权重随
Figure SMS_3
的变化情况的示意图;
图9是本申请另一个示例性实施例提供的虚拟环境中的云朵渲染方法的流程图;
图10是本申请一个示例性实施例提供的未限制的渐隐变量随
Figure SMS_4
的变化情况的示意图;
图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,计算向光层和背光层对应的第一权重;
在一个实施例中,响应于终端以视野方向与主光方向之间的向量积为输入,基于第一对应关系计算向光层和背光层对应的第一权重;
其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第一对应关系用于确定在不同的太阳光环境下将太阳光线的散射颜色融合至向光层和背光层时的权重。
在一个实施例中,上述第一对应关系指基于双层云模型在虚拟环境中的位置信息,设置太阳光线对双层云模型的颜色产生的影响,示意性的,基于双层云模型在虚拟环境中的位置信息映射得到第一权重,其中第一权重用于指示双层云模型的生成颜色占双层云模型固有颜色的比例。
可选的,响应于终端以视野方向与主光方向之间的向量积为输入,第一对应关系为正比例关系,计算得到向光层和背光层对应的第一权重。示意性的,第一权重与上述向量积的对应关系为
Figure SMS_5
,x为向量积,取值范围为[-1,1],y为第一权重,取值范围为[0,1]。
可选的,响应于终端以视野方向与主光方向之间的向量积为输入,第一对应关系为反比例关系,计算得到向光层和背光层对应的第一权重。示意性的,第一权重与上述向量积的对应关系为
Figure SMS_6
,x为向量积,取值范围为[-1,1],y为第一权重,取值范围为[0,1]。
可选的,响应于终端以视野方向与主光方向之间的向量积为输入,第一对应关系存在分段对应,例如当上述向量积取值范围为[-1,0]时,第一权重为固定值,当上述向量积取值范围为[0,1]时,第一权重与上述向量积的对应关系为正比例关系。
值得注意的是,上述第一对应关系并不限制于所列出的映射关系,在实际应用中可能存在多种映射关系,本申请对此不加以限定。
在一个实施例中,通过下述代码得到第一权重:
Figure SMS_7
其中,
Figure SMS_8
为未限制的第一权重,V为视野方向的单位化向量,L为主光方向的单位化向量,/>
Figure SMS_9
表示视野方向和主光方向的向量积,可用于描述视野方向和主光方向之间的夹角的大小和方向,因此/>
Figure SMS_10
的范围为[-1,1]。图4示出了未限制的第一权重随
Figure SMS_11
的变化情况,由图4可得,当/>
Figure SMS_12
时,此时视野方向和主光方向的夹角为0度,即视野在直视太阳时,未限制的第一权重为无穷大;当/>
Figure SMS_13
时,此时视野方向和主光方向的夹角为180度,即视野在背向太阳时,第一权重为0.2。
通过下列代码将未限制的第一权重取值范围设置在[0,1],得到新的
Figure SMS_14
为第一权重。
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,以视野方向与主光方向之间的向量积为输入,基于第二对应关系计算第二权重;
其中,主光方向是虚拟环境中的摄像机模型所在位置指向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第二对应关系用于表示不同的太阳光环境与向光渲染结果和背光渲染结果的融合权重之间的对应关系。
在一个实施例中,第二权重指示双层云模型中背光层的所占比例。
在一个实施例中,上述第二对应关系指基于双层云模型在虚拟环境中的位置信息,设置双层云模型中背光层的所占比例。
在一个实施例中,第二权重由以下代码得到:
Figure SMS_15
;(1)
float scatter2 = max(pow(saturate(VdotL),15),0);(2)
上式中(2)得到的
Figure SMS_16
为第二权重,saturate限制/>
Figure SMS_17
取值范围为[0,1],pow限制第二权重为大于0的自然数,其中,/>
Figure SMS_18
表示视野方向和主光方向的向量积,图6示出了未限制的第二权重随/>
Figure SMS_19
的变化情况,当视野方向和主光方向的夹角为0度时,说明视野在直视太阳,此时/>
Figure SMS_20
,scatter2为1,此时云表现出背光效果,尤其是较厚的地方表现为暗部背光;随着视野方向和主光方向夹角逐渐增大,即/>
Figure SMS_21
逐渐减小,scatter2逐渐降低到0,表现为远离太阳的云呈现出向光云的特征。
在一个实施例中,在虚拟环境中建立三维坐标系xyz,其中x轴为前后方向,y轴为上下方向,z轴为左右方向,固定视野方向为(0,1,1),当太阳高度由0度逐渐增加至90度时,即视野方向与主光方向夹角逐渐减小时,即
Figure SMS_22
逐渐增大时,直至太阳高度为90度,此时主光方向为(0,1,0),此时云的背光效果逐渐增强,向光效果逐渐减弱;
当太阳高度由90度逐渐增加至180度时,即视野方向与主光方向的夹角逐渐增大时,即
Figure SMS_23
逐渐减小,当太阳高度为180度时,此时主光方向为(0,0,-1),此时云的背光效果逐渐减弱,向光效果逐渐增强。
步骤204-2,基于第二权重对向光渲染结果和背光渲染结果进行加权融合,得到云朵的渲染结果;
在一个实施例中,得到云朵的颜色渲染结果的代码如下所示:
float3 LightCloud = ToLightCloud * (1 - scatter2) + BackLightCloud *scatter2;
其中,LightCloud为云朵的颜色渲染结果,ToLightCloud为向光层的向光渲染结果,BackLightCloud为背光层的背光渲染结果,scatter2为第二权重。
综上所述,通过采样得到双层云贴图,并计算向光层和背光层的第一权重,然后基于第一权重对双层云模型中的向光层和背光层分别渲染,得到向光渲染结果和背光渲染结果,最终将向光渲染结果和背光渲染结果混合得到云朵的渲染结果。上述方案使得虚拟环境中的双层云模型能模拟现实中的云朵,使得虚拟环境中的双层云更为真实,在仅占用少量运算资源的情况下,达到了更好的仿真效果,大大提高了虚拟环境中云朵的渲染效果。
上述方案还通过第一对应关系确定在不同的太阳光环境下将太阳光线的散射颜色融合至所述向光层和所述背光层时的权重,基于该权重将太阳光线的散射颜色融合至向光层和背光层,使得向光渲染结果和背光渲染结果基于太阳光线的散射颜色改变进行相应的改变。
上述方案还通过第二对应关系用于表示不同的太阳光环境与向光渲染结果和背光渲染结果的融合权重之间的对应关系,基于该融合权重将不同的太阳光环境与向光渲染结果和背光渲染结果融合,得到云朵的渲染结果,使得向光渲染结果和背光渲染结果基于该融合权重得到不同云朵的渲染结果。
上述方案还通过设置时间变量用于采样不同的双层云贴图,基于采样不同的双层云贴图,得到不同光环境下的双层云贴图,基于该不同光环境下的双层云贴图得到不同云朵的渲染结果。
图7示出了本申请一个示例性实施例提供的虚拟环境中的云朵渲染方法,与图2所示的方法区别在于,步骤204之后还包括步骤205和步骤206。
步骤205,计算云朵的当前光晕;
在一个可选的实施例中,响应于终端获取云朵的固有光晕,并以视野方向与主光方向之间的向量积为输入,基于第三对应关系计算第三权重;基于第三权重和固有光晕,终端计算得到云朵的当前光晕;
在一个实施例中,第三对应关系指基于双层云模型在虚拟环境中的位置信息,设置太阳光线对双层云模型的光晕产生的影响。示意性的,基于双层云模型在虚拟环境中的位置信息映射得到第三权重。
在一个实施例中,第三权重用于指示双层云模型的当前光晕占双层云模型固有光晕的比例。
其中,主光方向是虚拟环境中的摄像机模型所在位置朝向虚拟环境中的太阳的方向,视野方向是摄像机模型朝向云朵的方向,向量积用于表示不同的太阳光环境,第三对应关系用于确定在不同的太阳光环境下将当前光晕融合至云朵的渲染结果时的权重。示意性的,通过以下代码得到云朵的当前光晕。
Figure SMS_24
;(3)
float3 haloColor = saturate(scatter4) * _HaloColor.rgb;(4)
LightCloud2.xyz = haloColor * _HaloIntensity;(5)
其中,(3)中
Figure SMS_25
为未加限制的第三权重,由saturate(scatter4)得到第三权重。示意性的,图8示出了未加限制的第三权重随/>
Figure SMS_26
的变化,横轴为/>
Figure SMS_27
,范围为[-1,1],纵轴为scatter4。/>
Figure SMS_28
表示了视野方向和主光方向的向量积,当视角方向和主光方向的夹角为0度时,说明视野在直视太阳,此时/>
Figure SMS_29
,scatter4为无穷大;随着视野逐渐远离主光方向,scatter4变为0,LightCloud2为云朵的当前光晕参数。
其中,HaloColor为双层云的固有光晕,_HaloIntensity为光晕强度,saturate用于将scatter4的值限制在[0,1],即saturate(scatter4)为第三权重,由双层云的固有光晕和光晕强度结合。
在一个实施例中,在虚拟环境中建立三维坐标系xyz,其中x轴为前后方向,y轴为上下方向,z轴为左右方向,固定视野方向为(0,1,1),当太阳高度由0度逐渐增加至90度时,即视野方向与主光方向夹角逐渐减小时,即
Figure SMS_30
逐渐增大时,直至太阳高度为90度,此时主光方向为(0,1,0),此时云的光晕效果逐渐增强;
当太阳高度由90度逐渐增加至180度时,即视野方向与主光方向的夹角逐渐增大时,即
Figure SMS_31
逐渐减小,当太阳高度为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为清晰度参数,
Figure SMS_32
表示视野方向和主光方向的夹角在XZ平面上的投影(unity中y轴为纵轴)。
当(7)得到的scatter3不小于0时,设置(7)得到的scatter3为清晰度参数;当(7)得到的scatter3小于0时,设置清晰度参数为预设值0.71。
示意性的,图10示出了(6)得到的scatter3随
Figure SMS_33
的变化,当视野方向和主光方向的夹角为0度时,即视野直视太阳,此时/>
Figure SMS_34
,(1)得到的scatter3为1.535,此时云较为明亮;随着视野方向和主光方向的夹角逐渐增大,(6)得到的scatter3逐渐降低到0.71,并保持不变,云呈现出较淡的颜色。
在一个实施例中,在虚拟环境中建立三维坐标系xyz,其中x轴为前后方向,y轴为上下方向,z轴为左右方向,固定视野方向为(0,1,1),当太阳高度由0度逐渐增加至90度时,即视野方向与主光方向夹角逐渐减小时,即
Figure SMS_35
逐渐增大时,直至太阳高度为90度,此时主光方向为(0,1,0),此时云的清晰度逐渐增大;
当太阳高度由90度逐渐增加至180度时,即视野方向与主光方向的夹角逐渐增大时,即
Figure SMS_36
逐渐减小,当太阳高度为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中的至少一种。
***设备接口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中的各个组件进行供电。电源1608可以是交流电、直流电、一次性电池或可充电电池。当电源1608包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备1600还包括有一个或多个传感器1609。该一个或多个传感器1609包括但不限于:加速度传感器1610、陀螺仪传感器1611、压力传感器1612、光学传感器1613以及接近传感器1614。
加速度传感器1610可以检测以电子设备1600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1610可以用于检测重力加速度在三个坐标轴上的分量。处理器1601可以根据加速度传感器1610采集的重力加速度信号,控制显示屏1605以横向视图或纵向视图进行用户界面的显示。加速度传感器1610还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1611可以检测电子设备1600的机体方向及转动角度,陀螺仪传感器1611可以与加速度传感器1610协同采集用户对电子设备1600的3D动作。处理器1601根据陀螺仪传感器1611采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1612以设置在电子设备1600的侧边框和/或显示屏1605的下层。当压力传感器1612设置在电子设备1600的侧边框时,可以检测用户对电子设备1600的握持信号,由处理器1601根据压力传感器1612采集的握持信号进行左右手识别或快捷操作。当压力传感器1612设置在显示屏1605的下层时,由处理器1601根据用户对显示屏1605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1613用于采集环境光强度。在一个实施例中,处理器1601可以根据光学传感器1613采集的环境光强度,控制显示屏1605的显示亮度。具体地,当环境光强度较高时,调高显示屏1605的显示亮度;当环境光强度较低时,调低显示屏1605的显示亮度。在另一个实施例中,处理器1601还可以根据光学传感器1613采集的环境光强度,动态调整摄像头组件1606的拍摄参数。
接近传感器1614,也称距离传感器,通常设置在电子设备1600的前面板。接近传感器1614用于采集用户与电子设备1600的正面之间的距离。在一个实施例中,当接近传感器1614检测到用户与电子设备1600的正面之间的距离逐渐变小时,由处理器1601控制显示屏1605从亮屏状态切换为息屏状态;当接近传感器1614检测到用户与电子设备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.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
基于所述虚拟环境中的太阳高度和预设的太阳光线的初始方向,计算得到主光方向。
15.一种虚拟环境中的云朵渲染装置,其特征在于,所述装置包括:
计算模块,用于基于双层云模型计算得到双层云贴图,所述双层云贴图包括向光云通道和背光云通道,所述向光云通道用于指示向光层的颜色层次信息,所述背光云通道用于指示背光层的颜色层次信息;
所述计算模块,还用于计算所述向光层和所述背光层对应的第一权重,所述第一权重用于指示所述双层云模型的生成颜色占所述双层云模型的固有颜色的比例;
渲染模块,用于基于所述第一权重对所述向光层的颜色层次信息进行渲染,得到所述向光层的向光渲染结果;以及基于所述第一权重对所述背光层的颜色层次信息进行渲染,得到所述背光层的背光渲染结果;
所述计算模块,还用于将所述向光渲染结果和所述背光渲染结果进行混合,得到所述云朵的渲染结果。
16.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至14任一所述的虚拟环境中的云朵渲染方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至14任一所述的虚拟环境中的云朵渲染方法。
CN202110296050.9A 2021-03-19 2021-03-19 虚拟环境中的云朵渲染方法、装置、设备及存储介质 Active CN112907716B (zh)

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 CN112907716A (zh) 2021-06-04
CN112907716B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113384887A (zh) * 2021-06-18 2021-09-14 网易(杭州)网络有限公司 游戏中模拟天气的方法、装置、电子设备和存储介质
CN113313798B (zh) * 2021-06-23 2022-05-03 完美世界(北京)软件科技发展有限公司 云图的制作方法及装置、存储介质、计算机设备
CN116524063B (zh) * 2023-07-04 2023-09-22 腾讯科技(深圳)有限公司 光照颜色的计算方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
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
CN108295467A (zh) * 2018-02-06 2018-07-20 网易(杭州)网络有限公司 图像的呈现方法、装置及存储介质、处理器和终端
CN111145326A (zh) * 2019-12-26 2020-05-12 网易(杭州)网络有限公司 三维虚拟云模型的处理方法、存储介质、处理器及电子装置
CN112150598A (zh) * 2020-09-25 2020-12-29 网易(杭州)网络有限公司 云层的渲染方法、装置、设备及存储介质
CN112316420A (zh) * 2020-11-05 2021-02-05 网易(杭州)网络有限公司 模型渲染方法、装置、设备及存储介质
CN112489180A (zh) * 2020-10-30 2021-03-12 完美世界(北京)软件科技发展有限公司 数据处理方法、***、电子设备及计算机可读介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060158466A1 (en) * 2005-01-18 2006-07-20 Sitronix Technology Corp. Shared pixels rendering display
KR102636465B1 (ko) * 2016-10-24 2024-02-14 삼성전자주식회사 영상 처리 장치, 영상 처리 방법 및 전자장치
AU2018201472A1 (en) * 2018-02-28 2019-09-12 Canon Kabushiki Kaisha System and method of rendering a surface
US10535180B2 (en) * 2018-03-28 2020-01-14 Robert Bosch Gmbh Method and system for efficient rendering of cloud weather effect graphics in three-dimensional maps
US11069123B2 (en) * 2018-12-28 2021-07-20 Intel Corporation Cloud-based realtime raytracing

Patent Citations (7)

* Cited by examiner, † Cited by third party
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
CN108295467A (zh) * 2018-02-06 2018-07-20 网易(杭州)网络有限公司 图像的呈现方法、装置及存储介质、处理器和终端
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)

* Cited by examiner, † Cited by third party
Title
【Siggraph 2015】Real-Time VolumetricCloudscapes of Horizon Zero Dawn;离原春草;《https://www.jianshu.com/p/ca4dbd94867f》;全文 *
A survey ofmodeling, rendering and animation of clouds in computer graphics;Prashant Goswami;《SpringerLink》;全文 *
VolumeCloud with 1. multi-layer rendering using GPU Instancing, 2. Depth-Difference Based Alpha Blending;ShuchangXu;《https://github.com/ShuchangXu/VolumeCloud》;全文 *
实时水面渲染;张文辉;***;钟道欢;;计算机与数字工程(03);全文 *

Also Published As

Publication number Publication date
CN112907716A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN109993823B (zh) 阴影渲染方法、装置、终端及存储介质
US20210225067A1 (en) Game screen rendering method and apparatus, terminal, and storage medium
CN112907716B (zh) 虚拟环境中的云朵渲染方法、装置、设备及存储介质
CN112870707B (zh) 虚拟场景中的虚拟物体展示方法、计算机设备及存储介质
CN109712224B (zh) 虚拟场景的渲染方法、装置及智能设备
CN112037123B (zh) 唇妆特效的显示方法、装置、设备及存储介质
CN109191549B (zh) 显示动画的方法及装置
CN112884873B (zh) 虚拟环境中虚拟物体的渲染方法、装置、设备及介质
CN110033503B (zh) 动画显示方法、装置、计算机设备及存储介质
CN110827391B (zh) 图像渲染方法、装置、设备及存储介质
CN112884874B (zh) 在虚拟模型上贴花的方法、装置、设备及介质
CN110853128B (zh) 虚拟物体显示方法、装置、计算机设备及存储介质
CN110928464A (zh) 用户界面的显示方法、装置、设备及介质
CN110517346B (zh) 虚拟环境界面的展示方法、装置、计算机设备及存储介质
CN112750190B (zh) 三维热力图生成方法、装置、设备及存储介质
CN116672706B (zh) 光照渲染方法、装置、终端和存储介质
CN112950753B (zh) 虚拟植物显示方法、装置、设备及存储介质
CN116828207A (zh) 图像处理方法、装置、计算机设备及存储介质
CN114155336A (zh) 虚拟物体显示方法、装置、电子设备及存储介质
CN113205582B (zh) 烘焙贴图的生成和使用方法、装置、设备及介质
CN116524063B (zh) 光照颜色的计算方法、装置、设备及介质
CN110201392B (zh) 用户界面生成方法、装置和终端
CN116310020A (zh) 一种反光效果实现方法、装置、计算机设备和存储介质
CN118154755A (zh) 体积云的渲染方法、装置、计算机设备及存储介质
CN116993946A (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