一种3D场景的优化方法、装置、设备及介质与流程

文档序号:17225400发布日期:2019-03-27 12:34阅读:208来源:国知局
一种3D场景的优化方法、装置、设备及介质与流程

本发明涉及3d开发领域,特别是涉及一种3d场景的优化方法、装置、设备及介质。



背景技术:

随着移动终端的应用程序不断发展,为了提高用户的使用体验,包括手游在内的一系列具有娱乐性质的应用程序,往往会在应用程序中构建相对庞大且复杂的3d场景,而3d场景在渲染时,会对移动终端造成cpu以及gpu方面的运算资源开销。

为了确保移动终端在渲染3d场景的过程中,资源开销处于预期的范围,进而移动终端能够相对稳定的运行3d场景,需要在对3d场景的设计开发过程中进行3d场景的优化。由于当前对于3d场景的设计开发工作是在pc端进行的,因此当前的优化方式需要将pc端开发完成的3d场景的代码编译为移动终端的安装包,以在移动终端安装并运行,进而监控移动终端的资源开销,当资源开销超过预设值时,则对3d场景进行优化,并将优化后的3d场景再次安装及运行在移动终端,并继续监控移动终端的资源开销,通过反复执行上述的操作直至移动终端的资源开销在预设值的范围内,因此当前的3d场景优化方法需要反复执行相同的操作内容,耗时相对较长,难以保证3d场景开发过程的整体效率。

由此可见,提供一种3d场景的优化方法,以相对降低进行3d场景优化时所需的时间开销,进而保证3d场景开发过程的整体效率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种3d场景的优化方法、装置、设备及介质,以相对降低进行3d场景优化时所需的时间开销,进而保证3d场景开发过程的整体效率。

为解决上述技术问题,本发明提供一种3d场景的优化方法,包括:

获取移动终端渲染3d场景的各类执行元素时所需要的资源开销;

统计目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应的目标资源开销的累计值;

当累计值超过预设值时,对目标3d场景进行优化。

优选的,执行元素具体为与移动终端的cpu渲染耗时和/或gpu渲染耗时有关联性的执行元素;

相应的,资源开销具体为cpu渲染耗时和/或gpu渲染耗时。

优选的,获取移动终端渲染3d场景的各类执行元素时所需要的资源开销具体包括:

获取3d场景中具有各类顶点数和面数的场景模型,并测试得到移动终端渲染各场景模型时产生的第一gpu渲染耗时;

获取通过移动终端的着色器对3d场景进行渲染时,各像素点平均产生的第二gpu渲染耗时。

优选的,计算各目标执行元素所对应的目标资源开销的累计值具体包括:

根据目标3d场景中包含的目标场景模型,获取并累计相应的第一gpu渲染耗时,生成中间值;

在中间值的基础上,根据目标3d场景呈现至移动终端时所需的像素点数量,累计相应数量的第二gpu渲染耗时,生成累计值。

优选的,在生成累计值后,该方法进一步包括:

根据各目标场景模型的第二gpu渲染耗时,生成目标3d场景对应的灰度图;其中,目标场景模型在灰度图中的灰度值与目标场景模型对应的第二gpu渲染耗时具有正相关性;

相应的,当累计值超过预设值时,对目标3d场景进行优化具体为:

当累计值超过预设值时,根据灰度图对目标3d场景进行优化。

优选的,获取移动终端渲染3d场景的各类执行元素时所需要的资源开销具体为:

获取移动终端渲染3d场景的各类绘制调用时所需要的cpu渲染耗时。

优选的,移动终端具体为手机。

此外,本发明还提供一种3d场景的优化装置,包括:

开销获取模块,用于获取移动终端渲染3d场景的各类执行元素时所需要的资源开销;

资源累计模块,用于统计目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应的目标资源开销的累计值;

优化模块,用于当累计值超过预设值时,对目标3d场景进行优化。

此外,本发明还提供一种3d场景的优化设备,包括:

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

处理器,用于执行计算机程序时实现如上述的3d场景的优化方法的步骤。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的3d场景的优化方法的步骤。

本发明所提供的3d场景的优化方法,首先获取移动终端渲染3d场景的各类执行元素时所需要产生的资源开销,进而统计当前开发的目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应产生的资源开销的累计值,当累计值超过预设值时,则对目标3d场景进行优化。由于本方法预先获取3d场景中各类执行元素在渲染时所产生的资源开销,进而根据所开发的目标3d场景中使用到的目标执行元素即可计算得到目标3d场景所整体产生的资源开销,因此无需在优化过程中频繁的在移动终端中安装及运行目标3d场景,减少了由于反复执行相同的操作内容而造成的时间开销;另外,由于本方法中,建立了3d场景中各类执行元素与资源开销之间的对应关系,因此能够根据该对应关系进行相对直观且有目的性的优化,相对降低了进行3d场景优化时所需的时间开销,进而保证了3d场景开发过程的整体效率。此外,本发明还提供一种3d场景的优化装置、设备及介质,有益效果同上所述。

附图说明

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

图1为本发明实施例提供的一种3d场景的优化方法的流程图;

图2为本发明实施例提供的一种3d场景的优化装置的结构图。

具体实施方式

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

本发明的核心是提供一种3d场景的优化方法,以相对降低进行3d场景优化时所需的时间开销,进而保证3d场景开发过程的整体效率。本发明的另一核心是提供一种3d场景的优化装置、设备及介质。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施例一

图1为本发明实施例提供的一种3d场景的优化方法的流程图。请参考图1,3d场景的优化方法的具体步骤包括:

步骤s10:获取移动终端渲染3d场景的各类执行元素时所需要的资源开销。

需要说明的是,本步骤中的3d场景是对于各种可能开发得到的3d场景的泛指,3d场景的各类执行元素,指的是渲染各种3d场景时可能需要运行的所有执行元素,其具体可以包括后台的绘制调用,或3d场景中的场景模型、背景画面、场景光线等一切执行过程中需要涉及到资源开销的执行元素,此处所指的资源开销可以具体包括cpu以及gpu等方面的开销。本步骤的核心思想是将3d场景中各类需要移动终端渲染的执行元素均进行资源开销的量化处理,即建立各执行元素与其自身在移动终端中渲染时所需资源开销之间的对应关系。此外,本步骤中的资源开销可以具体为时间开销、通信信道开销以及运算介质的占用开销等,应根据实际优化时的对于资源开销的具体优化需求而定,在此不做具体限定。另外,本方法中的移动终端是指与开发3d场景所使用pc端的cpu频率及gpu频率均存在差异的移动设备,具体可以为手机、平板电脑等。

步骤s11:统计目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应的目标资源开销的累计值。

需要强调的是,本步骤中的目标3d场景,是指通过设计开发获得的待优化的3d场景,由于目标3d场景的渲染需要多个特定的执行元素共同配合实现,因此本步骤中的目标执行元素属于步骤s10中所提及的执行元素的范畴。由于预先获取有各个执行元素在移动终端中渲染时所对应的资源开销,因此本步骤中对各目标执行元素所对应的目标资源开销进行累计计算,生成移动终端渲染该目标3d场景所需的资源开销的累计值。

步骤s12:当累计值超过预设值时,对目标3d场景进行优化。

可以理解的是,本步骤是将累计值与预设值进行比较,如果累计值超过预设值时,则说明移动终端渲染目标3d场景时所产生的资源开销超过了预期的标准,因此需要对目标3d场景进行相应的优化处理,具体的优化内容可以是根据目标执行元素对应的资源开销选择性的对目标执行元素进行整体的替换或删除,也可以是对目标执行元素自身的部分内容进行修改,具体应根据实际的优化需求而定。

本发明所提供的3d场景的优化方法,首先获取移动终端渲染3d场景的各类执行元素时所需要产生的资源开销,进而统计当前开发的目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应产生的资源开销的累计值,当累计值超过预设值时,则对目标3d场景进行优化。由于本方法预先获取3d场景中各类执行元素在渲染时所产生的资源开销,进而根据所开发的目标3d场景中使用到的目标执行元素即可计算得到目标3d场景所整体产生的资源开销,因此无需在优化过程中频繁的在移动终端中安装及运行目标3d场景,减少了由于反复执行相同的操作内容而造成的时间开销;另外,由于本方法中,建立了3d场景中各类执行元素与资源开销之间的对应关系,因此能够根据该对应关系进行相对直观且有目的性的优化,相对降低了进行3d场景优化时所需的时间开销,进而保证了3d场景开发过程的整体效率。

实施例二

在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。

作为一种优选的实施方式,执行元素具体为与移动终端的cpu渲染耗时和/或gpu渲染耗时有关联性的执行元素;

相应的,资源开销具体为cpu渲染耗时和/或gpu渲染耗时。

需要说明的是,由于在渲染3d场景时,往往需要根据不同的外部操作或外部所传入的指令进行相应的数据处理响应,而在3d场景中包括的内容越丰富,其所需要涉及到的数据处理响应则越多,由于cpu(centralprocessingunit,中央处理器)具有较强的逻辑响应及处理能力,因此在3d场景的渲染过程中,普遍通过cpu进行3d场景渲染时的整体逻辑控制;另外,3d场景在呈现时的效果需要通过大量的几何数据运算进行细致刻画,而gpu(graphicsprocessingunit,图形处理器)是专为执行复杂的数学和几何计算而设计的运算芯片,因此在当前的3d场景渲染中,主要依靠cpu以及gpu之间的配合工作。由于cpu与gpu的工作本质是数据运算,而运算时则会占用cpu以及gpu并产生一定的时间开销,因此衡量cpu以及gpu资源开销的具体标准应为cpu以及gpu的渲染耗时。由于cpu以及gpu是单独工作的两个芯片,并且进行数据运算的内容也各不相同,因此在优化时可以仅针对渲染3d场景时移动终端cpu或gpu方面的资源开销进行优化,也可以针对上述二者共同优化,进而本实施方式中的执行元素可以具体为与移动终端的cpu渲染耗时和/或gpu渲染耗时有关联性的执行元素。本实施方式将执行元素具体限定为与移动终端的cpu渲染耗时和/或gpu渲染耗时有关联性的执行元素,目的是为了更加明确的对移动终端渲染3d场景时所引起的主要资源开销进行优化,进而能够相对提高对于3d场景的优化效果。

在上述实施方式的基础上,作为一种优选的实施方式,获取移动终端渲染3d场景的各类执行元素时所需要的资源开销具体包括:

获取3d场景中具有各类顶点数和面数的场景模型,并测试得到移动终端渲染各场景模型时产生的第一gpu渲染耗时;

获取通过移动终端的着色器对3d场景进行渲染时,各像素点平均产生的第二gpu渲染耗时。

需要说明的是,由于考虑到在进行3d场景的渲染时,gpu方面的渲染耗时主要受影响于3d场景中场景模型所具有的顶点数和面数、移动终端渲染时所使用的着色器复杂度以及着色器对3d场景中各像素的绘制次数,因此本实施方式获取各类执行元素所需要的资源开销,具体是通过统计具有各类顶点数和面数的场景模型在移动终端渲染时产生的第一gpu渲染耗时,以及统计着色器对3d场景进行渲染时,各像素点平均产生的第二gpu渲染耗时。本实施方式对于影响gpu渲染耗时的主要因素进行了相对细化的限定,实现了对3d场景进行更有针对性的优化,能够相对提高整体的优化效果。由于3d场景是一个立体的全方位场景,并在不同镜头视角的场景中包含的场景模型往往不同,因此本实施方式中获取的场景模型可以为某一视角下的3d场景中的场景模型,在此基础上对于着色器对3d场景进行渲染也具体为对某一视角下的3d场景进行渲染,以此能够有针对性的对各个视角下的3d场景进行相应的gpu开销统计,进而有目的的实现优化。另外,由于场景物体的多样性,使用的着色器也不一样,本实施方式应根据所优化的3d场景的物体材质,使用相应的着色器进行第二gpu渲染耗时计算。

在上述实施方式的基础上,作为一种优选的实施方式,计算各目标执行元素所对应的目标资源开销的累计值具体包括:

根据目标3d场景中包含的目标场景模型,获取并累计相应的第一gpu渲染耗时,生成中间值;

在中间值的基础上,根据目标3d场景呈现至移动终端时所需的像素点数量,累计相应数量的第二gpu渲染耗时,生成累计值。

需要说明的是,由于目标3d场景中包含的目标场景模型众多,并且各目标场景模型的渲染均需要相应的第一gpu渲染耗时,因此实施方式根据各目标场景模型对相应的第一gpu渲染耗时进行累计运算;由于目标3d场景在移动终端中渲染时需要进行一定屏幕分辨率下的呈现,因此本实施方式根据目标3d场景呈现至移动终端时所需的像素点数量,累计相应数量的第二gpu渲染耗时。在上述基础上,由于第一gpu渲染耗时以及第二gpu渲染耗时是渲染3d场景时gpu最主要的资源开销,并且其二者同为时间开销,因此在本实施方式中,将其二者的时间开销进行累计,生成最终的累计值。本实施方式相对整体的方式对gpu渲染耗时进行计算,相对保证了对于gpu资源开销计算的准确性。在计算得到关于gpu资源开销的累计值后,可以进一步根据累计值计算相应的gpu帧率,以此作为评定gpu资源开销相对直观的指标。

在上述实施方式的基础上,作为一种优选的实施方式,在生成累计值后,该方法进一步包括:

根据各目标场景模型的第二gpu渲染耗时,生成目标3d场景对应的灰度图;其中,目标场景模型在灰度图中的灰度值与目标场景模型对应的第二gpu渲染耗时具有正相关性;

相应的,当累计值超过预设值时,对目标3d场景进行优化具体为:

当累计值超过预设值时,根据灰度图对目标3d场景进行优化。

由于考虑到3d场景是直观可见的画面,因此用户能够直观的看到目标3d场景中的各类目标场景模型,为了能够在此基础上更加直观的体现在通过gpu渲染各类目标场景模型时所产生的资源开销,本实施方式根据各目标场景模型的第二gpu渲染耗时,生成目标3d场景对应的灰度图,目标场景模型均以不同的灰度呈现,并且目标场景模型在灰度图中的灰度值与目标场景模型对应的第二gpu渲染耗时具有正相关性,也就是说gpu渲染耗时越高的目标场景模型呈现的灰度值越高,即越白;gpu渲染耗时越低的目标场景模型呈现的灰度值越低,即越黑。由于灰度图能够直观的体现目标场景模型对应的资源开销,因此根据灰度图对目标3d场景进行优化能够更具目的性,进而能够相对保证整体的优化效率。

此外,在上述实施方式的基础上,作为一种优选的实施方式,获取移动终端渲染3d场景的各类执行元素时所需要的资源开销具体为:

获取移动终端渲染3d场景的各类绘制调用时所需要的cpu渲染耗时。

由于在移动终端渲染3d场景时,对于3d场景镜头的移动或3d场景画面效果的变化,均需要通过cpu执行相应的绘制调用(drawcall)以进行一系列的基于逻辑控制逻辑的数据运算,因此本实施方式获取移动终端渲染3d场景的各类绘制调用时所需要的cpu渲染耗时,进而在后续步骤中对目标3d场景中cpu所需要执行的目标绘制调用进行统计资源开销的统计,本实施方式预先对cpu执行各类绘制调用产生的cpu渲染耗时进行了量化统计,相对保证了对于cpu资源开销计算的准确性。需要说明的是,本实施方式可以是根据移动端渲染3d场景时的cpu耗时与绘制调用相关的渲染数据建立数学模型,进而通过数学模型获取cpu渲染耗时与绘制调用之间的对应关系。通过数学模型获取cpu渲染耗时与绘制调用之间的对应关系时,具体是在获取到数学模型后,将与绘制调用相关的渲染数据代入该数学模型,进而计算得到对应所需的cpu渲染耗时。

此外,在上述一系列实施方式的基础上,作为一种优选的实施方式,移动终端具体为手机。

由于手机与pc端之间的cpu及gpu工作频率相差较大,因此本实施方式能够相对确保pc端所开发的3d场景在手机中渲染的整体效果。

实施例三

在上文中对于3d场景的优化方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的3d场景的优化装置,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图2为本发明实施例提供的一种3d场景的优化装置的结构图。本发明实施例提供的3d场景的优化装置,包括:

开销获取模块10,用于获取移动终端渲染3d场景的各类执行元素时所需要的资源开销。

资源累计模块11,用于统计目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应的目标资源开销的累计值。

优化模块12,用于当累计值超过预设值时,对目标3d场景进行优化。

本发明所提供的3d场景的优化装置,首先获取移动终端渲染3d场景的各类执行元素时所需要产生的资源开销,进而统计当前开发的目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应产生的资源开销的累计值,当累计值超过预设值时,则对目标3d场景进行优化。由于本装置预先获取3d场景中各类执行元素在渲染时所产生的资源开销,进而根据所开发的目标3d场景中使用到的目标执行元素即可计算得到目标3d场景所整体产生的资源开销,因此无需在优化过程中频繁的在移动终端中安装及运行目标3d场景,减少了由于反复执行相同的操作内容而造成的时间开销;另外,由于本装置中,建立了3d场景中各类执行元素与资源开销之间的对应关系,因此能够根据该对应关系进行相对直观且有目的性的优化,相对降低了进行3d场景优化时所需的时间开销,进而保证了3d场景开发过程的整体效率。

实施例四

此外,本发明还提供一种3d场景的优化设备,包括:

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

处理器,用于执行计算机程序时实现如上述的3d场景的优化方法的步骤。

本发明所提供的3d场景的优化设备,首先获取移动终端渲染3d场景的各类执行元素时所需要产生的资源开销,进而统计当前开发的目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应产生的资源开销的累计值,当累计值超过预设值时,则对目标3d场景进行优化。由于本设备预先获取3d场景中各类执行元素在渲染时所产生的资源开销,进而根据所开发的目标3d场景中使用到的目标执行元素即可计算得到目标3d场景所整体产生的资源开销,因此无需在优化过程中频繁的在移动终端中安装及运行目标3d场景,减少了由于反复执行相同的操作内容而造成的时间开销;另外,由于本设备中,建立了3d场景中各类执行元素与资源开销之间的对应关系,因此能够根据该对应关系进行相对直观且有目的性的优化,相对降低了进行3d场景优化时所需的时间开销,进而保证了3d场景开发过程的整体效率。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的3d场景的优化方法的步骤。

本发明所提供的计算机可读存储介质,首先获取移动终端渲染3d场景的各类执行元素时所需要产生的资源开销,进而统计当前开发的目标3d场景中包含的目标执行元素,并计算各目标执行元素所对应产生的资源开销的累计值,当累计值超过预设值时,则对目标3d场景进行优化。由于本计算机可读存储介质预先获取3d场景中各类执行元素在渲染时所产生的资源开销,进而根据所开发的目标3d场景中使用到的目标执行元素即可计算得到目标3d场景所整体产生的资源开销,因此无需在优化过程中频繁的在移动终端中安装及运行目标3d场景,减少了由于反复执行相同的操作内容而造成的时间开销;另外,由于本计算机可读存储介质中,建立了3d场景中各类执行元素与资源开销之间的对应关系,因此能够根据该对应关系进行相对直观且有目的性的优化,相对降低了进行3d场景优化时所需的时间开销,进而保证了3d场景开发过程的整体效率。

以上对本发明所提供的一种3d场景的优化方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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

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