CN104376586A - 一种2d游戏天气效果处理方法及其处理装置 - Google Patents
一种2d游戏天气效果处理方法及其处理装置 Download PDFInfo
- Publication number
- CN104376586A CN104376586A CN201410568701.5A CN201410568701A CN104376586A CN 104376586 A CN104376586 A CN 104376586A CN 201410568701 A CN201410568701 A CN 201410568701A CN 104376586 A CN104376586 A CN 104376586A
- Authority
- CN
- China
- Prior art keywords
- particle
- weather
- region
- size
- map
- 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
Abstract
本发明涉及一种2D游戏天气效果处理方法及其处理装置,所述处理方法包括以下步骤:将当前地图根据不同地形进行分割;将分割后的地形数据存入地图数据中;当天气粒子与地图接触时,根据不同的地形数据,相应显示出不同的落地效果。本发明还提供了另一种2D游戏天气效果处理方法,其中在上述方法步骤中增加了对天气粒子的处理,实现粒子的层次感。同时,本发明分别针对上述两种方法提供了一种2D游戏天气效果的处理装置。
Description
技术领域
本发明涉及一种游戏天气系统处理方法,特别是一种2D游戏天气效果处理方法。本发明还涉及一种2D游戏天气效果处理装置。
背景技术
在网络游戏中,天气系统已经成一个很重要的模块。通过各种天气效果,比如白天、黑夜、下雨、刮风等增强场景的表现力,让玩家更好地沉浸到游戏的氛围中。同时也可以通过天气系统和玩家进行交互,增强游戏的体验性。
而现有的2D游戏的天气系统的处理方法存在一些几个问题:
第一、而现有的天气系统粒子和地面交互的样式比较单一,表现在以下两个方面:第一、天气系统不能根据地形特征表现出不同的落地效果,在不同地形连接的区域会有显得不自然。第二、天气系统的粒子和地面落地效果表现时间无关联,真实的落地效果应该是在粒子接触地面的随机产生。
第二、相比于3D游戏的天气效果,2D游戏没有深度的概念,所有的天气粒子效果在同一层次进行渲染,会使得2D游戏天气粒子效果缺乏层次感。
而且,玩家在游戏场景中可以自由移动,当场景呈现某种天气时,真实世界是整个场景都布满了相应的天气粒子,但是考虑到游戏渲染的性能,故通常的做法是只在当前屏幕产生和销毁天气粒子,但是当玩家移动时,会观察到天气粒子呈现“井喷”或者断续的现象。
第三、在一般2D游戏渲染帧中,每帧需要渲染地图、场景元素以及UI界面等模块。3D游戏可以通过改变场景光照,在游戏场景中实现黑夜、冷色调、暖色调等天气效果,但是2D游戏场景中没有光照的概念,因此难以实现上述天气效果。
发明内容
本发明在于克服现有技术的缺点与不足,提供一种基于地形分割的2D游戏天气效果处理方法,以及实现上述方法的天气效果处理装置。
本发明是通过以下的技术方案实现的:一种2D游戏天气效果处理方法,包括以下步骤:
将当前地图根据不同地形进行分割;
将分割后的地形数据存入地图数据中;
当天气粒子与地图接触时,根据不同的地形数据,相应显示出不同的落地效果。
相比于现有技术,本发明通过对地形进行分割,可以灵活的根据不同的地形类型来设置相应地地面落地特效,增强游戏的表现力。
作为本发明的进一步改进,根据天气粒子的生命周期,将粒子消失时作为粒子与地图接触的时刻。
一种2D游戏天气效果的处理装置,包括
地形分割模块,用于根据不同地形对地图进行分割;
地形数据存储模块,用于存储不同类型的地形数据;
地形特效生成模块,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效。
一种2D游戏天气效果处理方法,包括以下步骤:
将当前地图根据不同地形进行分割;
将分割后的地形数据存入地图数据中;
对天气粒子的显示状态进行处理,其包括以下步骤:设定一生存区域,在该生存区域内设定渲染区域;
发射天气粒子,并对每个天气粒子赋予一随机的虚拟深度值Z,在所述粒子的整个生命周期中,所述虚拟深度值Z保持不变;
对粒子的位置进行判断,若位于生存区域外,则进行销毁;若否,则根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小和运动状态;
对粒子的位置进行判断,若位于渲染区域外且位于生存区域内,则进行剪裁;若位于渲染区域,则进行渲染处理。
相比于现有技术,本发明通过对每个天气粒子赋予一虚拟深度值,并根据该深度值的大小,获取不同天气粒子实际显示的大小和运动状态。由于不同天气粒子的深度值不同,可以依据该深度值改变不同粒子的大小和运动状态,使2D游戏中的天气粒子具备层次感。
进一步,本发明通过预缓存一些天气粒子,使玩家在游戏场景移动时观测到的粒子是平滑连续。具体通过划分为不同的区域,针对粒子在不同区域,对粒子进行相应的处理,从而解决天气粒子在游戏场景的变换中忽然有大量的粒子产生和消失的现象。
进一步,在所述生存区域中还设有一发射区域,所述天气粒子从所述发射区域中发射。
作为本发明的进一步改进,根据天气粒子的生命周期,将粒子消失时作为粒子与地图接触的时刻。
作为本发明的进一步改进,所述生存区域为一九宫格;所述渲染区域位于九宫格的中心格,且该渲染区域为当前显示区域。
作为本发明的进一步改进,在根据虚拟深度值Z大小获取实际显示的粒子的大小和运动状态的步骤中,具体是先根据天气粒子的虚拟值大小Z获取缩放因子f(Z),再根据该缩放因子f(Z),对每个天气粒子的大小和运动参数进行缩放变换,获取实际显示的粒子的大小和运动状态。
作为本发明的进一步改进,所述虚拟深度值Z的范围为0~1,所述缩放因子f(Z)=1-Z;在对每个天气粒子的大小和运动参数进行缩放变换时,具体是将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘。
一种2D游戏天气效果的处理装置,其特征在于:包括
地形分割模块,用于根据不同地形对地图进行分割;
地形数据存储模块,用于存储不同类型的地形数据;
地形特效生成模块,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效;
天气粒子处理模块,其包括:
区域生成单元,用于生成一生存区域,以及在该生存区域内的分别一生成发射区域和一渲染区域;
发射单元,用以发射天气粒子;
深度值产生单元,用于对每个天气粒子赋予一随机的虚拟深度值Z;
销毁单元,用以销毁位于生存区域外的天气粒子;
粒子大小显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小;
粒子运动状态显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子运动状态;其中,在该粒子的整个生命周期中,所述虚拟深度值Z保持不变。
剪裁单元,用以剪裁位于渲染区域外且位于生存区域内的天气粒子;
渲染单元,用以渲染进入渲染区域内的天气粒子和地形特效。
作为本发明的进一步改进,所述生存区域为一九宫格;所述渲染区域位于九宫格的中心格,且该渲染区域为当前显示区域。
作为本发明的进一步改进,所述天气粒子处理模块还包括一缩放单元,用于根据天气粒子的虚拟值大小Z,获取缩放因子f(Z),并根据该缩放因子f(Z),分别对每个天气粒子的大小和运动参数进行缩放变换,并将缩放变换结果分别发送至粒子大小显示单元和粒子运动状态显示单元。
作为本发明的进一步改进,所述虚拟深度值Z的范围为0~1,所述缩放因子f(Z)=1-Z;所述缩放单元在对每个天气粒子的大小和运动参数进行缩放变换时,具体是将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘。
一种2D游戏天气效果处理方法,包括以下步骤:
将当前地图根据不同地形进行分割;
将分割后的地形数据存入地图数据中;
根据天气情况,将地图进行变色处理;
将变色后的地图、场景和用户界面进行渲染;
对天气粒子的显示状态进行处理,其包括以下步骤:设定一生存区域,在该生存区域内设定渲染区域;
发射天气粒子,并对每个天气粒子赋予一随机的虚拟深度值Z,在所述粒子的整个生命周期中,所述虚拟深度值Z保持不变;
对粒子的位置进行判断,若位于生存区域外,则进行销毁;若否,则根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小和运动状态;
对粒子的位置进行判断,若位于渲染区域外且位于生存区域内,则进行剪裁;若位于渲染区域,则进行渲染处理。
相比于现有技术,本发明在对地图渲染步骤中增加了一个地图变色处理,对于每个地图块根据当前蒙版类天气类型定制相应的变色算法,将变色算法处理过后的地图块再提交给引擎,从而可以实现黑夜、柔光等天气效果,同时保持场景中的人物和UI界面不变。
作为本发明的进一步改进,在完成对变色后的地图、场景和用户界面渲染以及天气粒子的渲染后,还包括步骤:对渲染后的图像进行全屏处理。
一种2D游戏天气效果的处理装置,包括:
地形分割模块,用于根据不同地形对地图进行分割;
地形数据存储模块,用于存储不同类型的地形数据;
地形特效生成模块,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效;
地图变色模块,用于对地图进行变色;
天气粒子处理模块,其包括:
区域生成单元,用于生成一生存区域,以及在该生存区域内的分别一生成发射区域和一渲染区域;
发射单元,用以发射天气粒子;
深度值产生单元,用于对每个天气粒子赋予一随机的虚拟深度值Z;
销毁单元,用以销毁位于生存区域外的天气粒子;
粒子大小显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小;
粒子运动状态显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子运动状态;其中,在该粒子的整个生命周期中,所述虚拟深度值Z保持不变;
剪裁单元,用以剪裁位于渲染区域外且位于生存区域内的天气粒子;
渲染单元,用以渲染进入渲染区域内的天气粒子、地形特效,以及渲染经变色后的地图、场景和用户界面。
作为本发明的进一步改进,还包括一全屏处理模块,用于接收经渲染引擎处理后的图像和经天气粒子处理模块处理后的图像,并对其进行全屏处理。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1是实施例1的2D游戏天气效果处理方法流程图。
图2是实施例1的2D游戏天气效果的处理装置的示意图。
图3是地形分割的示意图。
图4是实施例2的2D游戏天气效果的处理方法的步骤流程图。
图5是实施例2的2D游戏天气效果的处理装置的示意图。
图6是天气粒子显示的缓存区域的示意图。
图7是实施例3的2D游戏天气效果的处理方法的步骤流程图。
图8是实施例3的2D游戏天气效果的处理装置的示意图。
具体实施方式
实施例1
请参阅图1,其为实施例1的2D游戏天气效果处理方法流程图。
本发明的2D游戏天气效果处理方法,包括以下步骤:
S11:将当前地图根据不同地形进行分割;具体的,在本实施例中,可以通过手动抠图或其他自动识别图像的方法,将当前的地图分割为不同类型,比如:水面、陆地、屋顶等。
S12:将分割后的地形数据存入地图数据中;具体的,在本实施例中,为了节省存储空间,可以不需要逐像素保存地形类型,可以选择逐块保存,其中块的大小视应用程序要求的精度而定。
S13:当天气粒子与地图接触时,根据不同的地形数据,相应显示出不同的落地效果。具体的,可以根据天气粒子的生命周期,将天气粒子消失时作为粒子与地图接触的时刻。
请参阅图2,其为实施例1的2D游戏天气效果的处理装置的示意图。为了实现上述的2D游戏天气效果处理方法,本发明还提供了对应上述方法的2D游戏天气效果的处理装置,包括地形分割模块11、地形数据存储模块12和地形特效生成模块13。
所述地形分割模块11,用于根据不同地形对地图进行分割;
所述地形数据存储模块12,用于存储不同类型的地形数据;
所述地形特效生成模块13,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效。
以下通过一具体实例,简要介绍地形分割的步骤。请参阅图3,其为地形分割的示意图。可以通过抠图或其他自动识别图像的方法,根据地形将地图划分为三个块,分别为A、B、C三个图块,再分别将该图块的地形数据存入地图数据中。
实施例2
在游戏天气效果中,还需要对相应的天气粒子进行处理,跟地形分割所得出的不同类型的地形进行结合,得到更优的天气的效果。所以在本实施例中,提供了结合天气粒子和地形分割的2D游戏天气效果的处理方法。请参阅图4,其为实施例2的2D游戏天气效果的处理方法的步骤流程图,该方法包括以下步骤:
对地图的地形类型和粒子类天气系统分别进行处理。
其中,对地图地形类型的处理包括以下步骤:
S11:将当前地图根据不同地形进行分割;具体的,在本实施例中,可以通过手动抠图或其他自动识别图像的方法,将当前的地图分割为不同类型,比如:水面、陆地、屋顶等。
S12:将分割后的地形数据存入地图数据中;具体的,在本实施例中,为了节省存储空间,可以不需要逐像素保存地形类型,可以选择逐块保存,其中块的大小视应用程序要求的精度而定。
S13:根据地形数据,相应生产地形特效,并执行步骤S29。
对粒子类天气系统进行处理包括以下步骤:
S21:设定一生存区域。在本实施例中,本发明基于九宫格的粒子系统缓存技术,实现天气粒子的缓存。具体的,设立一九宫格的缓存区域,该九宫格缓存区域为本发明的生存区域,包括了九个虚拟网格。
S22:在该生存区域内设定一发射区域和一渲染区域。具体的,所述渲染区域位于九宫格的中心网格,且该渲染区域为当前显示区域。所述发射区域可以位于九个格的任意位置,根据天气粒子不同类型,可以有设置不同位置的发射区域,比如下雨时雨水的发射区域可以位于屏幕上方,沙尘暴粒子的发射区域可以位于屏幕的一端,即屏幕的左端或右端。
S23:天气粒子从发射区域发射。
S24:对每个天气粒子赋予一随机的虚拟深度值Z;其中,所述虚拟深度值Z的范围为0~1,且在该粒子的整个生命周期中,所述虚拟深度值Z保持不变。
对所发射粒子的位置进行检测,若位于生存区域外,则进行销毁;若否,则执行步骤S25。
S25:根据天气粒子的虚拟值大小Z获取缩放因子f(Z);具体的,所述缩放因子f(Z)=1-Z。
S26:根据该缩放因子f(Z),对每个天气粒子的大小和运动参数进行缩放变换。具体的,本实施例通过将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘。
S27:获取实际显示的粒子的大小和运动状态。
S28:对粒子的位置进行检测,若位于渲染区域外且位于生存区域内,则进行剪裁;若位于渲染区域,则执行步骤S29。其中,所述剪裁是指将所述粒子缓存在内存或显存中暂时不传递给渲染单元进行渲染。
S29:对地形特效和天气粒子进行渲染处理。所述渲染是指渲染单元对粒子及其他图像数据进行处理最后生成图像的显示数据,之后在显示设备中显示出来。
请参阅图5,其为实施例2的2D游戏天气效果的处理装置的示意图。为了实现上述的2D游戏天气效果处理方法,本发明还提供了对应上述方法的2D游戏天气效果的处理装置,该处理装置包括:地形分割模块11、地形数据存储模块12、地形特效生成模块13、天气粒子处理模块20。
所述地形分割模块11,用于根据不同地形对地图进行分割。
所述地形数据存储模块12,用于存储不同类型的地形数据。
所述地形特效生成模块13,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效。
所述天气粒子处理模块20包括:区域生成单元21、发射单元22、销毁单元23、深度值产生单元24、剪裁单元25、渲染单元26、缩放单元27、粒子大小显示单元28,以及粒子运动状态显示单元29。
所述区域生成单元21,生成一生存区域,以及在该生存区域内分别生成一发射区域和一渲染区域。具体的,所述生存区域为一九宫格;所述渲染区域位于九宫格的中心格,且该渲染区域为当前显示区域。
所述发射单元22,用以发射天气粒子。
所述深度值产生单元24,用于对每个天气粒子赋予一随机的虚拟深度值Z。具体的,所述虚拟深度值Z的范围为0~1,且在该粒子的整个生命周期中,所述虚拟深度值Z保持不变。
所述销毁单元23,用以销毁位于生存区域外的天气粒子。
所述缩放单元27,用于根据天气粒子的虚拟值大小Z,获取缩放因子f(Z),并根据该缩放因子f(Z),分别对每个天气粒子的大小和运动参数进行缩放变换,并将缩放变换结果分别发送至粒子大小显示单元和粒子运动状态显示单元。其中,所述缩放因子f(Z)=1-Z。具体的,所述缩放单元在对每个天气粒子的大小和运动参数进行缩放变换时,通过将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘,实现缩放变换。
所述粒子大小显示单元28,用于获取缩放单元的天气粒子大小数据,并显示实际粒子的大小。
所述粒子运动状态显示单元29,用于获取缩放单元的天气参数的数据,并显示实际粒子运动状态。
所述剪裁单元25,用以剪裁位于渲染区域外且位于生存区域内的天气粒子。
所述渲染单元26,用以渲染进入渲染区域内的天气粒子和地形特效。
以下通过一个例子对根据深度值对粒子缩放做简要说明:如果当前粒子的深度值为z,当前时刻粒子的大小为s,当前时刻粒子的速度为v,则考虑虚拟深度值影响后,粒子真实的大小s'和v'为:
s'=s*f(z)
v'=v*f(z)
其中,在本方案实施例中f(z)=1-z。从而实现“近大远小”的伪3D效果。
以下通过一具体实例,介绍本发明的天气粒子的缓存区域的示意图。请参阅图6,其为本发明的天气粒子显示的缓存区域的示意图。
本发明基于九宫格的粒子系统缓存技术,实现天气粒子的缓存。具体的,在生存区域中511设定一渲染区域513和一发射区域512。其中,所述生存区域511包括了九个虚拟网格。
所述渲染区域513位于九宫格的中心网格,且该渲染区域513为当前显示区域。所述发射区域512可以位于九个格的任意位置,根据天气粒子不同类型,可以有设置不同位置的发射区域,比如下雨时雨水的发射区域512可以位于屏幕上方,沙尘暴粒子的发射区域512可以位于屏幕的一端,即屏幕的左端或右端。
当粒子从发射区域发射出后,根据粒子所处的区域位置,对所述粒子进行相应的处理。当粒子位于渲染区域时,则对该粒子进行渲染处理。当粒子位于生存区域外时,对粒子进行销毁。当粒子位于生存区域内,并位于渲染区域外时,则对粒子进行剪裁处理。所述剪裁处理,即将所述粒子进行缓存,暂时保存在内存或显存中不做处理。
当玩家在移动变换场景时,渲染区域会随着变化,而此时可以将保存在内存或显存中的粒子进行调用,对粒子进行渲染,增加了粒子的产生速度,防止玩家在游戏场景中移动时,出现粒子“断续”或“井喷”现象。
相比于现有技术,本发明通过对每个天气粒子赋予一虚拟深度值,并根据该深度值的大小,获取不同天气粒子实际显示的大小和运动状态。由于不同天气粒子的深度值不同,可以依据该深度值改变不同粒子的大小和运动状态,使2D游戏中的天气粒子具备层次感。通过对虚拟值和缩放因子的设定,实现天气粒子在屏幕中显示“近大远小”的伪3D效果。当粒子产生时,对每个粒子都随机赋予一虚拟深度值,每个粒子的虚拟深度值不同,为了实现天气粒子在屏幕中显示的“近大远小”的效果,因此需要将深度值大的粒子进行缩小变化。因此,在本实施例中将虚拟深度值Z的范围设定为0~1,并且相应地可以将缩放因子f(Z)设定为:f(Z)=1-Z。最终将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘,故粒子的虚拟深度值越大,则缩放因子f(Z)值越小,经所述缩放因子的相乘之后,所得到的天气粒子的变小,最终可以实现“近大远小”的伪3D效果。
进一步,本发明通过预缓存一些天气粒子,使玩家在游戏场景移动时观测到的粒子是平滑连续。具体通过划分为不同的区域,针对粒子在不同区域,对粒子进行相应的处理,从而解决天气粒子在游戏场景的变换中忽然有大量的粒子产生和消失的现象。
实施例3
为了在游戏场景中实现黑夜、冷色调、暖色调等天气效果,还需要通过对地图进行变色处理,因此在本实施例中,将地图的变色处理、地图分割以及天气粒子的处理进行结合,从而得到更加优化的天气系统效果,最后对渲染后的图像进行全屏处理。
请参阅图7,其为实施例3的2D游戏天气效果的处理方法的步骤流程图,该方法包括以下步骤:
对地图的地形类型、地图颜色和粒子类天气系统先分别进行处理,然后再进行地图与天气粒子的交互显示,最后进行全屏处理。
其中,对地图地形类型的处理包括以下步骤:
S11:将当前地图根据不同地形进行分割;具体的,在本实施例中,可以通过手动抠图或其他自动识别图像的方法,将当前的地图分割为不同类型,比如:水面、陆地、屋顶等。
S12:将分割后的地形数据存入地图数据中;具体的,在本实施例中,为了节省存储空间,可以不需要逐像素保存地形类型,可以选择逐块保存,其中块的大小视应用程序要求的精度而定。
S13:根据地形数据,相应生产地形特效,并执行步骤S29。
对地图变色的处理包括以下步骤:
S31:根据天气情况,将地图进行变色处理,并执行步骤S29;2D游戏的当前地图块是一张图片,所述地图变色为通过对这张图片进行逐像素处理,从而达到所要的天气效果。比如说白天变黑夜,对于地图块图片中个每个像素,假定该像素用(R,G,B)表示,则通过地图变色算法生成对应的新像素为(R',G',B'),其中R'=G'=B'=(R+G+B)/3。
对粒子类天气系统进行处理包括以下步骤:
S21:设定一生存区域。在本实施例中,本发明基于九宫格的粒子系统缓存技术,实现天气粒子的缓存。具体的,设立一九宫格的缓存区域,该九宫格缓存区域为本发明的生存区域,包括了九个虚拟网格。
S22:在该生存区域内设定一发射区域和一渲染区域。具体的,所述渲染区域位于九宫格的中心网格,且该渲染区域为当前显示区域。所述发射区域可以位于九个格的任意位置,根据天气粒子不同类型,可以有设置不同位置的发射区域,比如下雨时雨水的发射区域可以位于屏幕上方,沙尘暴粒子的发射区域可以位于屏幕的一端,即屏幕的左端或右端。具体的,在本实施例中,所述的生存区域和渲染区域是虚拟的区域,用以进行逻辑判断。这些区域是游戏制作使用编辑器编辑2D天气产生的。
S23:天气粒子从发射区域发射。
S24:对每个天气粒子赋予一随机的虚拟深度值Z;其中,所述虚拟深度值Z的范围为0~1,且在该粒子的整个生命周期中,所述虚拟深度值Z保持不变。
对所发射粒子的位置进行检测,若位于生存区域外,则进行销毁;若否,则执行步骤S25。
S25:根据天气粒子的虚拟值大小Z获取缩放因子f(Z);具体的,所述缩放因子f(Z)=1-Z。
S26:根据该缩放因子f(Z),对每个天气粒子的大小和运动参数进行缩放变换。具体的,本实施例通过将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘。
S27:获取实际显示的粒子的大小和运动状态。
S28:对粒子的位置进行检测,若位于渲染区域外且位于生存区域内,则进行剪裁;若位于渲染区域,则执行步骤S29。其中,所述剪裁是指将所述粒子缓存在内存或显存中暂时不传递给渲染单元进行渲染。
S29:对天气粒子、地形特效,以及变色后的地图、场景和用户界面进行渲染处理。所述渲染是指渲染单元对粒子及其他图像数据进行处理最后生成图像的显示数据,之后在显示设备中显示出来。
最后,通过全屏类处理方法,对经渲染后的图像进行全屏处理,具体步骤为:
S32:对渲染后的图像进行全屏效果的处理。所述全屏处理是指对游戏渲染后的结果进行后处理,是在显卡对游戏场景中所有对象渲染完成之后实现的。游戏场景所有对象渲染完成后会获得渲染结果图,全屏处理就是对渲染结果图进行逐像素变换。
请参阅图8,其为实施例2的2D游戏天气效果的处理装置的示意图。为了实现上述的2D游戏天气效果处理方法,本发明还提供了对应上述方法的2D游戏天气效果的处理装置,该处理装置包括:地形分割模块11、地形数据存储模块12、地形特效生成模块13、天气粒子处理模块20、地图变色模块31、全屏处理模块33。
所述地形分割模块11,用于根据不同地形对地图进行分割。
所述地形数据存储模块12,用于存储不同类型的地形数据。
所述地形特效生成模块13,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效。
所述地图变色模块31,用于对地图进行变色;
所述天气粒子处理模块20包括:区域生成单元21、发射单元22、销毁单元23、深度值产生单元24、剪裁单元25、渲染单元26、缩放单元27、粒子大小显示单元28,以及粒子运动状态显示单元29。
所述区域生成单元21,生成一生存区域,以及在该生存区域内分别生成一发射区域和一渲染区域。具体的,所述生存区域为一九宫格;所述渲染区域位于九宫格的中心格,且该渲染区域为当前显示区域。
所述发射单元22,用以发射天气粒子。
所述深度值产生单元24,用于对每个天气粒子赋予一随机的虚拟深度值Z。具体的,所述虚拟深度值Z的范围为0~1,且在该粒子的整个生命周期中,所述虚拟深度值Z保持不变。
所述销毁单元23,用以销毁位于生存区域外的天气粒子。
所述缩放单元27,用于根据天气粒子的虚拟值大小Z,获取缩放因子f(Z),并根据该缩放因子f(Z),分别对每个天气粒子的大小和运动参数进行缩放变换,并将缩放变换结果分别发送至粒子大小显示单元和粒子运动状态显示单元。其中,所述缩放因子f(Z)=1-Z。具体的,所述缩放单元在对每个天气粒子的大小和运动参数进行缩放变换时,通过将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘,实现缩放变换。
所述粒子大小显示单元28,用于获取缩放单元的天气粒子大小数据,并显示实际粒子的大小。
所述粒子运动状态显示单元29,用于获取缩放单元的天气参数的数据,并显示实际粒子运动状态。
所述剪裁单元25,用以剪裁位于渲染区域外且位于生存区域内的天气粒子。
所述渲染单元26,用以渲染进入渲染区域内的天气粒子、地形特效,以及变色后的地图、场景和用户界面。
所述全屏处理模块33,用于接收经渲染引擎处理后的图像和经天气粒子处理模块处理后的图像,并对其进行全屏处理。
相比于现有技术,本实施例在对地图渲染步骤中增加了一个地图变色处理,对于每个地图块根据当前蒙版类天气类型定制相应的变色算法,将变色算法处理过后的地图块再提交给引擎,从而可以实现黑夜、柔光等天气效果,同时保持场景中的人物和UI界面不变。
本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。
Claims (17)
1.一种2D游戏天气效果处理方法,其特征在于:包括以下步骤:
将当前地图根据不同地形进行分割;
将分割后的地形数据存入地图数据中;
当天气粒子与地图接触时,根据不同的地形数据,相应显示出不同的落地效果。
2.根据权利要求1所述2D游戏天气效果处理方法,其特征在于:根据天气粒子的生命周期,将粒子消失时作为粒子与地图接触的时刻。
3.一种2D游戏天气效果的处理装置,其特征在于:包括
地形分割模块,用于根据不同地形对地图进行分割;
地形数据存储模块,用于存储不同类型的地形数据;
地形特效生成模块,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效。
4.一种2D游戏天气效果处理方法,其特征在于:包括以下步骤:
将当前地图根据不同地形进行分割;
将分割后的地形数据存入地图数据中;
对天气粒子的显示状态进行处理,其包括以下步骤:设定一生存区域,在该生存区域内设定渲染区域;
发射天气粒子,并对每个天气粒子赋予一随机的虚拟深度值Z,在所述粒子的整个生命周期中,所述虚拟深度值Z保持不变;
对粒子的位置进行判断,若位于生存区域外,则进行销毁;若否,则根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小和运动状态;
对粒子的位置进行判断,若位于渲染区域外且位于生存区域内,则进行剪裁;若位于渲染区域,则进行渲染处理。
5.根据权利要求4所述2D游戏天气效果处理方法,其特征在于:在所述生存区域中还设有一发射区域,所述天气粒子从所述发射区域中发射。
6.根据权利要求4所述2D游戏天气效果处理方法,其特征在于:根据天气粒子的生命周期,将粒子消失时作为粒子与地图接触的时刻。
7.根据权利要求4所述2D游戏天气效果处理方法,其特征在于:所述生存区域为一九宫格;所述渲染区域位于所述九宫格的中心格,且该渲染区域为当前显示区域。
8.根据权利要求4所述天气粒子的显示方法,其特征在于:在根据虚拟深度值Z大小获取实际显示的粒子的大小和运动状态的步骤为先根据天气粒子的虚拟值大小Z获取缩放因子f(Z),再根据该缩放因子f(Z),对每个天气粒子的大小和运动参数进行缩放变换,获取实际显示的粒子的大小和运动状态。
9.根据权利要求8所述天气粒子的显示方法,其特征在于:所述虚拟深度值Z的范围为0~1,所述缩放因子f(Z)=1-Z;在对每个天气粒子的大小和运动参数进行缩放变换时,具体是将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘。
10.一种2D游戏天气效果的处理装置,其特征在于:包括
地形分割模块,用于根据不同地形对地图进行分割;
地形数据存储模块,用于存储不同类型的地形数据;
地形特效生成模块,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效;
天气粒子处理模块,其包括:
区域生成单元,用于生成一生存区域,以及在该生存区域内的分别生成一发射区域和一渲染区域;
发射单元,用以发射天气粒子;
深度值产生单元,用于对每个天气粒子赋予一随机的虚拟深度值Z;
销毁单元,用以销毁位于生存区域外的天气粒子;
粒子大小显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小;
粒子运动状态显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子运动状态;其中,在该粒子的整个生命周期中,所述虚拟深度值Z保持不变;
剪裁单元,用以剪裁位于渲染区域外且位于生存区域内的天气粒子;
渲染单元,用以渲染进入渲染区域内的天气粒子和地形特效。
11.根据权利要求10所述2D游戏天气效果的处理装置,其特征在于:所述生存区域为一九宫格;所述渲染区域位于九宫格的中心格,且该渲染区域为当前显示区域。
12.根据权利要求10所述2D游戏天气效果的处理装置,其特征在于:所述天气粒子处理模块还包括一缩放单元,用于根据天气粒子的虚拟值大小Z,获取缩放因子f(Z),并根据该缩放因子f(Z),分别对每个天气粒子的大小和运动参数进行缩放变换,并将缩放变换结果分别发送至粒子大小显示单元和粒子运动状态显示单元。
13.根据权利要求12所述2D游戏天气效果的处理装置,其特征在于:所述虚拟深度值Z的范围为0~1,所述缩放因子f(Z)=1-Z;所述缩放单元在对每个天气粒子的大小和运动参数进行缩放变换时,具体是将每个天气粒子的大小和运动参数分别与缩放因子f(Z)进行相乘。
14.一种2D游戏天气效果处理方法,其特征在于:包括以下步骤:
将当前地图根据不同地形进行分割;
将分割后的地形数据存入地图数据中;
根据天气情况,将地图进行变色处理;
将变色后的地图、场景和用户界面进行渲染;
对天气粒子的显示状态进行处理,其包括以下步骤:设定一生存区域,在该生存区域内设定渲染区域;
发射天气粒子,并对每个天气粒子赋予一随机的虚拟深度值Z,在所述粒子的整个生命周期中,所述虚拟深度值Z保持不变;
对粒子的位置进行判断,若位于生存区域外,则进行销毁;若否,则根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小和运动状态;
对粒子的位置进行判断,若位于渲染区域外且位于生存区域内,则进行剪裁;若位于渲染区域,则进行渲染处理。
15.根据权利要求14所述2D游戏天气效果处理方法,其特征在于:在完成对变色后的地图、场景和用户界面渲染以及天气粒子的渲染后,还包括步骤:对渲染后的图像进行处理,实现全屏效果。
16.一种2D游戏天气效果的处理装置,其特征在于:包括
地形分割模块,用于根据不同地形对地图进行分割;
地形数据存储模块,用于存储不同类型的地形数据;
地形特效生成模块,用于在粒子与地形接触时,根据粒子和地形数据生成相应的地形特效;
地图变色模块,用于对地图进行变色;
天气粒子处理模块,其包括:
区域生成单元,用于生成一生存区域,以及在该生存区域内的分别一生成发射区域和一渲染区域;
发射单元,用以发射天气粒子;
深度值产生单元,用于对每个天气粒子赋予一随机的虚拟深度值Z;
销毁单元,用以销毁位于生存区域外的天气粒子;
粒子大小显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子大小;
粒子运动状态显示单元,用于根据所述粒子的虚拟深度值Z的大小,获取实际显示的粒子运动状态;其中,在该粒子的整个生命周期中,所述虚拟深度值Z保持不变;
剪裁单元,用以剪裁位于渲染区域外且位于生存区域内的天气粒子;
渲染单元,用以渲染进入渲染区域内的天气粒子、地形特效,以及经变色后的地图、场景和用户界面。
17.根据权利要求16所述2D游戏天气效果的处理装置,其特征在于:还包括一全屏处理模块,用于接收经渲染引擎处理后的图像和经天气粒子处理模块处理后的图像,并对其进行全屏处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410568701.5A CN104376586B (zh) | 2014-10-22 | 2014-10-22 | 一种2d游戏天气效果处理方法及其处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410568701.5A CN104376586B (zh) | 2014-10-22 | 2014-10-22 | 一种2d游戏天气效果处理方法及其处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104376586A true CN104376586A (zh) | 2015-02-25 |
CN104376586B CN104376586B (zh) | 2018-01-16 |
Family
ID=52555475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410568701.5A Active CN104376586B (zh) | 2014-10-22 | 2014-10-22 | 一种2d游戏天气效果处理方法及其处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104376586B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105126343A (zh) * | 2015-08-27 | 2015-12-09 | 网易(杭州)网络有限公司 | 一种2d游戏的遮罩显示方法及装置 |
CN108537873A (zh) * | 2018-04-13 | 2018-09-14 | 广州悦世界信息科技有限公司 | 生成2d游戏斜45度地图不规则墙体的方法 |
CN110473279A (zh) * | 2019-08-22 | 2019-11-19 | 网易(杭州)网络有限公司 | 一种天气粒子渲染方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080068386A1 (en) * | 2006-09-14 | 2008-03-20 | Microsoft Corporation | Real-Time Rendering of Realistic Rain |
CN103473802A (zh) * | 2013-08-30 | 2013-12-25 | 福建天晴数码有限公司 | 基于粒子系统的全局天气模拟方法 |
-
2014
- 2014-10-22 CN CN201410568701.5A patent/CN104376586B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080068386A1 (en) * | 2006-09-14 | 2008-03-20 | Microsoft Corporation | Real-Time Rendering of Realistic Rain |
CN103473802A (zh) * | 2013-08-30 | 2013-12-25 | 福建天晴数码有限公司 | 基于粒子系统的全局天气模拟方法 |
Non-Patent Citations (3)
Title |
---|
ZHONG-XIN FENG等: "Real-time rendering of raining animation based on the graphics hardware acceleration", 《COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN, 2005. PROCEEDINGS OF THE NINTH INTERNATIONAL CONFERENCE ON》 * |
刘宇: "J2ME游戏的通用图形特效库实现及优化", 《中国优秀硕士学位论文全文数据库》 * |
李欢 等: "3D GIS环境下雨雪天气实时仿真", 《中国图象图形学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105126343A (zh) * | 2015-08-27 | 2015-12-09 | 网易(杭州)网络有限公司 | 一种2d游戏的遮罩显示方法及装置 |
CN105126343B (zh) * | 2015-08-27 | 2019-01-22 | 网易(杭州)网络有限公司 | 一种2d游戏的遮罩显示方法及装置 |
CN108537873A (zh) * | 2018-04-13 | 2018-09-14 | 广州悦世界信息科技有限公司 | 生成2d游戏斜45度地图不规则墙体的方法 |
CN108537873B (zh) * | 2018-04-13 | 2022-07-26 | 广州悦世界信息科技有限公司 | 生成2d游戏斜45度地图不规则墙体的方法 |
CN110473279A (zh) * | 2019-08-22 | 2019-11-19 | 网易(杭州)网络有限公司 | 一种天气粒子渲染方法、装置、计算机设备及存储介质 |
CN110473279B (zh) * | 2019-08-22 | 2023-04-28 | 网易(杭州)网络有限公司 | 一种天气粒子渲染方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104376586B (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109701273B (zh) | 游戏数据的处理方法、装置、电子设备及可读存储介质 | |
EP3631602B1 (en) | Methods and systems for customizing virtual reality data | |
CN107423445A (zh) | 一种地图数据处理方法、装置及存储介质 | |
CN109313820A (zh) | 三维数据编码方法、解码方法、编码装置、解码装置 | |
WO2016209167A1 (en) | Systems and methods for generating 360 degree mixed reality environments | |
CN102693553B (zh) | 一种实现三维效果的图表创建方法及装置 | |
CN1975747A (zh) | 一种rpg游戏场景路径的自动生成方法及装置 | |
CN101477700B (zh) | 面向Google Earth与Sketch Up的真三维立体显示方法 | |
KR101536501B1 (ko) | 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템 | |
CN101477701B (zh) | 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法 | |
CN103177475A (zh) | 一种街景地图展现方法及系统 | |
DE112011105982T5 (de) | Verstärkung von gespeicherten Inhalten mit lokalen Sensoren und AR-Kommunikation | |
CN105959814B (zh) | 基于场景识别的视频弹幕显示方法及其显示装置 | |
JP7425196B2 (ja) | ハイブリッドストリーミング | |
CN102855654B (zh) | 一种超大规模天气效果渲染方法 | |
CN104376586A (zh) | 一种2d游戏天气效果处理方法及其处理装置 | |
CN105469382B (zh) | 一种3d地图显示方法及显示系统 | |
CN105913476A (zh) | 植被图像的渲染方法和装置 | |
CN104392475A (zh) | 一种天气粒子的显示方法及其显示装置 | |
KR20070061336A (ko) | 지형의 효율적인 뷰-의존 lod 렌더링 방법 | |
RU2606875C2 (ru) | Способ и система отображения масштабных сцен в режиме реального времени | |
CN104392472A (zh) | 一种2d游戏天气效果处理方法及其处理装置 | |
CN106887032A (zh) | 三维场景渲染方法和系统以及相关设备 | |
CN108022276A (zh) | 一种立体动画呈现方法、装置以及电子设备 | |
CN109727255A (zh) | 一种建筑物三维模型分割方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |