CN117258303B - 一种模型对比方法及相关装置 - Google Patents

一种模型对比方法及相关装置 Download PDF

Info

Publication number
CN117258303B
CN117258303B CN202311547114.3A CN202311547114A CN117258303B CN 117258303 B CN117258303 B CN 117258303B CN 202311547114 A CN202311547114 A CN 202311547114A CN 117258303 B CN117258303 B CN 117258303B
Authority
CN
China
Prior art keywords
event
rendering
model
rendering event
vertex
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
Application number
CN202311547114.3A
Other languages
English (en)
Other versions
CN117258303A (zh
Inventor
李芳�
邱广
曾平
欧晓东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311547114.3A priority Critical patent/CN117258303B/zh
Publication of CN117258303A publication Critical patent/CN117258303A/zh
Application granted granted Critical
Publication of CN117258303B publication Critical patent/CN117258303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating 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/69Generating 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 enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating 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/63Generating 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种模型对比方法及相关装置,所述方法包括:获取第一场景对应的第一截帧文件、第二场景对应的第二截帧文件;确定第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,渲染数据包括渲染事件相关的渲染属性数据;针对第一截帧文件中每个第一渲染事件,根据第一渲染事件对应的顶点编码、以及第二截帧文件中各个第二渲染事件各自对应的顶点编码,在各个第二渲染事件中确定候选参考事件;根据第一渲染事件对应的渲染数据以及候选参考事件对应的渲染数据,确定第一渲染事件渲染的模型对应的变化信息。

Description

一种模型对比方法及相关装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种模型对比方法及相关装置。
背景技术
在开发游戏应用的过程中,通常需要对游戏应用中的游戏场景进行对比分析,如将新版本游戏应用中的游戏场景与旧版本游戏应用中相匹配的游戏场景进行对比,以确定游戏场景中的模型的变化情况,从而为相关技术人员提供针对该游戏场景的性能优化方向。
相关技术中,主要依靠人工识别的方式对游戏场景进行对比分析,确定其中模型的变化情况。例如,由技术人员对所要对比的游戏场景进行截帧,然后人工逐个对比截帧文件中的渲染事件,从而辨别发生变化的模型及相关信息。上述方法效率极低,通常需要耗费较长的时间才能完成对于截帧文件的对比分析,此外,通过该方法得到的对比结果的准确性往往也难以保证。
发明内容
本申请实施例提供了一种模型对比方法及相关装置,能够提高不同截帧文件之间模型对比的效率和准确性。
有鉴于此,本申请第一方面提供了一种模型对比方法,所述方法包括:
获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件;
确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;所述顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,所述渲染数据包括与渲染事件相关的渲染属性数据;
针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息;所述变化信息用于表征模型在所述第一场景中相对于在所述第二场景中的变化情况。
本申请第二方面提供了一种模型对比装置,所述装置包括:
获取模块,用于获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件;
确定模块,用于确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;所述顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,所述渲染数据包括与渲染事件相关的渲染属性数据;
对比模块,用于针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息;所述变化信息用于表征模型在所述第一场景中相对于在所述第二场景中的变化情况。
本申请第三方面提供了一种计算机设备,所述设备包括处理器和存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序,执行如上述第一方面所述的方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的方法的步骤。
本申请第五方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面所述的方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供了一种模型对比方法,获取第一场景对应的第一截帧文件,以及第二场景对应的第二截帧文件,确定第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,以及第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;其中,第一渲染事件和第二渲染事件所对应的顶点编码是通过对渲染事件所渲染的模型的顶点数据进行哈希编码得到的,渲染数据包括与渲染事件相关的渲染属性信息;只有在所渲染的模型相同的情况下,模型对应的顶点数据相同,由模型的顶点数据得到的顶点编码才会相同。针对第一截帧文件中的每个第一渲染事件,根据第一渲染事件对应的顶点编码、以及第二截帧文件中各个第二渲染事件各自对应的顶点编码,在各个第二渲染事件中确定候选参考事件;根据第一渲染事件对应的渲染数据以及候选参考事件对应的渲染数据,确定第一渲染事件渲染的模型对应的变化信息,该变化信息用于表征该第一渲染事件渲染的模型在第一场景中相对于在第二场景中的变化情况。由此可见,本申请通过顶点编码在不同截帧文件中查找作为对比参照的渲染事件,由于顶点编码具有唯一表征性、并且通常数据量较少,因此能够提高在不同截帧文件中查找作为对比参照的渲染事件的准确率和效率,进而有助于提高模型对比的效率;并且,基于某第一渲染事件的顶点编码,在第二截帧文件中查找到用作对比参照的渲染事件(即候选参考事件)后,对该第一渲染事件和该候选参考事件各自对应的渲染数据进行对比,从而得到该第一渲染事件渲染的模型在第一场景中相对于在第二场景中的变化情况,保证了所确定的模型变化情况的准确性。
附图说明
图1为本申请实施例提供的一种模型对比方法的场景示意图;
图2为本申请实施例提供的一种模型对比方法的方法流程图;
图3为本申请实施例提供的顶点数据示意图;
图4为本申请实施例提供的渲染数据示意图;
图5为本申请实施例提供的顶点数据及纹理数据的编码流程图;
图6为本申请实施例提供的顶点编码及纹理编码输出数据示意图;
图7为本申请实施例提供的材质指令周期数的获取流程图;
图8为本申请实施例提供的材质指令周期数获取流程中的数据输出示意图;
图9为本申请实施例提供的模型信息获取流程图;
图10为本申请实施例提供的截帧文件中渲染事件信息示意图;
图11为本申请实施例提供的模型基本信息示意图;
图12为本申请场景实施例提供的模型对比流程图;
图13为本申请实施例提供的调用命令运行界面示意图;
图14为本申请实施例提供的截帧文件解析流程图;
图15为本申请实施例提供的变化信息输出示意图;
图16为本申请实施例提供的三角形面数变化的模型的详细信息示意图;
图17为本申请实施例提供的合批变化的模型的详细信息示意图;
图18为本申请实施例提供的新增模型的详细信息示意图;
图19为本申请实施例提供的材质变化的模型的详细信息示意图;
图20为本申请实施例提供的未发生变化的模型的详细信息示意图;
图21为本申请实施例提供的纹理变化的模型的详细信息示意图;
图22为本申请实施例提供的一种模型对比装置的结构示意图;
图23为本申请实施例提供的终端设备的结构示意图;
图24为本申请实施例提供的服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、预训练模型技术、操作/交互系统、机电一体化等。其中,预训练模型又称大模型、基础模型,经过微调后可以广泛应用于人工智能各大方向下游任务。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
在开发游戏应用的过程中,在对游戏应用进行升级或对游戏场景进行优化后,通常需要对游戏应用中的游戏场景进行对比分析,根据对比分析结果确定后续优化方向。相关技术中,在对不同场景进行对比时,主要依靠人工识别的方式对游戏场景进行对比分析,确定其中模型的变化情况。例如,在游戏应用更新后,由技术人员对更新前后所要对比的游戏场景分别进行截帧,获得更新前后该游戏场景分别对应的两个截帧文件,然后人工逐个对比两个截帧文件中的各个渲染事件,进而从中辨别出发生变化的模型及相关信息;并且当游戏场景发生变化时,需要测试人员对截帧文件中各个渲染事件对应的语句进行逐个对比分析,以便在游戏场景中详细定位发生变化的位置。
但是,这种人工进行模型对比的方法效率极低,通常需要耗费较长时间才能完成对于截帧文件的对比分析,此外,人工对比分析的准确性较低,通过这种方法得到的对比结果的准确性往往也难以保证。
为了解决上述技术问题,本申请实施例提供了一种模型对比方法,获取第一场景对应的第一截帧文件,以及第二场景对应的第二截帧文件,确定第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,以及第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;其中,第一渲染事件和第二渲染事件所对应的顶点编码是通过对渲染事件所渲染的模型的顶点数据进行哈希编码得到的,渲染数据包括与渲染事件相关的渲染属性信息;只有在所渲染的模型相同的情况下,模型对应的顶点数据相同,由模型的顶点数据得到的顶点编码才会相同。针对第一截帧文件中的每个第一渲染事件,根据第一渲染事件对应的顶点编码、以及第二截帧文件中各个第二渲染事件各自对应的顶点编码,在各个第二渲染事件中确定候选参考事件;根据第一渲染事件对应的渲染数据以及候选参考事件对应的渲染数据,确定第一渲染事件渲染的模型对应的变化信息,该变化信息用于表征该第一渲染事件渲染的模型在第一场景中相对于在第二场景中的变化情况。
由此可见,本申请通过顶点编码在不同截帧文件中查找作为对比参照的渲染事件,由于顶点编码具有唯一表征性、并且通常数据量较少,因此能够提高在不同截帧文件中查找作为对比参照的渲染事件的准确率和效率,进而有助于提高模型对比的效率;并且,基于某第一渲染事件的顶点编码,在第二截帧文件中查找到用作对比参照的渲染事件(即候选参考事件)后,对该第一渲染事件和该候选参考事件各自对应的渲染数据进行对比,从而得到该第一渲染事件渲染的模型在第一场景中相对于在第二场景中的变化情况,保证了所确定的模型变化情况的准确性。
本申请实施例所提供的模型对比方法可以通过计算机设备实施,该计算机设备可以是终端设备或服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是提供云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。终端设备与服务器之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
为了便于理解本申请实施例提供的模型对比方法,下面以模型对比方法的执行主体为服务器为例,对该模型对比方法的应用场景进行示例性介绍。
参见图1,图1为本申请实施例提供的一种模型对比方法的场景示意图。在图1所示的场景中,以终端设备100作为前述用于执行本申请实施例提供的模型对比方法的计算机设备为例进行说明。
如图1所示,在终端设备100中,分别对第一场景和第二场景进行截帧,获得第一场景对应的第一截帧文件和第二场景对应的第二截帧文件。其中,终端设备中的第一场景和第二场景可以是两个完全不同的场景,例如,第一场景和第二场景分别为游戏应用中两个不同的场景,此时,通过本申请实施例提供的模型对比方法,可以对第一场景和第二场景中出现的模型进行对比分析;第一场景和第二场景也可以是对同一游戏场景进行优化前后的场景,此时,可以通过分析第一场景和第二场景中的模型,发现优化前后游戏场景中的变化,明确后续游戏场景的优化方向。截帧文件是通过截帧软件采集的单帧图像文件,其中保存有截取时刻对应的场景图像文件。截帧软件是用于对游戏引擎等制作的应用程序执行单帧采集的图形调试器,在单帧采集过程中所采集到的内容会被载入到截帧软件中,并通过事件、应用程序编程接口(Application Programming Interface,API)等内容来检查图形处理器(Graphics Processing Unit,GPU)。
在第一截帧文件中,包括多个第一渲染事件,第一截帧文件所对应的第一场景就是通过执行第一截帧文件中的各个第一渲染事件最终生成的。在图1中,示例性地给出了第一截帧文件中的第一渲染事件X1、X2,从第一渲染事件X1和X2中分别获取二者所渲染的模型的顶点数据,对模型的顶点数据进行哈希编码,分别获得第一渲染事件X1中所渲染的模型对应的顶点编码A,以及第一渲染事件X2所渲染的模型对应的顶点编码B。在第一截帧文件中还可以确定出各个第一渲染事件对应的渲染数据,其中,第一渲染事件X1对应渲染数据A1,第一渲染事件X2对应渲染数据B1。最终,在第一截帧文件中确定第一渲染事件X1对应的顶点编码A和渲染数据A1,以及第二渲染事件X2对应的顶点编码B和渲染数据B1。
对应地,第二截帧文件中包括多个第二渲染事件,第二截帧文件所对应的第二场景也是通过执行第二截帧文件中的各个第二渲染事件最终生成的。在图1中,示例性地给出了第二截帧文件中的第二渲染事件Y1、Y2,从第二渲染事件Y1和Y2中分别获取二者所渲染的模型的顶点数据,对模型的顶点数据进行哈希编码,获得第二渲染事件Y1所渲染的模型对应的顶点编码B,以及第二渲染事件Y2所渲染的模型对应的顶点编码C。在第二截帧文件中还可以确定出各个第二渲染事件对应的渲染数据,其中,第二渲染事件Y1对应渲染数据B2,第二渲染事件Y2对应渲染数据C2。最终,在第二截帧文件中确定第二渲染事件Y1对应的顶点编码B和渲染数据B2,以及第二渲染事件Y2对应的顶点编码C和渲染数据C2。
基于在第一截帧文件中各个第一渲染事件各自对应的顶点编码和第二截帧文件中各个第二渲染事件各自对应的顶点编码,确定第一截帧文件和第二截帧文件中是否存在相匹配的模型。由于顶点编码是根据模型所对应的顶点数据进行哈希编码得到的,所以可以根据顶点编码来确定第一截帧文件和第二截帧文件中是否存在相匹配的模型。在图1所示的场景中,第二渲染事件Y1与第一渲染事件X2的顶点编码相同,均为顶点编码B,说明在第一渲染事件X2中所渲染的模型与第二渲染事件Y1中所渲染的模型是同一个模型。为了对比分析该模型由第一场景至第二场景所发生的变化,将第二渲染事件Y1确定为候选参考事件,将候选参考事件对应的渲染数据B2与第一渲染事件X2所对应的渲染数据B1进行对比分析,进而确定顶点编码B所对应的这一模型对应的变化信息,即第一渲染事件X2渲染的模型对应的变化信息。通过该变化信息能够表征该模型从第一场景变化至第二场景的过程中,所产生的变化情况。
基于以上描述,可以看出,本申请通过顶点编码在不同截帧文件中查找作为对比参照的渲染事件,由于顶点编码具有唯一表征性、并且通常数据量较少,因此能够提高在不同截帧文件中查找作为对比参照的渲染事件的准确率和效率,进而有助于提高模型对比的效率;并且,基于某第一渲染事件的顶点编码,在第二截帧文件中查找到用作对比参照的渲染事件(即候选参考事件)后,对该第一渲染事件和该候选参考事件各自对应的渲染数据进行对比,从而得到该第一渲染事件渲染的模型在第一场景中相对于在第二场景中的变化情况,保证了所确定的模型变化情况的准确性。
参见图2,图2为本申请实施例提供的一种模型对比方法的方法流程图。本申请实施例提供的一种模型对比方法具体可以包括如下步骤:
步骤201:获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件。
在本申请实施例中,第一场景与第二场景是基于模型渲染得到的场景。第一场景与第二场景之间可能存在差异信息,该差异信息可以表现为同一应用不同版本中具有对应关系的场景之间的差异,也可以表现为同一应用同一版本中不同的场景之间的差异。当第一场景与第二场景之间的差异信息表现为同一应用不同版本中具有对应关系的场景之间的差异时,可以基于此进行对比来表征不同版本的应用中,场景的变化信息,例如,更新后的游戏应用中游戏场景与更新前的游戏应用中游戏场景之间的变化信息;当第一场景与第二场景之间的差异信息表现为同一应用同一版本中不同的场景之间的差异时,可以基于此进行对比来表征不同场景的区别。
具体地,在本申请实施例中,可以通过截帧软件在第一场景中进行截帧,获取第一场景对应的第一截帧文件;以及通过截帧软件在第二场景中进行截帧,获取第二场景所对应的第二截帧文件。
步骤202:确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据。
在本申请实施例中,第一截帧文件对应于第一场景,其中保存有生成第一场景中各个模型时对应的第一渲染事件;第二截帧文件对应于第二场景,其中保存有生成第二场景中各个模型时对应的第二渲染文件。模型是用语言或者数据结构进行严格定义的三维物体或虚拟场景的描述,包括几何、视点、纹理、照明和阴影等信息;渲染是指在计算机绘图中以软件由模型生成图像的过程;在计算机生成模型的过程中,顶点是储存一系列绘图所需属性的基本元素,顶点可以为二维或三维空间中的点,或曲面上的点。
本申请实施例中,所述顶点编码是通过对渲染事件渲染的模型的顶点数据进行哈希编码得到的,所述渲染数据包括与渲染事件相关的渲染属性数据。哈希编码是一种将数据集合映射为固定长度编码的方法。在哈希编码过程中,依靠Python自带的哈希函数,将数据集合转换为固定长度的散列值,该散列值一般为数字与字母的组合,相同的数据集合被映射为相同的散列值,不同的数据集合被映射为不同的散列值。也就是说,对于模型的顶点数据进行哈希编码时,相同顶点数据对应的哈希编码值相同,而相同的顶点数据必然对应相匹配的模型,所以在本申请实施例中,相匹配的模型对应的顶点编码是相同的。基于此,本申请实施例可以根据第一渲染事件和第二渲染事件中的顶点编码,来判断第一渲染事件和第二渲染事件中所渲染的模型是否相同。
具体地,渲染事件对应的顶点编码可以通过如下方式确定:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件渲染的目标模型的顶点资源标识,确定所述目标模型是否存在于所述截帧文件中已遍历的渲染事件;若是,则获取已遍历的用于渲染所述目标模型的渲染事件对应的顶点编码,作为所述当前渲染事件对应的顶点编码;若否,则对所述目标模型的顶点数据进行哈希编码,得到所述当前渲染事件对应的顶点编码。
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
在一个截帧文件中可能包括多个渲染事件,为了便于对渲染事件进行管理,对一个截帧文件中的各个渲染事件设置唯一对应的事件标识。根据事件标识对截帧文件中的各个渲染事件进行遍历,能够提高对于该截帧文件中渲染事件的遍历效率,避免对于同一个渲染事件进行多次、重复的遍历。
本申请实施例中,可以通过遍历截帧文件中各个渲染事件的方式,来为各个渲染事件对应的顶点数据进行哈希编码。在遍历渲染事件时,可以通过将当前需要进行哈希编码的顶点数据对应的事件设置为当前渲染事件,以使控制器句柄指向当前渲染事件,此时,模型窗口及渲染管线中的资源均对应当前渲染事件,便于从模型窗口中直接获取当前渲染事件所渲染的目标模型,并确定该目标模型对应的顶点数据。
在一个截帧文件中,相同的顶点数据有一个表征其资源信息的顶点资源标识,不同的模型的顶点数据不同,也就会对应不同的顶点资源标识,所以在同一个截帧文件中,顶点资源标识可以视为顶点数据对应的唯一性标识,相同的模型的顶点数据相同,那么在同一个截帧文件中对应的顶点资源标识是相同的;不同的模型的顶点数据不同,那么在同一个截帧文件中的顶点资源标识也是不同的。在本申请实施例中,对于截帧文件中的渲染事件进行遍历的目的是为了对各个渲染事件所渲染模型对应的顶点数据进行哈希编码,以获得各个渲染事件对应的顶点编码;而在对模型的顶点数据进行哈希编码时,由于相匹配的模型对应相同的顶点数据,相同顶点数据对应的顶点编码相同;所以可以得出在一个截帧文件中,相匹配的模型对应相同的顶点资源标识,也对应相同的顶点编码的结论。
需要说明的是,在本申请实施例中,相同顶点数据对应相同的顶点资源标识是针对同一截帧文件而言的,对不同的截帧文件来说,相同顶点数据在不同截帧文件中对应的顶点资源标识可能并不相同。
当同一个模型在场景中多次摆放时,基于该模型在截帧文件中可能出现多个渲染事件,为了避免多次读取同一个模型的顶点数据并对其进行多次编码,当对截帧文件中的渲染事件进行遍历时,针对当前渲染事件,可以根据目标模型对应的顶点资源标识,在已遍历完成的渲染事件中查找是否有该目标模型对应的渲染事件;如果不存在,则对目标模型的顶点数据进行哈希编码,得到当前渲染事件所对应的顶点编码;如果存在,就证明已经针对该目标模型对应的顶点数据进行了哈希编码,该目标模型对应的顶点编码已经生成,可以将已遍历的用于渲染该目标模型的渲染事件对应的顶点编码直接作为当前渲染事件对应的顶点编码,节省对于目标模型的顶点数据进行哈希编码的时间及计算资源,提高针对截帧文件中各个渲染事件所渲染模型的顶点数据进行编码的效率。
参见图3,图3为本申请实施例提供的顶点数据示意图,通过调用OpenGL的glDrawElements命令读取模型对应的顶点数据,在顶点数据中,记录有该模型所对应各个顶点的位置信息、法线信息、切线信息、纹理贴图信息等属性信息。
在一种可能的实现方式中,所述渲染数据中包括纹理编码,所述纹理编码通过对渲染事件采样的纹理数据进行哈希编码得到;渲染事件对应的纹理编码可以通过如下方式确定:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件采样的目标纹理数据的纹理资源标识,确定所述目标纹理数据是否存在于所述截帧文件中已遍历的渲染事件;若是,则获取已遍历的用于采样所述目标纹理数据的渲染事件对应的纹理编码,作为所述当前渲染事件对应的纹理编码;若否,则对所述目标纹理数据进行哈希编码,得到所述当前渲染事件对应的纹理编码。
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
对于当前渲染事件来说,可以直接从渲染管线中获取当前渲染事件采样的目标纹理数据。纹理数据包括纹理贴图,在一个截帧文件中,同一个纹理贴图对应有一个表征其资源信息的纹理资源标识,不同的纹理贴图对应有不同的纹理资源标识;那么对于纹理数据来说,相同纹理数据在同一截帧文件中所对应的纹理资源标识也是相同的,所以在同一截帧文件中,纹理资源标识可以视为纹理数据对应的唯一性标识。
需要说明的是,在本申请实施例中,相同纹理数据对应相同的纹理资源标识是针对同一截帧文件而言的,对于不同的截帧文件来说,相同纹理数据在不同截帧文件中对应的纹理资源标识可能并不相同。
同一张纹理贴图在场景中可能多次采样,那么对应地,同一张纹理贴图可能在多个渲染事件中出现。为了避免多次读取同一个纹理贴图并对其进行多次编码,当对截帧文件中的渲染事件进行遍历时,针对当前渲染事件,可以根据目标纹理数据对应的纹理资源标识,在已遍历完成的渲染事件中查找是否有包括该纹理资源标识的渲染事件;如果不存在,则对该纹理资源标识对应的目标纹理数据进行哈希编码,得到当前渲染事件对应的纹理编码;如果存在,就证明已经针对该目标纹理数据进行了哈希编码,该目标纹理数据对应的哈希编码已经生成,可以将已遍历的用于采样目标纹理数据的渲染事件对应的纹理编码直接作为当前渲染事件对应的纹理编码,节省对于目标纹理数据进行哈希编码的时间及计算资源,提高针对截帧文件中各个渲染事件所采样的纹理数据进行编码的效率。
参见图4,图4为本申请实施例提供的渲染数据示意图,该渲染数据可以通过截帧软件提供的应用程序接口(Application Programming Interface,API)获得。
参见图5,图5为本申请实施例提供的顶点数据及纹理数据的编码流程图。首先将当前需要遍历的渲染事件设置为当前渲染事件,获取当前渲染事件中所渲染的目标模型的顶点资源标识,根据该顶点资源标识在已遍历的渲染事件中查找是否存在该顶点资源标识对应的顶点编码;如果是,则直接复制该已有的顶点编码作为当前渲染事件对应的顶点编码;否则,读取当前渲染事件对应的顶点数据,并对该顶点数据进行哈希编码,获得当前渲染事件对应的顶点编码;将当前渲染事件的事件标识、目标模型的顶点资源标识和顶点编码进行保存。然后获取当前渲染事件所采样的目标纹理数据的纹理资源标识,根据该纹理资源标识在已遍历的渲染事件中查找是否存在该纹理资源标识对应的纹理编码;如果是,则直接复制该已有的纹理编码作为当前渲染事件对应的纹理编码;否则,读取当前渲染事件对应的纹理数据,并对该纹理数据进行哈希编码,获得当前渲染事件对应的纹理编码;将当前渲染事件的事件标识、目标纹理数据的纹理资源信息和纹理编码进行保存。对同一截帧文件中所有渲染事件遍历完成后,将渲染事件的事件标识、顶点编码、纹理资源标识和纹理编码进行输出,输出数据示意图如图6所示,可以看出,在图6中,渲染事件的事件标识、顶点编码、纹理资源标识和纹理编码是对应保存的,对应于一个渲染事件的事件标识、顶点编码、纹理资源标识和纹理编码保存同一行数据中。
在一种可能的实现方式中,所述渲染数据中包括材质指令周期数,所述材质指令周期数是着色器运行时消耗的图形处理器的指令周期数;以安装在终端设备中的游戏应用为例,该游戏应用所对应游戏场景中的渲染文件的材质指令周期数越大,执行该渲染文件时所占用的GPU资源越多,而终端设备的算力是有限的,当加载该游戏应用所对应的游戏场景占用的GPU资源越多时,在终端设备上运行该游戏应用时就会越卡顿,影响用户使用体验。因此,本申请实施例还可以基于材质指令周期数这一参数,对不同场景所对应截帧文件中的模型进行对比。渲染事件对应的材质指令周期数可以通过如下方式确定:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件使用的目标着色器文件的着色器资源标识,确定所述目标着色器文件是否被所述截帧文件中已遍历的渲染事件使用;若是,则获取已遍历的使用所述目标着色器文件的渲染事件对应的材质指令周期数,作为所述当前渲染事件对应的材质指令周期数;若否,则基于所述目标着色器文件进行编译处理,得到所述当前渲染事件对应的材质指令周期数。
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
对于当前渲染事件来说,渲染管线状态描述了当前渲染事件对应的整个渲染流程,且包括了当前渲染事件的所有信息。其中,顶点着色器(Vertex Shader,VS)用来处理当前渲染事件所渲染的目标模型的顶点数据,实现顶点的空间变换及顶点着色等功能,片元着色器(Fragment Shader),也称为像素着色器(Pixel Shader,PS)用来处理逐片元的着色操作,顶点着色器和片元着色器运行过程中消耗的GPU指令周期数直接影响GPU的渲染效率,因此,本申请实施例可以通过离线编译器对顶点着色器和片元着色器进行编译,从而模拟器运行时消耗的指令周期数。
对于当前渲染事件来说,可以直接从渲染管线中获取当前渲染事件使用的目标着色器文件。在一个截帧文件中,同一个着色器文件有一个表征其资源信息的着色器资源标识,不同的着色器文件对应有不同的着色器资源标识,所以在同一截帧文件中,着色器资源标识可以视为目标着色器文件对应的唯一性标识。
需要说明的是,在本申请实施例中,相同着色器文件对应相同的着色器资源标识是针对同一截帧文件而言的,对于不同的截帧文件来说,相同着色器文件在不同截帧文件中对应的着色器资源标识可能并不相同。
同一个着色器文件可能会在场景中多次采样,所以同一个着色器文件可能在多个渲染事件中出现。为了避免多次编译同一个着色器文件,当对截帧文件中的渲染事件进行遍历时,针对当前渲染事件,根据目标着色器文件对应的着色器资源标识,在已遍历完成的渲染事件中查找是否有包括该着色器资源标识的渲染事件;如果不存在,则对该着色器资源标识对应的目标着色器文件进行编译处理,得到当前渲染事件对应的材质指令周期数;如果存在,就证明已经针对该目标着色器文件进行过编译,该目标着色器对应的材质指令周期数已经计算出,可以获取已遍历的使用目标着色器文件的渲染事件对应的材质指令周期数直接作为当前渲染事件对应的材质指令周期数,节省对于目标着色器文件进行编译的时间及计算资源,提高针对截帧文件中各个渲染事件所使用的着色器文件进行编译的效率。
具体地,可以通过如下方式对目标着色器文件进行编译处理:
步骤11:获取所述目标着色器文件的原始数据。
调用反射方法来获取该目标着色器文件的原始数据(Raw Data),反射方法是一种在程序的运行状态中,可以构造任意一个类的对象,了解任意一个对象所属的类,了解任意一个类的成员变量和方法,调用任意一个对象的属性和方法。
步骤12:对所述原始数据进行解码,得到所述目标着色器文件对应的着色器代码。
基于目标着色器文件所获取到的原始数据对于计算机来说是不可读的,因此,当需要在计算机中编译目标着色器文件时,需要将该目标着色器文件的原始数据由“不可读”转化为“可读”,首先对目标着色器文件的原始数据进行解码,获得该目标着色器文件对应的着色器代码,该着色器代码是能够为计算机所识别的、在实际计算机运行环境中所运行的代码。
步骤13:通过编译器,根据所述着色器代码编译目标着色器,获取所述目标着色器消耗的图形处理器的指令周期数,作为所述当前渲染事件对应的材质指令周期数。
计算机通过调用编译器,根据解码后获得的着色器代码编译目标着色器文件所对应的目标着色器。具体地,可以通过调用Mali编译器来编译该目标着色器,以获取目标着色器所消耗的图形处理器的指令周期数。Mali离线编译器是一个命令行工具,可对用OpenGLES着色语言(ESL)、Vulkan SPIR-V中间表示法或OpenCL C编写的GPU着色器进行静态分析。通过编译器模拟编译目标着色器文件对应的着色器代码,来验证目标着色器代码编译过程中的语法,识别目标着色器性能瓶颈,测量着色器发生变化时造成的性能影响,根据模拟编译结果获得目标着色器代码编译过程中所消耗的图形处理器的指令周期数,并将该指令周期数作为当前渲染事件的材质指令周期数。
本申请实施例通过编译器来编译目标着色器,以获取当前渲染事件在实际执行时所需消耗的材质指令周期数,提高了模型对比过程中,渲染事件所对应的材质指令周期数这一数据的准确性。
参见图7,图7为本申请实施例提供的材质指令周期数的获取流程图。首先获取当前渲染事件所对应的渲染管线状态,从中读取当前渲染事件所使用的目标着色器文件对应的着色器资源标识,目标着色器文件包括顶点着色器文件和片元着色器文件,对应的着色器资源标识也包括目标顶点着色器资源标识和目标片元着色器资源标识。基于该着色器资源标识从截帧文件中已遍历的渲染事件中进行查找,确定该目标着色器文件是否被截帧文件中已遍历的渲染事件使用;如果是,直接将包括该着色器资源标识的已遍历的渲染事件对应的材质指令周期数进行复制,将其作为当前渲染事件对应的材质指令周期数;如果否,那么就调用反射方法读取目标着色器文件,根据该目标着色器文件所对应的着色器代码来编译对应的目标着色器,获得该目标着色器所对应的材质指令周期数作为当前渲染事件所对应的材质指令周期数。在确定当前渲染事件对应的材质指令周期数后,将材质指令周期数获取流程中产生的数据进行整理输出,输出数据示意图如图8所示,可以看出,此过程输出的数据包括顶点着色器的资源标识、片元着色器的资源标识、顶点着色器及片元着色器所消耗的材质指令周期数,其中,顶点着色器所消耗的材质指令周期数具体由逻辑运算指令数和存储及加载指令数构成;片元着色器所消耗的材质指令周期数具体由逻辑运算指令数、存储及加载指令数以及纹理采样指令数构成。
在一种可能的实现方式中,所述渲染数据中包括模型基本信息,所述模型基本信息中包括模型名称、材质名称、顶点数量、三角形面数和合批次数中的至少一种信息,该至少一种信息对应于渲染事件渲染的模型;渲染事件对应的模型基本信息通过以下方式确定:
步骤21:确定渲染事件对应的父事件;对所述父事件的事件名称进行解析,得到所述渲染事件对应的模型名称和材质名称中的至少一种信息。
其中,所述渲染事件为所述第一渲染事件或者所述第二渲染事件。在本申请实施例中,由于实际需要进行绘制的渲染事件才会在截帧文件所对应的场景中体现,因此在遍历截帧文件中的渲染事件的过程中,所遍历的渲染事件为包括有效绘制指令、需要根据该有效绘制指令进行绘制的有效渲染事件,有效绘制指令可以为OpenGL的glDrawElements命令,或者DirectX的DrawIndexedPrimitive命令,本申请实施例可以通过识别渲染事件中的有效绘制指令,来确定该渲染事件是否需要遍历。
参见图9,图9为本申请实施例提供的模型信息获取流程图。在获取渲染事件所渲染的模型的基本信息时,首先要获取该渲染事件对应的事件标识,进而基于该事件标识获取该渲染事件所对应父事件的事件名称,从该父事件的事件名称中获取该渲染事件所渲染的模型的材质名称和模型名称,并从该渲染事件的事件名称中获取该渲染事件所渲染模型的三角形面数、合批次数以及顶点数量中的至少一种信息。
参见图10,图10为本申请实施例提供的截帧文件中渲染事件信息示意图。在遍历渲染事件时,首先确定渲染事件对应的父事件,并获取该父事件对应的事件名称,在图9中当前遍历的渲染事件对应的事件标识为2544,该渲染事件所对应的事件名称为“glDrawElementsInstanced(6,3)”,基于图9中渲染事件之间的组织关系,可以确定出该渲染事件对应的父事件的名称为“Master_Grass_Billboard Baltic_Grass01”,其中,父事件名称由材质名称“Master_Grass_Billboard”和模型名称“Baltic_Grass01”组成,且材质名称和模型名称之间通过空格隔开。在遍历渲染事件时,可以使用split()函数对有效渲染事件对应的父事件的事件名称进行分割匹配,从中获得该有效渲染事件对应的模型名称或材质名称中的至少一种信息。
步骤22:对所述渲染事件的事件名称进行解析,得到所述渲染事件对应的顶点数量、三角形面数和合批次数中的至少一种信息。
模型渲染分为单次渲染和合批渲染,其中,单次渲染是指单次渲染一个模型,合批渲染是指单次渲染一个模型多次,在对一个模型进行合批渲染时,合批次数是指中央处理器调用一次渲染命令时对该模型进行渲染的次数。以OpenGL为例,当对模型进行单次渲染时,对应的有效绘制指令为“glDrawElements(模型顶点数)”,例如“glDrawElements(999)”表示渲染一个顶点数为999的模型;当对模型进行合批渲染时,对应的有效绘制指令为“glDrawElementsInstanced(模型顶点数,合批次数)”,例如,图9中所示的绘制指令“glDrawElementsInstanced(6,11)”表示该绘制指令所渲染模型的顶点数为6,该绘制指令当前共渲染了11个该模型,即合批次数为11。
由此可见,通过对渲染事件的事件名称进行解析,可以直接获得该渲染事件所对应模型的顶点数量和合批次数中的至少一种信息,而基于顶点数量和合批次数,可以进一步计算出该渲染事件所对应模型的三角形面数,三角形面数对应的计算公式如下式所示:
对于合批渲染的渲染事件来说,对渲染事件的事件名称进行解析后,可以计算出该渲染事件所渲染的模型的三角形面数,参见图11,图11为本申请实施例提供的模型基本信息示意图,可以看出,输出的模型信息主要包括事件标识、模型名称、材质名称、三角形面数及合批次数。
因此,通过对渲染事件的事件名称进行解析后,可以得到该渲染事件对应顶点数量、三角形面数和合批次数中的至少一种信息,提高了对渲染事件中所渲染的模型的相关信息进行获取的准确性。
步骤203:针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息。
根据哈希编码的性质,在确定了顶点编码后,可以通过该顶点编码在不同的渲染事件中查找相匹配的模型。在第一截帧文件的各个第一渲染事件中,记录有该第一渲染事件所渲染模型对应的顶点编码,同样,在第二截帧文件的各个第二渲染事件中,也记录有该第二渲染事件所渲染模型对应的顶点编码,基于哈希编码的性质,相同的数据集合对应的哈希编码值相同,那么当第一渲染事件中的顶点编码和第二渲染事件中的顶点编码相同时,可以确定该第一渲染事件与该第二渲染事件所渲染的模型是相同的,由于本申请实施例中所进行的模型对比是将不同截帧文件中出现的相匹配的模型进行对比,所以将该第二渲染事件确定为该第一渲染事件对应的候选参考事件,以对第一渲染事件中所渲染的该模型和第二渲染事件中所渲染的该模型进行对比。
在本申请实施例中,候选参考事件是第二截帧文件中与第一渲染事件渲染相匹配的模型的第二渲染事件,在第二截帧文件中,根据第一渲染事件所对应的顶点编码确定出的候选参考事件的数量可以为一个或多个,本申请对于候选参考事件的数量不做具体限定。
在确定第一渲染事件所对应的候选参考事件之后,根据第一渲染事件所对应的渲染数据以及候选参考事件所对应的渲染数据,对第一场景中该模型的渲染属性数据和第二场景中该模型的渲染属性数据进行对比,确定第一渲染事件和候选参考事件在渲染该模型时的差异,这种差异即为该模型由第一场景中的状态变成第二场景中的状态所对应的变化信息,该变化信息用于表征模型在第一场景中相对于在第二场景中的变化情况。基于模型对比所获得的变化信息可以用于分析此次场景优化的目标以及优化方向,并且基于该变化信息可以将优化后的场景与优化前的场景进行对比,以获得此次场景优化所带来的性能变化,进而基于该性能变化来明确后续场景更新时所对应的优化方向。
在一种可能的实现方式中,可以通过如下步骤来确定第一渲染事件所对应的候选参考事件:
步骤31:在各个所述第二渲染事件中,查找与所述第一渲染事件对应相同的顶点编码的第二渲染事件;
步骤32:若查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定与所述第一渲染事件对应相同的顶点编码的第二渲染事件作为所述候选参考事件;若未查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定各个所述第二渲染事件作为所述候选参考事件。
由于不同截帧文件中,相匹配的模型所对应的顶点编码是相同的,因此可以以顶点编码为标签,在第二截帧文件中查找与第一渲染事件具有相同顶点编码的第二渲染事件。
当查找到的第二渲染事件对应的顶点编码与第一渲染事件对应的顶点编码相同时,可以确定该第二渲染事件所渲染的模型与该第一渲染事件所渲染的模型相匹配,进而可以将该第二渲染事件确定为该第一渲染事件对应的候选参考事件,以便对该候选参考事件对应的渲染数据和该第一渲染事件对应的渲染数据进行对比,从而确定候选参考事件所渲染的模型与第一渲染事件所渲染的模型之间的变化信息。
需要说明的是,在本申请实施例中,从第二截帧文件中查找到的与第一渲染事件对应相同的顶点编码的第二渲染事件的数量可以为一个或多个,所确定出的候选参考事件的数量对应地也可以为一个或多个,本申请实施例对此不做具体限定。
具体地,所述渲染数据中包括纹理编码、材质指令周期数和合批次数;在查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,可以通过如下步骤来确定第一渲染事件渲染的模型对应的变化信息:
步骤41:在各个所述候选参考事件中,确定是否存在与所述第一渲染事件对应于相同的合批次数的合批匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了合批次数变化。
当确定出与第一渲染事件对应相同的顶点编码的候选参考事件之后,首先根据各个候选参考事件对应的合批次数以及第一渲染事件对应的合批次数,逐个确定候选参考事件的合批次数与该第一渲染事件的合批次数是否相同;如果是,则将与第一渲染事件对应相同的合批次数的候选参考事件确定为合批匹配参考事件;如果各个候选参考事件的合批次数与该第一渲染事件的合批次数均不相同,此时在第二截帧文件中与该第一渲染事件最为匹配的第二渲染事件即为各个候选参考事件,而第一渲染事件相较于候选参考事件发生的变化,即为第一渲染事件渲染的模型发生的变化,由此可以确定第一渲染事件渲染的模型发生了合批次数变化。
步骤42:若存在所述合批匹配参考事件,在各个所述合批匹配参考事件中,确定是否存在与所述第一渲染事件对应于相同的纹理编码的纹理匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了纹理变化。
若候选参考事件中存在合批匹配参考事件,需要对于合批匹配参考事件做进一步对比。根据各个合批匹配参考事件对应的纹理编码以及第一渲染事件对应的纹理编码,逐个确定合批匹配参考事件的纹理编码与该第一渲染事件的纹理编码是否相同;如果是,则将与第一渲染事件对应于相同的纹理编码的合批匹配参考事件确定为纹理匹配参考事件;如果各个合批匹配参考事件的纹理编码与该第一渲染事件的纹理编码均不相同,此时,虽然这些合批匹配参考事件与第一截帧事件的纹理编码不同,但是相较于合批匹配参考事件来说,其他候选参考事件与该第一截帧事件的合批次数都不相同;所以其他候选参考事件与第一渲染事件的匹配程度低于合批匹配参考事件与第一渲染事件的匹配程度,这些合批匹配参考事件即为所有候选参考事件中与该第一截帧事件最为匹配的,也即,这些合批匹配参考事件是所有第二渲染事件中与该第一截帧事件最为匹配的。在确定第一渲染事件所渲染的模型的变化信息时,应当是将该模型对应的第一渲染事件中的渲染数据,以及与该第一渲染事件最为匹配的第二渲染事件中的渲染数据进行对比;由于本申请实施例中,最为匹配的各个合批匹配参考事件所对应的纹理编码与第一渲染事件的纹理编码均不相同,所以可以确定,相较于这些合批匹配参考事件渲染的模型来说,第一渲染事件渲染的模型发生了纹理变化。
步骤43:若存在所述纹理匹配参考事件,在各个所述纹理匹配参考事件中,确定是否存在与所述第一渲染事件对应于相同的材质指令周期数的材质匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了材质变化;若存在,则确定所述第一渲染事件渲染的模型未发生变化。
若在合批匹配参考事件中,还存在纹理匹配参考事件,需要对于纹理匹配参考事件做进一步对比。根据各个纹理匹配参考事件对应的材质指令周期数以及第一渲染事件对应的材质指令周期数,逐个确定纹理匹配参考事件的材质指令周期数与该第一渲染事件的材质指令周期数是否相同;如果各个纹理匹配参考事件的材质指令周期数与该第一渲染事件的材质指令周期数均不相同,此时在第二截帧文件中与该第一渲染事件最为匹配的第二渲染事件即为各个纹理匹配参考事件,而第一渲染事件相较于纹理匹配参考事件发生的变化,即为第一渲染事件渲染的模型发生的变化,由此可以确定第一渲染事件渲染的模型发生了材质变化。
如果在纹理匹配参考事件中,存在与第一渲染事件对应于相同的材质指令周期数的纹理匹配参考事件,则将该与第一渲染事件对应于相同的材质指令周期数的纹理匹配参考事件确定为材质匹配参考事件,
在本申请实施例中,将与第一渲染事件对应于相同的材质指令周期数的纹理匹配参考事件被称为材质匹配参考事件,如果在纹理匹配参考事件存在材质匹配参考事件,那么可以确定该材质匹配参考事件所渲染的模型的顶点编码、合批次数、纹理编码和材质指令周期数均与第一渲染事件所渲染的模型的顶点编码、合批次数、纹理编码和材质指令周期数相对应,也就是说,第一渲染事件所渲染的模型相对于该材质匹配参考事件所渲染的模型并未发生变化,因此,确定该材质匹配参考事件渲染的模型未发生变化。
在整个模型对比的过程中,按照顶点编码、合批次数、纹理编码、材质质量周期数的层级顺序,从各个第二渲染事件所渲染的模型中逐层筛选与第一渲染事件所渲染的模型最为匹配的模型,将最终筛选出的最为匹配的模型作为第一渲染事件所渲染的模型的参照,来评估第一渲染事件所渲染的模型相对于该最为匹配的模型的变化信息,更加准确地反映了由第一场景至第二场景的变化过程,提高了模型对比的针对性和效率。
在另一种可能的实现方式中,所述渲染数据中包括纹理编码、材质指令周期数和合批次数;在查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,也可以通过如下步骤来确定第一渲染事件渲染的模型对应的变化信息:
步骤51:针对每个所述候选参考事件,分别对比所述第一渲染事件和所述候选参考事件各自对应的合批次数、所述第一渲染事件和所述候选参考事件各自对应的纹理编码、所述第一渲染事件和所述候选参考事件各自对应的材质指令周期数,得到所述候选参考事件对应的合批对比结果、纹理对比结果和材质对比结果;
步骤52:根据各个所述候选参考事件各自对应的合批对比结果、纹理对比结果和材质对比结果,确定所述第一渲染事件渲染的模型对应的变化信息。
当确定出与第一渲染事件对应相同的顶点编码的候选参考事件之后,分别获取第一渲染事件对应的渲染数据以及各个候选参考事件对应的渲染数据,在获取的渲染数据中,包括纹理编码、材质指令周期数和合批次数。
针对每个候选参考事件,分别将候选参考事件对应的纹理编码与第一渲染事件对应的纹理编码进行对比,将候选参考事件对应的材质指令周期数与第一渲染事件对应的材质指令周期数进行对比,将候选参考事件对应的合批次数与第一渲染事件对应的合批次数进行对比,并分别得到每个候选参考事件对应纹理对比结果、材质对比结果和合批对比结果。基于每个候选参考事件对应的纹理对比结果,确定第一渲染事件所渲染的模型相较于各个候选参考事件所渲染的模型是否发生纹理变化;基于每个候选参考事件对应的材质对比结果,确定第一渲染事件所渲染的模型相较于各个候选参考事件所渲染的模型是否发生材质变化;基于每个候选参考事件对应的合批对比结果,确定第一渲染事件所渲染的模型相较于各个候选参考事件所渲染的模型是否发生合批次数变化;结合纹理变化、材质变化和合批次数变化最终确定第一渲染事件渲染的模型对应的变化信息。
在该变化信息中,可以将第一渲染事件渲染的模型相较于各个候选参考事件渲染的模型所发生的变化以标签的形式进行保存,例如,当第一渲染事件渲染的模型相较于某个候选参考事件渲染的模型,既发生了纹理变化,又发生了材质变化,那么同时为该第一渲染事件生成纹理变化和材质变化对应的标签。
本申请实施例中,通过将纹理编码、材质指令周期数和合批次数放在同一层级进行并列对比,使得每个候选参考事件都需要与第一渲染事件进行纹理编码、材质指令周期数和合批次数的对比,提高了模型对比的全面性。
具体地,上述步骤52可以通过如下方式实现:
步骤61:若各个所述候选参考事件中存在第一目标事件,所述第一目标事件对应的合批对比结果、纹理对比结果和材质对比结果均表征所对应的数据一致,则确定所述第一渲染事件渲染的模型未发生变化。
通过对候选参考事件对应的渲染数据与第一渲染事件对应的渲染数据进行对比,获得的合批对比结果用于表征候选参考事件与第一渲染事件是否对应于相同的合批次数,纹理对比结果用于表征候选参考事件与第一渲染事件是否对应于相同的纹理编码,材质对比结果用于表征候选参考事件与第一渲染事件是否对应于相同的材质指令周期数。若候选参考事件中,存在合批对比结果、纹理对比结果和材质对比结果均表征所对应的数据与第一渲染事件对应数据相同的候选参考事件,则将这种候选参考事件确定为第一目标事件,可以基于第一目标事件的合批对比结果、纹理对比结果和材质对比结果,来确定第一渲染事件渲染的模型相较于第一目标事件渲染的模型并未发生变化。
步骤62:若各个所述候选参考事件中不存在所述第一目标事件,存在第二目标事件,所述第二目标事件对应的合批对比结果、纹理对比结果和材质对比结果中存在至少一个对比结果表征所对比的数据不一致,则根据所述第二目标事件对应的、表征所对比的数据不一致的对比结果,确定所述变化信息。
在候选参考事件中,当合批对比结果、纹理对比结果和材质对比结果中存在至少一个对比结果表征所对比的数据不一致时,确定第一渲染事件所渲染的模型相较于该候选参考事件所渲染的模型发生变化,将该候选参考事件确定为第二目标事件。根据第二目标事件中表征数据不一致的对比结果,来确定第一渲染事件所渲染的模型相较于该第二目标事件所渲染模型的变化信息。例如,当第二目标事件中的材质对比结果和纹理对比结果均表征数据不一致时,即第一渲染事件对应的材质执行周期数与该第二目标事件对应的材质指令周期数不同、且第一渲染事件对应的纹理编码与该第二目标事件对应的纹理编码不同;基于该材质对比结果和该纹理对比结果,确定第一渲染事件所渲染的模型相较于该第二目标事件所渲染的模型在材质指令周期数上的变化以及在纹理编码上的变化,进而根据材质指令周期数上的变化以及在纹理编码上的变化,综合确定出第一渲染事件渲染的模型对应的变化信息。
通过对各个候选参考事件各自对应的合批对比结果、纹理对比结果和材质对比结果进行总体分析,进而确定第一渲染事件所渲染的模型是否发生变化,以及发生变化时对应的变化信息,提高了对于模型对比结果进行分析的全面性以及准确性。
若在步骤32中,未查找到与第一渲染事件对应相同顶点编码的第二渲染事件时,认为第二截帧文件的所有第二渲染事件渲染的模型中,并不存在与第一渲染事件所渲染的模型相匹配的模型,考虑第二渲染事件中所渲染的模型的顶点数据可能发生了变化,也无法从第二事件渲染的模型中确定出顶点数据与该第一渲染事件所渲染的模型最为相似的,因此将各个第二渲染事件均作为候选参考事件。
在一种可能的实现方式中,所述渲染数据中包括模型名称;在未查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,可以通过如下步骤来确定第一渲染事件渲染的模型对应的变化信息:
步骤71:在各个所述候选参考事件中,确定是否存在与所述第一渲染事件对应于相同的模型名称的名称匹配参考事件。
以游戏应用为例,在对游戏应用中的游戏场景进行优化时,可能会对游戏场景中的各个模型的结构进行调整,此时,对应于模型结构的调整,模型所对应的顶点数据也会发生变化,那么就无法利用顶点编码的唯一性在不同的截帧文件中查找到相匹配的模型。但是通常情况下,模型优化后相匹配的模型在渲染事件中对应的模型名称仍然是相同的,所以在未查找到与第一渲染事件对应相同的顶点编码的第二渲染事件时,确定第一渲染事件渲染的模型,获取该模型对应的模型名称,该模型名称即为第一渲染事件所对应的模型名称。在确定出的候选参考事件中,根据第一渲染事件对应的模型名称查找与之对应于相同模型名称的候选参考事件,并将这种候选参考事件确定为名称匹配参考事件。
步骤72:若存在,则确定所述第一渲染事件渲染的模型发生了顶点数变化、或三角形面数变化;若不存在,则确定所述第一渲染事件渲染的模型为新增模型。
当在候选参考事件中存在名称匹配参考事件时,可以确定该名称匹配参考事件渲染的模型是与第一渲染事件渲染的模型最为接近的模型,二者模型之间的变化是基于模型优化过程中模型结构变化导致的顶点数据的变化,而在计算机构建模型时,顶点数据的变化会导致模型的顶点数或三角形面数的变化,因此可以确定第一渲染事件中所渲染的模型相较于该名称匹配参考事件所渲染的模型,发生了顶点数变化、或三角形面数变化。
当在候选参考事件中不存在名称匹配参考事件时,可以确定该第一渲染事件渲染的模型与各个候选参考事件渲染的模型的顶点编码和模型名称均不相同,而在此场景下,候选参考事件包括第二截帧文件中所有的第二渲染事件,也就是说,第一渲染事件渲染的模型与第二截帧文件中所有第二渲染事件渲染的模型的顶点编码和顶点名称均不相同,那么就无法将第一渲染事件渲染的模型与各个第二渲染事件渲染的模型相匹配,由此可以确定,该第一渲染事件渲染的模型为新增模型,该新增模型是指未出现在第二场景中的模型。
在未查找到与第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,根据第一渲染事件渲染模型的模型名称进行匹配查找,在模型结构发生变化时仍能确定与之匹配的模型,提高了对于结构发生变化的模型进行匹配以及对比的准确性。
作为一种实施例,本申请实施例提供的一种模型对比方法还可以包括如下步骤:
基于所述第一截帧文件中各个所述第一渲染事件各自渲染的模型对应的变化信息,进行统计分析,确定所渲染的模型发生三角形面数或顶点数变化的第一渲染事件、所渲染的模型发生合批次数变化的第一渲染事件、所渲染的模型发生材质变化的第一渲染事件、所渲染的模型发生纹理变化的第一渲染事件、所渲染的模型为新增模型的第一渲染事件、和所渲染的模型未发生变化的第一渲染事件中的至少一种。
在模型对比结束后,对第一截帧文件中各个第一渲染事件各自渲染的模型对应的变化信息进行统计分析,并根据各个变化信息对应的类型进行分类,将各个第一渲染事件确定为发生三角形面数或顶点数变化的第一渲染事件、所渲染的模型发生合批次数变化的第一渲染事件、所渲染的模型发生材质变化的第一渲染事件、所渲染的模型发生纹理变化的第一渲染事件、所渲染的模型为新增模型的第一渲染事件、和所渲染的模型未发生变化的第一渲染事件中的一种或多种。
进一步地,还可以确定出第一截帧文件中对应各种变化的第一渲染事件的数量。例如,渲染的模型发生合批次数变化的第一渲染事件数量,确定所渲染的模型发生材质变化的第一渲染事件数量,确定所渲染的模型发生纹理变化的第一渲染事件数量,确定所渲染的模型为新增模型的第一渲染事件数量,以及确定所渲染的模型未发生变化的第一渲染事件数量。
通过对模型对比过程中产生的对比数据进行可视化输出,有效地展示了各个渲染事件对应的模型对比过程,提高了模型对比结果数据输出的直观性。
参见图12,图12为本申请场景实施例提供的模型对比流程图。
通过输入调用命令,在终端设备中启动对于第一截帧文件和第二截帧文件的模型对比。参见图13,本申请实施例提供的调用命令运行界面示意图如图13所示,当输入调用命令后,基于该调用命令的执行,终端设备获取需要进行模型对比的第一截帧文件和第二截帧文件,并对第一截帧文件和第二截帧文件中的数据进行读取。其中,在调用命令执行的过程中,会根据当前执行进度在运行界面中显示过程指示信息,当第一截帧文件中的数据读取完成后,显示字符串“第一截帧文件读取完成,开始读取第二截帧文件……”,当第二截帧文件中的数据读取完成后,显示字符串“第二截帧文件读取完成,开始对比……”,提醒用户当前进入模型对比过程。
参见图14,图14为本申请实施例提供的截帧文件解析流程图。通过对截帧文件进行解析,首先得到各个渲染事件渲染的模型的顶点编码、纹理编码,然后确定材质指令周期数,最后获取渲染事件渲染的模型对应的模型名称、材质名称、顶点数量、三角形面数和合批次数等模型基本信息,将从截帧文件中解析出的信息进行保存,以便后续基于这些信息进行模型对比。
在得到第一截帧文件的相关信息和第二截帧文件的相关信息后,逐事件遍历第一截帧文件中的第一渲染事件;在确定本轮所要遍历的第一渲染事件之后,使用第二截帧文件中的所有第二渲染事件,与该第一渲染事件进行对比。
判断第二渲染事件对应的顶点编码与第一渲染事件对应的顶点编码是否相同;如果是,则继续对第一渲染事件和第二渲染事件进行合批次数对比;如果否,则对第一渲染事件与第二渲染事件进行模型名称对比。
在进行合批次数对比时,判断第一渲染事件对应的合批次数和第二渲染事件对应的合批次数是否相同;如果是,则继续对第一渲染事件和第二渲染事件进行纹理对比;如果否,则将该第一渲染事件渲染的模型标记为合批变化的模型。
在进行纹理对比时,判断第一渲染事件对应的纹理编码和第二渲染事件对应的纹理编码是否相同;如果是,则继续对第一渲染事件和第二渲染事件进行材质对比;如果否,则将该第一渲染事件渲染的模型标记为纹理变化的模型。
在进行材质对比时,判断第一渲染事件对应的材质指令周期数与第二渲染事件对应的材质指令周期数是否相同;如果是,则将该第一渲染事件渲染的模型标记为未发生变化的模型;如果否,则将该第一渲染事件渲染的模型标记为材质变化的模型。
在进行模型名称对比时,判断第一渲染事件对应的模型名称与第二渲染事件对应的模型名称是否相同;如果是,则继续对第一渲染事件和第二渲染事件进行三角形面数对比;如果否,则将该第一渲染事件渲染的模型标记为新增模型。
在进行三角形面数对比时,判断第一渲染事件对应的三角形面数与第二渲染事件对应的三角形面数是否相同;如果是,那么此时可以认为,在顶点编码不同但三角形面数相同的情况下,第一渲染事件对应的模型名称与第二渲染事件对应的模型名称相同可能是偶然发生的情况,第一渲染事件渲染的模型与第二渲染事件渲染的模型实际上并不能够相匹配,则将该第一渲染事件渲染的模型标记为新增模型;如果否,则将该第一渲染事件渲染的模型标记为三角形面数变化的模型。
当第二截帧文件中的所有第二渲染事件均与该第一渲染事件完成对比后,确定该第一渲染事件渲染的模型对应的标签,继续对第一截帧文件中的下一个第一渲染事件进行对比。当对第一截帧文件中的所有第一渲染事件完成遍历后,将此次模型对比过程获得的各个第一渲染事件渲染的模型的变化信息进行整理输出。
参见图15,图15为本申请实施例提供的变化信息输出示意图,可以看出,所输出的模型的变化信息按照标记类型共分为6种,分别为三角形面数变化的模型、合批变化的模型、新增模型、材质变化的模型、未发生变化的模型以及纹理变化的模型。
具体地,三角形面数变化的模型的详细信息如图16所示,在图16中,记录有三角形面数变化的模型对应的材质名称、模型名称、模型所对应第一渲染事件和第二渲染事件,可以看出,第一渲染事件与第二渲染事件中,相匹配的模型对应的三角形面数均不相同。
合批变化的模型的详细信息如图17所示,在图17中,记录有合批次数发生变化的模型对应的材质名称、模型名称、模型所对应的第一渲染事件和第二渲染事件,可以看出,第一渲染事件和第二渲染事件中,相匹配的模型对应的合批次数均不相同。
新增模型的详细信息如图18所示,在图18中,记录有新增模型对应的材质名称、模型名称、新增模型对应的第一渲染事件的事件标识、三角形面数和合批次数。
材质变化的模型的详细信息如图19所示,在图19中,记录有材质指令周期数发生变化的模型对应的模型名称、模型对应的第一渲染事件和第二渲染事件,可以看出,第一渲染事件和第二渲染事件中,相匹配的模型对应的材质名称不同。
未发生变化的模型的详细信息如图20所示,在图20中,记录有未发生变化的模型对应的材质名称、模型名称、模型对应的第一渲染事件的事件标识、三角形面数和合批次数。
纹理变化的模型的详细信息如图21所示,在图21中,记录有纹理编码发生变化的模型对应的模型名称、对应的第一渲染事件和第二渲染事件,可以看出,在第一渲染事件和第二渲染事件中,相匹配的模型对应的纹理信息不同。
由此可见,本申请通过顶点编码在不同截帧文件中查找作为对比参照的渲染事件,由于顶点编码具有唯一表征性、并且通常数据量较少,因此能够提高在不同截帧文件中查找作为对比参照的渲染事件的准确率和效率,进而有助于提高模型对比的效率;并且,基于某第一渲染事件的顶点编码,在第二截帧文件中查找到用作对比参照的渲染事件(即候选参考事件)后,对该第一渲染事件和该候选参考事件各自对应的渲染数据进行对比,从而得到该第一渲染事件渲染的模型在第一场景中相对于在第二场景中的变化情况,保证了所确定的模型变化情况的准确性。
参见图22,图22为本申请实施例提供的一种模型对比装置2200的结构示意图。该装置包括:获取模块2201,确定模块2202以及对比模块2203。
获取模块2201,用于获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件;
确定模块2202,用于确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;所述顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,所述渲染数据包括与渲染事件相关的渲染属性数据;
对比模块2203,用于针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息;所述变化信息用于表征模型在所述第一场景中相对于在所述第二场景中的变化情况。
可选地,确定模块2202还用于:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件渲染的目标模型的顶点资源标识,确定所述目标模型是否存在于所述截帧文件中已遍历的渲染事件;若是,则获取已遍历的用于渲染所述目标模型的渲染事件对应的顶点编码,作为所述当前渲染事件对应的顶点编码;若否,则对所述目标模型的顶点数据进行哈希编码,得到所述当前渲染事件对应的顶点编码;
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
可选地,所述渲染数据中包括纹理编码,所述纹理编码通过对渲染事件采样的纹理数据进行哈希编码得到;确定模块2202还用于:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件采样的目标纹理数据的纹理资源标识,确定所述目标纹理数据是否存在于所述截帧文件中已遍历的渲染事件;若是,则获取已遍历的用于采样所述目标纹理数据的渲染事件对应的纹理编码,作为所述当前渲染事件对应的纹理编码;若否,则对所述目标纹理数据进行哈希编码,得到所述当前渲染事件对应的纹理编码;
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
可选地,所述渲染数据中包括材质指令周期数,所述材质指令周期数是着色器运行时消耗的图形处理器的指令周期数;确定模块2202还用于:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件使用的目标着色器文件的着色器资源标识,确定所述目标着色器文件是否被所述截帧文件中已遍历的渲染事件使用;若是,则获取已遍历的使用所述目标着色器文件的渲染事件对应的材质指令周期数,作为所述当前渲染事件对应的材质指令周期数;若否,则基于所述目标着色器文件进行编译处理,得到所述当前渲染事件对应的材质指令周期数;
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
可选地,确定模块2202还用于:
获取所述目标着色器文件的原始数据;
对所述原始数据进行解码,得到所述目标着色器文件对应的着色器代码;
通过编译器,根据所述着色器代码编译目标着色器,获取所述目标着色器消耗的图形处理器的指令周期数,作为所述当前渲染事件对应的材质指令周期数。
可选地,所述渲染数据中包括模型基本信息,所述模型基本信息中包括渲染事件渲染的模型的模型名称、材质名称、顶点数量、三角形面数和合批次数中的至少一种;确定模块2202还用于:
确定渲染事件对应的父事件;对所述父事件的事件名称进行解析,得到所述渲染事件对应的模型名称和材质名称中的至少一种信息;所述渲染事件为所述第一渲染事件或者所述第二渲染事件;
对所述渲染事件的事件名称进行解析,得到所述渲染事件对应的顶点数量、三角形面数和合批次数中的至少一种信息。
可选地,对比模块2203具体用于:
在各个所述第二渲染事件中,查找与所述第一渲染事件对应相同的顶点编码的第二渲染事件;
若查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定与所述第一渲染事件对应相同的顶点编码的第二渲染事件作为所述候选参考事件;若未查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定各个所述第二渲染事件作为所述候选参考事件。
可选地,所述渲染数据中包括纹理编码、材质指令周期数和合批次数;在查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,对比模块2203具体用于:
在各个所述候选参考事件中,确定是否存在与所述第一渲染事件对应于相同的合批次数的合批匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了合批次数变化;
若存在所述合批匹配参考事件,在各个所述合批匹配参考事件中,确定是否存在与所述第一渲染事件对应于相同的纹理编码的纹理匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了纹理变化;
若存在所述纹理匹配参考事件,在各个所述纹理匹配参考事件中,确定是否存在与所述第一渲染事件对应于相同的材质指令周期数的材质匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了材质变化;若存在,则确定所述第一渲染事件渲染的模型未发生变化。
可选地,所述渲染数据中包括纹理编码、材质指令周期数和合批次数;在查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,对比模块2203具体用于:
针对每个所述候选参考事件,分别对比所述第一渲染事件和所述候选参考事件各自对应的合批次数、所述第一渲染事件和所述候选参考事件各自对应的纹理编码、所述第一渲染事件和所述候选参考事件各自对应的材质指令周期数,得到所述候选参考事件对应的合批对比结果、纹理对比结果和材质对比结果;
根据各个所述候选参考事件各自对应的合批对比结果、纹理对比结果和材质对比结果,确定所述第一渲染事件渲染的模型对应的变化信息。
可选地,对比模块2203具体用于:
若各个所述候选参考事件中存在第一目标事件,所述第一目标事件对应的合批对比结果、纹理对比结果和材质对比结果均表征所对应的数据一致,则确定所述第一渲染事件渲染的模型未发生变化;
若各个所述候选参考事件中不存在所述第一目标事件,存在第二目标事件,所述第二目标事件对应的合批对比结果、纹理对比结果和材质对比结果中存在至少一个对比结果表征所对比的数据不一致,则根据所述第二目标事件对应的、表征所对比的数据不一致的对比结果,确定所述变化信息。
可选地,所述渲染数据中包括模型名称;在未查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,对比模块2203具体用于:
在各个所述候选参考事件中,确定是否存在与所述第一渲染事件对应于相同的模型名称的名称匹配参考事件;
若存在,则确定所述第一渲染事件渲染的模型发生了顶点数变化、或三角形面数变化;若不存在,则确定所述第一渲染事件渲染的模型为新增模型。
可选地,所述装置还包括数据输出单元,用于:
基于所述第一截帧文件中各个所述第一渲染事件各自渲染的模型对应的变化信息,进行统计分析,确定所渲染的模型发生三角形面数或顶点数变化的第一渲染事件、所渲染的模型发生合批次数变化的第一渲染事件、所渲染的模型发生材质变化的第一渲染事件、所渲染的模型发生纹理变化的第一渲染事件、所渲染的模型为新增模型的第一渲染事件、和所渲染的模型未发生变化的第一渲染事件中的至少一种。
本申请实施例还提供了一种计算机设备,该设备具体可以是终端设备或者服务器,下面将从硬件实体化的角度对本申请实施例提供的终端设备和服务器进行介绍。
参见图23,图23是本申请实施例提供的终端设备的结构示意图。如图23所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、销售终端(Point of Sales,POS)、车载电脑等任意终端设备,以终端为计算机为例:
图23示出的是与本申请实施例提供的终端相关的计算机的部分结构的框图。参考图23,计算机包括:射频(Radio Frequency,RF)电路1210、存储器1220、输入单元1230(其中包括触控面板1231和其他输入设备1232)、显示单元1240(其中包括显示面板1241)、传感器1250、音频电路1260(其连接有扬声器1261和传声器1262)、无线保真(wireless fidelity,WiFi)模块1270、处理器1280、以及电源1290等部件。本领域技术人员可以理解,图23中示出的计算机结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器1220可用于存储软件程序以及模块,处理器1280通过运行存储在存储器1220的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器1220可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器1280是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器1220内的软件程序和/或模块,以及调用存储在存储器1220内的数据,执行计算机的各种功能和处理数据。可选的,处理器1280可包括一个或多个处理单元;优选的,处理器1280可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1280中。
在本申请实施例中,该终端所包括的处理器1280还具有以下功能:
获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件;
确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;所述顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,所述渲染数据包括与渲染事件相关的渲染属性数据;
针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息;所述变化信息用于表征模型在所述第一场景中相对于在所述第二场景中的变化情况。
可选的,所述处理器1280还用于执行本申请实施例提供的模型对比方法的任意一种实现方式的步骤。
参见图24,图24为本申请实施例提供的一种服务器1300的结构示意图。该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。
服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图24所示的服务器结构。
其中,CPU 1322用于执行如下步骤:
获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件;
确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;所述顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,所述渲染数据包括与渲染事件相关的渲染属性数据;
针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息;所述变化信息用于表征模型在所述第一场景中相对于在所述第二场景中的变化情况。
可选的,CPU 1322还可以用于执行本申请实施例提供的模型对比方法的任意一种实现方式的步骤。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种模型对比方法中的任意一种实施方式。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述各个实施例所述的一种模型对比方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (15)

1.一种模型对比方法,其特征在于,所述方法包括:
获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件;
确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;所述顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,所述渲染数据包括与渲染事件相关的渲染属性数据;
针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息;所述变化信息用于表征模型在所述第一场景中相对于在所述第二场景中的变化情况;
所述根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息,包括:
在各个所述第二渲染事件中,查找与所述第一渲染事件对应相同的顶点编码的第二渲染事件;
若查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定与所述第一渲染事件对应相同的顶点编码的第二渲染事件作为所述候选参考事件;根据所述第一渲染事件和所述候选参考事件各自对应的合批次数、纹理编码和材质指令周期数中的至少一种数据,确定所述变化信息;
若未查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定各个所述第二渲染事件作为所述候选参考事件;根据所述第一渲染事件和所述候选参考事件的模型名称,确定所述变化信息。
2.根据权利要求1所述的方法,其特征在于,渲染事件对应的顶点编码通过以下方式确定:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件渲染的目标模型的顶点资源标识,确定所述目标模型是否存在于所述截帧文件中已遍历的渲染事件;若是,则获取已遍历的用于渲染所述目标模型的渲染事件对应的顶点编码,作为所述当前渲染事件对应的顶点编码;若否,则对所述目标模型的顶点数据进行哈希编码,得到所述当前渲染事件对应的顶点编码;
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
3.根据权利要求1或2所述的方法,其特征在于,所述渲染数据中包括纹理编码,所述纹理编码通过对渲染事件采样的纹理数据进行哈希编码得到;渲染事件对应的纹理编码通过以下方式确定:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件采样的目标纹理数据的纹理资源标识,确定所述目标纹理数据是否存在于所述截帧文件中已遍历的渲染事件;若是,则获取已遍历的用于采样所述目标纹理数据的渲染事件对应的纹理编码,作为所述当前渲染事件对应的纹理编码;若否,则对所述目标纹理数据进行哈希编码,得到所述当前渲染事件对应的纹理编码;
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
4.根据权利要求1或2所述的方法,其特征在于,所述渲染数据中包括材质指令周期数,所述材质指令周期数是着色器运行时消耗的图形处理器的指令周期数;渲染事件对应的材质指令周期数通过以下方式确定:
针对截帧文件中的当前渲染事件,根据所述当前渲染事件使用的目标着色器文件的着色器资源标识,确定所述目标着色器文件是否被所述截帧文件中已遍历的渲染事件使用;若是,则获取已遍历的使用所述目标着色器文件的渲染事件对应的材质指令周期数,作为所述当前渲染事件对应的材质指令周期数;若否,则基于所述目标着色器文件进行编译处理,得到所述当前渲染事件对应的材质指令周期数;
其中,所述截帧文件为所述第一截帧文件或者所述第二截帧文件,所述当前渲染事件为所述第一渲染事件或者所述第二渲染事件。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标着色器文件进行编译处理,得到所述当前渲染事件对应的材质指令周期数,包括:
获取所述目标着色器文件的原始数据;
对所述原始数据进行解码,得到所述目标着色器文件对应的着色器代码;
通过编译器,根据所述着色器代码编译目标着色器,获取所述目标着色器消耗的图形处理器的指令周期数,作为所述当前渲染事件对应的材质指令周期数。
6.根据权利要求1或2所述的方法,其特征在于,所述渲染数据中包括模型基本信息,所述模型基本信息中包括渲染事件渲染的模型的模型名称、材质名称、顶点数量、三角形面数和合批次数中的至少一种;渲染事件对应的模型基本信息通过以下方式确定:
确定渲染事件对应的父事件;对所述父事件的事件名称进行解析,得到所述渲染事件对应的模型名称和材质名称中的至少一种信息;所述渲染事件为所述第一渲染事件或者所述第二渲染事件;
对所述渲染事件的事件名称进行解析,得到所述渲染事件对应的顶点数量、三角形面数和合批次数中的至少一种信息。
7.根据权利要求1所述的方法,其特征在于,所述渲染数据中包括纹理编码、材质指令周期数和合批次数;在查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,所述根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息,包括:
在各个所述候选参考事件中,确定是否存在与所述第一渲染事件对应于相同的合批次数的合批匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了合批次数变化;
若存在所述合批匹配参考事件,在各个所述合批匹配参考事件中,确定是否存在与所述第一渲染事件对应于相同的纹理编码的纹理匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了纹理变化;
若存在所述纹理匹配参考事件,在各个所述纹理匹配参考事件中,确定是否存在与所述第一渲染事件对应于相同的材质指令周期数的材质匹配参考事件;若不存在,则确定所述第一渲染事件渲染的模型发生了材质变化;若存在,则确定所述第一渲染事件渲染的模型未发生变化。
8.根据权利要求1所述的方法,其特征在于,所述渲染数据中包括纹理编码、材质指令周期数和合批次数;在查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,所述根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息,包括:
针对每个所述候选参考事件,分别对比所述第一渲染事件和所述候选参考事件各自对应的合批次数、所述第一渲染事件和所述候选参考事件各自对应的纹理编码、所述第一渲染事件和所述候选参考事件各自对应的材质指令周期数,得到所述候选参考事件对应的合批对比结果、纹理对比结果和材质对比结果;
根据各个所述候选参考事件各自对应的合批对比结果、纹理对比结果和材质对比结果,确定所述第一渲染事件渲染的模型对应的变化信息。
9.根据权利要求8所述的方法,其特征在于,所述根据各个所述候选参考事件各自对应的合批对比结果、纹理对比结果和材质对比结果,确定所述第一渲染事件渲染的模型对应的变化信息,包括:
若各个所述候选参考事件中存在第一目标事件,所述第一目标事件对应的合批对比结果、纹理对比结果和材质对比结果均表征所对应的数据一致,则确定所述第一渲染事件渲染的模型未发生变化;
若各个所述候选参考事件中不存在所述第一目标事件,存在第二目标事件,所述第二目标事件对应的合批对比结果、纹理对比结果和材质对比结果中存在至少一个对比结果表征所对比的数据不一致,则根据所述第二目标事件对应的、表征所对比的数据不一致的对比结果,确定所述变化信息。
10.根据权利要求1所述的方法,其特征在于,所述渲染数据中包括模型名称;在未查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件的情况下,所述根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息,包括:
在各个所述候选参考事件中,确定是否存在与所述第一渲染事件对应于相同的模型名称的名称匹配参考事件;
若存在,则确定所述第一渲染事件渲染的模型发生了顶点数变化、或三角形面数变化;若不存在,则确定所述第一渲染事件渲染的模型为新增模型。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第一截帧文件中各个所述第一渲染事件各自渲染的模型对应的变化信息,进行统计分析,确定所渲染的模型发生三角形面数或顶点数变化的第一渲染事件、所渲染的模型发生合批次数变化的第一渲染事件、所渲染的模型发生材质变化的第一渲染事件、所渲染的模型发生纹理变化的第一渲染事件、所渲染的模型为新增模型的第一渲染事件、和所渲染的模型未发生变化的第一渲染事件中的至少一种。
12.一种模型对比装置,其特征在于,所述装置包括:
获取模块,用于获取第一场景对应的第一截帧文件、以及第二场景对应的第二截帧文件;
确定模块,用于确定所述第一截帧文件中每个第一渲染事件对应的顶点编码和渲染数据,确定所述第二截帧文件中每个第二渲染事件对应的顶点编码和渲染数据;所述顶点编码通过对渲染事件渲染的模型的顶点数据进行哈希编码得到,所述渲染数据包括与渲染事件相关的渲染属性数据;
对比模块,用于针对所述第一截帧文件中的每个所述第一渲染事件,根据所述第一渲染事件对应的顶点编码、以及所述第二截帧文件中各个所述第二渲染事件各自对应的顶点编码,在各个所述第二渲染事件中确定候选参考事件;根据所述第一渲染事件对应的渲染数据以及所述候选参考事件对应的渲染数据,确定所述第一渲染事件渲染的模型对应的变化信息;所述变化信息用于表征模型在所述第一场景中相对于在所述第二场景中的变化情况;
所述对比模块具体用于:
在各个所述第二渲染事件中,查找与所述第一渲染事件对应相同的顶点编码的第二渲染事件;
若查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定与所述第一渲染事件对应相同的顶点编码的第二渲染事件作为所述候选参考事件;根据所述第一渲染事件和所述候选参考事件各自对应的合批次数、纹理编码和材质指令周期数中的至少一种信息,确定所述变化信息;
若未查找到与所述第一渲染事件对应相同的顶点编码的第二渲染事件,则确定各个所述第二渲染事件作为所述候选参考事件;根据所述第一渲染事件和所述候选参考事件的模型名称,确定所述变化信息。
13.一种计算机设备,其特征在于,所述设备包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1至11中任一项所述的模型对比方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被计算机设备执行时实现权利要求1至11中任一项所述的模型对比方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至11中任一项所述的模型对比方法。
CN202311547114.3A 2023-11-20 2023-11-20 一种模型对比方法及相关装置 Active CN117258303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311547114.3A CN117258303B (zh) 2023-11-20 2023-11-20 一种模型对比方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311547114.3A CN117258303B (zh) 2023-11-20 2023-11-20 一种模型对比方法及相关装置

Publications (2)

Publication Number Publication Date
CN117258303A CN117258303A (zh) 2023-12-22
CN117258303B true CN117258303B (zh) 2024-03-12

Family

ID=89221878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311547114.3A Active CN117258303B (zh) 2023-11-20 2023-11-20 一种模型对比方法及相关装置

Country Status (1)

Country Link
CN (1) CN117258303B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0321891D0 (en) * 2003-09-18 2003-10-22 Canon Europa Nv Image rendering in 3d computer graphics
CN101082951A (zh) * 2007-07-11 2007-12-05 成都金山互动娱乐科技有限公司 一种利用3d技术提供网络游戏反外挂图像来源的方法
CN113362435A (zh) * 2021-06-16 2021-09-07 网易(杭州)网络有限公司 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN115965731A (zh) * 2022-12-02 2023-04-14 达闼科技(北京)有限公司 渲染交互方法、装置、终端、服务器、存储介质及产品
CN116524104A (zh) * 2023-07-03 2023-08-01 腾讯科技(深圳)有限公司 渲染数据处理方法、装置、设备及存储介质
CN116758204A (zh) * 2023-08-17 2023-09-15 腾讯科技(深圳)有限公司 一种基于线渲染器的渲染处理方法及相关装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2415344B (en) * 2004-06-14 2010-10-06 Canon Europa Nv Texture data compression and rendering in 3D computer graphics
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US11317098B2 (en) * 2018-12-07 2022-04-26 Intel Corporation System and method for rendered scene change detection with remotely hosted graphics applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0321891D0 (en) * 2003-09-18 2003-10-22 Canon Europa Nv Image rendering in 3d computer graphics
CN101082951A (zh) * 2007-07-11 2007-12-05 成都金山互动娱乐科技有限公司 一种利用3d技术提供网络游戏反外挂图像来源的方法
CN113362435A (zh) * 2021-06-16 2021-09-07 网易(杭州)网络有限公司 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN115965731A (zh) * 2022-12-02 2023-04-14 达闼科技(北京)有限公司 渲染交互方法、装置、终端、服务器、存储介质及产品
CN116524104A (zh) * 2023-07-03 2023-08-01 腾讯科技(深圳)有限公司 渲染数据处理方法、装置、设备及存储介质
CN116758204A (zh) * 2023-08-17 2023-09-15 腾讯科技(深圳)有限公司 一种基于线渲染器的渲染处理方法及相关装置

Also Published As

Publication number Publication date
CN117258303A (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
US10579344B2 (en) Converting visual diagrams into code
CN112184872B (zh) 基于大数据和云计算的游戏渲染优化方法及云端计算中心
CN108459964B (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
CN103518183B (zh) 图形对象分类
CN109976999B (zh) 测试用例覆盖率的度量方法和度量装置
CN113018870A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN116524104B (zh) 渲染数据处理方法、装置、设备及存储介质
US20210326761A1 (en) Method and System for Uniform Execution of Feature Extraction
CN114048816A (zh) 一种图神经网络数据采样方法、装置、设备及存储介质
CN117258303B (zh) 一种模型对比方法及相关装置
KR20210143460A (ko) 특징 추천 장치 및 그것의 특징 추천 방법
CN111290943A (zh) 代码覆盖率处理方法、装置、服务器及存储介质
JP7410269B2 (ja) テスト・ベクタを使用した高水準コンストラクトの最適化の自動検証
CN114168456A (zh) 一种基于3d-gis的前端性能自动化测试方法
CN114816972A (zh) 着色语言的测试方法、装置、电子设备以及存储介质
Milovanovic et al. Python Data Visualization Cookbook
CN113986305B (zh) B/s模型升级的检测方法、装置、设备和存储介质
CN115934118A (zh) 一种面向程序升级的程序测试方法及系统
CN114996150A (zh) 测试数据生成方法和装置、电子设备及存储介质
CN115509908A (zh) 基于深度学习的应用缺陷分析方法、装置、设备及介质
CN115756827A (zh) 一种基于gpu加速的宏基因组物种定丰方法
WO2024084488A1 (en) First node, second node, third node, fourth node and methods performed thereby for handling source code
CN115470311A (zh) 一种搜索代码块的方法及装置
CN116069773A (zh) 一种针对Linux的自动优化方法、系统、智能终端及存储介质
CN113377796A (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
GR01 Patent grant
GR01 Patent grant