CN116351065B - 游戏中天气的渲染方法和装置、存储介质、电子装置 - Google Patents
游戏中天气的渲染方法和装置、存储介质、电子装置Info
- Publication number
- CN116351065B CN116351065B CN202111626302.6A CN202111626302A CN116351065B CN 116351065 B CN116351065 B CN 116351065B CN 202111626302 A CN202111626302 A CN 202111626302A CN 116351065 B CN116351065 B CN 116351065B
- Authority
- CN
- China
- Prior art keywords
- map
- depth
- value
- snow
- weather
- 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
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6009—Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/663—Methods for processing data by generating or executing the game program for rendering three dimensional images for simulating liquid objects, e.g. water, gas, fog, snow, clouds
-
- 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)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种游戏中天气的渲染方法和装置、存储介质、电子装置。其中,该方法包括:获取三维游戏场景中天气遮挡体的深度图,深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,三维游戏场景为在智能终端上渲染的游戏场景;利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;利用阴影图、雪天气对象的基本色贴图、雪天气对象的法线贴图、雪天气对象的粗糙度贴图以及世界法线,在智能终端的展示界面渲染出三维游戏场景中的雪。本申请解决了相关技术中天气渲染的操作较为复杂的技术问题。
Description
技术领域
本申请涉及图像渲染领域,具体而言,涉及一种游戏中天气的渲染方法和装置、存储介质、电子装置。
背景技术
在与电子游戏相关的应用程序中,如大型多人在线角色扮演游戏,通常需要在三维游戏场景中模拟现实世界的各个部分,如游戏中的环境、建筑、机械、道具、天气等,使得用户在进行游戏时能够具有更真实的体验。
游戏场景设计中往往有针对各个天气环境搭建不同的场景模型,以提升游戏画面的表现力和模拟真实性,如针对不同的地图额外搭建下雪所需的雪地场景,这种逐个地图针对性开发的方法效率过低,且由于游戏版本更新(如新增地图、地图更新等)迭代较快,这种方式往往不能满足开发的需求,进而影响产品的质量,降低用户的体验感受。
针对上述天气渲染需要针对性开发所需场景造成的渲染操作复杂的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种游戏中天气的渲染方法和装置、存储介质、电子装置,以至少解决相关技术中天气渲染的操作较为复杂的技术问题。
根据本申请实施例的一个方面,提供了一种游戏中天气的渲染方法,包括:获取三维游戏场景中天气遮挡体的深度图,其中,深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,三维游戏场景为在智能终端上渲染的游戏场景;利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;利用阴影图、雪天气对象的基本色贴图、雪天气对象的法线贴图、雪天气对象的粗糙度贴图以及世界法线,在智能终端的展示界面渲染出三维游戏场景中的雪。
可选地,利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图,包括:通过比较天气遮挡体的深度图中的像素点和展示界面中表示三维游戏场景中相应位置的像素点,确定展示界面中表示雪边缘的边缘像素点;采用边缘过渡处理方法对表示雪边缘的边缘像素点进行边缘过渡处理,得到阴影图。
可选地,采用边缘过渡处理方法对表示雪边缘的边缘像素点进行边缘过渡处理,得到阴影图,包括:获取目标像素点的UV值和UV偏移值,其中,目标像素点为阴影图的所有边缘像素点中未处理过的像素点,阴影图中存在UV偏移值不同的边缘像素点;根据目标像素点与多个第一深度值之间的多个比对结果和多个权重,在阴影图中为目标像素点设定像素值,以通过像素值确认在目标像素点的雪的覆盖程度,其中,多个第一深度值是利用目标像素点的UV值和UV偏移值从深度图中采样得到的,多个权重是利用目标像素点的UV值和UV偏移值从权重图中采样得到的,权重图用于提供预设的权重。
可选地,根据目标像素点与多个第一深度值之间的多个比对结果和多个权重,在阴影图中为目标像素点设定像素值,包括:按照目标像素点的UV值和UV偏移值从深度图中采样得到多个第一深度值,按照目标像素点的UV值和UV偏移值从权重图中采样得到多个权重,其中,多个第一深度值在深度图中的位置与多个权重在权重图中的位置相同;将多个第一深度值分别与目标像素点进行比对,得到多个比对结果,其中,每个比对结果是一个第一深度值与目标像素点进行比对得到的;将多个比对结果与多个权重进行加权求和,得到加权结果,其中,在进行加权求和时,针对每个比对结果,用于确定该比对结果的第一深度值在深度图中的位置与所使用的权重在权重图中的位置相同;利用加权结果在阴影图中为目标像素点设定像素值。
可选地,根据目标像素点与多个第一深度值之间的多个比对结果和多个权重,在阴影图中为目标像素点设定像素值,包括:将展示界面中的目标像素点的空间坐标转换为目标像素点的世界坐标,再将目标像素点的世界坐标转换为自顶向下的正交相机所在的NDC空间中的NDC坐标,其中,NDC坐标中的Z轴的方向与第一深度值所在轴的方向相同;将目标像素点的NDC坐标中Z轴的坐标值与多个第一深度值中的每个第一深度值进行对比;在目标像素点的NDC坐标中Z轴的坐标值小于第一深度值、且目标像素点的NDC坐标中Z轴的坐标值小于相同位置水体的第二深度值的情况下,确定目标像素点与该第一深度值的比对结果为第一数值,其中,第一数值用于表示有雪;在目标像素点的NDC坐标中Z轴的坐标值不小于第一深度值、和/或目标像素点的NDC坐标中Z轴的坐标值不小于第二深度值的情况下,确定目标像素点与该第一深度值的比对结果为第二数值,其中,第二数值用于表示没有雪。
可选地,利用加权结果在阴影图中为目标像素点设定像素值,包括:按照如下公式,利用加权结果在阴影图中为目标像素点设定像素值Value:
Value=Shadow*20.8log[1.5*(NormalY-0.2)],
其中,Shadow为加权结果,log()为对数函数,NormalY表示目标像素点的法向量在Y轴上的分量。
可选地,在根据目标像素点与多个第一深度值之间的多个比对结果和多个权重,在阴影图中为目标像素点设定像素值之前,方法还包括:获取目标像素点与相邻像素点之间的坐标偏移量;利用目标像素点的UV值和坐标偏移值在偏移量纹理中进行采样,得到UV偏移值,其中,偏移量纹理用于提供随机的UV偏移值。
根据本申请实施例的另一方面,还提供了一种游戏中天气的渲染装置,包括:获取单元,用于获取三维游戏场景中天气遮挡体的深度图,其中,深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,三维游戏场景为在智能终端上渲染的游戏场景;生成单元,用于利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;渲染单元,用于利用阴影图、雪天气对象的基本色贴图、雪天气对象的法线贴图、雪天气对象的粗糙度贴图以及世界法线,在智能终端的展示界面渲染出三维游戏场景中的雪。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法中任一实施例的步骤。
在本申请实施例中,获取三维游戏场景中天气遮挡体的深度图,利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图,利用阴影图、雪天气对象的基本色贴图、雪天气对象的法线贴图、雪天气对象的粗糙度贴图以及世界法线,在智能终端的展示界面渲染出三维游戏场景中的雪,从而提供了一种通用的游戏场景中雪的渲染方案,本方案雪的天气模拟主要是物体模型对雪的交互效果,如哪些建筑能被雪覆盖、覆盖边缘的过渡(而不是下雪的过程),利用物体与雪的众多交互效果可以模拟更真实的雪场景景观,而不用针对不同的地图开发雪地场景,可以解决相关技术中天气渲染的操作较为复杂的技术问题,从而避免不必要的开发,降低开发的工作量,降低开发的投入成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的游戏中天气的渲染方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的游戏中天气的渲染方法的流程图;
图3是根据本申请实施例的一种可选的天气遮挡体的深度图的示意图;
图4是根据本申请实施例的一种可选的天气遮挡体的偏移量纹理的示意图;
图5是根据本申请实施例的一种可选的天气遮挡体的阴影图的示意图;
图6是根据本申请实施例的一种可选的游戏中天气的渲染装置的示意图;以及,
图7是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一方面,提供了一种游戏中天气的渲染方法的方法实施例。
可选地,在本实施例中,上述游戏中天气的渲染方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供游戏服务,可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。
本申请实施例的游戏中天气的渲染方法可以由服务器103来执行,即渲染操作在服务器103上完成,然后将画面传输给终端进行显示,也可以由终端101来执行,即由终端101自行完成游戏画面的渲染和显示,终端101执行本申请实施例的游戏中天气的渲染方法也可以是由安装在其上的客户端来执行。后文以渲染操作由终端101来执行为例进行说明。
图2是根据本申请实施例的一种可选的游戏中天气的渲染方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S22,终端获取三维游戏场景中天气遮挡体的深度图,深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,三维游戏场景为在智能终端上渲染的游戏场景。
步骤S24,终端利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图,阴影图中的像素用于表示屏幕中相应位置的雪的覆盖程度。
步骤S26,终端利用阴影图、雪天气对象的基本色贴图、雪天气对象的法线贴图、雪天气对象的粗糙度贴图以及世界法线,在智能终端的展示界面渲染出三维游戏场景中的雪。
通过上述步骤,获取三维游戏场景中天气遮挡体的深度图,利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图,利用阴影图、雪天气对象的基本色贴图、雪天气对象的法线贴图、雪天气对象的粗糙度贴图以及世界法线,在智能终端的展示界面渲染出三维游戏场景中的雪,从而提供了一种通用的游戏场景中雪的渲染方案,而不用针对不同的地图开发雪地场景,可以解决相关技术中天气渲染的操作较为复杂的技术问题,从而避免不必要的开发,降低开发的工作量,降低开发的投入成本。
本方案雪天气模拟的不是下雪的过程,而是物体模型对雪的交互效果,如哪些建筑能被雪覆盖、覆盖边缘的过渡,利用物体与天气(雪)的众多交互效果可模拟更真实的雪场景景观,下文结合具体步骤进一步详述本申请的技术方案:
在步骤S22提供的技术方案中,终端生成三维游戏场景中天气遮挡体(如建筑、建筑边檐、雨伞、水体模型等)的深度图,三维游戏场景为在智能终端上渲染的位于下雪区域的游戏场景。
可以创建一个深度图,深度图中的每个像素点与三维游戏场景中的一个位置对应,深度图中的每个像素用于记录所表示位置的天气遮挡体的深度。
可选地,生成三维游戏场景中天气遮挡体的深度图,包括步骤S222-步骤S224:
步骤S222,在满足触发条件的情况下,根据三维游戏场景中的游戏角色确定三维游戏场景中的目标区域,该游戏角色为该终端上玩家控制的游戏角色。
可选地,上述触发条件可以根据需要设定,如每间隔指定时长触发、根据游戏角色的移动距离触发等,以后根据游戏角色的移动距离触发为例:
1)获取游戏角色在三维游戏场景中的移动距离,为前一次在三维游戏场景中确定目标区域时游戏角色在三维游戏场景中的位置(本申请的方法可以为循环执行的方法),与游戏角色在三维游戏场景中的当前位置之间的间距;
2)在移动距离达到指定阈值(如10米)的情况,确定满足触发条件;
3)在移动距离未达到指定阈值的情况,确定不满足触发条件。
步骤S224,生成三维游戏场景中目标区域的天气遮挡体的深度图。可以包括以下至少之一:
1)在目标区域内的静态场景模型(主要是指除水体以外的场景模型)的天气遮挡体属性表明静态场景模型是天气遮挡体的情况下,以自顶向下的正交相机渲染静态场景模型的深度信息至第一深度图,天气遮挡体的深度图包括第一深度图。
可选地,静态场景模型的天气遮挡体属性为可以配置的,在以自顶向下的正交相机渲染静态场景模型的深度信息至第一深度图之前,在创建静态场景模型的原始模型对象时,为原始模型对象增加天气遮挡体属性;在需要将原始模型对象配置在三维游戏场景中的情况下,展示原始模型对象的配置项,原始模型对象的配置项包括天气遮挡体属性,这样,开发人员或者美术人员可以对其进行配置,在完成对原始模型对象的配置项的配置的情况下,将携带有配置好的配置项的原始模型对象配置在三维游戏场景中,这样在渲染的时候就可以通过该配置项来看是否为天气遮挡体。
2)在目标区域内存在水体模型(如河流、大海、池塘等)的情况下,以自顶向下的正交相机渲染水体模型的深度信息至第二深度图,天气遮挡体的深度图包括第二深度图。
在步骤S24提供的技术方案中,利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图。
阴影图的大小可以和深度图相同或者小于深度图,阴影图只要包括当前需要渲染的区域即可,阴影图中的每个像素用于记录所表示位置的雪的覆盖程度。
可选地,利用天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图,包括步骤S242-步骤S244:
步骤S242,通过比较天气遮挡体的深度图中的像素点和展示界面中表示三维游戏场景中相应位置的像素点,确定展示界面中表示雪边缘的边缘像素点。
将展示界面的屏幕像素的NDC坐标中Z轴的坐标值与天气遮挡体的深度图中相同位置的深度值进行对比,根据对比为结果为打上第一标识或者第二标识,NDC坐标中的Z轴的方向与深度值所在轴的方向相同,第一标识用于表示有雪,第二标识用于表示没有雪。对于所有像素点,可以按照如下方式进行标记(具体可以用数值来标记):
1)在屏幕像素的NDC坐标中Z轴的坐标值小于第一深度图中相同位置的深度值、且屏幕像素的NDC坐标中Z轴的坐标值小于第二深度图中相同位置的深度值的情况下,即既没有被静态的天气遮挡体遮挡、也没有被水体遮挡,为展示界面的屏幕像素打上第一标识;
2)在屏幕像素的NDC坐标中Z轴的坐标值不小于第一深度图中相同位置的深度值、和/或屏幕像素的NDC坐标中Z轴的坐标值不小于第二深度图中相同位置的深度值的情况下,即被静态的天气遮挡体遮挡、被水体遮挡、或者同时被二者遮挡,为展示界面的屏幕像素打上第二标识。
若某一像素点(有第一标识)既挨着另外的打有第一标识的像素点,也挨着打有第二标识的像素点,就说明其实边缘像素点。
步骤S242,采用边缘过渡处理方法对表示雪边缘的边缘像素点进行边缘过渡处理,得到阴影图。具体可以按照如下步骤实现对每个边缘像素点的处理(需要说明的是,以下步骤可以进行多轮,这样可以实现更为随机自然的边缘效果):
1)获取目标像素点的UV值和UV偏移值,目标像素点为阴影图的所有边缘像素点中未处理过的像素点,阴影图中存在UV偏移值不同的边缘像素点。
例如,可获取目标像素点与相邻像素点之间的坐标偏移量,利用目标像素点的UV值和坐标偏移值(坐标偏移值可以当做采用时使用的UV偏移值)在偏移量纹理中进行采样,得到新的UV偏移值,偏移量纹理提供的是随机的UV偏移值,以便于实现后续边缘自然过渡的效果。
2)按照目标像素点的UV值和UV偏移值从遮挡体的深度图中采样得到n个第一深度值(即d1至dn),按照目标像素点的UV值和UV偏移值从权重图中采样得到n个权重(即k1至kn),n个第一深度值在遮挡体的深度图中的位置与n个权重在权重图中的位置相同,例如对于任意的di和ki,若di在深度图中的位置坐标为(x,y),那么ki在权重图中的坐标也是(x,y),i的取值位于1至n之间,x和y的取值为正整数(大小可以根据图的像素行数和列数来定)。
3)将n个第一深度值分别与目标像素点进行比对,得到n个比对结果,每个比对结果是一个第一深度值与目标像素点进行比对得到的,即与d1至dn分别对应的p1至pn。
4)将n个比对结果与n个权重进行加权求和(即i=1n(pi*ki)),得到加权结果,在进行加权求和时,针对每个比对结果,用于确定该比对结果的第一深度值在遮挡体的深度图中的位置与所使用的权重在权重图中的位置相同,例如,都是第二排第三个像素。
与上述打标过程类似,可以先将展示界面中的目标像素点的空间坐标转换为目标像素点的世界坐标,再将目标像素点的世界坐标转换为自顶向下的正交相机所在的NDC空间中的NDC坐标;将目标像素点的NDC坐标中Z轴的坐标值与n个第一深度值中的每个第一深度值进行对比。
在目标像素点的NDC坐标中Z轴的坐标值小于第一深度值、且目标像素点的NDC坐标中Z轴的坐标值小于相同位置水体的第二深度值的情况下,确定目标像素点与该第一深度值的比对结果为第一数值(如1),第一数值用于表示有雪。
在目标像素点的NDC坐标中Z轴的坐标值不小于第一深度值、和/或目标像素点的NDC坐标中Z轴的坐标值不小于第二深度值的情况下,确定目标像素点与该第一深度值的比对结果为第二数值(如0),第二数值用于表示没有雪。
5)利用加权结果在阴影图中为目标像素点设定像素值。按照如下公式,利用加权结果在阴影图中为目标像素点设定像素值Value:
Value=Shadow*20.[.*(.)],
Shadow为加权结果,log()为对数函数,NormalY表示目标像素点的法向量在Y轴上的分量,所使用的坐标系可以为:以用户正面面对屏幕为例,用户右手边为X轴、正对的方向为Y轴、垂直于XY平面并指向上方的为Z轴。
在步骤S26提供的技术方案中,终端利用阴影图、雪天气对象的基本色贴图、雪天气对象的法线贴图、雪天气对象的粗糙度贴图以及世界法线,在智能终端的展示界面渲染出三维游戏场景中的雪。
包括如下步骤S262-步骤S266:
步骤S262,将雪天气对象的法线贴图中的法线与GPU缓存中的世界法线相融合后保存至GPU缓存中。
步骤S264,将阴影图中的像素值与雪天气对象的基本色贴图中的基本色进行线性插值后,保存至GPU缓存中。
步骤S266,将阴影图中的像素值与雪天气对象的粗糙度贴图中的粗糙度进行线性插值后,保存至GPU缓存中。
在上述方案中,屏幕空间天气渲染方案分为3个通道Pass(一个pass就是走完图形渲染底层一个渲染流程,从顶点计算、着色、光栅化等这一套流程,从而得到一帧数据的过程):WeatherOccluderDepthPass(对应于天气遮挡体的深度图)、WeatherOccluderMaskPass(对应于天气遮挡体的阴影图)、SnowBasePass(对应于最终的渲染图)。
作为一种可选的实施例,下文结合具体实施方式进一步详述本申请的技术方案:
WeatherOccluderDepthPass:主要功能是在WeatherOccluderMaskPass之前,输出场景中天气遮挡体的深度图(如图3所示)、覆盖范围,覆盖范围可以根据需要设定,如200m*200m。
WeatherOccluderDepthPass的输出格式可以为R32Float(FLOAT数据类型用于存储单精度浮点数或双精度浮点数)的浮点格式纹理,如大小为1024*1024的纹理数组,纹理数组是有两张纹理,第一张遮挡体的深度纹理(对应于第一深度图),另一张是水面的深度纹理(对应于第二深度图),为了实现水面底下、表面没雪,遮挡体以下没有雪,即仅仅当深度小于遮挡体且小于水面深度才会有雪。
该pass用来确定场景内什么地方接收雪,是自顶向下渲染的图,该渲染图可以做到每帧实时更新,也可不每帧实时更新(即非实时更新),具体由客户端定,如先确定移动距离、确定遮挡体以及遮挡对象、确定depth深度等,以此来衡量是否更新。WeatherOccluderDepthPass的实现步骤如下:
步骤1,使用自顶向下的正交相机渲染场景深度图到纹理数组中的第一张挡体的深度纹理,精度要求较低,覆盖范围大,玩家每移动一段距离,正交相机从玩家Camera正上方朝向下方进行渲染。这是雪渲染的更新规则,是客户端按实际情况选定,玩家每移动一段距离可触发更新雪渲染,此处是以距离为判断条件,比如玩家走的超过某一个距离就触发雪更新。
步骤2,此Pass可只渲染天气遮挡体(如建筑、建筑边檐、雨伞、水面),在AprimitiveLayerMask增加值:APLM_WEATHER_OCCLUDER=ABit(19),并在地图编辑器中对静态模型增加是否是天气遮挡体属性,传入LitMesh中在A3DlitMesh::CalcLayerMask内附加APLM_WEATHER_OCCLUDER,目的在于确定哪些对象是遮挡体,是一个遮挡体设定参数,设定游戏中树木、建筑等为遮挡体,树木模型会造成雪渲染过程有问题,所以不是默认的遮挡体,是美术可选的。
步骤3,渲染水面的深度到纹理数组中的第二张挡体的深度纹理。
步骤4,需要保存渲染时正交相机的ViewProjection矩阵供后续pass使用,普通摄像机是透视摄像机,正交相机从上向下渲染,无近大远小的透视效果,在第一个步骤中使用,其作用是渲染深度,确定遮挡体和遮挡对象的深度值。
WeatherOccluderMaskPass的主要功能是在BasePass之后、在SnowBasePass以及其他依赖WeatherOccluderMask的pass之前,输出雪Shadow图(或称SnowShadow),标记每一个像素的雪的覆盖程度,输出格式为R8G8B8A8_Unorm,大小等于屏幕大小ScreenSize。
WeatherOccluderMaskPass用于确定当前屏幕哪些地方有雪,需要将屏幕空间中的深度转换为自顶向下渲染图的深度,比第一张图内深度大就没雪,小就有雪。WeatherOccluderMaskPass的实现步骤如下:
步骤1,通过将屏幕像素世界坐标变换到WeatherDepthPass所使用的正交相机的NDC空间中,对比z坐标与从WeatherDepth采样出的深度值得到结果(1或0,1是代表有雪,0表示没雪,是与第一个pass深度值大小作比较的判断结果)。先将屏幕空间坐标变换到世界坐标,再变换到正交相机NDC坐标。
步骤2,上述得到的结果会在交界处非常生硬,需要对周围的像素进行多次采样并将结果进行平均,得到一个有渐变过渡的结果。
步骤3,为了在交界处增加随机性获得更自然的效果,可按以下步骤进行操作:
步骤3.1,遍历周围的n*n像素,遍历中用偏移后的UV在一张偏移量纹理(如图4所示)中进行采样,得到一个偏移量作为下一步使用的uv偏移量,记为uvOffset。类似阴影判断方式,可将1个点与周围点深度进行比较,这个点的深度小于所有周围点的深度,代表在雪中,都大于代表没雪,一部分小于一部分大于代表是处于边缘。
偏移后的UV,某一像素在采样周围临近像素,临近像素的坐标偏移量,以临近像素的坐标偏移量去不同图中进行采样(偏移量纹理、深度图、噪声图)确定一个新的偏移量,这个偏移量下的点对比深度值大小判断是否有雪。
非均匀采样,偏移量纹理是某张贴图中存了一些偏移量,是随机的,制造一点随机,噪声图体现随机,用噪声图和雪的颜色进行混合,显得边缘过渡更加自然。
步骤3.2,遍历中以当前像素的uv+uvOffset作为新的uv从深度图中采样并对比得到结果,1或0,记为result。
步骤3.3,遍历中以当前像素的uv+uvOffset作为uv从另一张噪声图中进行采样作为权重weight,乘以上一步得到的result,并累加result与weight进行加权平均得到最终结果。
步骤4,(雪)Shadow值乘以20.8log[1.5*(NormalY-0.2)],在垂直面上没有雪覆盖,斜面上雪量变少,当前屏幕像素的法线Y值,Y是向上的分量,Y越小雪越少。最终得到的Shadow图如图5所示。
Shadow这个值标记屏幕上哪里有雪哪里没有雪,是WeatherOccluderMaskPass的输出结果,就是雪阴影图的雪阴影值,是插值系数,为了得到目标值。
SnowBasePass,即最终雪的渲染,其功能是在DecalPass之后、在LightPass之前输出基本色贴图BaseColor、法线贴图Normal以及粗糙度贴图Roughness到GBuffer,输出格式和与GBuffer相同。
SnowBasePass可利用WeatherOccluderMaskPass得到的Shadow算出屏幕空间雪的分布,按PBR光照公式算白色,雪的法线方向(可从预先准备的雪的法线图获取)、粗糙度渲染出雪(可从预先准备的雪的粗糙度图获取粗糙度),实现方式如下:
BaseColor和Roughness都是从贴图中采样之后,将SnowShadow值作为alpha与Gbuffer中的值进行线性插值(AlphaBlend)。Normal是从纹理中采样之后与GBuffer中的世界法线融合后输出到GBuffer。具体算法:
BaseColor=Shadow*SnowDiffuse.rgb+(1-Shadow)*GBufferBaseColor.rgb,
当前的雪基本色像素值=雪漫反射贴图像素值与保存在G-Buffer中的基本色像素值两个值,以雪的阴影值进行插值得到。SnowDiffuse.rgb是光线折射入物体后,在内部经过散射,重新穿出表面的光,所使用的漫反射的值可从预先准备的雪漫反射图中获取,GBufferBaseColor.rgb是GBuffer中存储的基本色。
Roughness=Shadow*SnowRoughness+(1-Shadow)*GBufferRoughness,
当前的粗糙度像素值=雪粗糙度像素值与保存在G-Buffer中的粗糙度像素值两个值,以雪的阴影值进行插值得到,SnowRoughness是雪的粗糙度,GBufferRoughness是GBuffer中存储的粗糙度。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述游戏中天气的渲染方法的游戏中天气的渲染装置。图6是根据本申请实施例的一种可选的游戏中天气的渲染装置的示意图,如图6所示,该装置可以包括:
获取单元601,用于获取三维游戏场景中天气遮挡体的深度图,其中,所述深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,所述三维游戏场景为在智能终端上渲染的游戏场景;
生成单元603,用于利用所述天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;
渲染单元605,用于利用所述阴影图、雪天气对象的基本色贴图、所述雪天气对象的法线贴图、所述雪天气对象的粗糙度贴图以及世界法线,在所述智能终端的展示界面渲染出所述三维游戏场景中的雪。
需要说明的是,该实施例中的获取单元601可以用于执行本申请实施例中的步骤S22,该实施例中的生成单元603可以用于执行本申请实施例中的步骤S24,该实施例中的渲染单元605可以用于执行本申请实施例中的步骤S26。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,获取三维游戏场景中天气遮挡体的深度图,利用所述天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图,利用所述阴影图、雪天气对象的基本色贴图、所述雪天气对象的法线贴图、所述雪天气对象的粗糙度贴图以及世界法线,在所述智能终端的展示界面渲染出所述三维游戏场景中的雪,从而提供了一种通用的游戏场景中雪的渲染方案,而不用针对不同的地图开发雪地场景,可以解决相关技术中天气渲染的操作较为复杂的技术问题,从而避免不必要的开发,降低开发的工作量,降低开发的投入成本。
可选地,生成单元603还用于:通过比较所述天气遮挡体的深度图中的像素点和所述展示界面中表示所述三维游戏场景中相应位置的像素点,确定所述展示界面中表示雪边缘的边缘像素点;采用边缘过渡处理方法对表示雪边缘的边缘像素点进行边缘过渡处理,得到所述阴影图。
可选地,生成单元603还用于:获取目标像素点的UV值和UV偏移值,其中,所述目标像素点为所述阴影图的所有边缘像素点中未处理过的像素点,所述阴影图中存在UV偏移值不同的边缘像素点;根据所述目标像素点与多个第一深度值之间的多个比对结果和多个权重,在所述阴影图中为所述目标像素点设定像素值,以通过所述像素值确认在所述目标像素点的雪的覆盖程度,其中,所述多个第一深度值是利用所述目标像素点的UV值和UV偏移值从所述深度图中采样得到的,所述多个权重是利用所述目标像素点的UV值和UV偏移值从权重图中采样得到的,所述权重图用于提供预设的权重。
可选地,生成单元603还用于:按照所述目标像素点的UV值和UV偏移值从所述深度图中采样得到所述多个第一深度值,按照所述目标像素点的UV值和UV偏移值从所述权重图中采样得到所述多个权重,其中,所述多个第一深度值在所述深度图中的位置与所述多个权重在所述权重图中的位置相同;将所述多个第一深度值分别与所述目标像素点进行比对,得到所述多个比对结果,其中,每个所述比对结果是一个第一深度值与所述目标像素点进行比对得到的;将所述多个比对结果与所述多个权重进行加权求和,得到加权结果,其中,在进行加权求和时,针对每个比对结果,用于确定该比对结果的第一深度值在所述深度图中的位置与所使用的权重在所述权重图中的位置相同;利用所述加权结果在所述阴影图中为所述目标像素点设定像素值。
可选地,生成单元603还用于:将所述展示界面中的所述目标像素点的空间坐标转换为所述目标像素点的世界坐标,再将所述目标像素点的世界坐标转换为自顶向下的正交相机所在的NDC空间中的NDC坐标,其中,所述NDC坐标中的Z轴的方向与所述第一深度值所在轴的方向相同;将所述目标像素点的NDC坐标中Z轴的坐标值与所述多个第一深度值中的每个第一深度值进行对比;在所述目标像素点的NDC坐标中Z轴的坐标值小于第一深度值、且所述目标像素点的NDC坐标中Z轴的坐标值小于相同位置水体的第二深度值的情况下,确定所述目标像素点与该第一深度值的比对结果为第一数值,其中,所述第一数值用于表示有雪;在所述目标像素点的NDC坐标中Z轴的坐标值不小于所述第一深度值、和/或所述目标像素点的NDC坐标中Z轴的坐标值不小于所述第二深度值的情况下,确定所述目标像素点与该第一深度值的比对结果为第二数值,其中,所述第二数值用于表示没有雪。
可选地,生成单元603还用于:按照如下公式,利用所述加权结果在所述阴影图中为所述目标像素点设定像素值Value:
Value=Shadow*20.8log[1.5*(NormalY-0.2)],
其中,Shadow为所述加权结果,log()为对数函数,NormalY表示所述目标像素点的法向量在Y轴上的分量。
可选地,生成单元603还用于:在根据所述目标像素点与多个第一深度值之间的多个比对结果和多个权重,在所述阴影图中为所述目标像素点设定像素值之前,获取所述目标像素点与相邻像素点之间的坐标偏移量;利用所述目标像素点的UV值和坐标偏移值在偏移量纹理中进行采样,得到所述UV偏移值,其中,所述偏移量纹理用于提供随机的UV偏移值。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述游戏中天气的渲染方法的服务器或终端。
图7是根据本申请实施例的一种终端的结构框图,如图7所示,该终端可以包括:一个或多个(图7中仅示出一个)处理器701、存储器703、以及传输装置705,如图7所示,该终端还可以包括输入输出设备707。
其中,存储器703可用于存储软件程序以及模块,如本申请实施例中的游戏中天气的渲染方法和装置对应的程序指令/模块,处理器701通过运行存储在存储器703内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的游戏中天气的渲染方法。存储器703可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器703可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置705用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置705包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置705为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器703用于存储应用程序。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤:
获取三维游戏场景中天气遮挡体的深度图,其中,所述深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,所述三维游戏场景为在智能终端上渲染的游戏场景;利用所述天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;利用所述阴影图、雪天气对象的基本色贴图、所述雪天气对象的法线贴图、所述雪天气对象的粗糙度贴图以及世界法线,在所述智能终端的展示界面渲染出所述三维游戏场景中的雪。
处理器701还用于执行下述步骤:
按照所述目标像素点的UV值和UV偏移值从所述深度图中采样得到所述多个第一深度值,按照所述目标像素点的UV值和UV偏移值从所述权重图中采样得到所述多个权重,其中,所述多个第一深度值在所述深度图中的位置与所述多个权重在所述权重图中的位置相同;将所述多个第一深度值分别与所述目标像素点进行比对,得到所述多个比对结果,其中,每个所述比对结果是一个第一深度值与所述目标像素点进行比对得到的;将所述多个比对结果与所述多个权重进行加权求和,得到加权结果,其中,在进行加权求和时,针对每个比对结果,用于确定该比对结果的第一深度值在所述深度图中的位置与所使用的权重在所述权重图中的位置相同;利用所述加权结果在所述阴影图中为所述目标像素点设定像素值。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图7所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行游戏中天气的渲染方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取三维游戏场景中天气遮挡体的深度图,其中,所述深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,所述三维游戏场景为在智能终端上渲染的游戏场景;利用所述天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;利用所述阴影图、雪天气对象的基本色贴图、所述雪天气对象的法线贴图、所述雪天气对象的粗糙度贴图以及世界法线,在所述智能终端的展示界面渲染出所述三维游戏场景中的雪。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
按照所述目标像素点的UV值和UV偏移值从所述深度图中采样得到所述多个第一深度值,按照所述目标像素点的UV值和UV偏移值从所述权重图中采样得到所述多个权重,其中,所述多个第一深度值在所述深度图中的位置与所述多个权重在所述权重图中的位置相同;将所述多个第一深度值分别与所述目标像素点进行比对,得到所述多个比对结果,其中,每个所述比对结果是一个第一深度值与所述目标像素点进行比对得到的;将所述多个比对结果与所述多个权重进行加权求和,得到加权结果,其中,在进行加权求和时,针对每个比对结果,用于确定该比对结果的第一深度值在所述深度图中的位置与所使用的权重在所述权重图中的位置相同;利用所述加权结果在所述阴影图中为所述目标像素点设定像素值。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种游戏中天气的渲染方法,其特征在于,包括:
获取三维游戏场景中天气遮挡体的深度图,其中,所述深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,所述三维游戏场景为在智能终端上渲染的游戏场景;
利用所述天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;
利用所述阴影图、雪天气对象的基本色贴图、所述雪天气对象的法线贴图、所述雪天气对象的粗糙度贴图以及世界法线,在所述智能终端的展示界面渲染出所述三维游戏场景中的雪;
所述获取三维游戏场景中天气遮挡体的深度图,包括:在满足触发条件的情况下,根据三维游戏场景中的游戏角色确定三维游戏场景中的目标区域,所述游戏角色为所述智能终端上玩家控制的游戏角色,所述触发条件包括每间隔指定时长触发,或根据游戏角色的移动距离触发;生成三维游戏场景中目标区域的天气遮挡体的深度图,具体包括在目标区域内的静态场景模型预先被配置为天气遮挡体的情况下,以自顶向下的正交相机渲染静态场景模型的深度信息至第一深度图,天气遮挡体的深度图包括第一深度图,和/或,在目标区域内存在水体模型的情况下,以自顶向下的正交相机渲染水体模型的深度信息至第二深度图,天气遮挡体的深度图包括第二深度图。
2.根据权利要求1所述的方法,其特征在于,利用所述天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图,包括:
通过比较所述天气遮挡体的深度图中的像素点和所述展示界面中表示所述三维游戏场景中相应位置的像素点,确定所述展示界面中表示雪边缘的边缘像素点;
采用边缘过渡处理方法对表示雪边缘的边缘像素点进行边缘过渡处理,得到所述阴影图。
3.根据权利要求2所述的方法,其特征在于,采用边缘过渡处理方法对表示雪边缘的边缘像素点进行边缘过渡处理,得到所述阴影图,包括:
获取目标像素点的UV值和UV偏移值,其中,所述目标像素点为所述阴影图的所有边缘像素点中未处理过的像素点,所述阴影图中存在UV偏移值不同的边缘像素点;
根据所述目标像素点与多个第一深度值之间的多个比对结果和多个权重,在所述阴影图中为所述目标像素点设定像素值,以通过所述像素值确认在所述目标像素点的雪的覆盖程度,其中,所述多个第一深度值是利用所述目标像素点的UV值和UV偏移值从所述深度图中采样得到的,所述多个权重是利用所述目标像素点的UV值和UV偏移值从权重图中采样得到的,所述权重图用于提供预设的权重。
4.根据权利要求3所述的方法,其特征在于,根据所述目标像素点与多个第一深度值之间的多个比对结果和多个权重,在所述阴影图中为所述目标像素点设定像素值,包括:
按照所述目标像素点的UV值和UV偏移值从所述深度图中采样得到所述多个第一深度值,按照所述目标像素点的UV值和UV偏移值从所述权重图中采样得到所述多个权重,其中,所述多个第一深度值在所述深度图中的位置与所述多个权重在所述权重图中的位置相同;
将所述多个第一深度值分别与所述目标像素点进行比对,得到所述多个比对结果,其中,每个所述比对结果是一个第一深度值与所述目标像素点进行比对得到的;
将所述多个比对结果与所述多个权重进行加权求和,得到加权结果,其中,在进行加权求和时,针对每个比对结果,用于确定该比对结果的第一深度值在所述深度图中的位置与所使用的权重在所述权重图中的位置相同;
利用所述加权结果在所述阴影图中为所述目标像素点设定像素值。
5.根据权利要求4所述的方法,其特征在于,将所述多个第一深度值分别与所述目标像素点进行比对,得到所述多个比对结果,包括:
将所述展示界面中的所述目标像素点的空间坐标转换为所述目标像素点的世界坐标,再将所述目标像素点的世界坐标转换为自顶向下的正交相机所在的NDC空间中的NDC坐标,其中,所述NDC坐标中的Z轴的方向与所述第一深度值所在轴的方向相同;
将所述目标像素点的NDC坐标中Z轴的坐标值与所述多个第一深度值中的每个第一深度值进行对比;
在所述目标像素点的NDC坐标中Z轴的坐标值小于第一深度值、且所述目标像素点的NDC坐标中Z轴的坐标值小于相同位置水体的第二深度值的情况下,确定所述目标像素点与该第一深度值的比对结果为第一数值,其中,所述第一数值用于表示有雪;
在所述目标像素点的NDC坐标中Z轴的坐标值不小于所述第一深度值、和/或所述目标像素点的NDC坐标中Z轴的坐标值不小于所述第二深度值的情况下,确定所述目标像素点与该第一深度值的比对结果为第二数值,其中,所述第二数值用于表示没有雪。
6.根据权利要求4所述的方法,其特征在于,利用所述加权结果在所述阴影图中为所述目标像素点设定像素值,包括:
按照如下公式,利用所述加权结果在所述阴影图中为所述目标像素点设定像素值Value:
Value=Shadow*20.8log[1.5*(NormalY-0.2)],
其中,Shadow为所述加权结果,log()为对数函数,NormalY表示所述目标像素点的法向量在Y轴上的分量。
7.根据权利要求3所述的方法,其特征在于,在根据所述目标像素点与多个第一深度值之间的多个比对结果和多个权重,在所述阴影图中为所述目标像素点设定像素值之前,所述方法还包括:
获取所述目标像素点与相邻像素点之间的坐标偏移量;
利用所述目标像素点的UV值和坐标偏移值在偏移量纹理中进行采样,得到所述UV偏移值,其中,所述偏移量纹理用于提供随机的UV偏移值。
8.一种游戏中天气的渲染装置,用于实现如权利要求1至7任一所述的游戏中天气的渲染方法,其特征在于,包括:
获取单元,用于获取三维游戏场景中天气遮挡体的深度图,其中,所述深度图中的每个像素用于记录所表示位置的天气遮挡体的深度,所述三维游戏场景为在智能终端上渲染的游戏场景;
生成单元,用于利用所述天气遮挡体的深度图,生成表示雪的覆盖程度且雪边缘过渡自然的阴影图;
渲染单元,用于利用所述阴影图、雪天气对象的基本色贴图、所述雪天气对象的法线贴图、所述雪天气对象的粗糙度贴图以及世界法线,在所述智能终端的展示界面渲染出所述三维游戏场景中的雪。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至7任一项中所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111626302.6A CN116351065B (zh) | 2021-12-28 | 2021-12-28 | 游戏中天气的渲染方法和装置、存储介质、电子装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111626302.6A CN116351065B (zh) | 2021-12-28 | 2021-12-28 | 游戏中天气的渲染方法和装置、存储介质、电子装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116351065A CN116351065A (zh) | 2023-06-30 |
| CN116351065B true CN116351065B (zh) | 2025-08-12 |
Family
ID=86909580
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111626302.6A Active CN116351065B (zh) | 2021-12-28 | 2021-12-28 | 游戏中天气的渲染方法和装置、存储介质、电子装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116351065B (zh) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0778267A (ja) * | 1993-07-09 | 1995-03-20 | Silicon Graphics Inc | 陰影を表示する方法及びコンピュータ制御表示システム |
| WO2018175299A1 (en) * | 2017-03-24 | 2018-09-27 | Mz Ip Holdings, Llc | System and method for rendering shadows for a virtual environment |
| CN109461199B (zh) * | 2018-11-15 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 画面渲染方法和装置、存储介质及电子装置 |
| CN110706324B (zh) * | 2019-10-18 | 2023-03-31 | 网易(杭州)网络有限公司 | 一种天气粒子渲染的方法及装置 |
-
2021
- 2021-12-28 CN CN202111626302.6A patent/CN116351065B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116351065A (zh) | 2023-06-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11270497B2 (en) | Object loading method and apparatus, storage medium, and electronic device | |
| US11620800B2 (en) | Three dimensional reconstruction of objects based on geolocation and image data | |
| US20240249472A1 (en) | Terrain generation and population system | |
| US11704868B2 (en) | Spatial partitioning for graphics rendering | |
| CN100386780C (zh) | 用于自然光照环境中对象实时重点亮的健壮采样系统和方法 | |
| CN112241993B (zh) | 游戏图像处理方法、装置及电子设备 | |
| CN108837510B (zh) | 信息的展示方法和装置、存储介质、电子装置 | |
| JP6864753B2 (ja) | オブジェクト移動方法及び装置並びに記憶媒体、電子装置 | |
| CN111773719B (zh) | 虚拟对象的渲染方法和装置、存储介质、电子装置 | |
| CN112102492B (zh) | 游戏资源的制作方法及装置、存储介质、终端 | |
| Ahearn | 3D game environments: create professional 3D game worlds | |
| Barros et al. | Balanced civilization map generation based on open data | |
| Latif et al. | A critical evaluation of procedural content generation approaches for digital twins | |
| CN111784817A (zh) | 阴影的展示方法和装置、存储介质、电子装置 | |
| Komianos et al. | Efficient and realistic cultural heritage representation in large scale virtual environments | |
| CN116351065B (zh) | 游戏中天气的渲染方法和装置、存储介质、电子装置 | |
| CN116351066B (zh) | 游戏中天气对象的渲染方法和装置、存储介质、电子装置 | |
| CN114404948B (zh) | 游戏地图显示方法、装置、电子设备及计算机可读存储介质 | |
| Onrust et al. | Ecologically sound procedural generation of natural environments | |
| CN116351067B (zh) | 游戏场景中天气的渲染方法和装置、存储介质、电子装置 | |
| CN112473135B (zh) | 移动游戏的实时光照模拟方法、装置、设备及存储介质 | |
| Van Bilsen et al. | 3D visibility analysis in virtual worlds: the case of supervisor | |
| Jæger et al. | Can't see the Forest for the Trees: Perceiving Realism of Procedural Generated Trees in First-Person Games. | |
| CN114677482B (zh) | 地形构建方法及设备 | |
| Tang et al. | Computational approach to seasonal changes of living leaves |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |