CN115512025A - 模型渲染性能的检测方法、装置、电子设备及存储介质 - Google Patents
模型渲染性能的检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115512025A CN115512025A CN202211180599.2A CN202211180599A CN115512025A CN 115512025 A CN115512025 A CN 115512025A CN 202211180599 A CN202211180599 A CN 202211180599A CN 115512025 A CN115512025 A CN 115512025A
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- model
- rendering
- performance
- determining
- 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.)
- Pending
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/02—Non-photorealistic rendering
-
- 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/55—Controlling game characters or game objects based on the game progress
-
- 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
- A63F13/63—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 by the player, e.g. authoring using a level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
Abstract
本公开提供了一种模型渲染性能的检测方法、装置、电子设备及存储介质,该模型渲染性能的检测方法包括:获取目标应用程序的当前帧画面对应的资源文件,当前帧画面为目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面;从资源文件中提取模型资源,模型资源中包括三维模型的模型数据以及三维模型所使用的着色器数据和纹理贴图数据;基于三维模型的模型数据确定三维模型的网格性能指标,基于三维模型的着色器数据确定着色器性能指标,以及基于三维模型的纹理贴图数据确定纹理贴图性能指标;基于网格性能指标、着色器性能指标以及纹理贴图性能指标,确定三维模型的渲染性能的检测结果。本申请实施例,能够提升模型渲染性能检测的精度。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种模型渲染性能的检测方法、装置、电子设备和存储介质。
背景技术
通常,电子设备的操作系统的渲染模块(图像渲染功能)用于对三维模型进行渲染以生成应用程序的画面,例如:生成运行的游戏的画面。其中,三维模型的渲染性能是影响画面显示效果的重要因素,因此,为了达到预期的画面展示效果,需要对三维模型的渲染性能进行检测,而如何提升模型渲染性能的检测精度,是业界一直追求的目标。
发明内容
本公开实施例至少提供一种模型渲染性能的检测方法、装置、电子设备及存储介质,能够提升模型渲染性能的检测精度。
本公开实施例提供了一种模型渲染性能的检测方法,包括:
获取目标应用程序的当前帧画面对应的资源文件,所述当前帧画面为所述目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面;
从所述资源文件中提取模型资源,所述模型资源中包括所述三维模型的模型数据以及所述三维模型所使用的着色器数据和纹理贴图数据;
基于所述三维模型的模型数据确定所述三维模型的网格性能指标,基于所述三维模型的着色器数据确定着色器性能指标,以及基于所述三维模型的纹理贴图数据确定纹理贴图性能指标;
基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果。
本公开实施例中,在对三维模型进行性能检测的过程中,不仅基于模型本身的模型数据,还结合模型在渲染过程中所使用到的着色器数据以及纹理贴图数据,来共同确定模型的性能检测结果,如此,通过多方面因素结合来确定模型性能,能够提升模型渲染性能的检测精度。
在一种可能的实施方式中,所述三维模型包括至少一个网格,所述网格性能指标包括以下至少一种:
所述三维模型的网格面数、所述三维模型的屏占比、所述三维模型的视距,其中,所述屏占比是指所述三维模型渲染后在所述当前帧画面中的像素占比,所述视距是指所述三维模型的中心点与虚拟相机之间的距离。
本公开实施例中,通过网格面数、三维模型的屏占比以及视距中的至少一种来确定网格性能指标,也即,可以基于与模型有关的至少一个因子来确定网格性能指标,进而可以提升网格性能指标的确定精度。
在一种可能的实施方式中,所述模型数据包括各个网格的顶点数据;所述基于所述三维模型的模型数据确定所述三维模型的网格性能指标,包括:
基于所述各个网格的顶点数据,确定所述三维模型的总顶点数量;
根据所述三维模型的总顶点数量以及每个网格的顶点数量,确定所述三维模型的网格面数。
本公开实施例中,根据三维模型的总的顶点数量以及每个网格的顶点数量,不仅可以实现网格面数的确定,还可以提升网格面数的确定效率。
在一种可能的实施方式中,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述基于所述三维模型的模型数据确定所述三维模型的网格性能指标,包括:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的屏占比;
将各个渲染事件分别对应的屏占比中数值最大的屏占比作为所述三维模型的屏占比。
本公开实施例中,在同一个模型在该帧画面进行了多次绘制(至少一个渲染事件)的情况下,只要能够保证至少一次绘制的屏占比符合需求即可,如此,不仅可以避免误判的情况发生,还可以提升性后续能检测的效率。
在一种可能的实施方式中,所述确定所述三维模型在所述渲染事件下的屏占比,包括:
确定所述三维模型在所述渲染事件下对应的目标网格,并将所述目标网格对应的各个顶点的色值替换为目标色值;
根据所述目标色值对所述目标网格进行渲染,确定所述目标网格渲染后在所述当前帧画面中的面积占比,将该面积占比作为所述三维模型在所述渲染事件下的屏占比。
本公开实施例中,通过对三维模型的目标网格进行颜色替换的方式,可将三维模型与其他模型在屏幕上的绘制像素进行区分,如此,不仅能够实现三维模型的屏占比计算,还可以提升屏占比的计算效率。
在一种可能的实施方式中,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述基于所述三维模型的模型数据确定所述三维模型的网格性能指标,包括:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的视距;
将各个渲染事件分别对应的视距中数值最大的视距,确定为所述三维模型的视距。
本公开实施例中,在同一个模型在该帧画面进行了多次绘制(至少一个渲染事件)的情况下,只要能够保证至少一次绘制时的三维模型的视距符合需求即可,如此,不仅可以避免误判的情况发生,还可以提升后续性能检测的效率。
在一种可能的实施方式中,所述确定所述三维模型在所述渲染事件下的视距,包括:
确定所述三维模型渲染后在屏幕坐标系下的二维坐标范围,并确定所述二维坐标范围的中心点的二维坐标;
基于预设的坐标转换关系,将所述中心点的二维坐标转换成所述虚拟相机所在的世界坐标系下的三维坐标;
基于所述中心点在所述世界坐标系下的三维坐标以及所述虚拟相机在所述世界坐标系下的三维坐标,确定所述三维模型在所述渲染事件下的视距。
本公开实施例中,通过坐标转换,将三维模型渲染后在屏幕坐标系下的二维坐标范围的中心点坐标,转换到虚拟相机所在的世界坐标系下,如此,不仅可以实现三维模型的视距计算,还可以提升视距确定的精度。
在一种可能的实施方式中,所述基于所述三维模型的着色器数据确定着色器性能指标,包括:
基于所述着色器的栈溢出属性和/或所述着色器的指令周期数,确定所述着色器性能指标。
这样,通过着色器的栈溢出属性和/或所述着色器的指令周期数可以确定着色器的复杂度,进而可以确定三维模型的渲染性能。
在一种可能的实施方式中,所述基于所述三维模型的纹理贴图数据确定纹理贴图性能指标,包括:
基于所述纹理贴图的尺寸信息、所述纹理贴图的格式信息以及所述纹理贴图的过滤方式信息中的至少一种,确定所述纹理贴图性能指标。
这样,通过纹理贴图的尺寸信息、格式信息以及过滤方式信息中的至少一种,可以确定纹理贴图的性能,进而能够确定三维模型在带宽方面对渲染性能的影响。
在一种可能的实施方式中,所述基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果,包括:
将所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标的指标数据分别与对应的标准数据进行比较,得到所述三维模型的渲染性能的检测结果。
本公开实施例中,通过将确定的各个指标数据与标准数据进行比对分析,可以直观的确定符合要求的性能指标以及不符合要求的性能指标,进而可以确定三维模型的性能检测结果是否符合要求。
在一种可能的实施方式中,所述方法还包括:
在所述三维模型渲染性能的检测结果指示所述三维模型的渲染性能不符合预设要求的情况下,对所述模型资源进行调整,直到所述渲染性能符合所述预设要求。如此,可以使得基于调整后的模型资源渲染生成的画面符合预期效果,提升了用户的视觉体验。
本公开实施例提供了一种模型渲染性能的检测装置,包括:
文件获取模块,用于获取目标应用程序的当前帧画面对应的资源文件,所述当前帧画面为所述目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面;
资源提取模块,用于从所述资源文件中提取模型资源,所述模型资源中包括所述三维模型的模型数据以及所述三维模型所使用的着色器数据和纹理贴图数据;
指标确定模块,用于基于所述三维模型的模型数据确定所述三维模型的网格性能指标,基于所述三维模型的着色器数据确定着色器性能指标,以及基于所述三维模型的纹理贴图数据确定纹理贴图性能指标;
性能检测模块,用于基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果。
在一种可能的实施方式中,所述三维模型包括至少一个网格,所述网格性能指标包括以下至少一种:
所述三维模型的网格面数、所述三维模型的屏占比、所述三维模型的视距,其中,所述屏占比是指所述三维模型渲染后在所述当前帧画面中的像素占比,所述视距是指所述三维模型的中心点与虚拟相机之间的距离。
在一种可能的实施方式中,所述模型数据包括各个网格的顶点数据;所述指标确定模块具体用于:
基于所述各个网格的顶点数据,确定所述三维模型的总顶点数量;
根据所述三维模型的总顶点数量以及每个网格的顶点数量,确定所述三维模型的网格面数。
在一种可能的实施方式中,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述指标确定模块具体用于:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的屏占比;
将各个渲染事件分别对应的屏占比中数值最大的屏占比作为所述三维模型的屏占比。
在一种可能的实施方式中,所述指标确定模块具体用于:
确定所述三维模型在所述渲染事件下对应的目标网格,并将所述目标网格对应的各个顶点的色值替换为目标色值;
根据所述目标色值对所述目标网格进行渲染,确定所述目标网格渲染后在所述当前帧画面中的面积占比,将该面积占比作为所述三维模型在所述渲染事件下的屏占比。
在一种可能的实施方式中,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述指标确定模块具体用于:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的视距;
将各个渲染事件分别对应的视距中数值最大的视距,确定为所述三维模型的视距。
在一种可能的实施方式中,所述指标确定模块具体用于:
确定所述三维模型渲染后在屏幕坐标系下的二维坐标范围,并确定所述二维坐标范围的中心点的二维坐标;
基于预设的坐标转换关系,将所述中心点的二维坐标转换成所述虚拟相机所在的世界坐标系下的三维坐标;
基于所述中心点在所述世界坐标系下的三维坐标以及所述虚拟相机在所述世界坐标系下的三维坐标,确定所述三维模型在所述渲染事件下的视距。
在一种可能的实施方式中,所述指标确定模块具体用于:
基于所述着色器的栈溢出属性和/或所述着色器的指令周期数,确定所述着色器性能指标。
在一种可能的实施方式中,所述指标确定模块具体用于:
基于所述纹理贴图的尺寸信息、所述纹理贴图的格式信息以及所述纹理贴图的过滤方式信息中的至少一种,确定所述纹理贴图性能指标。
在一种可能的实施方式中,所述性能检测模块具体用于:
将所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标的指标数据分别与对应的标准数据进行比较,得到所述三维模型的渲染性能的检测结果。
在一种可能的实施方式中,所述性能检测模块还用于:
在所述三维模型渲染性能的检测结果指示所述三维模型的渲染性能不符合预设要求的情况下,对所述模型资源进行调整,直到所述渲染性能符合所述预设要求。
本公开实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述任一可能的实施方式中所述的模型渲染性能的检测方法。
本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述任一可能的实施方式中所述的模型渲染性能的检测方法。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种模型渲染性能的检测方法的流程图;
图2示出了本公开实施例所提供的一种当前帧画面的示意图;
图3示出了本公开实施例所提供的一种确定三维模型的屏占比的方法流程图;
图4示出了本公开实施例所提供的一种确定三维模型的视距的方法流程图;
图5示出了本公开实施例所提供的一种模型渲染性能的检测装置的结构示意图;
图6示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
随着终端技术的快速发展,手机、平板电脑等终端的使用频率越来越高。终端上通常安装有各种应用程序,应用程序在运行过程中,可以在对三维模型进行渲染以生成应用程序的画面;例如:生成运行的游戏的画面。
经研究发现,三维模型的渲染性能是影响画面显示效果的重要因素,为了保证应用程序输出的画面达到预期效果,通常需要对三维模型的渲染性能进行检测。然而,如何提升模型渲染性能的检测精度,是业界一直追求的目标。
基于以上研究,本公开提供了一种模型渲染性能的检测方法,可以获取目标应用程序的当前帧画面对应的资源文件,所述当前帧画面为所述目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面;然后从所述资源文件中提取模型资源,所述模型资源中包括所述三维模型的模型数据以及所述三维模型所使用的着色器数据和纹理贴图数据;接着基于所述三维模型的模型数据确定所述三维模型的网格性能指标,基于所述三维模型的着色器数据确定着色器性能指标,以及基于所述三维模型的纹理贴图数据确定纹理贴图性能指标;最后基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果。
本公开实施例中,在对三维模型进行性能检测的过程中,不仅基于模型本身的模型数据,还结合模型在渲染过程中所使用到的着色器数据以及纹理贴图数据,来共同确定模型的性能检测结果,如此,通过多方面因素结合来确定模型性能,能够提升模型渲染性能的检测精度。
为便于对本实施例进行理解,首先对本公开实施例所公开的模型渲染性能的检测方法进行详细介绍,该模型渲染性能的检测方法的执行主体一般是具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为移动设备、用户终端、终端、车载设备、计算设备及可穿戴设备等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、大数据和人工智能平台等基础云计算服务的云服务器。其它处理设备可以是包括处理器和存储器的设备,在此不做限定。
下面结合附图对本公开实施例中的模型渲染性能的检测方法进行详细介绍。参见图1所示,为本公开实施例提供的模型渲染性能的检测方法的流程图,该模型渲染性能的检测方法包括以下S101~S104:
S101,获取目标应用程序的当前帧画面对应的资源文件,所述当前帧画面为所述目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面。
其中,目标应用程序是指安装在终端设备(如手机、平板电脑等)上可以完成某项或多项业务的计算机程序,一般需要与服务端互相配合运行。通常,安装于终端设备的应用程序包括:游戏类应用程序、资讯类应用程序、购物类应用程序及社交类应用程序等。本公开实施例中,目标应用程序为游戏类应用程序。其他实施例中,目标应用程序还可以是其他类应用程序,在此不做限定。
示例性地,资源文件是指用于渲染生成当前帧画面所需要的渲染数据,该渲染数据中包含渲染所用的各个模型资源、渲染事件(DrawCall)、像素绘制数量、像素绘制次数等。其中,渲染引擎在对一帧画面数据进行渲染过程中,可以多次调用图形库接口进行绘制,因此,渲染引擎对图形库接口的调用次数可以理解为图形库接口的绘制次数,渲染引擎每调用一次图形库接口可以称为一次DrawCall。
参见图2所示,为本公开实施例提供的一种当前帧画面的示意图,其中,该当前帧画面以游戏画面为例来进行说明。如图2所示,该当前帧画面中包含虚拟场景,该虚拟场景中包括第一虚拟对象10以及第二虚拟对象20,其中,第一虚拟对象10是指在虚拟场景中可被玩家控制的动态对象,第二虚拟对象20可以是被玩家控制的对象,也可以是NPC(non-player character,非玩家角色),不做具体限定。
其中,第一虚拟对象10、第二虚拟对象20以及虚拟场景中的其他对象(如山峰)均是通过对应的三维模型经渲染后生成。需要说明的是,山峰中的树木可以通过同一树木的三维模型经多次绘制后生成;类似地,草地中的多颗小草也可经同一小草的三维模型经多次绘制后生成。
可选地,第一虚拟对象10可以是虚拟人物、虚拟动物、动漫人物等。该虚拟对象是用户通过输入设备进行控制的角色。在一种可能实现的方式中,用户能够控制第一虚拟对象10在该虚拟场景中进行移动,例如,控制第一虚拟对象10跑动、跳动、爬行等,也能够控制第一虚拟对象10使用应用程序所提供的技能、虚拟道具等与其他虚拟对象(如第二虚拟对象20)进行战斗。
此外,为了实现对第一虚拟对象10的控制,该当前帧画面上还可以显示有第一虚拟对象10对应的普通攻击控件30及多个技能控件40。可选地,普通攻击控件30及多个技能控件40可以显示于虚拟场景之上。
可选地,虚拟场景为用于供玩家控制虚拟对象完成游戏逻辑的场景,该虚拟场景可以是对真实世界的仿真环境,或者是半仿真半虚构的虚拟环境,或者是纯虚构的虚拟环境。虚拟环境可以为天空、陆地、海洋等,其中,该陆地包括沙漠、城市等环境元素。比如,该虚拟场景可以包括:峡谷风格的山脉、线路、河流、地下城、副本等元素。
S102,从所述资源文件中提取模型资源,所述模型资源中包括所述三维模型的模型数据以及所述三维模型所使用的着色器数据和纹理贴图数据。
在获取到资源文件后即可从资源文件中提取模型资源,其中,模型资源是指与三维模型相关的资源。本公开实施例中,所述模型资源中包括所述三维模型的模型数据以及三维模型所使用的着色器数据和纹理贴图数据。需要说明的是,在当前帧画面中对应多个三维模型的情况下,模型资源包括每个三维模型的模型数据以及每个三维模型所使用的着色器数据和纹理贴图数据。
其中,三维模型是渲染引擎进行渲染的对象,可以是一些用于放置在现实中的虚拟物,具体可以分为动态模型和静态模型,动态模型指的是可以与用户进行互动的模型,如图2中的第一虚拟对象模型;与用户进行互动指的是,设备可以响应于用户对动态模型的操作,显示动态模型相应的动态动作。静态模型指的是不能够与用户进行互动的模型,不论动态模型或者静态模型都可以随着环境而变动,例如,一棵树不可以与用户进行互动,但是它可以随着风而轻摇。
着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。其中顶点着色器(Vertex Shader)主要负责顶点的几何关系等的运算,像素着色器(PixelShader)主要负责片源颜色等的计算。着色器进行的计算和处理越多,对性能的影响越大。
纹理贴图是表示物体表面的一幅或几幅二维图形,也称纹理。当把纹理贴图按照特定的方式映射到物体表面上的时候,能使物体看上去更加真实。因此,纹理映射(TextureMapping)是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。
S103,基于所述三维模型的模型数据确定所述三维模型的网格性能指标,基于所述三维模型的着色器数据确定着色器性能指标,以及基于所述三维模型的纹理贴图数据确定纹理贴图性能指标。
可以理解,当前帧画面对应的模型资源不仅仅对应一个模型,例如,如2中所示,至少包含了第一虚拟对象模型、第二虚拟对象模型以及场景中其他对象模型等,因此,需要针对每个三维模型分别进行渲染性能检测。针对每个三维模型,在获取到模型资源后,即可基于模型资源确定各个类型数据的性能指标。
示例性地,三维模型包括至少一个网格,网格包括但不限于三角形网格、四边形网格、其他多边形网格或者其组合。本公开实施例中,网格为三角形网格。在一些实施方式中,三维模型的模型数据包括该三维模型的各网格顶点的坐标集合。
所述网格性能指标包括三维模型的网格面数、三维模型的屏占比以及三维模型的视距中的至少一种。其中,所述屏占比是指所述三维模型渲染后在所述当前帧画面中的像素占比。所述视距是指所述三维模型的中心点与虚拟相机之间的距离。如此,通过网格面数、三维模型的屏占比以及视距中的至少一种来确定网格性能指标,可以基于与模型有关的至少一个因子来确定网格性能指标,进而可以提升网格性能指标的确定精度。此外,关于网格性能指标中各个因子的确定过程,将在后文进行详细阐述。
可选地,由于影响着色器性能的因子有栈溢出及指令周期数(也称循环数)等,因此,在基于所述着色器数据确定着色器性能指标时,可以基于所述着色器的栈溢出属性和/或所述着色器的指令周期数,来确定所述着色器性能指标。如此,可以确定着色器的复杂度,进而可以确定三维模型的渲染性能。可以理解,其他实施例中,还可以基于着色器的像素绘制数量、贴图采样次数等因子来确定着色器的性能。
具体地,在确定着色器性能指标的过程中,可以先确定渲染时当前模型出现的首个包含着色器数据的渲染事件,并提取该渲染事件下的着色器数据;然后对该着色器数据进行源文件扫描,得到扫描结果;接着从扫描结果中提取栈溢出属性和指令周期数的内容值。
由于纹理的相关设置和内容是影响带宽的重要因子,因此,有必要对纹理资源的相关属性进行判断和分析,以确定是否存在性能瓶颈。因此,在一些实施例中,在基于所述纹理贴图数据确定纹理贴图性能指标时,可以基于所述纹理贴图的尺寸信息、所述纹理贴图的格式信息以及所述纹理贴图的过滤方式信息中的至少一种,确定所述纹理贴图性能指标。
具体地,在确定所述纹理贴图性能指标的过程中,可以遍历所有渲染事件,获取当前模型在渲染时所用到的所有纹理贴图,然后遍历所获取到的纹理贴图的属性,以获取该纹理贴图的长宽尺寸信息、格式信息以及过滤方式信息。示例性地,可以采用直接读取文件PNG(Portable Network Graphics,便携式网络图形)的方式去判断当前纹理贴图的尺寸信息;可以采用Renderdoc工具的API(Application Program Interface,应用程序界面)接口调用当前纹理贴图的格式以及当前纹理贴图的过滤方式信息。
S104,基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果。
示例性地,在得到所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标之后,即可根据该三个指标的指标数据来确定三维模型渲染性能的检测结果。
示例性地,可以将所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标的指标数据分别与对应的标准数据进行比较,得到所述三维模型的渲染性能检测结果。其中,标准数据可以根据实际的应用场景不同而进行相应设定,在此不做限定。
下面以举例的形式对各个性能指标的比对过程进行说明。
具体地,针对网格性能指标中的三维模型的网格面数,假设标准数据为小于800,若当前模型的网格面数小于800,则判定网格面数指标通过,否则标记为不通过;针对三维模型的屏占比,假设标准数据为大于0且小于1的区间,若当前模型的屏占比在该区间内,则标记通过,若不在,则标记不通过;针对三维模型的视距,假设标准数据为0-20的区间,若当前模型的视距在该区间,则判定通过,否则,则标记不通过。
同理,针对着色器指标,若栈溢出属性为False,则标记为通过,若不是,则标记为不通过;若指令周期数小于20,则标记为通过,若不是,则标记为不通过;针对纹理贴图性能指标,若纹理贴图的长宽尺寸都小于1024,则判定通过,若不是,则判定不通过;若纹理贴图的格式信息在【R8G8B8A8、R8G8B8、R11G11B10、R10G10B10A2、D24S8、D32S8、D16、R8、R16】范围内,则判定通过,若不是,则不通过;若纹理贴图的过滤方式采用各向异性(Anisotropic)方式,则判断通过,若不是,则判定不通过。
需要说明的是,针对每个性能指标,在该性能指标包含多个指标数据的情况下,需要该全部指标数据都通过,才能确定该性能指标达标。比如,若着色器性能指标同时包含栈溢出属性以及指令周期数,则需要二者均通过,才算着色器性能指标达标通过。
在一些实施方式中,还可以将上述各个性能指标的指标数据与标准数据的比对结果输出展示,以供检测人员观看。
在另一些实施方式中,在所述三维模型渲染性能的检测结果指示所述三维模型的渲染性能不符合预设要求的情况下,还可以对所述模型资源进行调整,直到调整后的模型资源的渲染性能的检测结果符合要求,如此,使得基于该模型资源渲染的画面符合预期效果,进而能够提升用户的视觉体验。
下面对网格性能指标的网格面数、屏占比以及视距等因子的确定过程进行详细说明。
示例性地,在基于所述模型数据确定网格面数时,可以基于所述各个网格的顶点数据,确定所述三维模型的总顶点数量;然后根据所述三维模型的总顶点数量以及每个网格的顶点数量,确定所述三维模型的网格面数。具体地,在网格为三角网格的情况下,采用模型的总顶点数量除以3即可得到网格面数,这样不仅可以实现网格面数的确定,还可以提升网格面数的确定效率。
其他实施例中,还可以采用其他方式来确定三维模型的网格面数,比如,可以基于网格的形状确定相邻网格之间重合的顶点数量,然后再基于三维模型的总顶点数量、相邻网格之间的重合顶点的数量以及每个网格的顶点数量,确定三维模型的网格面数。当然,还可以获取网格渲染组件在渲染过程中渲染的网格面的数量,再基于渲染的网格面数的占比,来确定三维模型的网格面数,在此不做限定。
可选地,在基于所述模型数据确定所述三维模型的屏占比时,可以针对三维模型的每个渲染事件,确定所述三维模型在所述渲染事件下的屏占比;并将各个渲染事件分别对应的屏占比中数值最大的屏占比作为所述三维模型的屏占比。也即,在同一个模型在该帧画面进行了多次绘制(至少一个渲染事件)的情况下,只要能够保证至少一次绘制的屏占比符合需求即可,如此,不仅可以避免误判的情况发生,还可以提升性后续能检测的效率。
具体地,参见图3所示,在确定所述三维模型在所述渲染事件下的屏占比时,可以包括以下S301~S302:
S301,确定所述三维模型在所述渲染事件下对应的目标网格,并将所述目标网格对应的各个顶点的色值替换为目标色值。
S302,根据所述目标色值对所述目标网格进行渲染,确定所述目标网格渲染后在所述当前帧画面中的面积占比,将该面积占比作为所述三维模型在所述渲染事件下的屏占比。
可以理解,由于模型在渲染过程中存在这多个坐标系的变化,若通过坐标转换过程计算模型的屏占比,存在计算量大耗时过长的问题,为了提升屏占比的确定效率,可以先确定所述三维模型在所述渲染事件下对应的目标网格,并将所述目标网格对应的各个顶点的色值替换为目标色值(如灰色色值),然后将所述目标网格渲染后在所述当前帧画面中的面积占比(灰色色块的占比),作为所述三维模型在所述渲染事件下的屏占比,如此,通过颜色替换可将三维模型与其他模型在屏幕上的绘制像素进行区分,避免了坐标的转换过程,不仅可确定出三维模型的屏占比,还可以提升屏占比的计算效率。
又可选地,在基于所述模型数据确定所述三维模型的视距时,可以针对与三维模型关联的每个渲染事件,确定所述三维模型在所述渲染事件下的视距,并将各个渲染事件分别对应的视距中数值最大的视距,确定为所述三维模型的视距。也即,在同一个模型在该帧画面进行了多次绘制(至少一个渲染事件)的情况下,只要能够保证至少一次绘制时的三维模型的视距符合需求即可,如此,不仅可以避免误判的情况发生,还可以提升后续性能检测的效率。
具体地,参见图4所示,在确定所述三维模型在所述渲染事件下的视距时,可以包括以下S401~S403:
S401,确定所述三维模型渲染后在屏幕坐标系下的二维坐标范围,并确定所述二维坐标范围的中心点的二维坐标。
S402,基于预设的坐标转换关系,将所述中心点的二维坐标转换成所述虚拟相机所在的世界坐标系下的三维坐标。
S403,基于所述中心点在所述世界坐标系下的三维坐标以及所述虚拟相机在所述世界坐标系下的三维坐标,确定所述三维模型在所述渲染事件下的视距。
可以理解,通常游戏画面中涉及到多个坐标系:顶点坐标开始位于局部空间坐标(Local Coordinate),通过M矩阵(Model模型矩阵)变换到世界空间坐标(WorldCoordinate),然后通过V矩阵(View观察矩阵)变换到观察空间坐标(View Coordinate),之后通过P矩阵(Projection投影矩阵)变换到裁剪空间坐标(Clip Coordinate),最后成为屏幕坐标(Screen Coordinate)。
其中,局部空间,又称物体空间,是以三维模型的中心点为原点的三维空间。后续对三维模型的所有位置调整都是基于局部空间的相对位置去调整的。世界空间是以用户对象眼睛为原点,以用户对象的视线方向为-z轴方向的三维空间。三维模型必须在用户对象的视野之内。观察空间是以虚拟相机为原点,以虚拟相机的图像采集方向为-z轴方向的三维空间。虚拟相机具有图像采集及渲染功能的组件。在三维模型定位之后,光源和材质决定了三维模型在当前帧画面的色调,而虚拟相机决定了三维模型的构图。裁剪空间是三维坐标均在指定范围内的三维空间。裁剪空间中三维坐标轴的坐标值取值范围可以是根据虚拟相机的拍摄范围确定的。应理解,虚拟相机的左右和上下方向上都有一定的拍摄角度(FOV),只有在这个拍摄角度范围内的三维模型,才可能被看到。任何在虚拟相机拍摄范围之外的三维模型均已被裁剪,所以用户对象看不到。
在实际执行过程中,由于可以直接获取到模型的局部坐标或者是屏幕坐标,还可以获取到虚拟相机的世界坐标,无法进行直接的视距计算,因此,为了获取视距内容,需要将两者的坐标进行坐标系的转换,也即,可以将模型的中心点坐标进行逆向转换,从屏幕坐标逆向到世界坐标,最终获取世界坐标系中模型中心点和虚拟相机的距离,进而完成视距的计算过程。
具体地,在确定二维坐标范围的中心点的二维坐标C之后,可以确定中心点的世界坐标D=C*P逆*V逆,若获取到的虚拟相机的世界坐标为Q,则三维模型在所述渲染事件下的视距为:世界坐标D-虚拟相机的世界坐标为Q,如此,通过坐标之间的逆转换,不仅可以实现三维模型的视距计算,还可以提升视距确定的精度。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一技术构思,本公开实施例中还提供了与模型渲染性能的检测方法对应的模型渲染性能的检测装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述模型渲染性能的检测方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种模型渲染性能的检测装置500的示意图,所述装置包括:
文件获取模块501,用于获取目标应用程序的当前帧画面对应的资源文件,所述当前帧画面为所述目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面;
资源提取模块502,用于从所述资源文件中提取模型资源,所述模型资源中包括所述三维模型的模型数据以及所述三维模型所使用的着色器数据和纹理贴图数据;
指标确定模块503,用于基于所述三维模型的模型数据确定所述三维模型的网格性能指标,基于所述三维模型的着色器数据确定着色器性能指标,以及基于所述三维模型的纹理贴图数据确定纹理贴图性能指标;
性能检测模块504,用于基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果。
在一种可能的实施方式中,所述三维模型包括至少一个网格,所述网格性能指标包括以下至少一种:
所述三维模型的网格面数、所述三维模型的屏占比、所述三维模型的视距,其中,所述屏占比是指所述三维模型渲染后在所述当前帧画面中的像素占比,所述视距是指所述三维模型的中心点与虚拟相机之间的距离。
在一种可能的实施方式中,所述模型数据包括各个网格的顶点数据;所述指标确定模块503具体用于:
基于所述各个网格的顶点数据,确定所述三维模型的总顶点数量;
根据所述三维模型的总顶点数量以及每个网格的顶点数量,确定所述三维模型的网格面数。
在一种可能的实施方式中,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述指标确定模块503具体用于:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的屏占比;
将各个渲染事件分别对应的屏占比中数值最大的屏占比作为所述三维模型的屏占比。
在一种可能的实施方式中,所述指标确定模块503具体用于:
确定所述三维模型在所述渲染事件下对应的目标网格,并将所述目标网格对应的各个顶点的色值替换为目标色值;
根据所述目标色值对所述目标网格进行渲染,确定所述目标网格渲染后在所述当前帧画面中的面积占比,将该面积占比作为所述三维模型在所述渲染事件下的屏占比。
在一种可能的实施方式中,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述指标确定模块503具体用于:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的视距;
将各个渲染事件分别对应的视距中数值最大的视距,确定为所述三维模型的视距。
在一种可能的实施方式中,所述指标确定模块503具体用于:
确定所述三维模型渲染后在屏幕坐标系下的二维坐标范围,并确定所述二维坐标范围的中心点的二维坐标;
基于预设的坐标转换关系,将所述中心点的二维坐标转换成所述虚拟相机所在的世界坐标系下的三维坐标;
基于所述中心点在所述世界坐标系下的三维坐标以及所述虚拟相机在所述世界坐标系下的三维坐标,确定所述三维模型在所述渲染事件下的视距。
在一种可能的实施方式中,所述指标确定模块503具体用于:
基于所述着色器的栈溢出属性和/或所述着色器的指令周期数,确定所述着色器性能指标。
在一种可能的实施方式中,所述指标确定模块503具体用于:
基于所述纹理贴图的尺寸信息、所述纹理贴图的格式信息以及所述纹理贴图的过滤方式信息中的至少一种,确定所述纹理贴图性能指标。
在一种可能的实施方式中,所述性能检测模块504具体用于:
将所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标的指标数据分别与对应的标准数据进行比较,得到所述三维模型的渲染性能的检测结果。
在一种可能的实施方式中,所述性能检测模块504还用于:
在所述三维模型渲染性能的检测结果指示所述三维模型的渲染性能不符合预设要求的情况下,对所述模型资源进行调整,直到所述渲染性能符合所述预设要求。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图6所示,为本公开实施例提供的电子设备600的结构示意图,包括处理器601、存储器602、和总线603。其中,存储器602用于存储执行指令,包括内存6021和外部存储器6022;这里的内存6021也称内存储器,用于暂时存放处理器601中的运算数据,以及与硬盘等外部存储器6022交换的数据,处理器601通过内存6021与外部存储器6022进行数据交换。
本申请实施例中,存储器602具体用于存储执行本申请方案的应用程序代码,并由处理器601来控制执行。也即,当电子设备600运行时,处理器601与存储器602之间通过总线603通信,使得处理器601执行存储器602中存储的应用程序代码,进而执行前述任一实施例中所述的方法。
其中,存储器602可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器601可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备600的具体限定。在本申请另一些实施例中,电子设备600可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的模型渲染性能的检测方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中的模型渲染性能的检测方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种模型渲染性能的检测方法,其特征在于,包括:
获取目标应用程序的当前帧画面对应的资源文件,所述当前帧画面为所述目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面;
从所述资源文件中提取模型资源,所述模型资源中包括所述三维模型的模型数据以及所述三维模型所使用的着色器数据和纹理贴图数据;
基于所述三维模型的模型数据确定所述三维模型的网格性能指标,基于所述三维模型的着色器数据确定着色器性能指标,以及基于所述三维模型的纹理贴图数据确定纹理贴图性能指标;
基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果。
2.根据权利要求1所述的方法,其特征在于,所述三维模型包括至少一个网格,所述网格性能指标包括以下至少一种:
所述三维模型的网格面数、所述三维模型的屏占比、所述三维模型的视距,其中,所述屏占比是指所述三维模型渲染后在所述当前帧画面中的像素占比,所述视距是指所述三维模型的中心点与虚拟相机之间的距离。
3.根据权利要求2所述的方法,其特征在于,所述模型数据包括各个网格的顶点数据;所述基于所述三维模型的模型数据确定所述三维模型的网格性能指标,包括:
基于所述各个网格的顶点数据,确定所述三维模型的总顶点数量;
根据所述三维模型的总顶点数量以及每个网格的顶点数量,确定所述三维模型的网格面数。
4.根据权利要求2所述的方法,其特征在于,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述基于所述三维模型的模型数据确定所述三维模型的网格性能指标,包括:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的屏占比;
将各个渲染事件分别对应的屏占比中数值最大的屏占比作为所述三维模型的屏占比。
5.根据权利要求4所述的方法,其特征在于,所述确定所述三维模型在所述渲染事件下的屏占比,包括:
确定所述三维模型在所述渲染事件下对应的目标网格,并将所述目标网格对应的各个顶点的色值替换为目标色值;
根据所述目标色值对所述目标网格进行渲染,确定所述目标网格渲染后在所述当前帧画面中的面积占比,将该面积占比作为所述三维模型在所述渲染事件下的屏占比。
6.根据权利要求2所述的方法,其特征在于,所述资源文件还包括与所述三维模型关联的至少一个渲染事件;所述基于所述三维模型的模型数据确定所述三维模型的网格性能指标,包括:
针对每个渲染事件,确定所述三维模型在所述渲染事件下的视距;
将各个渲染事件分别对应的视距中数值最大的视距,确定为所述三维模型的视距。
7.根据权利要求6所述的方法,其特征在于,所述确定所述三维模型在所述渲染事件下的视距,包括:
确定所述三维模型渲染后在屏幕坐标系下的二维坐标范围,并确定所述二维坐标范围的中心点的二维坐标;
基于预设的坐标转换关系,将所述中心点的二维坐标转换成所述虚拟相机所在的世界坐标系下的三维坐标;
基于所述中心点在所述世界坐标系下的三维坐标以及所述虚拟相机在所述世界坐标系下的三维坐标,确定所述三维模型在所述渲染事件下的视距。
8.根据权利要求1所述的方法,其特征在于,所述基于所述三维模型的着色器数据确定着色器性能指标,包括:
基于所述着色器的栈溢出属性和/或所述着色器的指令周期数,确定所述着色器性能指标。
9.根据权利要求1所述的方法,其特征在于,所述基于三维模型的所述纹理贴图数据确定纹理贴图性能指标,包括:
基于所述纹理贴图的尺寸信息、所述纹理贴图的格式信息以及所述纹理贴图的过滤方式信息中的至少一种,确定所述纹理贴图性能指标。
10.根据权利要求1所述的方法,其特征在于,所述基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果,包括:
将所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标的指标数据分别与对应的标准数据进行比较,得到所述三维模型的渲染性能的检测结果。
11.一种模型渲染性能的检测装置,其特征在于,包括:
文件获取模块,用于获取目标应用程序的当前帧画面对应的资源文件,所述当前帧画面为所述目标应用程序运行时对一个或者多个三维模型进行渲染所生成的画面;
资源提取模块,用于从所述资源文件中提取模型资源,所述模型资源中包括所述三维模型的模型数据以及所述三维模型所使用的着色器数据和纹理贴图数据;
指标确定模块,用于基于所述三维模型的模型数据确定所述三维模型的网格性能指标,基于所述三维模型的着色器数据确定着色器性能指标,以及基于所述三维模型的纹理贴图数据确定纹理贴图性能指标;
性能检测模块,用于基于所述网格性能指标、所述着色器性能指标以及所述纹理贴图性能指标,确定所述三维模型的渲染性能的检测结果。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1-10任一所述的模型渲染性能的检测方法。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-10任一所述的模型渲染性能的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180599.2A CN115512025A (zh) | 2022-09-27 | 2022-09-27 | 模型渲染性能的检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180599.2A CN115512025A (zh) | 2022-09-27 | 2022-09-27 | 模型渲染性能的检测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115512025A true CN115512025A (zh) | 2022-12-23 |
Family
ID=84506494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211180599.2A Pending CN115512025A (zh) | 2022-09-27 | 2022-09-27 | 模型渲染性能的检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115512025A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116524104A (zh) * | 2023-07-03 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
CN117271371A (zh) * | 2023-11-10 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
-
2022
- 2022-09-27 CN CN202211180599.2A patent/CN115512025A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116524104A (zh) * | 2023-07-03 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
CN116524104B (zh) * | 2023-07-03 | 2023-10-03 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
CN117271371A (zh) * | 2023-11-10 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
CN117271371B (zh) * | 2023-11-10 | 2024-03-12 | 腾讯科技(深圳)有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN115512025A (zh) | 模型渲染性能的检测方法、装置、电子设备及存储介质 | |
Chao et al. | Parallel algorithm for viewshed analysis on a modern GPU | |
Feng et al. | A parallel algorithm for viewshed analysis in three-dimensional Digital Earth | |
US9224233B2 (en) | Blending 3D model textures by image projection | |
CN112184873B (zh) | 分形图形创建方法、装置、电子设备和存储介质 | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
CN103914876A (zh) | 用于在3d地图上显示视频的方法和设备 | |
Livny et al. | A GPU persistent grid mapping for terrain rendering | |
CN111583381A (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
CN111161398A (zh) | 一种图像生成方法、装置、设备及存储介质 | |
CN114119900A (zh) | 建筑模型的构建方法、装置、设备、存储介质及程序产品 | |
CN112882576A (zh) | Ar交互方法、装置、电子设备及存储介质 | |
CN112734896A (zh) | 环境遮蔽渲染方法、装置、存储介质及电子设备 | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN113129420B (zh) | 一种基于深度缓冲加速的光线追踪渲染方法 | |
CN114529647A (zh) | 对象渲染方法、设备、装置、电子设备及存储介质 | |
US20230326129A1 (en) | Method and apparatus for storing visibility data of three-dimensional model, device, and storage medium | |
CN112190937A (zh) | 游戏中的光照处理方法、装置、设备及存储介质 | |
CN117218273A (zh) | 图像渲染方法以及装置 | |
CN116263984A (zh) | 三维地图可视化方法、装置、电子设备及存储介质 | |
CN112973121B (zh) | 反射效果生成方法及装置、存储介质、计算机设备 | |
CN113240787A (zh) | 阴影渲染方法、装置及电子设备 | |
CN111667393B (zh) | 一种虚拟场景中模拟下雨的方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |