CN113590221B - 着色器变体数量的检测方法、装置、电子设备及存储介质 - Google Patents

着色器变体数量的检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113590221B
CN113590221B CN202110880244.3A CN202110880244A CN113590221B CN 113590221 B CN113590221 B CN 113590221B CN 202110880244 A CN202110880244 A CN 202110880244A CN 113590221 B CN113590221 B CN 113590221B
Authority
CN
China
Prior art keywords
target
shader
variant
file
coloring
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
CN202110880244.3A
Other languages
English (en)
Other versions
CN113590221A (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.)
Shanghai Miha Youliyue Technology Co ltd
Original Assignee
Shanghai Miha Youliyue Technology 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 Shanghai Miha Youliyue Technology Co ltd filed Critical Shanghai Miha Youliyue Technology Co ltd
Priority to CN202110880244.3A priority Critical patent/CN113590221B/zh
Publication of CN113590221A publication Critical patent/CN113590221A/zh
Application granted granted Critical
Publication of CN113590221B publication Critical patent/CN113590221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种着色器变体数量的检测方法、装置、电子设备及存储介质,该方法包括:在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件;基于所述变体检测钩子文件对至少一个目标着色器的变体数量进行检测;基于检测结果确定是否继续执行开启目标引擎的编辑器的操作。通过本发明实施例的技术方案,能够在目标引擎的编辑器的启动过程中对目标着色器的变体数量进行自动化检测,无需依赖于人工处理的方式,节约了人力成本,优化了编辑器启动流程,实现了对目标着色器的变体数量的自动检测的技术效果。

Description

着色器变体数量的检测方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种着色器变体数量的检测方法、装置、电子设备及存储介质。
背景技术
在项目开发过程中,美工技术人员会通过着色器为各个项目对象设计多种变体以丰富画面展示效果。然而,太多的变体会占用大量的系统资源。为了避免不必要的资源浪费,会对着色器变体的数量进行检测。
目前,着色器变体数量的检测方式是,在编辑器启动之后,由专业的技术人员手动进行检查,对执行人员的要求较高,浪费人力,且采用编辑器启动之后再检查的方式,在检查时间上存在一定的滞后性。由于着色器的相关代码要参与项目打包,如果变体数量过多,可能会造成包体内的内存膨胀。
发明内容
本发明实施例提供了一种着色器变体数量的检测方法、装置、电子设备及存储介质,以优化引擎编辑器的启动流程,实现了对目标着色器的变体数量的自动检测。
第一方面,本发明实施例提供了一种着色器变体数量的检测方法,该方法包括:
在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件;
基于所述变体检测钩子文件对至少一个目标着色器的变体数量进行检测;
基于检测结果确定是否继续执行开启目标引擎的编辑器的操作。
第二方面,本发明实施例还提供了一种着色器变体数量的检测装置,该装置包括:
钩子文件加载模块,用于在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件;
变体数量检测模块,用于基于所述变体检测钩子文件对至少一个目标着色器的变体数量进行检测;
开启操作执行模块,用于基于检测结果确定是否继续执行开启目标引擎的编辑器的操作。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的着色器变体数量的检测方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的着色器变体数量的检测方法。
本发明实施例的技术方案,通过在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件,基于变体检测钩子文件对至少一个目标着色器的变体数量进行检测,实现了在编辑器的启动过程中,对目标着色器的变体数量的在自动检测,以预先对目标着色器的变体数量进行检测。进而,基于检测结果确定是否继续执行开启目标引擎的编辑器的操作,解决了在编辑器启动之后再通过人工检查的方式检查着色器变体数量造成的人力浪费以及时间浪费的问题,实现了优化引擎编辑器的启动流程,以及对目标着色器的变体数量进行自动检测的技术效果。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1为本发明实施例一所提供的一种着色器变体数量的检测方法的流程示意图;
图2为本发明实施例二所提供的一种着色器变体数量的检测方法的流程示意图;
图3为本发明实施例三所提供的一种着色器变体数量的检测装置的结构示意图;
图4为本发明实施例四所提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一所提供的一种着色器变体数量的检测方法的流程示意图,本实施例可适用于在引擎编辑器启动的过程中,对着色器变体的数量进行检测的情况,该方法可以由着色器变体数量的检测装置来执行,该装置可以通过软件和/或硬件来实现,可配置于终端和/或服务器中来实现本发明实施例中的着色器变体数量的检测方法。
如图1所示,本实施例的方法具体包括如下步骤:
S110、在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件。
其中,目标引擎可以是当前需要启动并进行变体检测的引擎。目标引擎可以为开发者提供大量的核心技术、数据生成工具和基础支持。可选的,目标引擎可以是游戏引擎,如,Unity引擎、虚幻引擎、Cocos引擎等等。目标引擎的编辑器可以理解为与目标引擎配套的项目开发的工具,如,Unity引擎编辑器,可选的,项目开发可以是游戏开发。目标引擎的编辑器可以帮助开发者更加快速构建场景。变体检测钩子文件可以是用于对目标引擎的目标着色器的变体数量进行检测的钩子文件,如:EnginePreEntryHook.dll文件等。可选的,变体检测钩子文件中可以包括用于进行变体检测的变体检测类,还可以包括用于变体更新的变体更新类。
在本实施例中,目标引擎的编辑器的启动过程可以包括如下步骤:1、初始化目标引擎的基础配置;2、编译目标引擎的全部代码;3、导入目标引擎的项目资源;4、导入目标引擎的数值文件。
其中,编译的目标引擎的全部代码包括:目标引擎的原生代码库、目标引擎的插件层代码、目标引擎的项目工程的全部代码以及目标引擎的第三方库软件开发工具包库或第三方插件库代码。目标引擎的项目资源可以包括角色模型、建筑模型、武器模型、贴图、动作、骨骼、prefab预制体等资源。目标引擎的数值文件可以是描述模型基本数值、动作相关数值或场景相关数值的文件;如,模型高度数值、武器外观数值、武器发射数值、人物动作速度数值、特效时间数值、场景透明度数值等。
具体的,在目标引擎的编辑器的启动过程中,将预先构建的用于进行变体检测的变体检测钩子文件加载至内存中,以使变体检测钩子文件检测变体数量是否符合标准。
需要说明的是,变体检测钩子文件构建完成的时间只需要在加载变体检测钩子文件之前即可,在此不做限定。
还需要说明的是,通过钩子文件可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。在本实施例中,可以通过变体检测钩子文件,在目标引擎的编辑器的启动过程中检测目标着色器的变体数量,并进行相应的处置。
可选的,变体检测钩子文件为动态链接库文件或标签文件。
具体的,变体检测钩子文件可以是文件扩展名为.dll的动态链接库文件或文件扩展名为.lab的标签文件。
需要说明的是,动态链接库文件可以更新应用于开发过程中的各个模块,而不会影响其他部分。
S120、基于变体检测钩子文件对至少一个目标着色器的变体数量进行检测。
其中,目标着色器可以是用于后续开发使用的着色器。着色器(Shader) 可以是用来实现图像渲染的可编辑程序。不同的着色器,其能产生的变体的数量也不尽相同。以游戏开发为例,游戏中所展示的画面中各个主体可能都分别设置有与其对应的至少一种材质,每种材质都会对应一个着色器,每个着色器可能会能能够渲染出不同的变体。目标着色器的变体数量可以是目标着色器中能够配置的各种变体的总数量,针对每一个目标着色器都可以进行变体数量的检测。通常情况下,在一个开发项目里面,着色器的变体数量的总数并非是固定的,与每个着色器的设置信息相关。在本发明实施例中,目标着色器的变体数量可以根据预先设置的与该目标着色器对应的着色关键词的数量确定。
具体的,在变体检测钩子文件加载完成后,可以基于变体检测钩子文件确定至少一个目标着色器的变体数量,进而,可以根据变体数量确定是否符合后续开发和使用的要求。
S130、基于检测结果确定是否继续执行开启目标引擎的编辑器的操作。
其中,检测结果可以包括检测通过和检测不通过两种结果。
具体的,若检测结果为检测通过,则可以确定目标着色器的变体数量符合后续开发和使用的要求,并继续执行开启目标引擎的编辑器的操作。若检测结果为检测不通过,则可以确定目标着色器的变体数量过多,可能会导致占用内存过大的问题,此时应进行相应处理以减少目标着色器的变体数量,并基于处理后的目标着色器的变体数量继续执行开启目标引擎的编辑器的操作。
示例性的,若目标着色器的变体数量超过预先设置的变体数量阈值,则检测不通过,需要更换变体数量更小的配置文件,以保证目标着色器的变体数量不超过预先设置的变体数量阈值,并继续执行开启目标引擎的编辑器的操作。若目标着色器的变体数量未超过预先设置的变体数量阈值,则检测通过,继续执行开启目标引擎的编辑器的操作。
本发明实施例的技术方案,通过在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件,基于变体检测钩子文件对至少一个目标着色器的变体数量进行检测,实现了在编辑器的启动过程中,对目标着色器的变体数量的在自动检测,以预先对目标着色器的变体数量进行检测。进而,基于检测结果确定是否继续执行开启目标引擎的编辑器的操作,解决了在编辑器启动之后再通过人工检查的方式检查着色器变体数量造成的人力浪费以及时间浪费的问题,实现了优化引擎编辑器的启动流程,以及对目标着色器的变体数量进行自动检测的技术效果。
实施例二
图2为本发明实施例二所提供的一种着色器变体数量的检测方法的流程示意图,本实施例在本发明实施例中任一可选技术方案的基础上,针对基于变体检测钩子文件对至少一个目标着色器的变体数量进行检测的方式以及基于检测结果确定是否继续执行开启目标引擎的编辑器的操作的方式可参见本发明实施例的技术方案。其中,与上述实施例相同或者相应的技术术语在此不再赘述。
如图2所示,本实施例的方法具体包括如下步骤:
S210、在目标引擎的编辑器的启动过程中,加载目标引擎的原生代码库。
其中,原生代码库可以理解为支持目标引擎运行的系统文件。编写原生代码库的语言可以是C++面向对象语言。可选的,原生代码库可以是 UnityEngine.dll库等。
具体的,将目标引擎的原生代码库加载至内存中。
S220、当目标引擎的原生代码库加载完成时,加载预先构建的变体检测钩子文件。
具体的,当检测到目标引擎的原生代码库加载完成时,可以将预先构建的用于检测目标着色器的变体数量的变体检测钩子文件加载至内存中。
S230、针对每个目标着色器,基于变体检测钩子文件的变体检测类对目标着色器对应的着色关键词的数量进行检测,将对着色关键词的数量的检测结果作为对目标着色器的变体数量的检测结果。
其中,变体检测类可以是变体检测钩子文件中用于进行变体数量检测的类。着色关键词可以是组成不同变体所需的关键词,示例性的,每个着色关键词可以有是或否两个选项,以供开发人员选择,根据各着色关键词的不同选项的组合可以组成不同的变体。
具体的,针对每个目标着色器都可以分别进行变体数量检测。针对每个目标着色器,基于变体检测钩子文件的变体检测类可以获取目标着色器的着色关键词的数量,例如:可以是通过计数器技术确定着色关键词的数量,也可以是当目标着色器的配置文件中包括着色关键词的数量时,读取该数量等。
示例性的,可以进一步解释着色关键词数量与变体数量之间的关系:若着色关键词包括Keyword_A,Keyword_B以及Keyword_C,并且,每个着色关键词包括“On”和“Off”两个可配置项,则根据上述三个着色关键词可以组成的变体数量为23=8。综上所述,若目标着色器的着色关键词的数量为n,则目标着色器的变体数量为2n
需要说明的是,若每个着色关键词所对应的可配置项数量不为2个,则可以根据实际的选项数量确定目标着色器的变体数量。
S240、判断目标着色器对应的着色关键词的数量是否超过预设数量阈值,如果目标着色器对应的着色关键词的数量超过预设数量阈值,则执行S250;如果目标着色器对应的着色关键词的数量未超过预设数量阈值,则执行S270。
其中,预设数量阈值可以根据实际情况进行设置,在此并不做具体限定,例如可以是预先设置的内存能够接收并处理的最大的着色关键词数量。
具体的,在将目标着色器对应的着色关键词的数量与预设数量阈值进行比较后,可以得到检测结果。在得到检测结果后,可以根据检测结果,确定后续需要执行的相应操作。
可选的,可以确定如果目标着色器对应的着色关键词的数量超过预设数量阈值,则将检测结果确定为检测未通过;如果目标着色器对应的着色关键词的数量未超过预设数量阈值,则将检测结果确定为检测已通过。
S250、将与目标着色器对应的待更改配置文件发送至目标终端,并执行S260。
其中,待更改配置文件可以是由于目标着色器的着色关键词的数量超过预设数量阈值导致检测未通过的配置文件。配置文件中包含有目标着色器的着色关键词。目标终端可以理解为能够将待更改配置文件进行更改,减少目标着色器的变体数量的终端设备,或者,能够提醒用户需要对待更改配置文件进行更改,以减少目标着色器的变体数量的终端设备。
可选地,通过减少目标着色器的着色关键词来减少目标着色器的变体数量。
具体的,当由于目标着色器的着色关键词数量超过预设数量阈值而导致检测不通过时,可以确定能够对包含目标着色器的着色关键词的待更改配置文件进行更改的目标终端。进而,可以将待更改配置文件发送至目标终端,以使开发人员通过目标终端对待更改配置文件进行处理。
S260、接收目标终端反馈的目标着色器对应的已更改配置文件,基于变体检测钩子文件的变体更新类将待更改配置文件更新为已更改配置文件。
其中,已更改配置文件可以是针对目标着色器的着色关键词数量进行处理后的配置文件。变体更新类可以是变体检测钩子文件中用于将待更改配置文件更新为已更改配置文件的类。
具体的,当开发人员通过目标终端对待更改配置文件进行处理后,可以得到已更改配置文件,并通过目标终端反馈已更改配置文件。当接收到目标终端反馈的目标着色器对应的已更改配置文件时,可以基于变体检测钩子文件的变体更新类将待更改配置文件更新为已更改配置文件。
示例性的,将待更改配置文件更新为已更改配置文件可以是将待更改配置文件删除,并将已更改配置文件载入。
S270、继续执行开启目标引擎的编辑器的操作。
具体的,如果目标着色器对应的着色关键词的数量未超过预设数量阈值,则检测通过,可以继续执行开启目标引擎的编辑器的操作,以使目标引擎的编辑器开启。
需要说明的是,S250-S260和S270可以是并行执行,也可以在S250-S260 后执行S260。
可选的,如果将待更改配置文件更新为已更改配置文件后的目标着色器对应的着色关键词的数量未超过预设数量阈值,则也可以继续执行开启目标引擎的编辑器的操作,以使目标引擎的编辑器开启。
需要说明的是,变体检测钩子文件可以存储在本地服务器中,若针对变体检测钩子文件进行更改,则可以将更改后的变体检测钩子文件自动应用到后续目标引擎的编辑器的启动过程中。
本发明实施例的技术方案,通过加载目标引擎的原生代码库,在目标引擎的编辑器的启动过程中,当目标引擎的原生代码库加载完成时,加载预先构建的变体检测钩子文件,针对每个目标着色器,基于变体检测钩子文件的变体检测类对目标着色器对应的着色关键词的数量进行检测,将对着色关键词的数量的检测结果作为对目标着色器的变体数量的检测结果,实现了在编辑器的启动过程中,对目标着色器的变体数量的在自动检测,以预先对目标着色器的变体数量进行检测。进而,如果目标着色器对应的着色关键词的数量超过预设数量阈值,则将与目标着色器对应的待更改配置文件发送至目标终端,以对待更改配置文件进行更改,接收目标终端反馈的目标着色器对应的已更改配置文件,基于变体检测钩子文件的变体更新类将待更改配置文件更新为已更改配置文件。如果目标着色器对应的着色关键词的数量未超过预设数量阈值,则继续执行开启目标引擎的编辑器的操作,解决了在编辑器启动之后再通过人工检查的方式检查着色器变体数量造成的人力浪费以及时间浪费的问题,实现了优化引擎编辑器的启动流程,以及对目标着色器的变体数量进行自动检测的技术效果。
实施例三
图3为本发明实施例三所提供的一种着色器变体数量的检测装置的结构示意图,本实施例所提供的着色器变体数量的检测装置包括:钩子文件加载模块 310、变体数量检测模块320和开启操作执行模块330。
其中,钩子文件加载模块310,用于在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件;变体数量检测模块320,用于基于所述变体检测钩子文件对至少一个目标着色器的变体数量进行检测;开启操作执行模块330,用于基于检测结果确定是否继续执行开启目标引擎的编辑器的操作。
在本发明实施例中任一可选技术方案的基础上,可选地,所述变体数量检测模块320,用于针对每个目标着色器,基于所述变体检测钩子文件的变体检测类对所述目标着色器对应的着色关键词的数量进行检测,将对着色关键词的数量的检测结果作为对所述目标着色器的变体数量的检测结果。
在本发明实施例中任一可选技术方案的基础上,可选地,所述开启操作执行模块330,还用于如果所述目标着色器对应的着色关键词的数量超过预设数量阈值,则将与所述目标着色器对应的待更改配置文件发送至目标终端,其中,所述配置文件中包含有所述目标着色器的着色关键词。
在本发明实施例中任一可选技术方案的基础上,可选地,所述装置还包括:配置文件更改模块,用于接收所述目标终端反馈的所述目标着色器对应的已更改配置文件,基于变体检测钩子文件的变体更新类将所述待更改配置文件更新为所述已更改配置文件。
在本发明实施例中任一可选技术方案的基础上,可选地,所述开启操作执行模块330,还用于如果所述目标着色器对应的着色关键词的数量未超过预设数量阈值,则继续执行开启目标引擎的编辑器的操作。
在本发明实施例中任一可选技术方案的基础上,可选地,所述装置还包括:原生代码库加载模块,用于加载所述目标引擎的原生代码库;所述钩子文件加载模块310,还用于当所述目标引擎的原生代码库加载完成时,加载预先构建的变体检测钩子文件。
本发明实施例的技术方案,通过在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件,基于变体检测钩子文件对至少一个目标着色器的变体数量进行检测,实现了在编辑器的启动过程中,对目标着色器的变体数量的在自动检测,以预先对目标着色器的变体数量进行检测。进而,基于检测结果确定是否继续执行开启目标引擎的编辑器的操作,解决了在编辑器启动之后再通过人工检查的方式检查着色器变体数量造成的人力浪费以及时间浪费的问题,实现了优化引擎编辑器的启动流程,以及对目标着色器的变体数量进行自动检测的技术效果。
上述装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述着色器变体数量的检测装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
实施例四
图4为本发明实施例四所提供的一种电子设备的结构示意图。图4示出了适于用来实现本发明实施例实施方式的示例性电子设备40的框图。图4显示的电子设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备40以通用计算设备的形式表现。电子设备40的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。
总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构 (ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备40典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备40访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)404和/或高速缓存存储器405。电子设备40可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统406可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。系统存储器402可以包括至少一个程序产品,该程序产品具有一组(例如至少一个) 程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块407的程序/实用工具408,可以存储在例如系统存储器402中,这样的程序模块407包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块407通常执行本发明所描述的实施例中的功能和/或方法。
电子设备40也可以与一个或多个外部设备409(例如键盘、指向设备、显示器410等)通信,还可与一个或者多个使得用户能与该电子设备40交互的设备通信,和/或与使得该电子设备40能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O) 接口411进行。并且,电子设备40还可以通过网络适配器412与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器412通过总线403与电子设备40的其它模块通信。应当明白,尽管图4中未示出,可以结合电子设备40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的着色器变体数量的检测方法。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种着色器变体数量的检测方法,该方法包括:
在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件;
基于所述变体检测钩子文件对至少一个目标着色器的变体数量进行检测;
基于检测结果确定是否继续执行开启目标引擎的编辑器的操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器 (CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (7)

1.一种着色器变体数量的检测方法,其特征在于,包括:
在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件;
针对每个目标着色器,基于所述变体检测钩子文件的变体检测类对所述目标着色器对应的着色关键词的数量进行检测,将对着色关键词的数量的检测结果作为对所述目标着色器的变体数量的检测结果;
基于检测结果确定是否继续执行开启目标引擎的编辑器的操作;
其中,所述基于检测结果确定是否继续执行开启目标引擎的编辑器的操作,包括:
如果所述目标着色器对应的着色关键词的数量超过预设数量阈值,则将与所述目标着色器对应的待更改配置文件发送至目标终端,其中,所述配置文件中包含有所述目标着色器的着色关键词;
所述方法还包括:
接收所述目标终端反馈的所述目标着色器对应的已更改配置文件,基于变体检测钩子文件的变体更新类将所述待更改配置文件更新为所述已更改配置文件。
2.根据权利要求1所述的方法,其特征在于,所述基于检测结果确定是否继续执行开启目标引擎的编辑器的操作,包括:
如果所述目标着色器对应的着色关键词的数量未超过预设数量阈值,则继续执行开启目标引擎的编辑器的操作。
3.根据权利要求1所述的方法,其特征在于,还包括:
加载所述目标引擎的原生代码库;
所述加载预先构建的变体检测钩子文件,包括:
当所述目标引擎的原生代码库加载完成时,加载预先构建的变体检测钩子文件。
4.根据权利要求1所述的方法,其特征在于,所述变体检测钩子文件为动态链接库文件或标签文件。
5.一种着色器变体数量的检测装置,其特征在于,包括:
钩子文件加载模块,用于在目标引擎的编辑器的启动过程中,加载预先构建的变体检测钩子文件;
变体数量检测模块,用于针对每个目标着色器,基于所述变体检测钩子文件的变体检测类对所述目标着色器对应的着色关键词的数量进行检测,将对着色关键词的数量的检测结果作为对所述目标着色器的变体数量的检测结果;
开启操作执行模块,用于基于检测结果确定是否继续执行开启目标引擎的编辑器的操作;
其中,所述开启操作执行模块还用于如果所述目标着色器对应的着色关键词的数量超过预设数量阈值,则将与所述目标着色器对应的待更改配置文件发送至目标终端,其中,所述配置文件中包含有所述目标着色器的着色关键词;
所述装置还包括配置文件更改模块,用于接收所述目标终端反馈的所述目标着色器对应的已更改配置文件,基于变体检测钩子文件的变体更新类将所述待更改配置文件更新为所述已更改配置文件。
6.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的着色器变体数量的检测方法。
7.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-4中任一所述的着色器变体数量的检测方法。
CN202110880244.3A 2021-08-02 2021-08-02 着色器变体数量的检测方法、装置、电子设备及存储介质 Active CN113590221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110880244.3A CN113590221B (zh) 2021-08-02 2021-08-02 着色器变体数量的检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110880244.3A CN113590221B (zh) 2021-08-02 2021-08-02 着色器变体数量的检测方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113590221A CN113590221A (zh) 2021-11-02
CN113590221B true CN113590221B (zh) 2024-05-03

Family

ID=78253670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110880244.3A Active CN113590221B (zh) 2021-08-02 2021-08-02 着色器变体数量的检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113590221B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114913054B (zh) * 2022-05-07 2023-02-14 光线云(杭州)科技有限公司 基于注意力感知的着色器简化变体评估方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445625A (zh) * 2016-09-23 2017-02-22 网易(杭州)网络有限公司 一种待编译代码的预处理方法及装置
CN109885310A (zh) * 2019-01-14 2019-06-14 珠海金山网络游戏科技有限公司 一种降低手机游戏Shader模块内存占用的方法及装置
CN111145318A (zh) * 2019-12-27 2020-05-12 珠海金山网络游戏科技有限公司 一种基于ngui的渲染方法及装置
CN112288873A (zh) * 2020-11-19 2021-01-29 网易(杭州)网络有限公司 渲染方法和装置、计算机可读存储介质、电子设备
CN112667315A (zh) * 2020-12-23 2021-04-16 上海米哈游天命科技有限公司 游戏引擎编辑器启动方法、装置、电子设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140354658A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Shader Function Linking Graph
EP3631765A1 (en) * 2017-06-01 2020-04-08 Constructive Labs Shader editing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445625A (zh) * 2016-09-23 2017-02-22 网易(杭州)网络有限公司 一种待编译代码的预处理方法及装置
CN109885310A (zh) * 2019-01-14 2019-06-14 珠海金山网络游戏科技有限公司 一种降低手机游戏Shader模块内存占用的方法及装置
CN111145318A (zh) * 2019-12-27 2020-05-12 珠海金山网络游戏科技有限公司 一种基于ngui的渲染方法及装置
CN112288873A (zh) * 2020-11-19 2021-01-29 网易(杭州)网络有限公司 渲染方法和装置、计算机可读存储介质、电子设备
CN112667315A (zh) * 2020-12-23 2021-04-16 上海米哈游天命科技有限公司 游戏引擎编辑器启动方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN113590221A (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
US9928038B2 (en) Dynamically building locale objects or subsections of locale objects based on historical data
CN110908697B (zh) 一种资源打包方法、装置、服务器及存储介质
CN110908707B (zh) 一种资源打包方法、装置、服务器及存储介质
CN113296786B (zh) 数据处理方法、装置、电子设备及存储介质
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
CN113590327A (zh) 项目资源检测方法、装置、电子设备及存储介质
CN113590221B (zh) 着色器变体数量的检测方法、装置、电子设备及存储介质
CN116662039B (zh) 基于共享内存的工业信息并行检测方法、装置及介质
CN113590225B (zh) 贴图检测方法、装置、电子设备及存储介质
CN115269285A (zh) 测试方法及装置、设备、计算机可读存储介质
CN112506592B (zh) 页面加载时长的确定方法、装置、设备和存储介质
CN114510334A (zh) 类实例的调用方法、装置、电子设备及自动驾驶车辆
CN113590224B (zh) 服务器的检测方法、装置、电子设备及存储介质
CN113590226B (zh) 引擎编辑器的启动方法、装置、电子设备及存储介质
CN112068814A (zh) 可执行文件的生成方法、装置、系统及介质
CN113986388B (zh) 程序集加载方法、系统、电子设备及存储介质
CN114911541B (zh) 配置信息的处理方法、装置、电子设备及存储介质
CN113127051B (zh) 一种应用资源打包过程监控方法、装置、设备和介质
CN113590220B (zh) 动作资源配置信息的检测方法、装置、电子设备及介质
CN113986382A (zh) 项目启动方法、装置、电子设备及存储介质
CN114003308A (zh) 项目文本资源的加载方法、装置、电子设备及存储介质
CN117519712A (zh) 应用程序运行方法、装置、电子设备以及存储介质
CN113590223A (zh) 引擎编辑器的启动方法、装置、电子设备及存储介质
CN113986138A (zh) 资源删除方法、装置、电子设备及存储介质
CN115408003A (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