一种场景中半透明物体的渲染方法、装置及电子设备与流程

文档序号:17628265发布日期:2019-05-10 23:53阅读:164来源:国知局
一种场景中半透明物体的渲染方法、装置及电子设备与流程

本发明涉及图像渲染技术领域,特别是涉及一种场景中半透明物体的渲染方法、装置及电子设备。



背景技术:

相关技术中,电子设备在渲染场景时,需要首先获得待渲染场景中每一待渲染物体的材质以及所需渲染的透明值,基于待渲染场景中待渲染物体的材质以及所需渲染的透明值,确定出待渲染物体的种类,其中,种类包括半透明物体和不透明物体,进而针对不同种类的物体进行分批次渲染。其中,当透明值的取值范围为[0,1]时,物体对应的透明值越大越不透明,半透明物体可以指:材质为透明材质且所对应透明值即不为0也不为1的物体,其被渲染后呈现半透明的状态,其中,透明材质可以包括玻璃、塑料以及水等材质。可以理解的是,被不透明物体遮挡的物体无法被看到;被半透明物体遮挡的物体可以被看到。

其中,在针对不同种类的物体进行分批次渲染的过程中,首先渲染不透明物体再渲染半透明物体。在渲染半透明物体时,由于待渲染的半透明物体的材质和/或透明值不同,电子设备会认为待渲染的半透明物体的渲染纹理存在不同,进而会分批次渲染不同渲染纹理的半透明物体。上述渲染半透明物体的过程中,半透明物体会被分成多批次进行渲染,而在渲染过程中,渲染次数越多,电子设备的渲染效率越低。



技术实现要素:

本发明实施例的目的在于提供一种场景中半透明物体的渲染方法、装置及电子设备,以实现降低半透明物体的渲染次数,提高电子设备的渲染性能。具体技术方案如下:

一方面,本发明实施例提供了一种场景中半透明物体的渲染方法,所述方法包括:

分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,所述渲染批次信息用于指示所述每一半透明物体的渲染顺序;

调整所述渲染批次信息,使得所述多个待处理半透明物体处于同一渲染顺序;

基于调整后的渲染批次信息,渲染所述待渲染场景中所述多个待处理半透明物体。

可选地,在所述分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息的步骤之前,所述方法还包括:

遍历待渲染场景,获得所述待渲染场景中的所有半透明物体;

从所述所有半透明物体中,确定出被修改所对应透明值的多个半透明物体,作为待处理半透明物体。

可选地,所述方法还包括:修改半透明物体对应的透明值的过程,其中,所述过程包括:

从所述所有半透明物体中,确定出需要修改所对应透明值的半透明物体;

获得每一需要修改所对应透明值的半透明物体对应的目标透明值;

通过调用预设api的方式,将每一需要修改所对应透明值的半透明物体对应的透明值,修改为其对应的目标透明值,其中,所述预设api为用于修改物体对应的透明值的api;

将每一被修改所对应透明值的半透明物体,确定为待处理半透明物体。

可选地,所述渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

所述调整所述渲染批次信息,使得所述多个待处理半透明物体处于同一渲染顺序的步骤,包括:

将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级,使得所述多个待处理半透明物体处于同一渲染顺序,其中,所述目标渲染层级为:预设渲染层级,或所述多个待处理半透明物体中任一半透明物体对应的当前渲染层级;

所述基于调整后的渲染批次信息,渲染所述待渲染场景中所述多个待处理半透明物体的步骤,包括:

基于调整后的当前渲染层级,渲染所述待渲染场景中所述多个待处理半透明物体。

可选地,所述将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级的步骤,包括:

通过sortinggroup组件,将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级。

可选地,所述渲染批次信息包括:待处理半透明物体对应的目标透明值;

所述调整所述渲染批次信息,使得所述多个待处理半透明物体处于同一渲染顺序的步骤,包括:

获得预设透明值纹理,并获得每一待处理半透明物体在所述待渲染场景中的区域;

基于所获得的每一待处理半透明物体在所述待渲染场景中的区域,在所述预设透明值纹理中,确定出每一待处理半透明物体对应的区域;

将每一待处理半透明物体对应的目标透明值,存储于所述预设透明值纹理中的每一待处理半透明物体对应的区域内,使得所述多个待处理半透明物体处于同一渲染顺序。

可选地,所述渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

所述基于调整后的渲染批次信息,渲染所述待渲染场景中所述多个待处理半透明物体的步骤,包括:

获得所述待渲染场景中每一不透明物体对应的渲染层级以及其他半透明物体对应的渲染层级;

基于每一不透明物体对应的渲染层级、其他半透明物体对应的渲染层级以及所述多个待处理半透明物体对应的调整后的当前渲染层级,确定所述多个待处理半透明物体的渲染顺序;

基于所述多个待处理半透明物体的渲染顺序,渲染所述多个待处理半透明物体。

另一方面,本发明实施例提供了一种场景中半透明物体的渲染装置,所述装置包括:

获得模块,用于分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,所述渲染批次信息用于指示所述每一半透明物体的渲染顺序;

调整模块,用于调整所述渲染批次信息,使得所述多个待处理半透明物体处于同一渲染顺序;

渲染模块,用于基于调整后的渲染批次信息,渲染所述待渲染场景中所述多个待处理半透明物体。

可选地,所述装置还包括:

遍历获得模块,用于在所述分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息之前,遍历待渲染场景,获得所述待渲染场景中的所有半透明物体;

确定模块,用于从所述所有半透明物体中,确定出被修改所对应透明值的多个半透明物体,作为待处理半透明物体。

可选地,所述装置还包括:修改模块,用于修改半透明物体对应的透明值,其中,所述修改模块,包括:

确定单元,用于从所述所有半透明物体中,确定出需要修改所对应透明值的半透明物体;

获得单元,用于获得每一需要修改所对应透明值的半透明物体对应的目标透明值;

修改单元,用于通过调用预设api的方式,将每一需要修改所对应透明值的半透明物体对应的透明值,修改为其对应的目标透明值,其中,所述预设api为用于修改物体对应的透明值的api。

可选地,所述渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

所述调整模块,具体用于

将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级,使得所述多个待处理半透明物体处于同一渲染顺序,其中,所述目标渲染层级为:预设渲染层级,或所述多个待处理半透明物体中任一半透明物体对应的当前渲染层级;

所述渲染模块,具体用于

基于调整后的当前渲染层级,渲染所述待渲染场景中所述多个待处理半透明物体。

可选地,所述调整模块,具体用于

通过sortinggroup组件,将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级。

可选地,所述渲染批次信息包括:待处理半透明物体对应的目标透明值;

所述调整模块,用于获得预设透明值纹理,并获得每一待处理半透明物体在所述待渲染场景中的区域;

基于所获得的每一待处理半透明物体在所述待渲染场景中的区域,在所述预设透明值纹理中,确定出每一待处理半透明物体对应的区域;

将每一待处理半透明物体对应的目标透明值,存储于所述预设透明值纹理中的每一待处理半透明物体对应的区域内,使得该多个待处理半透明物体处于同一渲染顺序。

可选地,所述渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

所述渲染模块,具体用于

获得所述待渲染场景中每一不透明物体对应的渲染层级以及其他半透明物体对应的渲染层级;

基于每一不透明物体对应的渲染层级、其他半透明物体对应的渲染层级以及所述多个待处理半透明物体对应的调整后的当前渲染层级,确定所述多个待处理半透明物体的渲染顺序;

基于所述多个待处理半透明物体的渲染顺序,渲染所述多个待处理半透明物体。

另一方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的计算机程序时,实现本发明实施例所提供的上述任一所述的场景中半透明物体的渲染方法步骤。

另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的上述任一所述的场景中半透明物体的渲染方法步骤。

本发明实施例提供的技术方案中,分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,渲染批次信息用于指示每一半透明物体的渲染顺序;调整渲染批次信息,使得多个待处理半透明物体处于同一渲染顺序;基于调整后的渲染批次信息,渲染待渲染场景中多个待处理半透明物体。本发明实施例中,调整每一待处理半透明物体对应的渲染批次信息,使得所有的待处理半透明物体处于同一渲染顺序,即处于同一渲染批次,使得电子设备在渲染时,可以同一批次渲染所有的待处理半透明物体,实现降低半透明物体的渲染次数,提高电子设备的渲染性能。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种场景中半透明物体的渲染方法的流程示意图;

图2a为本发明实施例所提供的一种场景中半透明物体的渲染方法的另一流程示意图;

图2b为一种待渲染场景的场景示意图;

图3为本发明实施例所提供的一种场景中半透明物体的渲染装置的结构示意图;

图4为本发明实施例所提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种场景中半透明物体的渲染方法、装置及电子设备,以实现降低半透明物体的渲染次数,提高电子设备的渲染性能。

如图1所示,本发明实施例提供了一种场景中半透明物体的渲染方法,可以包括如下步骤:

s101:分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;

其中,该渲染批次信息用于指示每一半透明物体的渲染顺序,即每一待处理半透明物体对应的渲染批次信息可以影响每一待处理半透明物体的渲染顺序。在一种实现方式中,该渲染批次信息可以包括待处理透明物体对应的当前渲染层级。另一种实现方式中,该渲染批次信息可以包括待处理透明物体对应的所需渲染的透明值。

可以理解的是,本发明实施例所提供的场景中半透明物体的渲染方法,可以应用于任一类型的电子设备中,该电子设备可以为电脑、一体机、手机以及游戏机等设备。一种情况中,实现本发明实施例所提供的场景中半透明物体的渲染方法的功能软件,可以以专门的客户端软件的形式存在,也可以以现有的客户端软件的插件的形式存在,这都是可以的。

一种实现中,电子设备可以遍历待渲染场景,获得遍历该待渲染场景的遍历结果信息,其中,该遍历结果信息可以包括:该待渲染场景中所有的需要渲染的物体、每一需要渲染的物体的材质、每一需要渲染的物体的深度信息以及每一需要渲染的物体的渲染效果等信息,每一需要渲染的物体的渲染效果可以包括:每一需要渲染的物体所需渲染的颜色值以及透明值等。该待渲染场景为需要进行渲染的场景。

在一种实现中,该待渲染场景可以为游戏场景,当用户改变查看游戏场景的角度和/或位置时,则需要重新渲染游戏场景。在一种情况中,用户可以通过改变的其控制的游戏角色的位置和/或查看角度,来改变查看游戏场景的角度和/或位置。

在一种实现方式中,可以基于每一需要渲染的物体对应的材质,确定出待渲染场景中所需渲染的不透明物体以及半透明物体。其中,本发明实施例中,半透明物体可以指所对应材质为透明材质的物体,透明材质可以包括玻璃材质、塑料材质以及橡胶材质等。半透明物体对应的透明值的取值范围可以为:[0,255],或者[0,1],半透明物体对应的透明值可以决定半透明物体的透明程度的呈现效果,半透明物体对应的透明值越大,该半透明物体的呈现效果表现为越不透明。

在一种情况中,可以确定待渲染场景中所有的所需渲染的半透明物体,为待处理透明物体。也可以确定被修改所需渲染的透明值的半透明物体,为待处理半透明物体。

在一种实现方式中,在所述分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息的步骤之前,所述方法还可以包括:

遍历待渲染场景,获得待渲染场景中的所有半透明物体;

从所有半透明物体中,确定出被修改所对应透明值的多个半透明物体,作为待处理半透明物体。

本发明实施例中,遍历待渲染场景,获得待渲染场景的遍历结果信息,通过该遍历结果信息可以确定出待渲染场景中哪些待渲染的物体的材质为透明材质,且需要修改哪些材质为透明材质的物体对应的透明值。进而电子设备可以修改每一需要修改所对应透明值的物体的透明值,并确定每一需要修改所对应透明值的物体,为待处理半透明物体。从所获得的待渲染场景的遍历结果信息中,查找到多个待处理半透明物体中每一待处理半透明物体对应的渲染批次信息。

一种情况中,电子设备在遍历待渲染场景时,当遍历完一半透明物体之后,再遍历下一半透明物体时,发现该下一半透明物体对应的所需渲染的透明值发生改变,例如:与其之前的半透明物体对应的所需渲染的透明值不同,此时,可以将该下一半透明物体,确定为待渲染场景中的需要修改所对应透明值的半透明物体,进而修改该需要修改所对应透明值的半透明物体的透明值,并确定该修改透明值后的半透明物体为待处理半透明物体。另一种情况,当遍历完一半透明物体之后,再遍历下一半透明物体时,发现该下一半透明物体之前渲染时出现过修改所对应透明值的情况,此时,也可以将该下一半透明物体,确定为待处理半透明物体。

在一种可选地实现方式中,所述方法还可以包括:修改半透明物体对应的透明值的过程,其中,所述过程可以包括:

从所有半透明物体中,确定出需要修改所对应透明值的半透明物体;

获得每一需要修改所对应透明值的半透明物体对应的目标透明值;

通过调用预设api的方式,将每一需要修改所对应透明值的半透明物体对应的透明值,修改为其对应的目标透明值,其中,该预设api为用于修改物体对应的透明值的api。

其中,每一需要修改所对应透明值的半透明物体对应的目标透明值,即为上述提到的半透明物体对应的所需渲染的透明值。可以理解的是,可以从遍历待渲染场景所得的遍历结果信息中,获得每一需要修改所对应透明值的半透明物体对应的目标透明值。进而,调用预设api(applicationprograminterface,应用程序接口)将每一需要修改所对应透明值的半透明物体对应的透明值,修改为其对应的目标透明值。

在一种实现方式中,电子设备可以通过unity引擎渲染待处理半透明物体,上述预设api可以为materialpropertyblock.setcolor。

s102:调整渲染批次信息,使得多个待处理半透明物体处于同一渲染顺序;

s103:基于调整后的渲染批次信息,渲染待渲染场景中多个待处理半透明物体。

在确定出待渲染场景中的待处理半透明物体之后,可以调整该多个待处理半透明物体中每一待处理半透明物体对应的渲染批次信息,使得该多个待处理半透明物体处于同一渲染顺序,即处于同一渲染批次。进而,电子设备可以基于调整后的渲染批次信息,同批次的渲染待渲染场景中的该多个待处理半透明物体。

在一种实现方式中,当待处理半透明物体的材质和/或透明值不同时,待处理半透明物体对应的渲染层级会存在不同。每一待处理半透明物体对应的渲染层级,可以影响待处理半透明物体所处于的渲染顺序。每一待处理半透明物体对应的渲染层级不同时,在渲染的过程中,每一待处理半透明物体所处于的渲染顺序不同。

鉴于此,本发明实施例中,该渲染批次信息可以包括:待处理半透明物体对应的当前渲染层级,电子设备可以将每一待处理半透明物体对应的当前渲染层级修改为相同的渲染层级,使得多个待处理半透明物体处于同一渲染顺序,使得电子设备在渲染时,将对应相同的渲染层级的待处理半透明物体合并成同一渲染批次进行渲染,实现同一批次渲染所有的待处理半透明物体。

在另一种实现方式中,该渲染批次信息可以包括:待处理半透明物体对应的透明值。电子设备可以将每一待处理半透明物体对应的透明值,存储于一预设纹理中,统一所有的待处理半透明物体的纹理,使得电子设备在渲染待处理半透明物体时,所有的待处理半透明物体的透明值均是从预设纹理中读取,并进行渲染,使得电子设备将该多个待处理半透明物体认为是纹理相同的待处理半透明物体,处于同一渲染顺序;将该多个待处理半透明物体合并成同一渲染批次进行渲染,实现同一批次渲染所有的待处理半透明物体。

本发明实施例提供的技术方案中,分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,渲染批次信息用于指示每一半透明物体的渲染顺序;调整渲染批次信息,使得多个待处理半透明物体处于同一渲染顺序;基于调整后的渲染批次信息,渲染待渲染场景中多个待处理半透明物体。本发明实施例中,调整每一待处理半透明物体对应的渲染批次信息,使得所有的待处理半透明物体处于同一渲染顺序,即处于同一渲染批次,使得电子设备在渲染时,可以同一批次渲染所有的待处理半透明物体,实现降低半透明物体的渲染次数,提高电子设备的渲染性能。

其中,当待渲染场景中的待处理半透明物体的数量越多,越能体现本发明实施例所提供的场景中半透明物体的渲染方法的效果越明显。当上述待渲染场景为游戏场景时,可以提高游戏的帧率,并提高游戏的流畅性。

在一种实现方式中,如图2a所示,所述方法可以包括如下步骤:

s201:分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;

其中,该渲染批次信息用于指示每一半透明物体的渲染顺序;该渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

s202:将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级,使得多个待处理半透明物体处于同一渲染顺序;

其中,目标渲染层级为:预设渲染层级,或多个待处理半透明物体中任一半透明物体对应的当前渲染层级。

s203:基于调整后的当前渲染层级,渲染待渲染场景中多个待处理半透明物体。

本实现方式中,将每一待处理半透明物体对应的当前渲染层级修改为相同的渲染层级,可以是将该多个待处理半透明物体对应的当前渲染层级,修改为该多个待处理半透明物体中的任一待处理半透明物体对应的当前渲染层级,可也是修改为预设渲染层级,该预设渲染层级存在唯一性,避免与待渲染场景中其他的待渲染的不透明物体和/或半透明物体对应的渲染层级出现重复。其中,该待渲染场景中其他的待渲染的半透明物体为:该待渲染场景中未被确定为待处理半透明物体的半透明物体。

在一种实现方式中,电子设备可以通过unity引擎渲染待处理半透明物体,一种情况,电子设备可以通过sortinggroup组件,修改每一待处理半透明物体对应的当前渲染层级,即通过sortinggroup组件,将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级。

在一种实现方式中,电子设备获得待处理半透明物体对应的当前渲染层级的方式,可以是:从遍历待渲染场景所得到的遍历结果信息中,确定出每一待处理半透明物体对应的深度信息,其中,该深度信息可以表征:每一待处理半透明物体与虚拟摄像机所处位置之间的距离。该虚拟摄像机所处位置可以为用户查看该待渲染场景的位置,该虚拟摄像机针对该待渲染场景的采集角度为:该待渲染场景向用户进行展示的展示角度。在一种情况中,当上述待渲染场景为游戏场景时,上述虚拟摄像机所处位置为:用户查看游戏场景的视点位置。

电子设备可以基于每一待处理半透明物体对应的深度信息,确定出每一待处理半透明物体对应的当前渲染层级。具体的可以是:按照每一待处理半透明物体对应的深度信息的大小,确定出每一待处理半透明物体对应的当前渲染层级,其中,待处理半透明物体对应的深度信息越大,表征该待处理半透明物体与视点所处位置之间的距离越大,待处理半透明物体对应的当前渲染层级的级别越高,即越早渲染该待处理半透明物体。也就是说,待处理半透明物体对应的深度信息越大,越早渲染该待处理半透明物体。在一种情况中,待处理半透明物体对应的当前渲染层级可以通过数值标识,待处理半透明物体对应的当前渲染层级的数值越小,表征待处理半透明物体对应的当前渲染层级的级别越高。

在一种实现方式中,所述渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

所述基于调整后的渲染批次信息,渲染待渲染场景中多个待处理半透明物体的步骤,可以包括:

获得待渲染场景中每一不透明物体对应的渲染层级以及其他半透明物体对应的渲染层级;其中,该其他半透明物体为:该待渲染场景中除待处理半透明物体外的其他的半透明物体

基于每一不透明物体对应的渲染层级、其他半透明物体对应的渲染层级以及多个待处理半透明物体对应的调整后的当前渲染层级,确定多个待处理半透明物体的渲染顺序;

基于多个待处理半透明物体的渲染顺序,渲染多个待处理待处理半透明物体。

在一种实现方式中,电子设备在渲染该待渲染场景中的待渲染物体时,可以基于每一不透明物体对应的渲染层级、其他半透明物体对应的渲染层级以及调整后的每一待处理半透明物体对应的当前渲染层级,先对物体进行排序,确定出待渲染场景中每一不透明物体的渲染顺序,其他半透明物体的渲染顺序以及该多个待处理半透明物体的渲染顺序。其中,可以是首先渲染该待渲染场景中每一不透明物体,在待渲染场景中所有不透明物体渲染完成后,再渲染半透明物体,其中,渲染半透明物体时,该多个待处理半透明物体处于同一渲染顺序,同批次渲染该多个待处理半透明物体。

如图2b所示为一种待渲染场景的示意图,其中,待渲染场景中包含a、b、c和d四个待渲染的物体。电子设备遍历该待渲染场景,获得该待渲染场景的遍历结果信息,通过遍历结果信息,确定出该待渲染场景中存在两个待处理半透明物体,包括b和c;两个不透明物体,包括a和d。通过查询结果信息中的每一待渲染的物体对应的深度信息,确定出待处理半透明物体b和c分别对应的渲染层级,不透明物体a和d对应的渲染层级,将所确定出的待处理半透明物体b和c分别对应的渲染层级,作为当前渲染层级,并修改为目标渲染层级。后续的,在渲染过程中,电子设备基于不透明物体a和d对应的渲染层级和待处理半透明物体b和c对应的目标渲染层级,对不透明物体a和d以及待处理半透明物体b和c进行排序,得到不透明物体a和d的渲染顺序,和待处理半透明物体b和c的渲染顺序;当不透明物体a和d各自对应的材质相同时,可以确定不透明物体a和d为渲染顺序为1,确定待处理半透明物体b和c为渲染顺序为2;此时,电子设备按照所确定的渲染顺序,首先同批次渲染不透明物体a和d,再同批次渲染待处理半透明物体b和c。

在一种实现方式中,该渲染批次信息包括:待处理半透明物体对应的目标透明值;

所述调整渲染批次信息,使得多个待处理半透明物体处于同一渲染顺序的步骤,可以包括:

获得预设透明值纹理,并获得每一待处理半透明物体在待渲染场景中的区域;

基于所获得的每一待处理半透明物体在所述待渲染场景中的区域,在预设透明值纹理中,确定出每一待处理半透明物体对应的区域;

将每一待处理半透明物体对应的目标透明值,存储于预设透明值纹理中的每一待处理半透明物体对应的区域内,使得所有的待处理半透明物体处于同一渲染顺序。

其中,上述预设透明值纹理:为预先设置的用于存储待渲染场景中所有待处理半透明物体对应的目标透明值的纹理,该预设透明值纹理可以包含n*m个第一单元格,其中,m和n均为正整数。

电子设备获得每一待处理半透明物体在待渲染场景中的区域,其中,每一待处理半透明物体在待渲染场景中的区域被预先划分为多个第二单元格。

建立每一待处理半透明物体在待渲染场景中的区域中的第二单元格,与预设透明值纹理中的第一单元格之间的对应关系,以在预设透明值纹理中,确定出每一待处理半透明物体对应的区域。其中,每一待处理半透明物体在待渲染场景中的区域中的第二单元格,与预设透明值纹理中的第一单元格存在一一对应的关系。将每一待处理半透明物体对应的目标透明值,存储于预设透明值纹理中的每一待处理半透明物体对应的区域内。

后续的,将待处理半透明物体对应的目标透明值,存储于预设透明值纹理中的每一待处理半透明物体对应的区域内,电子设备在渲染待处理半透明物体时,可以直接从上述预设透明值纹理中,读取所存储的每一待处理半透明物体对应的目标透明值,并直接对每一待处理半透明物体进行目标透明值赋值,并基于该目标透明值进行渲染。区别于现有技术中渲染待处理半透明物体时,需要先基于一待处理半透明物体对应的目标透明值渲染完一个待处理半透明物体后,再基于另一待处理半透明物体对应的目标透明值渲染该待处理半透明物体,以此类推,形成分批次渲染不同的待处理半透明物体。本发明实施例中,可以一次性地从预设透明值纹理中读取得到所有待处理半透明物体对应的目标透明值,并进行渲染,使得电子设备认为该所有的待处理半透明物体为同一渲染纹理的半透明物体,并不会对待处理半透明物体进行分批次渲染,使得多个待处理半透明物体处于同一渲染顺序,进而,可以同批次渲染所有的待处理半透明物体。

相应于上述方法实施例,本发明实施例提供了一种场景中半透明物体的渲染装置,如图3所示,所述装置包括:

获得模块310,用于分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,所述渲染批次信息用于指示所述每一半透明物体的渲染顺序;

调整模块320,用于调整所述渲染批次信息,使得所述多个待处理半透明物体处于同一渲染顺序;

渲染模块330,用于基于调整后的渲染批次信息,渲染所述待渲染场景中所述多个待处理半透明物体。

本发明实施例提供的技术方案中,分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,渲染批次信息用于指示每一半透明物体的渲染顺序;调整渲染批次信息,使得多个待处理半透明物体处于同一渲染顺序;基于调整后的渲染批次信息,渲染待渲染场景中多个待处理半透明物体。本发明实施例中,调整每一待处理半透明物体对应的渲染批次信息,使得所有的待处理半透明物体处于同一渲染顺序,即处于同一渲染批次,使得电子设备在渲染时,可以同一批次渲染所有的待处理半透明物体,实现降低半透明物体的渲染次数,提高电子设备的渲染性能。

其中,当待渲染场景中的待处理半透明物体的数量越多,越能体现本发明实施例所提供的场景中半透明物体的渲染方法的效果越明显。当上述待渲染场景为游戏场景时,可以提高游戏的帧率,并提高游戏的流畅性。

在一种实现方式中,所述装置还包括:

遍历获得模块,用于在所述分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息之前,遍历待渲染场景,获得所述待渲染场景中的所有半透明物体;

确定模块,用于从所述所有半透明物体中,确定出被修改所对应透明值的多个半透明物体,作为待处理半透明物体。

在一种实现方式中,所述装置还包括:

修改模块,用于修改半透明物体对应的透明值,其中,所述修改模块,包括:

确定单元,用于从所述所有半透明物体中,确定出需要修改所对应透明值的半透明物体;

获得单元,用于获得每一需要修改所对应透明值的半透明物体对应的目标透明值;

修改单元,用于通过调用预设api的方式,将每一需要修改所对应透明值的半透明物体对应的透明值,修改为其对应的目标透明值,其中,所述预设api为用于修改物体对应的透明值的api。

在一种实现方式中,所述渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

所述调整模块320,具体用于

将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级,使得所述多个待处理半透明物体处于同一渲染顺序,其中,所述目标渲染层级为:预设渲染层级,或所述多个待处理半透明物体中任一半透明物体对应的当前渲染层级;

所述渲染模块330,具体用于

基于调整后的当前渲染层级,渲染所述待渲染场景中所述多个待处理半透明物体。

在一种实现方式中,所述调整模块320,具体用于

通过sortinggroup组件,将每一待处理半透明物体对应的当前渲染层级,修改为目标渲染层级。

在一种实现方式中,所述渲染批次信息包括:待处理半透明物体对应的目标透明值;

所述调整模块320,用于获得预设透明值纹理,并获得每一待处理半透明物体在所述待渲染场景中的区域;

基于所获得的每一待处理半透明物体在所述待渲染场景中的区域,在所述预设透明值纹理中,确定出每一待处理半透明物体对应的区域;

将每一待处理半透明物体对应的目标透明值,存储于所述预设透明值纹理中的每一待处理半透明物体对应的区域内,使得该多个待处理半透明物体处于同一渲染顺序。

在一种实现方式中,所述渲染批次信息包括:待处理半透明物体对应的当前渲染层级;

所述渲染模块330,具体用于

获得所述待渲染场景中每一不透明物体对应的渲染层级以及其他半透明物体对应的渲染层级;

基于每一不透明物体对应的渲染层级、其他半透明物体对应的渲染层级以及所述多个待处理半透明物体对应的调整后的当前渲染层级,确定所述多个待处理半透明物体的渲染顺序;

基于所述多个待处理半透明物体的渲染顺序,渲染所述多个待处理半透明物体。

相应于上述方法实施例,本发明实施例还提供了一种电子设备,如图4所示,包括处理器410、通信接口420、存储器430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信,

存储器430,用于存放计算机程序;

处理器410,用于执行存储器430上所存放的计算机程序时,实现本发明实施例所提供的任一项所述的场景中半透明物体的渲染方法步骤。

本发明实施例提供的技术方案中,分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,渲染批次信息用于指示每一半透明物体的渲染顺序;调整渲染批次信息,使得多个待处理半透明物体处于同一渲染顺序;基于调整后的渲染批次信息,渲染待渲染场景中多个待处理半透明物体。本发明实施例中,调整每一待处理半透明物体对应的渲染批次信息,使得所有的待处理半透明物体处于同一渲染顺序,即处于同一渲染批次,使得电子设备在渲染时,可以同一批次渲染所有的待处理半透明物体,实现降低半透明物体的渲染次数,提高电子设备的渲染性能。

其中,当待渲染场景中的待处理半透明物体的数量越多,越能体现本发明实施例所提供的场景中半透明物体的渲染方法的效果越明显。当上述待渲染场景为游戏场景时,可以提高游戏的帧率,并提高游戏的流畅性。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

相应于上述方法实施例,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的任一项所述的场景中半透明物体的渲染方法步骤。

本发明实施例提供的技术方案中,分别获得待渲染场景中,多个待处理半透明物体中每一待处理半透明物体所对应的渲染批次信息;其中,渲染批次信息用于指示每一半透明物体的渲染顺序;调整渲染批次信息,使得多个待处理半透明物体处于同一渲染顺序;基于调整后的渲染批次信息,渲染待渲染场景中多个待处理半透明物体。本发明实施例中,调整每一待处理半透明物体对应的渲染批次信息,使得所有的待处理半透明物体处于同一渲染顺序,即处于同一渲染批次,使得电子设备在渲染时,可以同一批次渲染所有的待处理半透明物体,实现降低半透明物体的渲染次数,提高电子设备的渲染性能。

其中,当待渲染场景中的待处理半透明物体的数量越多,越能体现本发明实施例所提供的场景中半透明物体的渲染方法的效果越明显。当上述待渲染场景为游戏场景时,可以提高游戏的帧率,并提高游戏的流畅性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1