一种渲染方法、装置、设备以及存储介质与流程

文档序号:31708664发布日期:2022-10-01 13:34阅读:71来源:国知局
一种渲染方法、装置、设备以及存储介质与流程

1.本发明涉及计算机技术领域,特别是涉及一种渲染方法、装置、设备以及存储介质。


背景技术:

2.在游戏开发领域,游戏开发人员倾向于在游戏场景中添加各种绚丽的特效,来提升游戏场景视觉效果的真实性。但是,添加过多的特效会带来渲染压力。为了降低渲染压力,需要对特效做分级显示,即lod(levels of detail,多细节层次)分级。其中,lod分级的目的在于当特效远离观察点时,减少渲染特效的复杂度。
3.相关技术中,通过配置lod切换距离的阈值,即配置观察点与特效之间的距离的阈值,并控制不同的阈值下粒子系统中的粒子数量,实现lod分级,从而显示不同的特效效果。例如,若客户端游戏场景中的一个爆炸的特效,该特效的粒子系统由渲染为火焰、火星、烟雾的粒子组成,且lod切换距离的阈值分别设置为10米和20米;当观察点与特效之间的距离小于10米时,该特效的粒子系统中所有粒子都渲染;当观察点与特效之间的距离大于10米小于20米时,只渲染火焰粒子,从而实现了分级显示,降低了渲染压力。但是,相关技术中通过手动设置lod切换距离的阈值以及不同阈值下粒子系统中的粒子数量的方式,实现特效分级显示,会导致lod切换时特效效果变化突兀。
4.因此,亟需一种可以提高lod切换时,特效效果变化的平滑度的渲染方法。


技术实现要素:

5.本发明实施例的目的在于提供一种渲染方法、装置、设备以及存储介质,以提高lod切换时,特效效果变化的平滑度。具体技术方案如下:
6.第一方面,本发明实施例提供了一种渲染方法,所述方法包括:
7.获取待渲染的粒子系统;
8.根据所述粒子系统中每一粒子的指定指标,将所述粒子系统中的各个粒子分为多个等级;其中,所述指定指标为表征在画面显示时的显示效果的指标,每一等级下的粒子的指定指标,处于同一预设指标范围内;
9.基于预设的指标阈值,确定每一等级对应的临界屏占比;其中,所述指标阈值为表征粒子是否显示的临界指标值;所述每一等级对应的临界屏占比为表征该等级的粒子是否显示的屏占比临界值;
10.针对每一等级,基于该等级对应的临界屏占比,以及所述粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;
11.若是,对所述目标等级下的粒子进行渲染。
12.可选地,所述基于预设的指标阈值,确定每一等级对应的临界屏占比,包括:
13.针对每一等级,确定该等级下的粒子中,指定粒子的指定指标;其中,所述指定粒子为该等级中指定指标最大的粒子;
14.将所述指定粒子的指定指标,缩放到所述指标阈值时所利用的缩放系数,作为该等级对应的临界屏占比。
15.可选地,所述针对每一等级,基于该等级对应的临界屏占比,以及所述粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级,包括:
16.针对每一等级,若所述粒子系统对应的目标屏占比大于该等级对应的临界屏占比,将该等级确定为待渲染的目标等级。
17.可选地,所述对所述目标等级下的粒子进行渲染,包括:
18.基于各个等级对应的临界屏占比,确定多个屏占比区间;其中,每一屏占比区间为表征显示不完全相同的等级的粒子的区间;
19.针对每一目标等级,若所述目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间内,基于所述指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数;若所述目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间外,将该目标等级下的粒子总数,确定为该目标等级待渲染的目标粒子数;
20.按照针对每一目标等级所确定的待渲染的目标粒子数,对该目标等级下的粒子进行渲染。
21.可选地,所述基于所述指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数,包括:
22.计算所述目标屏占比与所述指定屏占比区间的下限值之间的差值;
23.将所述差值与所述指定屏占比区间所对应的区间长度的比值,作为该目标等级待渲染的粒子的比例;
24.将所述该目标等级待渲染的粒子的比例与该目标等级下的粒子总数的乘积,确定为该目标等级待渲染的目标粒子数
25.第二方面,本发明实施例提供了一种渲染装置,所述装置包括:
26.获取模块,用于获取待渲染的粒子系统;
27.划分模块,用于根据所述粒子系统中每一粒子的指定指标,将所述粒子系统中的各个粒子分为多个等级;其中,所述指定指标为表征在画面显示时的显示效果的指标,每一等级下的粒子的指定指标,处于同一预设指标范围内;
28.第一确定模块,用于基于预设的指标阈值,确定每一等级对应的临界屏占比;其中,所述指标阈值为表征粒子是否显示的临界指标值;所述每一等级对应的临界屏占比为表征该等级的粒子是否显示的屏占比临界值;
29.第二确定模块,用于针对每一等级,基于该等级对应的临界屏占比,以及所述粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;
30.渲染模块,用于若是,对所述目标等级下的粒子进行渲染。
31.可选地,所述第一确定模块,包括:
32.第一确定子模块,用于针对每一等级,确定该等级下的粒子中,指定粒子的指定指标;其中,所述指定粒子为该等级中指定指标最大的粒子;
33.第二确定子模块,用于将所述指定粒子的指定指标,缩放到所述指标阈值时所利用的缩放系数,作为该等级对应的临界屏占比;还用于针对每一等级,若所述粒子系统对应
的目标屏占比大于该等级对应的临界屏占比,将该等级确定为待渲染的目标等级。
34.可选地,所述渲染模块,包括:
35.区间确定子模块,用于基于各个等级对应的临界屏占比,确定多个屏占比区间;其中,每一屏占比区间为表征显示不完全相同的等级的粒子的区间;
36.粒子数确定子模块,用于针对每一目标等级,若所述目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间内,基于所述指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数;若所述目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间外,将该目标等级下的粒子总数,确定为该目标等级待渲染的目标粒子数;
37.渲染子模块,用于按照针对每一目标等级所确定的待渲染的目标粒子数,对该目标等级下的粒子进行渲染。
38.可选地,所述粒子数确定子模块基于所述指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数,包括:
39.计算所述目标屏占比与所述指定屏占比区间的下限值之间的差值;
40.将所述差值与所述指定屏占比区间所对应的区间长度的比值,作为该目标等级待渲染的粒子的比例;
41.将所述该目标等级待渲染的粒子的比例与该目标等级下的粒子总数的乘积,确定为该目标等级待渲染的目标粒子数。
42.第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
43.存储器,用于存放计算机程序;
44.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的渲染方法的步骤。
45.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的渲染方法的步骤。
46.本发明实施例有益效果:
47.本发明实施例提供的方案,获取待渲染的粒子系统,根据该粒子系统中每一粒子的指定指标,将粒子系统中的各个粒子分为多个等级;基于预设的指标阈值,确定每一等级对应的临界屏占比;针对每一等级,基于该等级对应的临界屏占比,以及粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;若是,对所述目标等级下的粒子进行渲染。由于预设的指标阈值为表征粒子是否显示的临界指标值,通过该指标阈值确定每一等级对应的临界屏占比,当粒子系统所对应的目标屏占比小于某一等级对应的临界屏占比,该等级的粒子不渲染,即不显示该等级的粒子,从而利用不同等级对应的临界屏占比,实现lod分级。并且,由于该粒子系统中除目标等级外的其他等级的粒子,为粒子系统中指定指标较小的粒子,通过对目标等级下的粒子进行渲染,而不渲染该其他等级的粒子可以降低特效渲染复杂度,并且,对用户观看特效的影响小,提高了lod切换时特效效果变化的平滑度。另外,通过将该渲染方法制作为组件,只需调整组件参数,即预设的指标阈值,即可在游戏中实时看到不同的lod切换时的特效效果。相较于人工制作lod切换时的特效而言,该组
件的成本低、效果优且使用方便,只需将组件添加到特效上即可。
48.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
49.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
50.图1为本发明实施例所提供的一种渲染方法的流程图;
51.图2为本发明实施例所提供的渲染方法的另一流程图;
52.图3为本发明实施例所提供的渲染方法的又一流程图;
53.图4为本发明实施例所提供的渲染装置的一种结构示意图;
54.图5为实现本发明实施例所提供的渲染方法的电子设备的框图。
具体实施方式
55.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
56.在游戏开发领域,为了在游戏中丰富游戏内容,增强游戏视觉效果,游戏开发人员倾向于在游戏场景中添加各种绚丽的特效。但是,添加过多的特效会带来渲染压力,从而可能造成游戏过程中发生卡顿,影响游戏体验。
57.为了降低渲染压力,可以对特效做lod分级,当特效远离观察点时,减少渲染特效的复杂度,从而降低渲染压力。相关技术中,通过配置lod切换距离的阈值,即配置观察点与特效之间的距离的阈值,并控制不同的阈值下粒子系统中的粒子数量,实现lod分级,从而显示不同的特效效果。但是,现有通过手动设置lod切换距离的阈值以及不同阈值下粒子系统中的粒子数量的方式,实现特效分级显示,人工成本太高,且lod切换时特效效果变化突兀。
58.基于上述内容,为了提高lod切换时,特效效果变化的平滑度,本发明实施例提供了一种渲染方法、装置、设备以及存储介质。
59.下面,首先对本发明实施例所提供的一种渲染方法进行介绍。
60.本公开实施例所提供的一种渲染方法可以应用于电子设备。在具体应用中,该电子设备可以为服务器,也可以为终端设备,这都是合理的。在实际应用中,该终端设备可以是:智能手机、平板电脑、台式电脑等等。
61.具体而言,该渲染方法的执行主体可以为渲染装置。示例性的,当该渲染方法应用于终端设备时,该渲染装置可以为运行于终端设备中的功能软件,例如:特效渲染软件;当然,该渲染装置也可以为现有客户端中的插件,例如:游戏软件中的特效渲染插件。示例性的,当该渲染方法应用于服务器时,该渲染装置可以为运行于服务器中的计算机程序,该计
算机程序可以用于实现特效渲染。
62.其中,本发明实施例所提供的一种渲染方法,可以包括如下步骤:
63.获取待渲染的粒子系统;
64.根据所述粒子系统中每一粒子的指定指标,将所述粒子系统中的各个粒子分为多个等级;其中,所述指定指标为表征在画面显示时的显示效果的指标,每一等级下的粒子的指定指标,处于同一预设指标范围内;
65.基于预设的指标阈值,确定每一等级对应的临界屏占比;其中,所述指标阈值为表征粒子是否显示的临界指标值;所述每一等级对应的临界屏占比为表征该等级的粒子是否显示的屏占比临界值;
66.针对每一等级,基于该等级对应的临界屏占比,以及所述粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;
67.若是,对所述目标等级下的粒子进行渲染。
68.本发明实施例所提供的方案,获取待渲染的粒子系统,根据该粒子系统中每一粒子的指定指标,将粒子系统中的各个粒子分为多个等级;基于预设的指标阈值,确定每一等级对应的临界屏占比;针对每一等级,基于该等级对应的临界屏占比,以及粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;若是,对所述目标等级下的粒子进行渲染。由于预设的指标阈值为表征粒子是否显示的临界指标值,通过该指标阈值确定每一等级对应的临界屏占比,当粒子系统所对应的目标屏占比小于某一等级对应的临界屏占比,该等级的粒子不渲染,即不显示该等级的粒子,从而利用不同等级对应的临界屏占比,实现lod分级。并且,由于该粒子系统中除目标等级外的其他等级的粒子,为粒子系统中指定指标较小的粒子,通过对目标等级下的粒子进行渲染,而不渲染该其他等级的粒子可以降低特效渲染复杂度,并且,对用户观看特效的影响小,提高了lod切换时特效效果变化的平滑度。另外,通过将该渲染方法制作为组件,只需调整组件参数,即预设的指标阈值,即可在游戏中实时看到不同的lod切换时的特效效果。相较于人工制作lod切换时的特效而言,该组件的成本低、效果优且使用方便,只需将组件添加到特效上即可。
69.下面结合附图,对本发明实施例所提供的渲染方法进行介绍。
70.如图1所示,本发明实施例所提供的渲染方法,可以包括步骤s101-s105:
71.s101,获取待渲染的粒子系统;
72.本实施例中,粒子系统为客户端界面待渲染的所有粒子的集合,粒子系统在渲染后,会在客户端呈现出特效。可以理解的是,为了实现特效的lod分级,可以首先获取待渲染的粒子系统,以对粒子系统中的粒子进行处理,从而在渲染时可以实现lod分级。其中,粒子系统是由模拟现实中的如水、火、雾、气等效果的粒子组成,其原理是将无数的单个粒子组合使其呈现出固定形态,借由控制器、脚本来控制其整体或单个的运动,模拟出现真实的效果。
73.s102,根据该粒子系统中每一粒子的指定指标,将该粒子系统中的各个粒子分为多个等级;其中,该指定指标为表征在画面显示时的显示效果的指标,每一等级下的粒子的指定指标,处于同一预设指标范围内;
74.本实施例中,粒子系统中每一粒子的指定指标,为表征在画面显示时的显示效果的指标。示例性的,该指定指标可以是该粒子系统在一电子设备上以100%屏占比显示时,
该粒子所占的像素点数、该粒子的粒子尺寸,或者该粒子在该电子设备上的显示面积,等等。示例性的,以粒子所占的像素点数为粒子的指定指标,若粒子系统以100%屏占比在分辨率为1920*1080的手机屏幕上显示时,粒子系统中的a粒子所占的像素点数为200,则该a粒子的指定指标为200。
75.可以理解的是,由于粒子系统中的各个粒子,在画面显示时的显示效果不同,因此,可以对该各个粒子按照指定指标划分为多个等级。在将该粒子系统中的各个粒子分为多个等级时,可以预设指标范围,以将处于同一预设指标范围内的粒子划分为同一等级。示例性的,若a等级的预设指标范围为(50,100),b等级的预设指标范围为(100,200),c等级的预设指标范围为(200,500),例如粒子系统中,各个粒子的指定指标的分布为(70,80,120,145,300,400),则指定指标为70和80的粒子被分为a等级,指定指标为120和145的粒子被分为b等级,指定指标为300和400的粒子被分为c等级。需要说明的是,本实施例中的多个等级为包含2个或2个以上等级。并且,每一等级的预设指标范围,可以由相关技术人员根据需求所设定,本发明实施例对比并不限定。
76.s103,基于预设的指标阈值,确定每一等级对应的临界屏占比;其中,该指标阈值为表征粒子是否显示的临界指标值;该每一等级对应的临界屏占比为表征该等级的粒子是否显示的屏占比临界值;
77.本实施例中,粒子系统在终端设备上渲染为特效时,特效所占的屏幕指标与整个终端设备的屏幕指标的比值,为该粒子系统所对应的屏占比。为了实现lod分级,可以确定该粒子系统中每一等级对应的临界屏占比,即每一等级的粒子是否显示的屏占比临界值,当粒子系统所对应的屏占比小于某一等级对应的临界屏占比,该等级的粒子不渲染,即不显示该等级的粒子,从而利用不同等级对应的临界屏占比,实现lod分级。
78.需要说明的是,该预设的指标阈值为表征粒子是否显示的临界指标值,在实际应用过程中,为了缓解lod切换时切换效果突兀的问题,该指标阈值可以设置为对观看特效影响较小的小指标值,使得当小于该指标阈值的粒子不显示时,对用户观看特效的影响较小。具体而言,该指标阈值可以由相关技术人员根据经验以及实际的终端屏幕指标进行设定,本发明实施例对此并不限定。
79.可以理解的是,基于预设的指标阈值,确定每一等级对应的临界屏占比的实现方式可以存在多种,示例性的,在一种实现方式中,可以将每一等级下的各个指定指标的众数作为该等级对应的指定指标,通过计算该等级对应的指定指标缩放到预设的指标阈值所利用的缩放系数,将该缩放系数作为该等级对应的临界屏占比。例如:若粒子系统中a等级下的各个粒子的指定指标的众数为500,预设的指标阈值为50,则a等级对应的指定指标缩放到指标阈值的缩放系数为10%,该10%即为a等级对应的临界屏占比。
80.s104,针对每一等级,基于该等级对应的临界屏占比,以及该粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;
81.本实施例中,步骤s101所获取的待渲染的粒子系统在终端设备上渲染为特效时,特效所占的屏幕指标与整个终端设备的屏幕指标的比值,为该粒子系统所对应的目标屏占比。可以理解的是,由于每一等级对应的临界屏占比,表征该等级的粒子是否显示的屏占比临界值,当粒子系统对应的目标屏占比小于某一等级对应的临界屏占比时,该等级下的粒子不显示,从而基于该等级对应的临界屏占比,以及该粒子系统对应的目标屏占比,可以确
定需要渲染的目标等级。
82.可选地,在一种实现方式中,针对每一等级,基于该等级对应的临界屏占比,以及该粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级,可以包括:
83.针对每一等级,若该粒子系统对应的目标屏占比大于该等级对应的临界屏占比,将该等级确定为待渲染的目标等级。
84.可以理解的是,由于每一等级对应有临界屏占比,当粒子系统对应的目标屏占比小于某一等级对应的临界屏占比时,该等级下的粒子不渲染,因此,通过比较粒子系统对应的目标屏占比以及每一等级对应的临界屏占比的大小,临界屏占比小于目标屏占比的等级,即为待渲染的目标等级。示例性的,若a等级对应的临界屏占比为50%,b等级对应的临界屏占比为20%,c等级对应的临界屏占比为10%,且目标屏占比为35%。此时,通过比较目标屏占比与各个等级对应的临界屏占比,即可确定出目标等级为b等级和c等级。
85.s105,若是,对该目标等级下的粒子进行渲染。
86.本实施例中,对目标等级的粒子进行渲染,渲染的方式可以是将目标等级下的所有粒子进行渲染,或者,按照不同的目标屏占比选取不同数量的目标等级下的粒子进行渲染,等等。
87.可以理解的是,在对待渲染的粒子系统进行渲染时,通过比较该粒子系统对应的目标屏占比,与粒子系统中各个等级对应的临界屏占比,对确定出的目标等级的粒子进行渲染,其他粒子不渲染,从而可以利用各个等级对应的临界屏占比,实现lod分级。并且,由于每一等级对应的临界屏占比,为该等级所对应的指定指标缩放到预设的指标阈值所利用的缩放系数,因此,指定指标大的等级对应的临界屏占比,小于指定指标小的等级对应的临界屏占比。因此,对于同一待渲染的粒子系统而言,目标等级为该粒子系统中指定指标较大的等级,而该粒子系统中除目标等级外的其他等级的粒子,为粒子系统中指定指标较小的粒子。在lod切换时,通过不渲染该其他等级的lod粒子可以降低特效渲染复杂度,并且,对用户观看特效的影响小,解决了lod切换时切换效果突兀的问题。
88.本发明实施例所提供的方案,获取待渲染的粒子系统,根据该粒子系统中每一粒子的指定指标,将粒子系统中的各个粒子分为多个等级;基于预设的指标阈值,确定每一等级对应的临界屏占比;针对每一等级,基于该等级对应的临界屏占比,以及粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;若是,对所述目标等级下的粒子进行渲染。由于预设的指标阈值为表征粒子是否显示的临界指标值,通过该指标阈值确定每一等级对应的临界屏占比,当粒子系统所对应的目标屏占比小于某一等级对应的临界屏占比,该等级的粒子不渲染,即不显示该等级的粒子,从而利用不同等级对应的临界屏占比,实现lod分级。并且,由于该粒子系统中除目标等级外的其他等级的粒子,为粒子系统中指定指标较小的粒子,通过对目标等级下的粒子进行渲染,而不渲染该其他等级的粒子可以降低特效渲染复杂度,并且,对用户观看特效的影响小,提高了lod切换时特效效果变化的平滑度。另外,通过将该渲染方法制作为组件,只需调整组件参数,即预设的指标阈值,即可在游戏中实时看到不同的lod切换时的特效效果。相较于人工制作lod切换时的特效而言,该组件的成本低、效果优且使用方便,只需将组件添加到特效上即可。
89.可选地,在本发明的另一实施例中,如图2所示,在上述步骤s103中,基于预设的指标阈值,确定每一等级对应的临界屏占比,可以包括步骤s1031-s1032:
90.s1031,针对每一等级,确定该等级下的粒子中,指定粒子的指定指标;其中,该指定粒子为该等级中指定指标最大的粒子;
91.本实施例中,确定各个等级下指定指标最大的指定粒子的方式,可以是先获取该等级下的所有粒子的指定指标的分布,然后,从每一等级下的指定指标的分布中,确定出该等级下的指定粒子,以及该指定粒子的指定指标。
92.s1032,基于该指定粒子的指定指标,缩放到该指标阈值时所利用的缩放系数,确定该等级对应的临界屏占比。
93.本实施例中,通过确定每一等级下指定指标最大的指定粒子,根据该指定粒子的指定指标,缩放到该指标阈值时所利用的缩放系数,确定该等级对应的临界屏占比。可以理解的是,对于同一等级下的粒子而言,当指标最大的指定粒子缩放到指标阈值时,此时该等级下的所有粒子均不大于该指标阈值,该等级下的所有粒子均不用渲染,因此,根据该指定粒子的指定指标,缩放到该指标阈值时所利用的缩放系数,可以确定该等级对应的临界屏占比。并且,通过本实施例的方式,可以简单、快速地确定出各个等级对应的临界屏占比。
94.示例性的,可以将该指定粒子的指定指标,缩放到该指标阈值时所利用的缩放系数,作为该等级对应的临界屏占比。例如:若a等级下的指定粒子的指定指标为100,且指标阈值为50,在可以确定a等级对应的临界屏占比为50%。另外,需要说明的是,由于电子设备的屏幕尺寸往往是非正方形的矩形,而粒子在画面显示时的形状通常是正方形,此时,为了保证所确定的临界屏占比的准确性,还可以将该指定粒子的边长占电子设备的窗口界面的边长的比例定义为屏占比,然后将该指定粒子的指定指标,缩放到该指标阈值时所利用的缩放系数的开方值,作为该等级对应的临界屏占比。例如:若手机的游戏窗口界面的指标为800*600,且该游戏窗口界面上的a等级下的指定粒子的指定指标为600*600,由于游戏窗口界面的高为600,指定粒子的高也为600,此时若将该指定粒子的高占游戏窗口界面的高的比例作为屏占比,则该指定粒子的屏占比为100%。当游戏界面的指标缩放到800*300,缩放系数为50%,此时指定粒子由于要保持正方形,则该指定粒子的指定指标会缩放到300*300,缩放系数为25%,因此,在计算临界屏占比时,可以该指定粒子的指定指标,缩放到指标阈值时所利用的缩放系数的开方值,作为该等级对应的临界屏占比。需要说明的是,本发明实施例对该屏占比的定义以及临界屏占比的计算方式并不限定。
95.可见,通过本方案,可以简单、快速地确定出各个等级对应的临界屏占比。
96.可选地,在本发明的另一实施例中,如图3所示,在上述步骤s105中对该目标等级下的粒子进行渲染,可以包括步骤s1051-s1053:
97.s1051,基于各个等级对应的临界屏占比,确定多个屏占比区间;其中,每一屏占比区间为表征显示不完全相同的等级的粒子的区间;
98.本实施例中,由于每一等级对应的临界屏占比为表征该等级的粒子是否显示的屏占比临界值,因此,基于该各个等级的临界屏占比,可以确定出显示不完全相同的等级的粒子的屏占比区间。示例性的,若a等级对应的临界屏占比为50%,b等级对应的临界屏占比为20%,c等级对应的临界屏占比为10%,此时,可以确定出的屏占比区间有:a区间(50%-100%),若目标屏占比在该a区间内,显示的粒子的等级有a等级、b等级和c等级;b区间(20%-50%),若目标屏占比在该b区间内,显示的粒子的等级有b等级和c等级;c区间(10%-20%),若目标屏占比在该c区间内,显示的粒子的等级有c等级;d区间(0-10%),若
目标屏占比在该d区间内,a等级、b等级和c等级下的粒子均不显示。
99.s1052,针对每一目标等级,若该目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间内,基于该指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数;若该目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间外,将该目标等级下的粒子总数,确定为该目标等级待渲染的目标粒子数;
100.示例性的,若a等级对应的临界屏占比为50%,b等级对应的临界屏占比为20%,c等级对应的临界屏占比为10%。若目标屏占比为35%,此时的目标等级为b等级和c等级。针对b等级而言,由于目标屏占比位于其对应的临界屏占比作为区间下限值的指定屏占比区间内,即位于b区间(20%-50%)内,此时,基于该指定屏占比区间所对应的区间长度,确定该b等级待渲染的目标粒子数。针对c等级而言,由于该目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间外,即目标屏占比位于c区间(10%,20%)外,将该c等级下的粒子总数,确定为该c等级待渲染的目标粒子数。
101.可以理解的是,对于上述所确定的各个屏占比区间,每一屏占比区间内显示不完全相同的等级的粒子。当目标屏占比从一较大的屏占比区间,切换到相邻的一较小的屏占比区间时,会隐藏一个等级的粒子。例如上述示例中,目标屏占比从b区间,切换到c区间时,会隐藏b等级的粒子,也就是目标屏占比在b区间内,b等级粒子全部渲染,而切换到c区间时,b等级粒子全部隐藏。因此,为了进一步提高lod切换时,特效效果变化的平滑度,本实施例中,若该目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间内,基于该指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数。
102.可选地,在一种实现方式中,基于该指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数,可以包括步骤a1-a3:
103.a1,计算该目标屏占比与该指定屏占比区间的下限值之间的差值;
104.本实现方式中,对目标屏占比与该指定屏占比区间的下限值作差,得到差值。
105.a2,将该差值与该指定屏占比区间所对应的区间长度的比值,作为该目标等级待渲染的粒子的比例;
106.示例性的,若目标屏占比为35%,此时的目标等级为b等级和c等级。针对b等级而言,由于目标屏占比位于其对应的临界屏占比作为区间下限值的指定屏占比区间内,即位于b区间(20%-50%)内,此时,计算出该差值为15%,区间长度为30%,因此,该b等级待渲染的粒子的比例为50%。
107.a3,将该目标等级待渲染的粒子的比例与该目标等级下的粒子总数的乘积,确定为该目标等级待渲染的目标粒子数。
108.可以理解的是,在通过步骤a2确定出目标等级待渲染的粒子的比例后,该目标等级待渲染的粒子的比例与该目标等级下的粒子总数的乘积,即为该目标等级待渲染的目标粒子数。
109.s1053,按照针对每一目标等级所确定的待渲染的目标粒子数,对该目标等级下的粒子进行渲染。
110.可以理解的是,通过按照针对每一目标等级所确定的待渲染的目标粒子数,对该目标等级下的粒子进行渲染,在不同的目标屏占比时,所确定的待渲染的目标粒子数不同,
使得在lod切换时,切换效果更平滑。
111.可见,通过本方案,可以进一步提高lod切换时,特效效果变化的平滑度。
112.为了更好的理解本发明实施例的内容,下面结合一个具体示例进行介绍。
113.相关技术中,通过设置lod切换距离的阈值以及不同阈值下粒子系统中的粒子数量的方式,实现特效分级显示,会导致lod切换时特效效果变化突兀。并且,针对每个特效,需要手动配置lod切换距离,人工成本较高。本示例通过开发特效lod插件,降低人工工作量,同时提升lod切换时特效效果变化的平滑度。本示例所利用的lod插件,在运行时执行如下步骤:
114.第一步:配置lod切换时的像素阈值(对应于上文中预设的指标阈值)。
115.第二步:获取特效中的粒子系统。
116.第三步:根据粒子系统中粒子的大小(对应于上文中的指定指标),将各个粒子分为大、中、小三个等级。
117.第四步:根据第一步配置的像素阈值,计算每一等级对应的lod切换时的屏占比(对应于上文中的临界屏占比)。
118.第五步:根据粒子系统所对应的目标屏占比,以及每一等级对应的lod切换时的屏占比,确定待渲染的目标等级,以及各个目标等级对应的待渲染的粒子数。
119.下面结合一个具体示例,对该lod插件的执行过程进行介绍:
120.(1)设置lod切换时的像素阈值为50。
121.(2)获取特效中的粒子系统。
122.(3)获取粒子系统中粒子的大小分布为(500,450,250,200,100,80),将这些粒子系统分为3个等级:粒子的大小分布为(500,450)的粒子分为大粒子等级;中粒子等级粒子大小分布为(250,200)的粒子分为中粒子等级;粒子的大小分布为(100,80)的粒子分为小粒子等级。
123.(4)利用每一等级中最大粒子(对应于上文中的指定粒子)占用像素数,将该最大粒子所占的像素点数缩放到像素阈值时所利用的缩放系数,作为该等级对应的lod切换时的屏占比。对于大粒子等级,lod切换时的屏占比为10%;对于中粒子等级,lod切换时的屏占比为20%;对于大粒子等级,lod切换时的屏占比为50%。
124.(5)根据每一等级对应的lod切换时的屏占比,若当前粒子系统所对应的目标屏占比为35%,则小粒子等级下的待渲染粒子数为0,中粒子等级下的待渲染粒子数为粒子系统中该等级的粒子总数的50%,大粒子等级下的待渲染粒子数为粒子系统中该等级的粒子总数。
125.可见,通过本方案,可以根据不同的屏占比,自动设置特效细节,极大的降低了人工的工作量。并且,提高了lod切换时特效效果变化的平滑度。
126.相应上述方法的实施例,本发明实施例还提供了一种渲染装置,如图4所示,所述装置包括:
127.获取模块410,用于获取待渲染的粒子系统;
128.划分模块420,用于根据所述粒子系统中每一粒子的指定指标,将所述粒子系统中的各个粒子分为多个等级;其中,该指定指标为表征在画面显示时的显示效果的指标,每一等级下的粒子的指定指标,处于同一预设指标范围内;
129.第一确定模块430,用于基于预设的指标阈值,确定每一等级对应的临界屏占比;其中,所述指标阈值为表征粒子是否显示的临界指标值;所述每一等级对应的临界屏占比为表征该等级的粒子是否显示的屏占比临界值;
130.第二确定模块440,用于针对每一等级,基于该等级对应的临界屏占比,以及所述粒子系统对应的目标屏占比,确定该等级是否为待渲染的目标等级;
131.渲染模块450,用于若是,对所述目标等级下的粒子进行渲染。
132.可选地,所述第一确定模块,包括:
133.第一确定子模块,用于针对每一等级,确定该等级下的粒子中,指定粒子的指定指标;其中,所述指定粒子为该等级中指定指标最大的粒子;
134.第二确定子模块,用于将所述指定粒子的指定指标,缩放到所述指标阈值时所利用的缩放系数,作为该等级对应的临界屏占比;还用于针对每一等级,若所述粒子系统对应的目标屏占比大于该等级对应的临界屏占比,将该等级确定为待渲染的目标等级。
135.可选地,所述渲染模块,包括:
136.区间确定子模块,用于基于各个等级对应的临界屏占比,确定多个屏占比区间;其中,每一屏占比区间为表征显示不完全相同的等级的粒子的区间;
137.粒子数确定子模块,用于针对每一目标等级,若所述目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间内,基于所述指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数;若所述目标屏占比位于该目标等级对应的临界屏占比作为区间下限值的指定屏占比区间外,将该目标等级下的粒子总数,确定为该目标等级待渲染的目标粒子数;
138.渲染子模块,用于按照针对每一目标等级所确定的待渲染的目标粒子数,对该目标等级下的粒子进行渲染。
139.可选地,所述粒子数确定子模块基于所述指定屏占比区间所对应的区间长度,确定该目标等级待渲染的目标粒子数,包括:
140.计算所述目标屏占比与所述指定屏占比区间的下限值之间的差值;
141.将所述差值与所述指定屏占比区间所对应的区间长度的比值,作为该目标等级待渲染的粒子的比例;
142.将所述该目标等级待渲染的粒子的比例与该目标等级下的粒子总数的乘积,确定为该目标等级待渲染的目标粒子数。
143.本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
144.存储器503,用于存放计算机程序;
145.处理器501,用于执行存储器503上所存放的程序时,实现上述实施例中任一所述的渲染方法的步骤。
146.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
147.通信接口用于上述电子设备与其他设备之间的通信。
148.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
149.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
150.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时上述实施例中任一所述的渲染方法的步骤。
151.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一渲染方法。
152.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
153.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
154.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
155.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1