CN111831273A - 基于着色器的数据处理方法、装置及电子设备 - Google Patents
基于着色器的数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111831273A CN111831273A CN201910365084.1A CN201910365084A CN111831273A CN 111831273 A CN111831273 A CN 111831273A CN 201910365084 A CN201910365084 A CN 201910365084A CN 111831273 A CN111831273 A CN 111831273A
- Authority
- CN
- China
- Prior art keywords
- macro
- shader
- preprocessing
- preprocessing macro
- dependency relationship
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供了一种基于着色器的数据处理方法、装置及电子设备。该方法包括:获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器;确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理;基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并用来创建材质。本申请实施例既能使用户直观地了解着色流程,还能方便用户对着色流程进行动态修改,起到了简化着色流程的编辑方式的作用。
Description
技术领域
本申请涉及游戏技术领域,具体而言,本申请涉及一种基于着色器的数据处理方法、装置及电子设备。
背景技术
着色器,是指通过色器语言编写的,能够在图像处理器GPU上运行以用于图像渲染的一段程序。着色器的可编辑信息一般包括针对材质属性的变量及预定义的宏,通过控制着色器的可编辑信息,能够控制绘制的图形的效果,如是否对绘制图像添加阴影、纹理等。
现有技术中,主要通过如下方式控制着色器的可编辑信息:一、编辑代码,这种方式对用户的专业要求较高,并且控制方式较为复杂,无法使用户直观查看着色器流程;二、通过控制面板显示着色器的可编辑信息,这种方式虽然能使用户直观地查看着色器流程,但并不能将预定义宏在控制面板上显示,因此,用户只能选择使用哪种材质属性的变量,并无法对是否使用某用材质属性进行控制。
发明内容
本申请提供了一种基于着色器的数据处理方法、装置、电子设备及计算机可读存储介质,可以解决上述技术问题。所述技术方案如下:
第一方面,提供了一种基于着色器的数据处理方法,该方法包括:
获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器;
确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理;
基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的的配置信息来创建材质。
第二方面,提供了一种基于着色器的数据处理装置,该装置包括:
着色器确定模块,用于获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器;
参数确定模块,用于确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
可视化处理模块,用于将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理;
数据接收模块,用于基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质。
第三方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述基于着色器的数据处理方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述基于着色器的数据处理方法。
本申请实施例提供的技术方案带来的有益效果是:获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器,以实现确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数的目的,从而将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,以便基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质,这种将现有着色器的各项可配置参数通过可视化控件进行输出的方式,既能使用户直观地了解着色流程,还能方便用户对着色流程进行动态修改,控制图形绘制具体采用的材质属性,并且降低了编辑着色流程的用户的专业门槛,起到了简化着色流程的编辑方式的作用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种基于着色器的数据处理方法的流程示意图;
图2为本申请实施例提供的一种基于着色器的数据处理中一种获取预配置的着色器的流程示意图;
图3为本申请实施例提供的一种基于着色器的数据处理方法中通过可视化控件对着色器进行显示的一个实施例的显示结果示意图;
图4为本申请实施例提供的一种基于着色器的数据处理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
实施例一
本申请实施例提供了一种基于着色器的数据处理方法,如图1所示,该方法包括:步骤S101、步骤S102和步骤S103。
步骤S101、获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器。
本申请实施例中,预配置的多个着色器既可以是材质系统预先提供的,也可以是用户自定义编辑的。具体地,一般包括多个类型的着色器,如标准着色器(StandardShader)、表面着色器(Surface Shader)、顶点着色器(Vertex Shader)、片元着色器(Fragment Shader)等。
具体应用时,可以通过预设接口作为获取用户针对预配置的至少一个着色器的选定操作。例如,若预配置的各个着色器通过材质系统的控制面板(即交互界面)进行显示,若检测到用户对控制面上对任一着色器的选定操作时,确定该选定操作对应的目标着色器。
本申请实施例中,材质主要用来表现物体对光的交互(如反射、折射等)性质。
步骤S102、确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数。
本申请实施例中,预处理宏及与该预处理宏具有依赖关系的变量参数用于表征图形绘制过程中进行渲染的方式,其中,预处理宏的宏状态用于表征是否采用相应的材质属性进行绘制,与该预处理宏具有依赖关系的变量参数则用于表征图像绘制采用的某一材质属性的具体参数。
例如,若着色器的代码中定义了与纹理属性对应的预处理宏,若与纹理属性对应的预处理宏的宏状态为关闭,那么将图形绘制过程中不使用纹理。再如,若着色器的代码中定义了针对贴图属性的预处理宏,若针对纹理属性的预处理宏的宏状态为开启,并且该着色器的代码中定义了默认使用“布谷鸟”贴图的变量参数,即与贴图属性对应的预处理宏具有依赖关系的变量参数为指向“布谷鸟”贴图的变量参数,那么,图形绘制过程中使用贴图,并使用“布谷鸟”贴图。
本申请实施例提供的目标着色器一般包括光照、颜色、贴图、纹理等材质属性,具体应用时,一般通过define定义材质属性的预处理宏,通过uniform定义材质属性对应的变量参数。因此,着色器中变量参数与预处理宏的关系可以通过如下方式进行定义:
#if USE_IBL
uniform samplerCube envMap;
#endif。
或者进行表示:
#if USE_ALBEDO_MAP
uniform sampler2D albedoMap;
#endif。
上述代码中,“USE_IBL”和“USE_ALBEDO_MAP”均是预先定义的预处理宏,uniform表示预处理宏使用的变量参数。应用时,依赖任一预处理宏的变量参数可能是多个,那么为预处理宏设置一个默认的变量参数。
步骤S103、将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理;
具体应用时,一般将各个预处理宏分别对应的可视化控件和与各个预处理宏分别对应的至少一个变量参数的可视化控件关联显示。具体应用时,各个可视化控件一般通过预设的控制面板(即交互界面)进行显示。
步骤S104、基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质。
本申请实施例,获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器,以实现确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数的目的,从而将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,以便基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质,这种将着色器中变量参数和预定义的宏这两种可配置参数均通过相应的可视化控件进行输出的方式,既能使用户直观地了解着色流程,还能方便用户通过对可视化控件的操作动态修改着色流程,达到控制图形绘制过程采用的渲染方式的目的,降低了对编辑着色流程的用户的专业门槛,起到了简化着色流程的编辑方式的作用。
在一个实现方式中,如图2所示,步骤S101中获取用户针对预配置的至少一个着色器的选定操作,包括:
步骤S1011、获取通过预设的代码编辑模板得到的代码文件;
步骤S1012、确定代码文件对应的至少一个着色器,并将代码文件对应的至少一个着色器作为预配置的着色器。
本申请实施例通过预配置的代码编辑模板编辑至少一个着色器,具体地,代码编辑模板上至少编辑有顶点着色器和像素着色器(即片元着色器)。具体应用时,可以通过正则表达式对将代码文件进行数据提取,确定该代码文件中声明的各个着色器,以将提取到的各个着色器作为预配置的着色器。具体应用时,用户可以采用任一种着色语言在代码编辑模板进行代码的编辑,例如可以采用依赖于OpenGL(全称:OpenGL Shading Language)的GLSL(全称:GL Shading Language)着色语言,如采用GLSL3.0编辑着色器。
在另一个实现方式中,如图1所示,步骤S102确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,包括:
步骤S1021(图中未示出)、依据分别与变量参数、预处理宏对应的预定的关键字符,从目标着色器的文件代码信息中,确定与预定的关键字符对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数。
由于着色器一般通过define定义材质属性的预处理宏,通过uniform定义材质属性对应的变量参数,因此,可以根据define及uniform确定正则表达式中预定的关键字符,从而依据正则表达式中预定的关键字符,确定目标着色器对应的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数。正则表达式是对字符串操作的一种逻辑公式,即利用预定的关键字符、及这些预定的关键字符的组合,组成一个“规则字符串”,并通过这个“规则字符串”对目标对象(即目标着色器的文件代码信息)进行数据提取,确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数。
在又一个实现方式中,如图1所示,步骤S103将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,包括:
步骤S1031(图中未示出)、确定各个预处理宏的当前状态信息;
步骤S1032(图中未示出)、当任一预处理宏的当前状态信息为开启状态时,对与该预处理宏相应的可视化控件及与该预处理宏具有依赖关系的至少一个变量参数相应的可视化控件均进行显示处理。
具体应用时,与各个预处理宏分别具有依赖关系的变量参数可能是1个,也可能是多个,在与某一预处理宏具有依赖关系的变量参数为多个时,可以为与该预处理宏具有依赖关系的多个变量参数相应的可视化控件通过添加下拉控件,如图3所示,预处理宏“USENORMAL MAP”的可视化控件为控件100(即文本控件),与该预处理宏具有依赖关系的变量参数的可视化控件为控件200,在与该处理宏具有依赖关系的变量参数为多个时,可以为控件200增加下拉控件300,通过下拉控件300将与该预处理宏具有依赖关系的多个变量参数均显示在控件200上。
在又一个实现方式中,如图1所示,步骤S103将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,包括:
步骤S1033(图中未示出)、确定各个预处理宏的当前状态信息;
步骤S1034(图中未示出)、当任一预处理宏的当前状态信息为关闭状态时,对与该预处理宏相应的可视化控件进行显示处理,并隐藏与该预处理宏具有依赖关系的至少一个变量参数相应的可视化控件。
具体应用时,若任一预处理宏的当前状态为关闭状态时,那么表明依据该目标着色器进行图像绘制过程中将不应用该预处理宏对应的材质属性,隐藏与该预处理宏具有依赖关系的各个变量参数相应的可视化控件。
在又一个实现方式中,如图1所示,步骤S103将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应得到可视化控件进行显示处理,包括:
步骤S1034(图中未示出)、将各个预处理宏、与各个预处理宏分别具有依赖关系的至少一个变量参数,以及各个预处理宏的当前状态信息,通过相应的可视化控件进行显示处理;
步骤S104基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,包括:
步骤S1041(图中未示出)、接收用户通过任一与预处理宏的当前状态相应的可视化控件输入的修改操作,确定修改操作对应的目标预处理宏;
步骤S1042(图中未示出)、依据修改操作,更新目标预处理宏的当前状态信息。
具体应用时,一般将单选框作为预处理宏的当前状态的可视化控件,并通过单选框的选定状态表征预处理宏的当前状态信息。本申请实施例通过预处理宏的当前状态的可视化控件的设置,以便用户通过对预处理宏的当前状态的可视化控件的控制,实现对各个预处理宏的当前状态进行控制的目的。例如,若某一预处理宏的当前状态为开启状态,那么与该预处理宏的当前状态相应的单选框的选定状态为选定,应用时,若用户取消该单选框的选定状态,那么该预处理宏的当前状态被修改为关闭状态。
本申请实施例中,各个预处理宏的当前状态信息一般通过各自的宏状态进行表示,具体地,一般通过“true”或者“false”两个字符指定各个预处理宏的宏状态。例如,若任一预处理宏的宏状态为“true”,那么将预处理宏及与该预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,并将该预处理宏的当前状态的可视化控件的选定状态确定为选中。
需要说明的是,“true”或者“false”仅是一种对预处理宏的宏状态的指定方式,实际应用时,还可以通过其他方式,如数值的方式进行指定,例如,通过1和0两个数值对预处理宏的宏状态进行指定方。
如图3所示,将预处理宏“USE NORMAL MAP”的当前状态信息通过控件400进行显示,由于该预处理宏的当前状态为开启状态时,因此,控件400的选定状态为选中;反之,则为未选中状态。本申请实施例中,还将与该预处理宏具有依赖关系的各个变量参数相应的可视化控件进行关联的显示处理,即控件400为选中状态时,控件200的显示状态为显示,否则为隐藏状态。
应用时,若用户将控件400的选中状态取消,控件200被隐藏,该预处理宏的当前状态也发生变化,那么图形绘制过程中,将不再使用这一预处理宏对应的材质属性特征。
本申请实施例通过预处理宏的当前状态的可视化控件的设置,方便了用户对材质属性的控制,简化了对着色流程进行控制的方式通过对预处理宏的当前状态的可视化控件的简单操作,加快了对预处理宏的当前状态的控制。
在又一个实现方式中,如图1所示,创建材质后,该方法还包括:
步骤S105(图中未示出)、接收到用户针对已创建的多个材质中任一材质的选定操作,将选定的目标材质的材质属性通过相应的控件显示,材质属性包括各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
步骤S106(图中未示出)、若接收到用户针对目标材质属性的调整操作,则确定调整操作对应的预处理宏和/或变量参数的调整参数;
步骤S107(图中未示出)、依据调整操作对应的预处理宏和/或变量参数的调整参数,更新目标材质的材质属性。
具体地,预存的各个材质可以包括材质系统的材质库,也可以是通过预配置的各个着色器创建的,具体可以先按照步骤S101-步骤S104对着色器进行处理,并在处理得到的各个可视化控件进行控制,以创建材质。
本申请实施例通过将用户选定的材质的各个材质属性通过相应可视化控件输出,简化了对材质进行调整的方式,解决了现有技术中需要通过编辑代码,导致调整难度高,效率低的问题。
实施例二
本申请实施例提供了一种基于着色器的数据处理装置,如图4所示,该基于着色器的数据处理装置30可以包括:着色器确定模块301、参数确定模块302、可视化处理模块303以及数据接收模块304,其中,
着色器确定模块301,用于获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器;
参数确定模块302,用于确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
可视化处理模块303,用于将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理;
数据接收模块304,用于基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质。
本申请实施例,获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器,以实现确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数的目的,从而将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,以便基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质,这种将现有着色器的各项可配置参数通过可视化控件进行输出的方式,既能使用户直观地了解着色流程,还能方便用户对着色流程进行动态修改,控制图形绘制具体采用的材质属性,并且降低了编辑着色流程的用户的专业门槛,起到了简化了着色流程的编辑方式的作用。
进一步地,着色器确定模块用于:
获取通过预设的代码编辑模板得到的代码文件;
确定代码文件对应的至少一个着色器,并将代码文件对应的至少一个着色器作为预配置的着色器。
进一步地,参数确定模块用于:
依据分别与变量参数、预处理宏对应的预定的关键字符,从目标着色器的文件代码信息中,确定与预定的关键字符对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数。
进一步地,可视化处理模块用于:
确定各个预处理宏的当前状态信息;
当任一预处理宏的当前状态信息为开启状态时,对与该预处理宏相应的可视化控件、与该预处理宏具有依赖关系的至少一个变量参数相应可视化控件均进行显示处理。
进一步地,可视化处理模块用于:
确定各个预处理宏的当前状态信息;
当任一预处理宏的当前状态信息为关闭状态时,对与该预处理宏相应的可视化控件进行显示处理,并隐藏与该预处理宏具有依赖关系的至少一个变量参数相应的可视化控件。
进一步地,可视化处理模块用于:
将各个预处理宏、与各个预处理宏分别具有依赖关系的至少一个变量参数,以及各个预处理宏的当前状态信息,通过相应的可视化控件进行显示处理;
数据接收模块用于:
接收用户通过任一与预处理宏的当前状态信息相应的可视化控件输入的修改操作,确定修改操作对应的目标预处理宏;
依据修改操作更新目标预处理宏的当前状态信息。
进一步地,创建材质后,数据接收模块还用于:
接收到用户针对已创建的多个材质中任一材质的选定操作,将选定的目标材质的材质属性通过相应的控件显示,材质属性包括各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
若接收到用户针对目标材质的材质属性的调整操作,则确定调整操作对应的预处理宏和/或变量参数的调整参数;
依据调整操作对应的预处理宏和/或变量参数的调整参数,更新目标材质的材质属性。
本实施例的基于着色器的数据处理装置可执行本申请实施例一提供的基于着色器的数据处理方法,其实现原理相类似,此处不再赘述。
实施例三
本申请实施例提供了一种电子设备,如图5所示,图5所示的电子设备400包括:处理器4001和收发器4004。其中,处理器4001和收发器4004相连,如通过总线4002相连。可选的,电子设备400还可以包括存储器4003。需要说明的是,实际应用中收发器4004不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI总线或EISA总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现图4所示实施例提供的基于着色器的数据处理装置的动作。
本申请实施例,获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器,以实现确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数的目的,从而将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,以便基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质,这种将现有着色器的各项可配置参数通过可视化控件进行输出的方式,既能使用户直观地了解着色流程,还能方便用户对着色流程进行动态修改,控制图形绘制具体采用的材质属性,并且降低了编辑着色流程的用户的专业门槛,起到了简化着色流程的编辑方式的作用。
实施例四
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例一所示的方法。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,获取用户针对预配置的至少一个着色器的选定操作,并确定选定操作对应的用于创建材质的目标着色器,以实现确定目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数的目的,从而将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,以便基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据与变量参数相关的配置信息和/或与预处理宏相关的配置信息来创建材质,这种将现有着色器的各项可配置参数通过可视化控件进行输出的方式,既能使用户直观地了解着色流程,还能方便用户对着色流程进行动态修改,控制图形绘制具体采用的材质属性,并且降低了编辑着色流程的用户的专业门槛,起到了简化着色流程的编辑方式的作用。
本申请实施例提供了一种计算机可读存储介质适用于上述方法实施例。在此不再赘述。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种基于着色器的数据处理方法,其特征在于,包括:
获取用户针对预配置的至少一个着色器的选定操作,并确定所述选定操作对应的用于创建材质的目标着色器;
确定所述目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理;
基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的配置信息,并根据所述与变量参数相关的配置信息和/或所述与预处理宏相关的的配置信息来创建材质。
2.根据权利要求1所述的方法,其特征在于,所述获取用户针对预配置的至少一个着色器的选定操作,包括:
获取通过预设的代码编辑模板得到的代码文件;
确定所述代码文件对应的至少一个着色器,并将所述代码文件对应的至少一个着色器作为预配置的着色器。
3.根据权利要求1所述的方法,其特征在于,所述确定所述目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,包括:
依据分别与变量参数、预处理宏对应的预定的关键字符,从所述目标着色器的文件代码信息中,确定与预定的关键字符对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数。
4.根据权利要求1所述的方法,其特征在于,所述将所述预处理宏及具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,包括:
确定各个预处理宏的当前状态信息;
当任一预处理宏的当前状态信息为开启状态时,对该预处理宏的可视化控件、与该预处理宏具有依赖关系的至少一个变量参数的可视化控件均进行显示处理。
5.根据权利要求1所述的方法,其特征在于,所述将所述预处理宏及具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,包括:
确定各个预处理宏的当前状态信息;
当任一预处理宏的当前状态信息为关闭状态时,对与该预处理宏相应的可视化控件进行显示处理,并隐藏与该预处理宏具有依赖关系的至少一个变量参数相应的可视化控件。
6.根据权利要求1所述的方法,其特征在于,所述将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理,包括:
将各个预处理宏、与各个预处理宏分别具有依赖关系的至少一个变量参数,以及各个预处理宏的当前状态信息,通过相应的可视化控件进行显示处理;
所述基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和与预处理宏相关的配置信息,包括:
接收用户通过任一与预处理宏的当前状态信息相应的可视化控件输入的修改操作,确定所述修改操作对应的目标预处理宏;
依据所述修改操作更新所述目标预处理宏的当前状态信息。
7.根据权利要求1所述的方法,其特征在于,创建材质后,所述方法还包括:
接收到用户针对已创建的多个材质中任一材质的选定操作,将选定的目标材质的材质属性通过相应的控件显示,所述材质属性包括各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
若接收到用户针对目标材质的材质属性的调整操作,则确定所述调整操作对应的预处理宏和/或变量参数的调整参数;
依据所述调整操作对应的预处理宏和/或变量参数的调整参数,更新所述目标材质的材质属性。
8.一种基于着色器的数据处理装置,其特征在于,包括:
着色器确定模块,用于获取用户针对预配置的至少一个着色器的选定操作,并确定所述选定操作对应的用于创建材质的目标着色器;
参数确定模块,用于确定所述目标着色器对应的针对材质属性的各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数;
可视化处理模块,用于将各个预处理宏及与各个预处理宏分别具有依赖关系的至少一个变量参数,通过相应的可视化控件进行显示处理;
数据接收模块,用于基于各个可视化控件,接收用户输入的与变量参数相关的配置信息和/或与预处理宏相关的的配置信息,并根据所述与变量参数相关的配置信息和/或所述与预处理宏相关的的配置信息来创建材质。
9.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1-7任一项所述的基于着色器的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一项所述的基于着色器的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365084.1A CN111831273B (zh) | 2019-04-30 | 2019-04-30 | 基于着色器的数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365084.1A CN111831273B (zh) | 2019-04-30 | 2019-04-30 | 基于着色器的数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831273A true CN111831273A (zh) | 2020-10-27 |
CN111831273B CN111831273B (zh) | 2022-10-28 |
Family
ID=72912505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910365084.1A Active CN111831273B (zh) | 2019-04-30 | 2019-04-30 | 基于着色器的数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831273B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114115873A (zh) * | 2021-11-18 | 2022-03-01 | 网易(杭州)网络有限公司 | 着色器数据处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050225554A1 (en) * | 2004-04-12 | 2005-10-13 | Bastos Rui M | Scalable shader architecture |
US20100033483A1 (en) * | 2008-08-05 | 2010-02-11 | Avid Technology, Inc. | Exchanging Data Between Vertex Shaders And Fragment Shaders On A Graphics Processing Unit |
CN102760304A (zh) * | 2012-06-28 | 2012-10-31 | 电子科技大学 | 一种基于可视化编辑的高级材质合成系统与方法 |
CN105446704A (zh) * | 2014-06-10 | 2016-03-30 | 北京畅游天下网络技术有限公司 | 一种着色器的解析方法和装置 |
CN108139897A (zh) * | 2015-09-30 | 2018-06-08 | 苹果公司 | 在不预处理宏的情况下使用Ubershader变体的系统和方法 |
US20180293787A1 (en) * | 2017-04-10 | 2018-10-11 | Intel Corporation | Topology shader technology |
-
2019
- 2019-04-30 CN CN201910365084.1A patent/CN111831273B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050225554A1 (en) * | 2004-04-12 | 2005-10-13 | Bastos Rui M | Scalable shader architecture |
US20100033483A1 (en) * | 2008-08-05 | 2010-02-11 | Avid Technology, Inc. | Exchanging Data Between Vertex Shaders And Fragment Shaders On A Graphics Processing Unit |
CN102760304A (zh) * | 2012-06-28 | 2012-10-31 | 电子科技大学 | 一种基于可视化编辑的高级材质合成系统与方法 |
CN105446704A (zh) * | 2014-06-10 | 2016-03-30 | 北京畅游天下网络技术有限公司 | 一种着色器的解析方法和装置 |
CN108139897A (zh) * | 2015-09-30 | 2018-06-08 | 苹果公司 | 在不预处理宏的情况下使用Ubershader变体的系统和方法 |
US20180293787A1 (en) * | 2017-04-10 | 2018-10-11 | Intel Corporation | Topology shader technology |
Non-Patent Citations (1)
Title |
---|
李熙建: "基于可视编辑的高级材质合成研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114115873A (zh) * | 2021-11-18 | 2022-03-01 | 网易(杭州)网络有限公司 | 着色器数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111831273B (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10497086B2 (en) | Methods and apparatuses for providing a hardware accelerated web engine | |
US8566736B1 (en) | Visualization of value resolution for multidimensional parameterized data | |
KR100909153B1 (ko) | 그래픽 파이프라인 서브유닛을 디버깅하기 위한 방법 및시스템 | |
CN108228287B (zh) | 基于qt的用户界面控件的生成方法及装置 | |
US9471996B2 (en) | Method for creating graphical materials for universal rendering framework | |
WO2019212870A1 (en) | Authoring content in three-dimensional environment | |
JP6108670B2 (ja) | グラフィックス処理 | |
EP3137985B1 (en) | Method and system to create a rendering pipeline | |
CN103678631A (zh) | 页面渲染方法及装置 | |
JP2012185821A (ja) | グラフィックス処理 | |
US20090219284A1 (en) | Frontend for universal rendering framework | |
Bowers et al. | A ray tracing approach to diffusion curves | |
Angel | The case for teaching computer graphics with WebGL: A 25-year perspective | |
US20190005156A1 (en) | Data flow visualization system | |
CN112685025A (zh) | 快速搭建前端页面的方法及系统 | |
De Vries | Learn opengl | |
CN111831273B (zh) | 基于着色器的数据处理方法、装置及电子设备 | |
CN111767046B (zh) | 一种着色器代码复用方法及终端 | |
CN115391692A (zh) | 视频处理方法和装置 | |
Stenning | Direct3D Rendering Cookbook | |
US9021346B2 (en) | Systems and methods for displaying and editing state-specific link attributes | |
US20170178279A1 (en) | Graphics processing systems | |
CN114489619A (zh) | 一种界面视图显示方法及终端设备、计算机可读存储介质 | |
KR101268865B1 (ko) | 3d 가상현실 저작도구의 실시간 재질 생성을 위한 편집 방법 | |
Schneegans et al. | guacamole-An extensible scene graph and rendering framework based on deferred shading |
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 |