CN106504311B - 一种动态流体效果的渲染方法和装置 - Google Patents

一种动态流体效果的渲染方法和装置 Download PDF

Info

Publication number
CN106504311B
CN106504311B CN201610962565.7A CN201610962565A CN106504311B CN 106504311 B CN106504311 B CN 106504311B CN 201610962565 A CN201610962565 A CN 201610962565A CN 106504311 B CN106504311 B CN 106504311B
Authority
CN
China
Prior art keywords
scene
particle
textures
rendering
layer
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
CN201610962565.7A
Other languages
English (en)
Other versions
CN106504311A (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 CN201610962565.7A priority Critical patent/CN106504311B/zh
Publication of CN106504311A publication Critical patent/CN106504311A/zh
Application granted granted Critical
Publication of CN106504311B publication Critical patent/CN106504311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种动态流体效果的渲染方法和装置,用于在不增加内存消耗和不降低渲染效率的前提下,为场景提供逼真的动态流体效果。本发明提供的方法中,首先根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源,然后使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,接下来使用粒子资源对第一场景进行粒子渲染从而得到第二场景,最后使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,第三场景包括:遮盖层、粒子层和底图层。

Description

一种动态流体效果的渲染方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种动态流体效果的渲染方法和装置。
背景技术
动态流体效果通常用于模拟真实场景下的动态现象,例如动态流体效果可以模拟火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者像发光轨迹这样的抽象视觉效果。但是目前大多数的平面游戏(也称为:2D游戏)在场景显示上无法实现动态流体效果,例如在2D的角色扮演游戏(Role Playing Game,RPG)游戏通常在场景上没有动态的水元素,基本上仍使用静态的图片来模拟显示水的效果。
不使用动态流体效果会使游戏中的整个场景看起来非常没有层次和深度,使得游戏画面不够生动,在目前的2D游戏中为了能够模拟动态流体效果,常用的实现方式是使用UV动画的方式进行动态流体效果的模拟。其中,UV动画是指通过在程序运行时动态改变纹理坐标,实现动态效果的纹理动画,使用UV动画可以实现水流动,火焰燃烧等效果。
现有技术中使用UV动画来制作动态流体效果是基于贴图变化的一种整体效果,模拟出来的流体效果非常不逼真,形式过于单一,不能突出流体效果的真实细节,从而无法实现逼真的动态流体效果。并且在使用UV动画时因为需要对流体效果的贴图进行实时的移动,所以这种方式还存在占用渲染资源比较多的问题,增加了内存消耗,也会降低游戏场景的渲染效率。
发明内容
本发明实施例提供了一种动态流体效果的渲染方法和装置,用于在不增加内存消耗和不降低渲染效率的前提下,为场景提供逼真的动态流体效果。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种动态流体效果的渲染方法,包括:
根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源;
使用所述场景贴图资源对所述原始场景进行底层基本元素的渲染从而得到第一场景,所述第一场景包括:用于显示所述底层基本元素的底图层;
使用所述粒子资源对所述第一场景进行粒子渲染从而得到第二场景,所述第二场景包括:用于显示动态流体效果的粒子层和所述底图层,所述粒子层在所述第二场景中位于所述底图层之上;
使用所述场景贴图资源对所述第二场景进行场景遮盖的渲染从而得到第三场景,所述第三场景包括:用于对所述第三场景中不显示所述动态流体效果的区域进行遮盖的遮盖层、所述粒子层和所述底图层,所述遮盖层在所述第三场景中位于所述粒子层之上。
第二方面,本发明实施例还提供一种动态流体效果的渲染装置,包括:
资源获取模块,用于根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源;
底图层渲染模块,用于使用所述场景贴图资源对所述原始场景进行底层基本元素的渲染从而得到第一场景,所述第一场景包括:用于显示所述底层基本元素的底图层;
粒子层渲染模块,用于使用所述粒子资源对所述第一场景进行粒子渲染从而得到第二场景,所述第二场景包括:用于显示动态流体效果的粒子层和所述底图层,所述粒子层在所述第二场景中位于所述底图层之上;
遮盖层渲染模块,用于使用所述场景贴图资源对所述第二场景进行场景遮盖的渲染从而得到第三场景,所述第三场景包括:用于对所述第三场景中不显示所述动态流体效果的区域进行遮盖的遮盖层、所述粒子层和所述底图层,所述遮盖层在所述第三场景中位于所述粒子层之上。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,首先根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源,然后使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,接下来使用粒子资源对第一场景进行粒子渲染从而得到第二场景,最后使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,第三场景包括:遮盖层、粒子层和底图层。由于本发明实施例中渲染完成的第三场景中通过粒子层模拟动态流体效果,而不需要使用UV动画,只需要在第二场景中渲染出粒子层就可以实现动态流体效果,对于不需要显示动态流体效果的区域可以通过遮盖层的渲染来完成,从而实现更逼真的动态流体效果,本发明实施例中通过对底图层、粒子层、遮盖层的逐层渲染从而生成最终可用的第三场景,整个过程依次进行,相比于UV动画的方式,并不增加内存消耗,场景的渲染效率也得到提高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种动态流体效果的渲染方法的流程方框示意图;
图2为本发明实施例中提供的场景渲染流程的应用场景示意图;
图3为本发明实施例中提供的场景分层进行渲染的实现原理示意图;
图4为本发明实施例提供的场景贴图的组成结构示意图;
图5为本发明实施例提供的场景渲染效果的生成过程示意图;
图6-a为本发明实施例提供的一种动态流体效果的渲染装置的组成结构示意图;
图6-b为本发明实施例提供的一种粒子层渲染模块的组成结构示意图;
图7为本发明实施例提供的动态流体效果的渲染方法应用于终端的组成结构示意图。
具体实施方式
本发明实施例提供了一种动态流体效果的渲染方法和装置,用于在不增加内存消耗和不降低渲染效率的前提下,为场景提供逼真的动态流体效果。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。本发明动态流体效果的渲染方法的一个实施例,具体可以应用于平面显示场景下的动态流体效果制作过程中,请参阅图1所示,本发明一个实施例提供的动态流体效果的渲染方法,可以包括如下步骤:
101、根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源。
在本发明实施例中,对于不同的渲染区域需要使用制作不同的场景,从而就需要制作出不同的场景资源。其中,本发明实施例中的场景可以表示多种应用程序中显示的具体场景,例如本发明实施例中的场景可以是游戏应用程序中需要制作的游戏场景,也可以是社交应用程序中需要制作的交互场景等。本发明实施例中需要预先制作完成场景资源,该场景资源中包括有场景贴图资源,场景贴图资源中可以包括至少一个场景贴图,其中,场景贴图可以在场景中渲染出多种不同类型的显示元素,例如显示场景中的地表、植被、建筑等元素,为了能够实现动态流体效果,本发明实施例中还需要在场景资源中包括粒子资源,该粒子资源用于在场景中渲染动态流体效果,从而使得渲染完成的场景能够显示出动态流体效果,使得场景的显示更加逼真,为平面显示场景带来更真实的显示效果。本发明实施例中制作的粒子资源可以通过粒子系统来完成,其中,粒子系统是计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的游戏图形。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者像发光轨迹这样的抽象视觉效果等等。
在本发明实施例中,首先确定预先配置的渲染区域,那么对于该渲染区域中的场景渲染,需要首选获取待渲染的原始场景所需的场景贴图资源和粒子资源,可以理解的是,对于需要渲染的不同区域可以预先制作出不同的场景贴图资源和不同的粒子资源,举例说明如下,在枪战的游戏场景下,需要制作的场景贴图资源包括显示的战场图形,例如战地建筑、山林植被等,在该游戏场景下,为了显示动态的河流水流动效果,就需要配置动态水效果的粒子资源。
102、使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,第一场景包括:用于显示底层基本元素的底图层。
在本发明实施例中,获取到场景贴图资源和粒子资源之后,就可以对需要渲染的原始场景进行渲染,首先使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,在第一场景中就可以渲染出用于显示底层基本元素的底图层。例如,首先在原始场景中渲染出底层基本元素,需要渲染出哪些底层基本元素可以由预先制作的场景贴图资源来确定。在生成的第一场景中通过底层基本元素的渲染就可以得到底图层,底图层用于显示场景的所有显示元素例如地表、植被、建筑等。
需要说明的是,为了描述在不同处理阶段所得到的场景,本发明实施例中采用了“第一场景”、“第二场景”、“第三场景”的方式来分别描述对于不同渲染过程得到的场景,这种命名方式并不是用于逻辑顺序的区别,而是用于区分不用的“场景”,本发明实施例中的“场景”可以不限于游戏场景、交互场景、显示场景等。
在本发明的一些实施例中,场景贴图资源包括:原始场景所需的第一场景贴图,第一场景贴图具有色彩通道和透明度通道,在这种应用方式下,步骤102使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,包括:
A1、关闭第一场景贴图的透明度通道,然后使用第一场景贴图的色彩通道对原始场景进行底层基本元素的渲染从而得到第一场景。
其中,场景贴图资源包括有第一场景贴图,该第一场景贴图具有两种不同类型的通道,其中,一种类型的通道为色彩通道,该色彩通道用于提供底层基本元素的显示色彩,从而通过色彩通道可以显示出不同的基本元素,例如在底图层中植被和地表具有不同的色彩,另一种类型的通道为透明度通道,该透明度通道用于提供场景中各个区域的显示透明程度,例如透明程度可以从0到100%,当透明程度为0为则表示对区域的完成覆盖,因此通过透明度通道可以显示出对场景的不同区域的遮盖范围。
进一步的,在本发明的一些实施例中,第一场景贴图的色彩通道可以包括:第一场景贴图的RGB通道,第一场景贴图的透明度通道包括:第一场景贴图的Alpha通道。也就是说,在实际应用中原始场景的贴图使用了RGBA通道,在目前的渲染方式下,通常只利用了RGB通道来进行色彩渲染,而Alpha通道是没有使用的。本发明实施例中仍使用RGB通道来进行色彩渲染,并且利用了现有技术中一直没有使用的Alpha通道,将该Alpha通道用于透明度通道对场景的遮盖,因此,本发明实施例中可以将底图层和遮盖层共用第一场景贴图,从而极大节省多次采样不同场景贴图所需的内存资源,并且只存储一张场景贴图,也可以实现节省缓存空间的目的。不限定的是,RGB通道和Alpha通道分别用于实现色彩通道和透明度通道只是本发明的一种实现方式,对于场景贴图而言,只需要设置两种不同类型的通道分别用于底层基本元素的渲染和遮盖层的渲染即可,此处仅作说明。
在步骤A1的实现场景下,场景贴图资源可以包括第一场景贴图,对于第一场景贴图的透明度通道,为了避免之前对透明度通道的操作导致本次渲染出错,需要先关闭掉透明度通道,然后使用第一场景贴图的色彩通道对原始场景进行底层基本元素的渲染从而得到第一场景,则第一场景贴图的色彩通道能够完成对原始场景的底层基本元素的渲染,关闭掉透明度通道后,需要在原始场景中显示的底层基本元素都可以在底图层上渲染出来。例如,步骤A1使用的色彩通道具体为RGB通道。
103、使用粒子资源对第一场景进行粒子渲染从而得到第二场景,第二场景包括:用于显示动态流体效果的粒子层和底图层。
其中,粒子层在第二场景中位于底图层之上。
在本发明实施例中,得到包括底图层的第一场景之后,根据前述步骤得到的粒子资源对第一场景进行粒子渲染从而得到第二场景,其中,第二场景是通过第一场景的粒子渲染而得到,因此在该第二场景中除了包括底图层还包括粒子层,该粒子层用于显示动态流体效果,底图层设置在场景的最底层,粒子层在第二场景中位于底图层之上。例如粒子层可以是显示动态水效果的场景层,也可以是显示动态烟雾效果的场景层,具体实现取决于应用场景。
在本发明的一些实施例中,步骤103使用粒子资源对第一场景进行粒子渲染从而得到第二场景,包括:
B1、根据粒子资源从第一场景对应的渲染区域中确定出需要喷射粒子的粒子显示区域;
B2、使用粒子发射器向粒子显示区域内喷射粒子从而得到包括有粒子层的第二场景。
其中,根据预先配置的场景文件来解析出粒子资源,在粒子资源中指示了需要喷射粒子的类型和喷射方式,例如需要喷射的粒子为动态水,或者动态烟雾,在场景文件中的粒子资源还可以描述了具体的动态流体效果的粒子摆放位置等。在步骤B1中可以先确定出需要喷射粒子的粒子显示区域,该粒子显示区域用于预先配置出用于喷射粒子,然后执行步骤B2,使用粒子发射器向粒子显示区域内喷射粒子从而得到包括有粒子层的第二场景,例如通过粒子发射器模拟水流以及水花等动态水效果。
进一步的,在本发明的一些实施例中,步骤B2使用粒子发射器向粒子显示区域内喷射粒子从而得到包括有粒子层的第二场景,包括:
B21、向粒子发射器中需要喷射的粒子上增加纹理贴图,然后使用粒子发射器向粒子显示区域内喷射携带有纹理贴图的粒子,从而得到包括有粒子层的第二场景,粒子层用于显示动态流体效果和纹理贴图。
其中,为了显示效果的更加逼真,粒子资源在制作时还可以把粒子做的更复杂,从而实现更加逼真的水效果。例如制作粒子资源时在粒子发射器中需要喷射的粒子上增加纹理贴图,从而通过第二场景的粒子层除了显示动态流体效果之外,还可以显示纹理贴图的效果,例如纹理贴图的效果可以是模拟镜面反射效果。基于前述的粒子层能够显示的动态流体效果,本发明实施例额外的在粒子上增加一些复杂的纹理贴图,配合场景的外观,模拟出场景建筑在水中的镜面反射效果。
104、使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,第三场景包括:用于对第三场景中不显示动态流体效果的区域进行遮盖的遮盖层、粒子层和底图层。
其中,遮盖层在第三场景中位于粒子层之上。
在本发明实施例中,得到包括粒子层和底图层的第二场景之后,接下来再使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,其中,第三场景是通过第二场景的场景遮盖渲染而得到,因此在该第三场景中除了包括底图层和粒子层之外,还包括有一遮盖层,该遮盖层用于对第三场景中不显示动态流体效果的区域进行遮盖,例如对于场景中不需要显示动态水效果的建筑区域进行遮盖,防止穿帮,从而使得动态流体效果的显示只能覆盖到需要显示动态流体效果的区域。在本发明实施例生成的第三场景中共包括三个层,从下往上依次是:遮盖层、粒子层和底图层。
在本发明的一些实施例中,场景贴图资源包括:原始场景所需的第一场景贴图,第一场景贴图具有色彩通道和透明度通道,在前述执行步骤A1的实现场景下,步骤104使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,包括:
C1、打开第一场景贴图的透明度通道,然后使用第一场景贴图的透明度通道对第二场景进行场景遮盖的渲染从而得到第三场景。
其中,在进行底层基本元素的渲染时先关闭了透明度通道,在进行场景遮盖的渲染时需要先恢复使用第一场景贴图的透明度通道,然后使用第一场景贴图的透明度通道对第二场景进行场景遮盖的渲染从而得到第三场景,其中,透明度通道可以用于对第二场景进行场景遮盖的渲染,对于需要遮盖的不显示区域,则可以通过透明度的设置来完成。例如步骤C1使用的透明度通道可以是Alpha通道,则可以通过Alpha Blend操作完成对第二场景中场景遮盖的渲染。
在本发明的另一些实施例中,场景贴图资源包括:原始场景所需的第一场景贴图和第二场景贴图,若场景贴图资源中针对底图层和遮盖层分别设置两种场景贴图,其中,第一场景贴图用于底图层的渲染,第二场景贴图用于遮盖层的渲染,在这种实现场景下,步骤102使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,包括:
D1、使用第一场景贴图对原始场景进行底层基本元素的渲染从而得到第一场景。
进一步的,步骤104使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,包括:
E1、使用第二场景贴图对第二场景进行场景遮盖的渲染从而得到第三场景。
也就是说,本发明的一些实施例中,底图层的渲染和遮盖层的渲染可以使用不同的场景贴图资源,那么在进行不同场景下的渲染时分别采样对应的场景贴图也可以完成不同场景层的渲染。
通过以上实施例对本发明实施例的描述可知,首先根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源,然后使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,接下来使用粒子资源对第一场景进行粒子渲染从而得到第二场景,最后使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,第三场景包括:遮盖层、粒子层和底图层。由于本发明实施例中渲染完成的第三场景中通过粒子层模拟动态流体效果,而不需要使用UV动画,只需要在第二场景中渲染出粒子层就可以实现动态流体效果,对于不需要显示动态流体效果的区域可以通过遮盖层的渲染来完成,从而实现更逼真的动态流体效果,本发明实施例中通过对底图层、粒子层、遮盖层的逐层渲染从而生成最终可用的第三场景,整个过程依次进行,相比于UV动画的方式,并不增加内存消耗,场景的渲染效率也得到提高。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明实施例以手机游戏客户端的场景渲染为例,为了丰富2D游戏场景元素,提高2D游戏场景的层次感,设计一种将游戏的场景进行分层,一层描述场景基本元素的底图层,一层显示动态流体效果的粒子层,一层进行场景遮盖的遮盖层。其中为了节省空间,一种优选方案是将底图层和遮盖层共用一张场景贴图,通过分别对三个场景层进行渲染,可以实时渲染出动态逼真的带有流体效果的游戏场景。本发明实施例中可以将需要渲染的场景分层,将场景结构进行层次划分,使用不同的纹理贴图来渲染不同的场景层。基于粒子系统利用粒子发射器模拟流体效果,可以达到逼真和生动的水效果。
接下来以本发明实施例应用在游戏中需要显示带有动态水效果的场景为例进行说明,通过设置场景中的水效果参数,来满足游戏场景内显示动态水效果。
请参阅图2所示,为本发明实施例中提供的场景渲染流程的应用场景示意图,本发明实施例提供的一种场景渲染流程主要包括如下步骤:
S01、读取到场景贴图资源和粒子资源之后,先关闭Alpha Blend操作。需要说明的是,在场景渲染实例中,步骤S01执行之前可能有过打开Alpha Blend的操作,因此需要避免之前有过打开Alpha Blend的操作,导致这次渲染出错
S02、渲染场景的底图层。
根据当前摄像机的位置选取所需要渲染区域的场景贴图,进行不带有AlphaBlend操作的底图层渲染。
S03、判断是否渲染出动态流体效果,若需要执行步骤S04,否则结束场景的渲染。
S04、若需要渲染,则渲染场景的粒子层。
例如,对渲染区域内的粒子进行渲染。
S05、打开Alpha Blend操作。
S06、渲染场景的遮盖层。
其中,步骤S02和步骤S06中都需要渲染场景,区别在于渲染状态不同,步骤S02中是关闭了Alpha Blend操作之后的场景渲染,步骤S06中是打开了Alpha Blend操作之后的场景渲染,对于各种场景层的渲染过程详见前述实施例的描述。
如图3所示,为本发明实施例中提供的场景分层进行渲染的实现原理示意图,基于将场景的资源与渲染方式分层,通过渲染底图层、粒子层、遮盖层的顺序渲染,来渲染出带有动态水效果的游戏场景。其中底图层用于显示场景的所有显示元素例如地表、植被、建筑等;粒子层显示场景中的动态水效果;遮盖层用来剔除粒子效果覆盖了场景中不该出现水效果的区域。
接下来请参阅图4所示,为本发明实施例提供的场景贴图的组成结构示意图,在场景资源制作过程中,在场景中的资源分为两个主要部分,场景贴图资源和粒子资源,可分别制作互相不受各自的影响,其中场景贴图资源用于描述场景中的底图层和遮盖层,粒子资源还可以实现场景的粒子特效,描述场景的粒子层。其中为了减少游戏运行时的内存消耗,底图层使用场景贴图的RGB通道,遮盖层使用场景贴图的Alpha通道;由于遮盖层的存在,在粒子特效制作上,可以不受场景的地貌的形状和大小限制,只需粗略的按一定大小制作,通过粒子发射器模拟水流以及水花等水面效果即可。如图4所示,RGB场景用来描述场景的显示元素,Alpha通道作为遮罩层来剔除需要显示动态流体效果的区域。
如图5所示,为本发明实施例提供的场景渲染效果的生成过程示意图,场景贴图的底图层、动态流体效果的粒子层、场景贴图的遮盖层进行合成之后,就可以得到渲染后的场景效果。
通过前述的举例说明可知,本发明可以在不增加内存消耗和不降低渲染效率的前提下,为2D游戏的场景增加逼真的动态流体效果,丰富场景的元素,增加场景的纵深层次感,同时利用提高粒子的复杂程度还可以模拟出镜面反射等效果。例如基于前面的水效果,额外在粒子上增加一些复杂的纹理贴图,配合场景的外观,模拟出场景建筑在水中的镜面反射效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图6-a所示,本发明实施例提供的一种动态流体效果的渲染装置600,可以包括:资源获取模块601、底图层渲染模块602、粒子层渲染模块603、遮盖层渲染模块604,其中,
资源获取模块601,用于根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源;
底图层渲染模块602,用于使用所述场景贴图资源对所述原始场景进行底层基本元素的渲染从而得到第一场景,所述第一场景包括:用于显示所述底层基本元素的底图层;
粒子层渲染模块603,用于使用所述粒子资源对所述第一场景进行粒子渲染从而得到第二场景,所述第二场景包括:用于显示动态流体效果的粒子层和所述底图层,所述粒子层在所述第二场景中位于所述底图层之上;
遮盖层渲染模块604,用于使用所述场景贴图资源对所述第二场景进行场景遮盖的渲染从而得到第三场景,所述第三场景包括:用于对所述第三场景中不显示所述动态流体效果的区域进行遮盖的遮盖层、所述粒子层和所述底图层,所述遮盖层在所述第三场景中位于所述粒子层之上。
在本发明的一些实施例中,所述场景贴图资源包括:所述原始场景所需的第一场景贴图,所述第一场景贴图具有色彩通道和透明度通道;
所述底图层渲染模块602,具体用于关闭所述第一场景贴图的透明度通道,然后使用所述第一场景贴图的色彩通道对所述原始场景进行底层基本元素的渲染从而得到第一场景。
进一步的,在本发明的一些实施例中,所述遮盖层渲染模块603,具体用于打开所述第一场景贴图的透明度通道,然后使用所述第一场景贴图的透明度通道对所述第二场景进行场景遮盖的渲染从而得到第三场景。
在本发明的一些实施例中,所述第一场景贴图的色彩通道包括:所述第一场景贴图的RGB通道,
所述第一场景贴图的透明度通道包括:所述第一场景贴图的Alpha通道。
在本发明的一些实施例中,如图6-b所示,所述粒子层渲染模块603,包括:
粒子显示区域确定模块6031,用于根据所述粒子资源从所述第一场景对应的渲染区域中确定出需要喷射粒子的粒子显示区域;
粒子喷射模块6032,用于使用粒子发射器向所述粒子显示区域内喷射粒子从而得到包括有粒子层的第二场景。
进一步的,在本发明的一些实施例中,所述粒子喷射模块6032,具体用于向粒子发射器中需要喷射的粒子上增加纹理贴图,使用所述粒子发射器向所述粒子显示区域内喷射携带有所述纹理贴图的粒子,从而得到包括有粒子层的第二场景,所述粒子层用于显示动态流体效果和所述纹理贴图。
通过以上对本发明实施例的描述可知,首先根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源,然后使用场景贴图资源对原始场景进行底层基本元素的渲染从而得到第一场景,接下来使用粒子资源对第一场景进行粒子渲染从而得到第二场景,最后使用场景贴图资源对第二场景进行场景遮盖的渲染从而得到第三场景,第三场景包括:遮盖层、粒子层和底图层。由于本发明实施例中渲染完成的第三场景中通过粒子层模拟动态流体效果,而不需要使用UV动画,只需要在第二场景中渲染出粒子层就可以实现动态流体效果,对于不需要显示动态流体效果的区域可以通过遮盖层的渲染来完成,从而实现更逼真的动态流体效果,本发明实施例中通过对底图层、粒子层、遮盖层的逐层渲染从而生成最终可用的第三场景,整个过程依次进行,相比于UV动画的方式,并不增加内存消耗,场景的渲染效率也得到提高。
本发明实施例还提供了另一种终端,如7所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
7示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考7,手机包括:射频(Radio Frequency,RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,7中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合7对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在7中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然7示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器1080还具有控制执行以上由终端执行的动态流体效果的渲染方法流程。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种动态流体效果的渲染方法,其特征在于,包括:
根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源;
使用所述场景贴图资源对所述原始场景进行底层基本元素的渲染从而得到第一场景,所述第一场景包括:用于显示所述底层基本元素的底图层;
使用所述粒子资源对所述第一场景进行粒子渲染从而得到第二场景,所述第二场景包括:用于显示动态流体效果的粒子层和所述底图层,所述粒子层在所述第二场景中位于所述底图层之上;
使用所述场景贴图资源对所述第二场景进行场景遮盖的渲染从而得到第三场景,所述第三场景包括:用于对所述第三场景中不显示所述动态流体效果的区域进行遮盖的遮盖层、所述粒子层和所述底图层,所述遮盖层在所述第三场景中位于所述粒子层之上。
2.根据权利要求1所述的方法,其特征在于,所述场景贴图资源包括:所述原始场景所需的第一场景贴图,所述第一场景贴图具有色彩通道和透明度通道;
所述使用所述场景贴图资源对所述原始场景进行底层基本元素的渲染从而得到第一场景,包括:
关闭所述第一场景贴图的透明度通道,然后使用所述第一场景贴图的色彩通道对所述原始场景进行底层基本元素的渲染从而得到第一场景。
3.根据权利要求2所述的方法,其特征在于,所述使用所述场景贴图资源对所述第二场景进行场景遮盖的渲染从而得到第三场景,包括:
打开所述第一场景贴图的透明度通道,然后使用所述第一场景贴图的透明度通道对所述第二场景进行场景遮盖的渲染从而得到第三场景。
4.根据权利要求2或3所述的方法,其特征在于,所述第一场景贴图的色彩通道包括:所述第一场景贴图的RGB通道,
所述第一场景贴图的透明度通道包括:所述第一场景贴图的Alpha通道。
5.根据权利要求1所述的方法,其特征在于,所述使用所述粒子资源对所述第一场景进行粒子渲染从而得到第二场景,包括:
根据所述粒子资源从所述第一场景对应的渲染区域中确定出需要喷射粒子的粒子显示区域;
使用粒子发射器向所述粒子显示区域内喷射粒子从而得到包括有粒子层的第二场景。
6.根据权利要求5所述的方法,其特征在于,所述使用粒子发射器向所述粒子显示区域内喷射粒子从而得到包括有粒子层的第二场景,包括:
向粒子发射器中需要喷射的粒子上增加纹理贴图,然后使用所述粒子发射器向所述粒子显示区域内喷射携带有所述纹理贴图的粒子,从而得到包括有粒子层的第二场景,所述粒子层用于显示动态流体效果和所述纹理贴图。
7.一种动态流体效果的渲染装置,其特征在于,包括:
资源获取模块,用于根据预置的渲染区域获取待渲染的原始场景所需的场景贴图资源和粒子资源;
底图层渲染模块,用于使用所述场景贴图资源对所述原始场景进行底层基本元素的渲染从而得到第一场景,所述第一场景包括:用于显示所述底层基本元素的底图层;
粒子层渲染模块,用于使用所述粒子资源对所述第一场景进行粒子渲染从而得到第二场景,所述第二场景包括:用于显示动态流体效果的粒子层和所述底图层,所述粒子层在所述第二场景中位于所述底图层之上;
遮盖层渲染模块,用于使用所述场景贴图资源对所述第二场景进行场景遮盖的渲染从而得到第三场景,所述第三场景包括:用于对所述第三场景中不显示所述动态流体效果的区域进行遮盖的遮盖层、所述粒子层和所述底图层,所述遮盖层在所述第三场景中位于所述粒子层之上。
8.根据权利要求7所述的装置,其特征在于,所述场景贴图资源包括:所述原始场景所需的第一场景贴图,所述第一场景贴图具有色彩通道和透明度通道;
所述底图层渲染模块,具体用于关闭所述第一场景贴图的透明度通道,然后使用所述第一场景贴图的色彩通道对所述原始场景进行底层基本元素的渲染从而得到第一场景。
9.根据权利要求8所述的装置,其特征在于,所述遮盖层渲染模块,具体用于打开所述第一场景贴图的透明度通道,然后使用所述第一场景贴图的透明度通道对所述第二场景进行场景遮盖的渲染从而得到第三场景。
10.根据权利要求8或9所述的装置,其特征在于,所述第一场景贴图的色彩通道包括:所述第一场景贴图的RGB通道,
所述第一场景贴图的透明度通道包括:所述第一场景贴图的Alpha通道。
11.根据权利要求7所述的装置,其特征在于,所述粒子层渲染模块,包括:
粒子显示区域确定模块,用于根据所述粒子资源从所述第一场景对应的渲染区域中确定出需要喷射粒子的粒子显示区域;
粒子喷射模块,用于使用粒子发射器向所述粒子显示区域内喷射粒子从而得到包括有粒子层的第二场景。
12.根据权利要求11所述的装置,其特征在于,所述粒子喷射模块,具体用于向粒子发射器中需要喷射的粒子上增加纹理贴图,使用所述粒子发射器向所述粒子显示区域内喷射携带有所述纹理贴图的粒子,从而得到包括有粒子层的第二场景,所述粒子层用于显示动态流体效果和所述纹理贴图。
CN201610962565.7A 2016-10-28 2016-10-28 一种动态流体效果的渲染方法和装置 Active CN106504311B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610962565.7A CN106504311B (zh) 2016-10-28 2016-10-28 一种动态流体效果的渲染方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610962565.7A CN106504311B (zh) 2016-10-28 2016-10-28 一种动态流体效果的渲染方法和装置

Publications (2)

Publication Number Publication Date
CN106504311A CN106504311A (zh) 2017-03-15
CN106504311B true CN106504311B (zh) 2018-09-07

Family

ID=58322602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610962565.7A Active CN106504311B (zh) 2016-10-28 2016-10-28 一种动态流体效果的渲染方法和装置

Country Status (1)

Country Link
CN (1) CN106504311B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292961A (zh) * 2017-06-30 2017-10-24 浙江科澜信息技术有限公司 一种实现三维场景中地球海洋水效的方法
CN109144270A (zh) * 2018-09-07 2019-01-04 苏州金螳螂文化发展股份有限公司 交互虚拟水流墙系统及方法
CN109712221B (zh) * 2018-12-21 2022-08-16 成都四方伟业软件股份有限公司 三维可视化渲染方法及装置
CN110288670B (zh) * 2019-06-19 2023-06-23 杭州绝地科技股份有限公司 一种ui描边特效的高性能渲染方法
CN110930487A (zh) * 2019-11-29 2020-03-27 珠海豹趣科技有限公司 一种动画实现方法及装置
CN111275607B (zh) * 2020-01-17 2022-05-24 腾讯科技(深圳)有限公司 界面显示方法、装置、计算机设备及存储介质
CN111553835B (zh) * 2020-04-10 2024-03-26 上海完美时空软件有限公司 一种生成用户的捏脸数据的方法与装置
CN112516595B (zh) * 2020-12-15 2021-09-14 完美世界(北京)软件科技发展有限公司 岩浆渲染方法、装置、设备和存储介质
CN112700517B (zh) * 2020-12-28 2022-10-25 北京字跳网络技术有限公司 生成烟花视觉效果的方法、电子设备、存储介质
CN112619138A (zh) * 2021-01-06 2021-04-09 网易(杭州)网络有限公司 游戏中技能特效的显示方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110316859A1 (en) * 2010-06-25 2011-12-29 Nokia Corporation Apparatus and method for displaying images
CN102346921A (zh) * 2011-09-19 2012-02-08 广州市凡拓数码科技有限公司 一种三维软件的渲染器烘焙光影贴图的方法
CN102779357A (zh) * 2012-04-20 2012-11-14 同济大学 高速公路隧道及隧道群运行环境视景仿真方法及系统
CN103559739B (zh) * 2013-11-22 2015-05-20 华中科技大学 基于osg的数字湖泊三维可视化仿真方法及仿真平台

Also Published As

Publication number Publication date
CN106504311A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN106504311B (zh) 一种动态流体效果的渲染方法和装置
CN109598777A (zh) 图像渲染方法、装置、设备及存储介质
US11494993B2 (en) System and method to integrate content in real time into a dynamic real-time 3-dimensional scene
CN106155750B (zh) 一种资源文件的加载方法和装置
CN103414630B (zh) 网络互动方法和相关装置及通信系统
CN106807087B (zh) 一种应用中模拟对象处理的方法以及移动终端
CN109427096A (zh) 一种基于增强现实的自动导览方法和系统
CN108537889A (zh) 增强现实模型的调整方法、装置、存储介质和电子设备
CN105183296B (zh) 交互界面显示方法及装置
CN108665553A (zh) 一种实现虚拟场景转换的方法及设备
CN107741809A (zh) 一种虚拟形象之间的互动方法、终端、服务器及系统
CN107948543A (zh) 一种视频特效处理方法及装置
CN109754454A (zh) 物体模型的渲染方法、装置、存储介质及设备
CN108156280A (zh) 显示控制方法及相关产品
CN110533755A (zh) 一种场景渲染的方法以及相关装置
CN108122528A (zh) 显示控制方法及相关产品
CN110033503A (zh) 动画显示方法、装置、计算机设备及存储介质
CN111311757B (zh) 一种场景合成方法、装置、存储介质及移动终端
CN108236785A (zh) 一种获取对象信息的方法及装置
CN105447124A (zh) 虚拟物品分享方法和装置
CN110213504A (zh) 一种视频处理方法、信息发送方法及相关设备
CN111445563B (zh) 一种图像生成的方法以及相关装置
CN108228120A (zh) 一种ar场景下的多屏联动方法和系统
CN107066268A (zh) 微件应用的显示位置切换方法及装置
CN109753892A (zh) 人脸皱纹的生成方法、装置、计算机存储介质和终端

Legal Events

Date Code Title Description
C06 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