CN110738720B - 特效渲染方法、装置、终端及存储介质 - Google Patents
特效渲染方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110738720B CN110738720B CN201910962428.7A CN201910962428A CN110738720B CN 110738720 B CN110738720 B CN 110738720B CN 201910962428 A CN201910962428 A CN 201910962428A CN 110738720 B CN110738720 B CN 110738720B
- Authority
- CN
- China
- Prior art keywords
- special effect
- particle
- dictionary
- particle special
- rendering
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/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
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- 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
-
- 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/6692—Methods for processing data by generating or executing the game program for rendering three dimensional images using special effects, generally involving post-processing, e.g. blooming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例公开了一种特效渲染方法、装置、终端及介质,其中方法包括:通过终端确定特效预制件的合批方式,根据合批方式建立排序字典,在对特效预制件进行实例化时,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,根据赋值后的多个粒子特效组件进行合批渲染。上述特效渲染过程,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
Description
技术领域
本发明涉及互联网技术领域,具体涉及特效渲染技术领域,尤其涉及一种特效渲染方法、一种特效渲染装置、一种终端及一种计算机存储介质。
背景技术
在进行游戏特效渲染的过程中,中央处理器(central processing unit,CPU)需要向图形处理器(Graphics Processing Unit,GPU)发送绘制指令(Draw Call,DC),通过DC命令GPU进行渲染操作。具体地,在进行特效渲染之前,CPU需要向GPU发送很多内容,其中包括数据,状态,绘制指令DC等。GPU的渲染速度较快,一般来说,GPU的渲染速度快于CPU提交DC的速度。如果CPU提交的DC数量太多,CPU就会把大量时间花费在提交DC上,也就是说,DC数量太多会导致CPU的过载,从而导致游戏卡顿等问题。
现有技术中,可通过合批技术降低绘制指令数量,但是合批渲染的前提是需要待渲染实例中的粒子特效组件满足能够进行合批渲染的条件,现有技术中通过合批进行特效渲染的性能较差,因此,如何使待渲染实例满足合批条件,以提高进行合批渲染的的问题需要解决。
发明内容
本发明实施例提供了一种特效渲染方法、装置、终端及计算机存储介质,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
一方面,本发明实施例提供了一种特效渲染方法,所述特效渲染方法包括:
确定特效预制件的合批方式;
根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合;
在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值;
根据赋值后的所述多个粒子特效组件进行合批渲染。
在一个实施例中,所述根据所述合批方式建立排序字典,包括:
若所述合批方式为材质式合批方式,将材质名称作为所述排序字典的键,创建材质名称与值之间的第一对应列表,所述第一对应列表包含多行数据,每一行数据包括材质名称,以及对所述材质名称分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第一对应列表建立所述排序字典。
在一个实施例中,所述多行数据中的多个值为按照从小到大的顺序进行排列的正整数。
在一个实施例中,所述根据所述合批方式建立排序字典,包括:
若所述合批方式为层级式合批方式,将预制件名称和粒子特效组件名称作为所述排序字典的键,创建所述预制件名称和所述粒子特效组件名称的组合与值之间的第二对应列表,所述第二对应列表包含多行数据,每一行数据包括所述预制件名称和所述粒子特效组件名称的组合,以及对所述组合分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第二对应列表建立所述排序字典。
在一个实施例中,所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值,包括:
针对粒子特效组件i执行以下步骤,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件:
确定所述排序字典中是否存在所述粒子特效组件i对应的值;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值。
在一个实施例中,所述方法还包括:
若所述排序字典中不存在所述粒子特效组件i对应的值,在所述排序字典中添加所述粒子特效组件i的新增键,并分配所述新增键对应的值,得到新排序字典,并根据所述新排序字典对所述粒子特效组件i进行赋值。
在一个实施例中,所述根据赋值后的所述多个粒子特效组件进行合批渲染,包括:
通过一个绘制指令将所述多个粒子特效组件中的多个目标粒子特效组件进行合批渲染,其中,所述多个目标粒子特效组件的多个所述预设字段的多个赋值相同,每一所述目标粒子特效组件对应一个所述赋值。
在一个实施例中,所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值之前,所述方法还包括:
确定预设集合中是否存在所述待渲染实例的实例标识,若否,执行所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值的操作,其中,所述预设集合为预先建立的不包含重复实例标识的哈希集合;
若是,确定所述待渲染实例包括的所述多个粒子特效组件已经进行赋值,执行所述根据赋值后的所述多个粒子特效组件进行合批渲染的操作。
在一个实施例中,若所述预设集合中不存在所述待渲染实例的实例标识,在所述根据赋值后的所述多个粒子特效组件进行合批渲染后,所述方法还包括:
将所述待渲染实例的实例标识添加至所述预设集合。
另一方面,本发明实施例提供了一种特效渲染装置,该特效渲染装置包括:
确定单元,用于确定特效预制件的合批方式;
建立单元,用于根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合;
处理单元,用于在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值;
所述处理单元,还用于根据赋值后的所述多个粒子特效组件进行合批渲染。
在一个实施例中,所述建立单元具体用于:
在所述合批方式为材质式合批方式时,将材质名称作为所述排序字典的键,创建材质名称与值之间的第一对应列表,所述第一对应列表包含多行数据,每一行数据包括材质名称,以及对所述材质名称分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第一对应列表建立所述排序字典。
在一个实施例中,所述多行数据中的多个值为按照从小到大的顺序进行排列的正整数。
在一个实施例中,所述建立单元具体用于:
在所述合批方式为层级式合批方式时,将预制件名称和粒子特效组件名称作为所述排序字典的键,创建所述预制件名称和所述粒子特效组件名称的组合与值之间的第二对应列表,所述第二对应列表包含多行数据,每一行数据包括所述预制件名称和所述粒子特效组件名称的组合,以及对所述组合分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第二对应列表建立所述排序字典。
在一个实施例中,在所述根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值方面,所述处理单元具体用于:
针对粒子特效组件i执行以下步骤,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件:
确定所述排序字典中是否存在所述粒子特效组件i对应的值;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值。
在一个实施例中,所述处理单元还用于:
若所述排序字典中不存在所述粒子特效组件i对应的值,在所述排序字典中添加所述粒子特效组件i的新增键,并分配所述新增键对应的值,得到新排序字典,并根据所述新排序字典对所述粒子特效组件i进行赋值。
在一个实施例中,在所述根据赋值后的所述多个粒子特效组件进行合批渲染方面,所述处理单元具体用于:
通过一个绘制指令将所述多个粒子特效组件中的多个目标粒子特效组件进行合批渲染,其中,所述多个目标粒子特效组件的多个所述预设字段的多个赋值相同,每一所述目标粒子特效组件对应一个所述赋值。
在一个实施例中,在所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值之前,所述确定单元还用于:
确定预设集合中是否存在所述待渲染实例的实例标识,若否,执行所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值的操作,其中,所述预设集合为预先建立的不包含重复实例标识的哈希集合;
在一个实施例中,确定所述待渲染实例包括的所述多个粒子特效组件已经进行赋值,执行所述根据赋值后的所述多个粒子特效组件进行合批渲染的操作。
在一个实施例中,若所述预设集合中不存在所述待渲染实例的实例标识,在所述根据赋值后的所述多个粒子特效组件进行合批渲染后,所述处理单元还用于:
将所述待渲染实例的实例标识添加至所述预设集合。
再一方面,本发明实施例提供了一种终端,所述终端包括输入设备和输出设备,所述终端还包括:
处理器,适于实现一条或一条以上指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或一条以上指令,所述一条或一条以上指令适于由所述处理器加载并执行如下步骤:
确定特效预制件的合批方式;
根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合;
在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值;
根据赋值后的所述多个粒子特效组件进行合批渲染。
再一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或一条以上指令,所述一条或一条以上指令适于由处理器加载并执行如下步骤:
确定特效预制件的合批方式;
根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合;
在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值;
根据赋值后的所述多个粒子特效组件进行合批渲染。
本发明实施例在进行特效渲染时,可通过终端确定特效预制件的合批方式,根据合批方式建立排序字典,在对特效预制件进行实例化时,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,根据赋值后的多个粒子特效组件进行合批渲染。上述特效渲染过程,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种特效渲染方法的流程示意图;
图1b是本发明实施例提供的一种确定特效预制件的合批方式的演示示意图;
图1c是本发明实施例提供的一种确定特效预制件的合批方式的演示示意图;
图1d是本发明实施例提供的一种未进行合批渲染的游戏特效渲染的效果示意图;
图1e是本发明实施例提供的一种进行合批渲染之后的游戏特效渲染的效果示意图;
图1f是本发明实施例提供的一种未开启游戏特效的效果示意图;
图2a是本发明实施例提供的另一种特效渲染方法的流程示意图;
图2b是本发明实施例提供的一种根据材质式合批方式建立的排序字典的演示示意图;
图2c是本发明实施例提供的一种根据排序字典对任一粒子特效组件i进行赋值的流程示意图;
图2d是本发明实施例提供的一种新排序字典的演示示意图;
图3a是本发明实施例提供的另一种特效渲染方案的应用场景;
图3b是本发明实施例提供的一种根据层级式合批方式建立的排序字典的演示示意图;
图4是本发明实施例提供的另一种特效渲染方法的流程示意图;
图5是本发明实施例提供的特效渲染装置的结构示意图;
图6是本发明实施例提供的一种终端的结构示意图;
图7a是本发明实施例提供的一种区块结构的示意图;
图7b是本发明实施例提供的将排序字典、多个粒子特效组件以及预设集合存储在区块链中的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
为了便于更好的理解本申请所描述的技术方案,下面对本申请实施例所涉及的技术术语进行解释:
unity引擎:是由Unity Technologies公司开发的一个让游戏玩家创建如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
特效预制件:unity引擎下将做好的特效物件内容作为模板,该模板可以重复利用。
实例化:根据特效的预制件创建一个完全拥有自己独立内存的个体,预制件可以看成是汽车的设计图纸,而实例代表生产好的汽车,实例化就是这个生产过程。
InstanceID(实例标识):unity中的实例标识,对于每一个实例,都有唯一的一个InstanceID对应。
Particle System(粒子系统):unity引擎自带的用于制作和表现特效效果的组件。该粒子特效组件上的sortingOrder字段决定了渲染顺序。
绘制指令(Draw Call,DC):CPU向GPU提交的一个渲染指令。具体地,绘制指令是CPU调用图形编程接口,比如DirectX或OpenGL,来命令GPU进行渲染的操作。
Dynamic Batching(动态合批):unity引擎实现的一种将满足特定条件的不同物体的DC合并成一个的技术。这些条件最重要的有:顶点属性小于900,具有相同材质,同时对于半透明的物体,还要求渲染顺序是相邻的。其中,特效基本上可以认定为半透明的物体。
Material(材质):渲染属性的集合,可以通俗的理解为外观。
Dictionary(字典):一组键-值形式的数据集合,字典中没有相同的键。
HashSet(哈希集合):一组元素组成的集合,集合中没有重复元素存在。
本发明实施例提出一种特效渲染方法,以将不满足unity引擎动态合批要求的粒子特效组件通过修改粒子特效组件的方式来使粒子特效组件满足动态合批要求,从而通过合批渲染减少绘制指令的数量。
该特效渲染方法可应用于终端,本发明实施例涉及的终端可以包括但不限于:智能手机、平板电脑、膝上计算机以及台式电脑等等。终端可根据实际的业务需求,调用相应的应用客户端执行该特效渲染方法。例如,终端可调用游戏应用客户端对游戏应用中的游戏特效进行渲染,此处的游戏应用客户端可包括但不限于:手游客户端、端游客户端等等;其中,手游客户端是指运行于移动终端中的游戏客户端,端游是指运行于PC(PersonalComputer,个人计算机)端中的游戏客户端;又例如,终端可调用视频应用客户端对视频应用中的动画特效进行渲染等等。
在游戏或动画渲染的场景中,CPU需要向GPU发送很多内容,包括数据,状态,绘制指令等。在这一阶段,CPU需要完成很多准备工作,例如检查渲染状态等。当CPU完成了这些准备工作,GPU就可以开始本次的渲染。在进行特效渲染的过程中,待渲染实例中会有多个粒子特效组件需要进行渲染,一般来说,一个粒子特效组件需要一个绘制指令来进行绘制。GPU的渲染能力是很强的,例如,渲染300个和3000个三角网格通常没有什么区别,因此GPU的渲染速度往往快于CPU提交绘制指令的速度。如果绘制指令的数量太多,CPU就会把大量时间花费在提交绘制指令上,造成CPU的过载。
因此,为了减少CPU向GPU提交的绘制指令的数量,本方案可将满足特定条件的多个不同的粒子特效组件对应的绘制指令进行合并,即原本多个粒子特效组件需要通过多个绘制指令进行渲染,本方案通过将多个绘制指令进行合并,使得满足特定条件的多个目标粒子特效组件根据仅一个绘制指令进行渲染。其中,本方案中,上述特定条件具体可以是多个目标粒子特效组件的材质相同,即本方案可实现将材质相同的多个目标粒子特效组件进行合批渲染。
请参见图1a,是本发明实施例提供的一种特效渲染方法的流程示意图。如图1a所示,该特效渲染方法可以包括以下步骤S101-步骤S104:
步骤S101,确定特效预制件的合批方式。
其中,合批方式可包括以下两种:一种是材质式合批方式;一种是层级式合批方式。材质式合批方式是指,按照材质一致的规则,将材质相同的不同粒子特效组件进行合批渲染;层级式合批方式是指,按照层级一致的规则,将层级相同的不同粒子特效组件进行合批渲染。
请参阅图1b-图1c,图1b-图1c为本发明实施例提供的一种确定特效预制件的合批方式的演示示意图,具体实现中,终端中可设置确定特效预制件的合批方式的界面,在该界面中提供选择合批方式的选择框,例如,可提供材质式合批方式和层级式合批方式两种合批方式供开发人员进行选择,从而,开发人员可以通过该界面选择进行合批渲染的合批方式,进而,终端可确定特效预制件的合批方式。
步骤S102,根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合。
其中,排序字典是指一组键-值形式的数据集合,排序字典中键对应的一列数据和值对应的至少一列数据存在一一对应的关系,排序字典中的不同行中不存在相同的键,本申请实施例中的排序字典是全局的排序字典,也就是说,该排序字典可适用于不同的待渲染实例。具体地,在需要实例化特效预制件时,可根据确定的特效预制件的合批方式建立排序字典。
可选地,若所述合批方式为材质式合批方式,将材质名称作为所述排序字典的键,创建材质名称与值之间的第一对应列表,所述第一对应列表包含多行数据,每一行数据包括材质名称,以及对所述材质名称分配的值,其中,所述多行数据中的多个值互不相等;根据所述第一对应列表建立所述排序字典。
本发明中,根据材质式合批方式创建排序字典,可以对每一种材质名称分配一个值,通过分配的值使同一材质名称的不同粒子特效组件具有相同的渲染顺序,如此,可使原本渲染顺序不同,但材质名称相同的不同粒子特效组件具有相同的渲染顺序,从而,可使原本不满足合批渲染条件的多个粒子特效组件能够满足合批渲染条件。
具体地,可先创建材质名称与值之间的第一对应列表,第一对应列表中可添加多个不同的材质名称,并为每一材质名称分配一个值,不同的材质名称对应的值不相等,如此,可得到包含多行数据的第一对应列表,每一行数据包括材质名称,以及对所述材质名称分配的值。
可选地,若所述合批方式为层级式合批方式,将预制件名称和粒子特效组件名称作为所述排序字典的键,创建所述预制件名称和所述粒子特效组件名称的组合与值之间的第二对应列表,所述第二对应列表包含多行数据,每一行数据包括所述预制件名称和所述粒子特效组件名称的组合,以及对所述组合分配的值,其中,所述多行数据中的多个值互不相等;根据所述第二对应列表建立所述排序字典。
本发明中,根据层级式合批方式创建排序字典,可以对每一种预制件名称和粒子特效组件名称的组合分配一个值,通过分配的值使具有相同预制件名称和粒子特效组件名称的不同粒子特效组件具有相同的渲染顺序,如此,可使原本渲染顺序不同,但相同预制件名称和粒子特效组件名称均相同的不同粒子特效组件具有相同的渲染顺序,具体实施中,不同粒子特效组件的预制件名称和粒子特效组件名称均相同,表明对应的材质名称也相同,从而,可使原本不满足合批渲染条件的多个粒子特效组件能够满足合批渲染条件。
具体地,可先创建预制件名称和粒子特效组件名称的组合与值之间的第二对应列表,第二对应列表中可添加多个不同的预制件名称和粒子特效组件名称的组合,并为每一组合分配一个值,不同的组合对应的值不相等,如此,可得到包含多行数据的第二对应列表,每一行数据包括预制件名称和粒子特效组件名称,以及对该预制件名称和粒子特效组件名称的组合分配的值。
步骤S103,在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值。
其中,每一个粒子特效组件中包括用于决定该粒子特效组件的渲染顺序的预设字段,例如,在unity引擎中,该预设字段可以是sorting order(排序顺序)字段,在对特效预制件进行实例化时,可根据排序字典中键与值之间的对应关系为每一个粒子特效组件进行赋值,具体地,可查询排序字典,根据查询到的值修改粒子特效组件中预设字段的原始值,预设字段的原始值例如可以是0,从而实现根据排序字典对粒子特效组件进行赋值。
可选地,根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值,可针对粒子特效组件i执行以下步骤,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件:
确定所述排序字典中是否存在所述粒子特效组件i对应的值;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值。
其中,若合批方式为材质式合批方式,可在对特效预制件进行实例化时,确定多个粒子特效组件中每一粒子特效组件的材质名称,进而根据该材质名称查询排序字典,确定排序字典中与该材质名称对应的目标值,并根据该目标值对该粒子特效组件的预设字段进行赋值。
其中,若合批方式为层级式合批方式,可在对特效预制件进行实例化时,确定多个粒子特效组件中每一粒子特效组件的预制件名称和粒子特效组件名称,进而根据该预制件名称和粒子特效组件名称查询排序字典,确定排序字典中与该预制件名称和粒子特效组件名称的组合对应的目标值,并根据该目标值对该粒子特效组件的预设字段进行赋值。
步骤S104,根据赋值后的所述多个粒子特效组件进行合批渲染。
其中,进行赋值后的多个粒子特效组件中,预设字段的赋值相同的粒子特效组件会具有相同的渲染顺序,从而,可以对具有相同渲染顺序的多个目标粒子特效组件进行合批渲染,例如,假定待渲染实例包括10个粒子特效组件,其中有5个粒子特效组件的赋值相同,另外5个粒子特效组件的赋值相同,则可以对赋值相同的5个粒子特效组件进行合批渲染,对赋值相同的另外5个粒子特效组件进行合批渲染。如此,通过修改粒子特效组件中预设字段的赋值,可使多个粒子特效组件中赋值相同的多个目标粒子特效组件满足进行合批渲染的条件,进而,对赋值相同的多个目标粒子特效组件进行合批渲染,从而使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
请参阅图1d-图1e,图1d为本发明实施例提供的一种未进行合批渲染的游戏特效渲染的效果示意图,图1e为本发明实施例提供的一种进行合批渲染之后的游戏特效渲染的效果示意图。以某一具体游戏为例,20个玩家释放技能特效而产生的绘制指令有300个以上,但是游戏包含人物、场景、特效等等所有的显示元素产生绘制指令要求是要在300个左右,通过对预设字段的赋值相同的粒子特效组件进行合批渲染,可减少绘制指令的数量,不会因绘制指令较多而影响游戏特效渲染的性能。如图1d-图1e所示,通过修改粒子特效组件,对粒子特效组件的预设字段进行赋值,可改变粒子特效组件的渲染顺序,进而可使untiy引擎中的动态合批机制对粒子特效组件生效,其中,setpass call是unity引擎的统计工具统计出的切换渲染状态的次数,setpass call可以认为约等于绘制指令数量,可以看出,setpass call在未进行合批渲染的情况下为826,setpass call在进行合批渲染的情况下为577,从未进行合批渲染到进行合批渲染,setpass call从826降低为577。如图1f,图1f为本发明实施例提供的一种未开启游戏特效的效果示意图,在未开启游戏特效时,setpass call为500,可以得知,特效产生的setpass call为826-500=326;进行合批渲染时,特效产生的setpass call为577-500=77,可以看出,在进行合批渲染的情况下,特效产生的setpass call从326减少至77,从而,可减少CPU的消耗。
其中,根据赋值后的所述多个粒子特效组件进行合批渲染,具体可通过一个绘制指令将所述多个粒子特效组件中的多个目标粒子特效组件进行合批渲染,其中,所述多个目标粒子特效组件的多个所述预设字段的多个赋值相同,每一所述目标粒子特效组件对应一个所述赋值。
具体地,终端可确定满足预设字段的赋值相同条件的多个目标粒子特效组件,例如,10个粒子特效组件,其中有5个目标粒子特效组件的赋值相同,表明该5个目标粒子特效组件的渲染顺序相同,从而,可通过一个绘制指令控制对多个目标粒子特效组件进行合批渲染。如此,原来一个粒子特效组件需要一个绘制指令进行渲染,在本方案中,通过对多个目标粒子特效组件进行合批渲染,可仅通过一个绘制指令对多个目标粒子特效组件进行渲染,从而,可减少CPU向GPU提交的绘制指令的数量,降低CPU的占用率。
本发明实施例通过终端确定特效预制件的合批方式,根据合批方式建立排序字典,在对特效预制件进行实例化时,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,根据赋值后的多个粒子特效组件进行合批渲染。因此,通过对粒子特效组件进行赋值,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
进一步的,请参见图2a,是本发明实施例提供的另一种特效渲染方法的流程示意图。如图2a所示,上述特效渲染方法可以包括:
步骤S201,确定特效预制件的合批方式。
其中,步骤S201的具体实现方式可以参见上述图1a所对应实施例中的步骤S101,此处不再赘述。
步骤S202,若所述合批方式为材质式合批方式,将材质名称作为所述排序字典的键,创建材质名称与值之间的第一对应列表,所述第一对应列表包含多行数据,每一行数据包括材质名称,以及对所述材质名称分配的值,其中,所述多行数据中的多个值互不相等。
请参阅图2b,图2b为本发明实施例提供的一种根据材质式合批方式建立的排序字典的演示示意图,可以看出,该排序字典的键为材质名称,排序字典包括多个材质名称和所述多个材质名称对应的多个值,每一所述材质名称对应一个值。其中,排序字典的每一行数据包括一个材质名称和该材质名称对应的值,具体实施中,排序字典的建立是一个动态建立的过程,在进行实例化特效预制件时,可确定待渲染实例中的粒子特效组件的材质名称,进而,可将该材质名称添加至排序字典中,并自动分配给该材质名称一个值,排序字典中每一行的值均不相等。可选地,上述排序字典中的多行数据中的多个值可为按照从小到大的顺序进行排列的正整数。例如,第一行的值为1,从第一行往后,每次分配值可在前一行的值的基础上加1。如此,在进行实例化特效预制件的过程中,每当出现新的材质名称,都可将该新的材质名称添加至排序字典,并对该新的材质名称分配对应的值。
步骤S203,根据所述第一对应列表建立所述排序字典。
其中,根据第一对应列表建立排序字典,具体可将材质名称作为排序字典的键,如此,可得到键-值形式的排序字典。
步骤S204,在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值。
其中,在对所述特效预制件进行实例化时,特效预制件的待渲染实例通常包括多个粒子特效组件,因此,可根据上述排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值。
其中,可针对粒子特效组件i执行以下步骤,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件:
确定所述排序字典中是否存在所述粒子特效组件i对应的值;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值。
具体地,请参阅图2c,图2c为本发明实施例提供的一种根据排序字典对任一粒子特效组件i进行赋值的流程示意图,其中,针对任一粒子特效组件i,可确定该粒子特效组件i的目标材质名称,进而确定排序字典中是否存在与该目标材质名称对应的目标值,若是,则根据该目标值对粒子特效组件i对应的预设字段进行赋值。
举例说明,针对任一粒子特效组件i,在确定粒子特效组件i的目标材质名称后,可确定排序字典中是否存在与该目标材质名称对应的目标值,若排序字典中存在与该目标材质名称对应的目标值,假定该目标值为5,一般来说,粒子特效组件i对应的预设字段sorting order字段中决定渲染顺序的值在未进行修改之前,一般为0,则可将粒子特效组件i对应的预设字段sorting order字段中决定渲染顺序的值修改为该目标值5,如此,进行赋值后的预设字段中决定该粒子特效组件i的渲染顺序的赋值为5。如此,可将待渲染实例包括的多个粒子特效组件中,具有与上述相同材质名称的多个目标粒子特效组件中每一目标粒子特效组件的预设字段sorting order字段中决定渲染顺序的值修改为该目标值5,如此,在进行特效渲染时,可将预设字段sorting order字段中赋值均为5的多个目标粒子特效组件进行合批渲染。
其中,若所述排序字典中不存在所述粒子特效组件i对应的值,可在排序字典中添加粒子特效组件i的新增键,即在排序字典中添加粒子特效组件i的材质名称,然后分配所述新增键对应的值,即为粒子特效组件i的材质名称分配一个值,得到新排序字典,如此,新排序字典中则存在粒子特效组件i对应的值,进而,可根据所述新排序字典对所述粒子特效组件i进行赋值。
举例说明,若根据粒子特效组件i的材质名称查询排序字典,发现排序字典中不存在与该材质名称对应的值,假定排序字典当前包括15行数据,具体地,包括15个不同的材质名称,15个不同的材质名称分配对应以下值:1,2,3,...14,15,则可在排序字典新增第16行,第16行数据包括粒子特效组件i的材质名称,并为该材质名称分配值,例如16,可得到新排序字典,如图2d所示,图2d为本发明实施例提供的一种新排序字典的演示示意图。如此,当下一次出现具有该材质名称的其他粒子特效组件,可直接根据新排序字典查询该材质名称对应的值。
步骤S205,根据赋值后的所述多个粒子特效组件进行合批渲染。
其中,步骤S205的具体实现方式可以参见上述图1a所对应实施例中的步骤S104,此处不再赘述。
本发明实施例通过终端确定特效预制件的合批方式,若合批方式为材质式合批方式,将材质名称作为排序字典的键,创建材质名称与值之间的第一对应列表,第一对应列表包含多行数据,每一行数据包括材质名称,以及对材质名称分配的值,其中,多行数据中的多个值互不相等;根据第一对应列表建立所述排序字典,在对特效预制件进行实例化时,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,根据赋值后的多个粒子特效组件进行合批渲染。因此,通过对粒子特效组件进行赋值,实现对特效预制件的待渲染实例进行特效渲染,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
进一步的,请参见图3a,是本发明实施例提供的另一种特效渲染方法的流程示意图。如图3a所示,上述特效渲染方法可以包括:
步骤S301,确定特效预制件的合批方式。
其中,步骤S301的具体实现方式可以参见上述图1a所对应实施例中的步骤S101,此处不再赘述。
步骤S302,若所述合批方式为层级式合批方式,将预制件名称和粒子特效组件名称作为所述排序字典的键,创建所述预制件名称和所述粒子特效组件名称的组合与值之间的第二对应列表,所述第二对应列表包含多行数据,每一行数据包括所述预制件名称和所述粒子特效组件名称的组合,以及对所述组合分配的值,其中,所述多行数据中的多个值互不相等。
请参阅图3b,图3b为本发明实施例提供的一种根据层级式合批方式建立的排序字典的演示示意图,可以看出,该排序字典的键为预制件名称和粒子特效组件名称,该排序字典包括多个组合,每一组合为预制件名称和粒子特效组件名称的组合,每一所述组合对应为该组合分配的一个值。其中,排序字典的每一行数据包括一个预制件名称、一个粒子特效组件名称和该预制件名称和粒子特效组件名称的组合对应的值,具体实施中,在进行实例化特效预制件时,可确定待渲染实例中的粒子特效组件所属的预制件名称和粒子特效组件名称,进而,可将该预制件名称和粒子特效组件名称的组合添加至排序字典中,并自动分配给该组合一个值,排序字典中每一行的值均不相等。可选地,上述排序字典中的多行数据中的多个值可为按照从小到大的顺序进行排列的正整数。例如,第一行的值为1,从第一行往后,每次分配值可在前一行的值的基础上加1。如此,在进行实例化特效预制件的过程中,每当出现新的预制件名称和粒子特效组件名称的组合,都可将该新的预制件名称和粒子特效组件名称的组合添加至排序字典,并对该新的预制件名称和粒子特效组件名称的组合分配对应的值。
步骤S303,根据所述第二对应列表建立所述排序字典。
步骤S304,在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值。
其中,步骤S303-步骤S304的具体实现方式可以参见上述图1a所对应实施例中的步骤S203-步骤S204,此处不再赘述。
步骤S305,根据赋值后的所述多个粒子特效组件进行合批渲染。
具体地,可通过一个绘制指令将所述多个粒子特效组件中的多个目标粒子特效组件进行合批渲染,其中,所述多个目标粒子特效组件的多个所述预设字段的多个赋值相同,每一所述目标粒子特效组件对应一个所述赋值。待渲染实例中包括多个粒子特效组件,在对多个粒子特效组件进行赋值后,可确定多个粒子特效组件中预设字段的赋值相同的多个目标粒子特效组件,多个目标粒子特效组件的赋值相同,表示该多个目标粒子特效组件具有相同的预制件名称和粒子特效组件名称,从而,可在对待渲染实例进行特效渲染时,通过一个绘制指令将赋值相同的多个目标粒子特效组件进行合批渲染。例如,当待渲染实例中包括10个粒子特效组件,其中5个粒子特效组件中预设字段的赋值均为1,另外5个粒子特效组件中预设字段的赋值均为5,则可将预设字段的赋值均为1的5个第一目标粒子特效组件通过一个绘制指令进行渲染,将预设字段的赋值均为5的5个第二目标粒子特效组件通过一个绘制指令进行渲染,从而,原本需要10个绘制指令对待渲染实例进行渲染,减少到仅需要2个绘制指令,就可对该待渲染实例进行渲染,减少CPU向GPU提交绘制指令,减少CPU的占用率。
本发明实施例通过终端确定特效预制件的合批方式,若合批方式为层级式合批方式,将预制件名称和粒子特效组件名称作为排序字典的键,创建预制件名称和粒子特效组件名称的组合与值之间的第二对应列表,第二对应列表包含多行数据,每一行数据包括预制件名称和所述粒子特效组件名称的组合,以及对组合分配的值,其中,多行数据中的多个值互不相等;根据第二对应列表建立排序字典,在对特效预制件进行实例化时,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,根据赋值后的多个粒子特效组件进行合批渲染。因此,通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
进一步的,请参见图4,是本发明实施例提供的另一种特效渲染方法的流程示意图。如图4所示,上述特效渲染方法可以包括:
步骤S401,确定特效预制件的合批方式。
步骤S402,根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合。
其中,步骤S401-步骤S402的具体实现方式可以参见上述图1a所对应实施例中的步骤S101-步骤S102,此处不再赘述。
步骤S403,在对所述特效预制件进行实例化时,确定预设集合中是否存在所述待渲染实例的实例标识,若否,执行步骤S405的操作,其中,所述预设集合为预先建立的不包含重复实例标识的哈希集合。
具体地,本发明实施例中,可预先建立一个哈希集合,哈希集合中不允许包含重复的元素,即预设集合为预先建立的不包含重复实例标识的哈希集合。该预设集合用于记录已经进行对其包含的粒子特效组件进行赋值操作的待渲染实例的实例标识,即预设集合中包括至少一个实例标识,其中,至少一个实例标识中每一实例标识均为已经对其包含的所有粒子特效组件进行赋值操作的实例标识。在对特效预制件进行实例化时,可根据待渲染实例的实例标识查询该预设集合,确定该预设集合中是否存在待渲染实例的实例标识,若不存在,表明该实例标识对应的待渲染实例包括的粒子特效组件还未进行赋值操作,因此,可跳转至步骤S405。
步骤S404,若是,确定所述待渲染实例包括的所述多个粒子特效组件已经进行赋值,执行步骤S406的操作。
其中,若该预设集合中存在待渲染实例的实例标识,表明该待渲染实例包含的所有粒子特效组件已经进行赋值操作,不需要对该待渲染实例进行重复赋值,可直接重复利用已经赋值的待渲染实例,进而执行步骤S406。
步骤S405,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值。
步骤S406,根据赋值后的所述多个粒子特效组件进行合批渲染。
其中,步骤S405-步骤S406的具体实现方式可以参见上述图1a所对应实施例中的步骤S103-步骤S104,此处不再赘述。
步骤S407,若所述预设集合中不存在所述待渲染实例的实例标识,将所述待渲染实例的实例标识添加至所述预设集合。
其中,基于步骤403,若预设集合中不存在待渲染实例的实例标识,下一步会执行步骤S405,即会根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,可在对该特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值之后,将待渲染实例的实例标识添加至预设集合,进而,可以将已经进行赋值的待渲染实例的实例标识进行记录,避免后面重复对该待渲染实例的粒子特效组件进行重复赋值。如此,当再次针对相同的待渲染实例进行渲染时,可循环使用已经赋值过的多个粒子特效组件,不需要进行重复赋值,从而,可以通过重复利用已经进行赋值的待渲染实例的粒子特效组件,提升特效渲染的效率。
针对已经做过合批操作的特效实例,再次循环使用时,不会再进行重复的合批操作
其中,步骤S405-步骤S407的具体实现方式可以参见上述图1a所对应实施例中的步骤S101-步骤S103,此处不再赘述。
本发明实施例通过终端确定特效预制件的合批方式,根据合批方式建立排序字典,在对特效预制件进行实例化时,确定预设集合中是否存在待渲染实例的实例标识;若预设集合中不存在待渲染实例的实例标识,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,其中,预设集合为预先建立的不包含重复实例标识的哈希集合,然后根据赋值后的多个粒子特效组件进行合批渲染;若预设集合中存在待渲染实例的实例标识,根据赋值后的多个粒子特效组件进行合批渲染。如此,通过对粒子特效组件进行赋值,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能,此外,通过建立预设集合,对已经进行赋值操作的待渲染实例的实例标识进行记录,当再次针对相同的待渲染实例进行渲染时,可循环使用已经赋值过的多个粒子特效组件,不需要进行重复赋值,从而,可以通过重复利用已经进行赋值的待渲染实例的粒子特效组件,提升特效渲染的效率。
进一步的,请参见图5,是本发明实施例提供的一种特效渲染装置500的结构示意图。如图5所示,所述特效渲染装置500可以包括:确定单元501,建立单元502和处理单元503;其中,
所述确定单元501,用于确定特效预制件的合批方式;
所述建立单元502,用于根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合;
所述处理单元503,用于在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值;
所述处理单元503,还用于根据赋值后的所述多个粒子特效组件进行合批渲染。
其中,确定单元501,建立单元502和处理单元503的具体功能实现方式可以参见上述图1a对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
在一个实施例中,所述建立单元502具体用于:
在所述合批方式为材质式合批方式时,将材质名称作为所述排序字典的键,创建材质名称与值之间的第一对应列表,所述第一对应列表包含多行数据,每一行数据包括材质名称,以及对所述材质名称分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第一对应列表建立所述排序字典。
在一个实施例中,所述多行数据中的多个值为按照从小到大的顺序进行排列的正整数。
在一个实施例中,在所述根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合方面,建立单元502的具体功能实现方式可以参见上述1a对应实施例中的步骤S102,这里不再进行赘述。
在一个实施例中,所述建立单元502具体用于:
在所述合批方式为层级式合批方式时,将预制件名称和粒子特效组件名称作为所述排序字典的键,创建所述预制件名称和所述粒子特效组件名称的组合与值之间的第二对应列表,所述第二对应列表包含多行数据,每一行数据包括所述预制件名称和所述粒子特效组件名称的组合,以及对所述组合分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第二对应列表建立所述排序字典。
在一个实施例中,在所述根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合方面,建立单元502的具体功能实现方式可以参见上述1a对应实施例中的步骤S102,这里不再进行赘述。
在一个实施例中,在所述根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值方面,所述处理单元503具体用于:
针对粒子特效组件i执行以下步骤,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件:
确定所述排序字典中是否存在所述粒子特效组件i对应的值;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值。
在一个实施例中,所述处理单元503还用于:
若所述排序字典中不存在所述粒子特效组件i对应的值,在所述排序字典中添加所述粒子特效组件i的新增键,并分配所述新增键对应的值,得到新排序字典,并根据所述新排序字典对所述粒子特效组件i进行赋值。
在一个实施例中,在所述根据赋值后的所述多个粒子特效组件进行合批渲染方面,所述处理单元503具体用于:
通过一个绘制指令将所述多个粒子特效组件中的多个目标粒子特效组件进行合批渲染,其中,所述多个目标粒子特效组件的多个所述预设字段的多个赋值相同,每一所述目标粒子特效组件对应一个所述赋值。
在一个实施例中,在所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值之前,所述确定单元501还用于:
确定预设集合中是否存在所述待渲染实例的实例标识,若否,执行所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值的操作,其中,所述预设集合为预先建立的不包含重复实例标识的哈希集合;
若是,确定所述待渲染实例包括的所述多个粒子特效组件已经进行赋值,执行所述根据赋值后的所述多个粒子特效组件进行合批渲染的操作。
在一个实施例中,若所述预设集合中不存在所述待渲染实例的实例标识,在所述根据赋值后的所述多个粒子特效组件进行合批渲染后,所述处理单元503还用于:
将所述待渲染实例的实例标识添加至所述预设集合。
可以看出,本发明实施例提供的特效渲染装置,通过确定特效预制件的合批方式,根据合批方式建立排序字典,在对特效预制件进行实例化时,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,根据赋值后的多个粒子特效组件进行合批渲染。上述特效渲染过程,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
根据本发明的另一个实施例,图5所示的特效渲染装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于特效渲染装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
进一步地,请参见图6,是本发明实施例提供的一种终端的结构示意图。如图6所示,上述图5中的特效渲染装置500可以应用于所述终端6000,所述终端6000可以包括:处理器6001,网络接口6004和存储器6005,此外,所述终端6000还可以包括:用户接口6003,和至少一个通信总线6002。其中,通信总线6002用于实现这些组件之间的连接通信。其中,用户接口6003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口6003还可以包括标准的有线接口、无线接口。网络接口6004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器6004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器6004可选的还可以是至少一个位于远离前述处理器6001的存储装置。如图6所示,作为一种计算机存储介质的存储器6004中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的终端6000中,网络接口6004可提供网络通讯功能;而用户接口6003主要用于为用户提供输入的接口;而处理器6001可以用于调用存储器6004中存储的设备控制应用程序,以实现:
确定特效预制件的合批方式;
根据所述合批方式建立排序字典,所述排序字典为一组键-值形式的数据集合;
在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值;
根据赋值后的所述多个粒子特效组件进行合批渲染。
在一个实施例中,所述处理器6001在执行所述根据所述合批方式建立排序字典时,具体执行以下步骤:
若所述合批方式为材质式合批方式,将材质名称作为所述排序字典的键,创建材质名称与值之间的第一对应列表,所述第一对应列表包含多行数据,每一行数据包括材质名称,以及对所述材质名称分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第一对应列表建立所述排序字典。
在一个实施例中,所述多行数据中的多个值为按照从小到大的顺序进行排列的正整数。
在一个实施例中,所述处理器6001在执行所述根据所述合批方式建立排序字典时,具体执行以下步骤:
若所述合批方式为层级式合批方式,将预制件名称和粒子特效组件名称作为所述排序字典的键,创建所述预制件名称和所述粒子特效组件名称的组合与值之间的第二对应列表,所述第二对应列表包含多行数据,每一行数据包括所述预制件名称和所述粒子特效组件名称的组合,以及对所述组合分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第二对应列表建立所述排序字典。
在一个实施例中,所述处理器6001在执行所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值时,具体执行以下步骤:
针对粒子特效组件i执行以下步骤,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件:
确定所述排序字典中是否存在所述粒子特效组件i对应的值;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值。
在一个实施例中,所述处理器6001还执行以下步骤:
若所述排序字典中不存在所述粒子特效组件i对应的值,在所述排序字典中添加所述粒子特效组件i的新增键,并分配所述新增键对应的值,得到新排序字典,并根据所述新排序字典对所述粒子特效组件i进行赋值。
在一个实施例中,所述处理器6001在执行所述根据赋值后的所述多个粒子特效组件进行合批渲染时,具体执行以下步骤:
通过一个绘制指令将所述多个粒子特效组件中的多个目标粒子特效组件进行合批渲染,其中,所述多个目标粒子特效组件的多个所述预设字段的多个赋值相同,每一所述目标粒子特效组件对应一个所述赋值。
在一个实施例中,所述处理器6001执行所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值之前,所述处理器6001还执行以下步骤:
确定预设集合中是否存在所述待渲染实例的实例标识,若否,执行所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值的操作,其中,所述预设集合为预先建立的不包含重复实例标识的哈希集合;
若是,确定所述待渲染实例包括的所述多个粒子特效组件已经进行赋值,执行所述根据赋值后的所述多个粒子特效组件进行合批渲染的操作。
在一个实施例中,若所述预设集合中不存在所述待渲染实例的实例标识,在所述根据赋值后的所述多个粒子特效组件进行合批渲染后,所述处理器6001还执行以下步骤:
将所述待渲染实例的实例标识添加至所述预设集合。
可以看出,本发明实施例通过终端确定特效预制件的合批方式,根据合批方式建立排序字典,在对特效预制件进行实例化时,根据排序字典对特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,根据赋值后的多个粒子特效组件进行合批渲染。上述特效渲染过程,可通过对粒子特效组件进行赋值,使待渲染实例中的粒子特效组件满足进行合批渲染的条件,进而可对待渲染实例中的粒子特效组件进行合批渲染,提高合批渲染性能。
应当理解,本发明实施例中所描述的终端6000可执行前文图1a到图4所对应实施例中对所述特效渲染方法的描述,也可执行前文图5所对应实施例中对所述特效渲染装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的终端6000所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图1a到图4实施例中对所述多媒体数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
请参见图7a,图7a是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块(Block)中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。其中,区块链包括一系列按照产生的先后时间顺序相互接续的区块,新区块一旦加入到区块链中就不会再被移除。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本发明实施例中,可将根据合批方式建立的排序字典,根据排序字典进行赋值处理后的待渲染实例中的多个粒子特效组件均存储在上述区块链中,此外,还可将预先建立的预设集合也存储在上述区块链中,具体地,请参见图7b,图7b是本发明实施例提供的将排序字典、多个粒子特效组件以及预设集合存储在区块链中的示意图,上述排序字典、多个粒子特效组件以及预设集合可分别存储在区块链中不同的多个区块中,其中,预设集合包括至少一个待渲染实例的实例标识。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (11)
1.一种特效渲染方法,其特征在于,包括:
确定特效预制件的合批方式,所述合批方式包括材质式合批方式和层级式合批方式;
根据所述合批方式建立全局的排序字典,所述排序字典为一组键-值形式的数据集合,若所述合批方式为材质式合批方式,所述排序字典的键为材质名称,若所述合批方式为层级式合批方式,所述排序字典的键为预制件名称和粒子特效组件名称的组合;
在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值,包括:
确定所述排序字典中是否存在粒子特效组件i对应的值,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值;
根据赋值后的所述多个粒子特效组件进行合批渲染。
2.如权利要求1所述的方法,其特征在于,所述根据所述合批方式建立全局的排序字典,包括:
若所述合批方式为材质式合批方式,将材质名称作为所述排序字典的键,创建材质名称与值之间的第一对应列表,所述第一对应列表包含多行数据,每一行数据包括材质名称,以及对所述材质名称分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第一对应列表建立所述排序字典。
3.如权利要求2所述的方法,其特征在于,所述多行数据中的多个值为按照从小到大的顺序进行排列的正整数。
4.如权利要求1所述的方法,其特征在于,所述根据所述合批方式建立全局的排序字典,包括:
若所述合批方式为层级式合批方式,将预制件名称和粒子特效组件名称作为所述排序字典的键,创建所述预制件名称和所述粒子特效组件名称的组合与值之间的第二对应列表,所述第二对应列表包含多行数据,每一行数据包括所述预制件名称和所述粒子特效组件名称的组合,以及对所述组合分配的值,其中,所述多行数据中的多个值互不相等;
根据所述第二对应列表建立所述排序字典。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述排序字典中不存在所述粒子特效组件i对应的值,在所述排序字典中添加所述粒子特效组件i的新增键,并分配所述新增键对应的值,得到新排序字典,并根据所述新排序字典对所述粒子特效组件i进行赋值。
6.如权利要求5所述的方法,其特征在于,所述根据赋值后的所述多个粒子特效组件进行合批渲染,包括:
通过一个绘制指令将所述多个粒子特效组件中的多个目标粒子特效组件进行合批渲染,其中,所述多个目标粒子特效组件的多个所述预设字段的多个赋值相同,每一所述目标粒子特效组件对应一个所述赋值。
7.如权利要求1所述的方法,其特征在于,所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值之前,所述方法还包括:
确定预设集合中是否存在所述待渲染实例的实例标识,若否,执行所述根据所述排序字典对待渲染实例中的多个粒子特效组件进行赋值的操作,其中,所述预设集合为预先建立的不包含重复实例标识的哈希集合;
若是,确定所述待渲染实例包括的所述多个粒子特效组件已经进行赋值,执行所述根据赋值后的所述多个粒子特效组件进行合批渲染的操作。
8.如权利要求7所述的方法,其特征在于,若所述预设集合中不存在所述待渲染实例的实例标识,在所述根据赋值后的所述多个粒子特效组件进行合批渲染后,所述方法还包括:
将所述待渲染实例的实例标识添加至所述预设集合。
9.一种特效渲染装置,其特征在于,包括:
确定单元,用于确定特效预制件的合批方式,所述合批方式包括材质式合批方式和层级式合批方式;
建立单元,用于根据所述合批方式建立全局的排序字典,所述排序字典为一组键-值形式的数据集合,若所述合批方式为材质式合批方式,所述排序字典的键为材质名称,若所述合批方式为层级式合批方式,所述排序字典的键为预制件名称和粒子特效组件名称的组合;
处理单元,用于在对所述特效预制件进行实例化时,根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值;
在所述根据所述排序字典对所述特效预制件对应的待渲染实例中的多个粒子特效组件进行赋值方面,所述处理单元具体用于:
针对粒子特效组件i执行以下步骤,所述粒子特效组件i为所述多个粒子特效组件中的任意一个组件:
确定所述排序字典中是否存在所述粒子特效组件i对应的值;
若是,查询所述排序字典中与所述粒子特效组件i对应的目标值;
根据查询到的所述目标值对所述粒子特效组件i对应的预设字段进行赋值;
所述处理单元,还用于根据赋值后的所述多个粒子特效组件进行合批渲染。
10.一种终端,包括输入设备和输出设备,其特征在于,还包括:
处理器,适于实现一条或一条以上指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或一条以上指令,所述一条或一条以上指令适于由所述处理器加载并执行如权利要求1-8任一项所述的特效渲染方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或一条以上指令,所述一条或一条以上指令适于由处理器加载并执行如权利要求1-8任一项所述的特效渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910962428.7A CN110738720B (zh) | 2019-10-08 | 2019-10-08 | 特效渲染方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910962428.7A CN110738720B (zh) | 2019-10-08 | 2019-10-08 | 特效渲染方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110738720A CN110738720A (zh) | 2020-01-31 |
CN110738720B true CN110738720B (zh) | 2022-01-07 |
Family
ID=69269943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910962428.7A Active CN110738720B (zh) | 2019-10-08 | 2019-10-08 | 特效渲染方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110738720B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111354089B (zh) * | 2020-02-21 | 2023-08-15 | 上海米哈游天命科技有限公司 | 多层级的特效排序方法、装置、设备及存储介质 |
CN112257133A (zh) * | 2020-10-30 | 2021-01-22 | 久瓴(上海)智能科技有限公司 | 模型管理方法、装置、终端及计算机可读存储介质 |
CN112717393B (zh) * | 2021-01-25 | 2023-02-10 | 腾讯科技(深圳)有限公司 | 虚拟场景中的虚拟物件显示方法、装置、设备及存储介质 |
CN113426130A (zh) * | 2021-07-01 | 2021-09-24 | 网易(杭州)网络有限公司 | 一种模型的合批处理方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109712219A (zh) * | 2018-12-28 | 2019-05-03 | 北京金山安全软件有限公司 | Unity中粒子特效批量渲染方法、装置、电子设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582848B2 (en) * | 2012-12-28 | 2017-02-28 | Apple Inc. | Sprite Graphics rendering system |
KR102354992B1 (ko) * | 2015-03-02 | 2022-01-24 | 삼성전자주식회사 | 양안 시차 영상에 대한 타일 기반 렌더링 방법 및 장치 |
CN106296785B (zh) * | 2016-08-09 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 一种图片渲染方法及图片渲染设备 |
CN106504185B (zh) * | 2016-10-26 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 一种渲染优化方法和装置 |
CN108196835A (zh) * | 2018-01-29 | 2018-06-22 | 东北大学 | 一种游戏引擎中图元存储和渲染的方法 |
CN109840931B (zh) * | 2019-01-21 | 2023-07-25 | 网易(杭州)网络有限公司 | 骨骼动画的合批渲染方法、装置、系统及存储介质 |
CN110244938A (zh) * | 2019-04-28 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种json合并的数据处理方法及装置 |
-
2019
- 2019-10-08 CN CN201910962428.7A patent/CN110738720B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109712219A (zh) * | 2018-12-28 | 2019-05-03 | 北京金山安全软件有限公司 | Unity中粒子特效批量渲染方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110738720A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110738720B (zh) | 特效渲染方法、装置、终端及存储介质 | |
CN106951926B (zh) | 一种混合架构的深度学习方法及装置 | |
CN106033373A (zh) | 一种云计算平台中虚拟机资源调度方法和调度系统 | |
CN102592315A (zh) | 基于gpu云集群的3d渲染平台 | |
CN114022344B (zh) | 基于Linux服务器的Android容器渲染资源共享方法和装置 | |
CN107320956A (zh) | 一种游戏界面生成方法及装置 | |
CN113031943A (zh) | 编码生成方法、装置、存储介质及电子设备 | |
JPH10111858A (ja) | グラフィクス・パイプラインを並列化する方法及び装置 | |
CN112316433A (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN112307403A (zh) | 页面渲染方法、装置、存储介质以及终端 | |
CN111275826B (zh) | 一种适用于ar情景的三维模型自动转换方法 | |
CN113672375B (zh) | 资源分配预测方法、装置、设备及存储介质 | |
WO2023160041A1 (zh) | 图像渲染方法、装置、计算机设备、计算机可读存储介质以及计算机程序产品 | |
CN112001018A (zh) | 一种基于云渲染的高效虚拟仿真实验平台测试方法 | |
CN115794400A (zh) | 深度学习模型的内存管理方法、装置、设备及存储介质 | |
CN112991505B (zh) | 一种线上3d渲染方法 | |
CN111243069B (zh) | 一种Unity3D引擎的场景切换方法和系统 | |
CN114712853A (zh) | 游戏地图的加载、显示方法、装置、设备以及存储介质 | |
CN112612427A (zh) | 一种车辆停靠点数据处理方法、装置、存储介质及终端 | |
CN112685494A (zh) | 一种数据可视化方法、装置、设备及介质 | |
CN114064578A (zh) | 多维度的数据交互的标记方法、存储介质及电子设备 | |
CN113730920B (zh) | 一种预设组件同步属性的方法及其系统 | |
CN116630552B (zh) | 面向大规模的三维流程工厂模型的优化渲染方法 | |
CN107861794A (zh) | 一种在云计算系统中建立虚拟机的方法和装置 | |
CN117667405A (zh) | 一种三维应用的运行方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40019605 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |