首页 / 专利库 / 电信 / 输出节点 / 特效实现方法、装置、电子设备及存储介质

特效实现方法、装置、电子设备及存储介质

阅读:1024发布:2020-09-22

专利汇可以提供特效实现方法、装置、电子设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供一种特效实现方法、装置、 电子 设备及存储介质,其中的方法包括:收到启动特效编辑器的指令时,展示特效编辑器的 可视化 编辑界面;其中,所述特效编辑器配置有若干特效组件;所述可视化编辑界面配置有特效设计区域和若干特效模 块 ,不同特效模块与不同特效组件绑定;收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;根据特效设计区域中目标特效模块之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效 着色器 程序。,下面是特效实现方法、装置、电子设备及存储介质专利的具体信息内容。

1.一种特效实现方法,其特征在于,包括:
收到启动特效编辑器的指令时,展示特效编辑器的可视化编辑界面;其中,所述特效编辑器配置有若干特效组件;所述可视化编辑界面配置有特效设计区域和若干特效模,不同特效模块与不同特效组件绑定;
收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
根据特效设计区域中目标特效模块之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。
2.根据权利要求1所述的方法,其特征在于,对于每个特效模块,所述特效模块配置有输入端口和/或输出端口,各端口处配置有若干模块选项;不同模块选项与不同特效模块绑定。
3.根据权利要求2所述的方法,其特征在于,所述特效设计指令由以下任一用户操作触发:向特效设计区域插入目标特效模块的操作、特效设计区域中的目标特效模块的模块选项被选中的操作、将特效设计区域中的目标特效模块之间的端口相连的操作;
所述向特效设计区域输入所述特效设计指令对应的目标特效模块和构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系,包括:
当所述特效设计指令由特效设计区域中的目标特效模块的模块选项被选中的操作所触发时,于被选中的模块选项所在端口接入所述被选中的模块选项所绑定的目标特效模块。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于已构建有连接关系的目标特效模块,以逻辑节点图的形式展示所述目标特效模块及其之间的连接关系。
5.根据权利要求4所述的方法,其特征在于,所述可视化编辑界面还配置有用于触发逻辑节点图输入特效设计区域的文件打开控件;
所述方法还包括:
将特效设计区域中的逻辑节点图保存为对应的节点图文件;
收到由所述文件打开控件被触发所产生的指令时,展示文件选取区域,所述文件选取区域展示有已保存的节点图文件;
收到用于指示将当前选中的节点图文件输入到特效设计区域的指令时,在特效设计区域输入当前选中的节点图文件对应的逻辑节点图。
6.根据权利要求1所述的方法,其特征在于,生成特效着色器程序之后,所述方法还包括:
收到特效预览指令时,获取当前输入的目标图像或目标视频文件;
在目标图像或目标视频文件中增加特效着色器程序对应的特效效果,以生成相应的特效图像或特效视频文件;
展示所述特效图像或播放所述特效视频文件。
7.根据权利要求1所述的方法,其特征在于,生成特效着色程序之后,所述方法还包括:
基于特效着色程序生成对应的特效素材。
8.一种特效实现装置,其特征在于,包括:
显示模块,用于在收到启动特效编辑器的指令时,展示特效编辑器的可视化编辑界面;
其中,所述特效编辑器配置有若干特效组件;所述可视化编辑界面配置有特效设计区域和若干特效模块,不同特效模块与不同特效组件绑定;
处理模块,用于在收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
程序生成模块,用于根据特效设计区域中目标特效之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。
9.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储可由所述处理器执行的计算机程序
其中,所述处理器执行所述程序时实现权利要求1~7任一项所述方法的步骤。
10.一种机器可读存储介质,其上存储有程序;其特征在于,所述程序被处理器执行时实现权利要求1~7任一项所述方法的步骤。

说明书全文

特效实现方法、装置、电子设备及存储介质

技术领域

[0001] 本发明涉及特效技术领域,尤其涉及特效实现方法、装置、电子设备及存储介质。

背景技术

[0002] 传统技术中,一个视频特效或图像特效的开发通常都需要策划人员和程序员共同参与,具体的,策划人员将所需实现的视频特效的设计思路向程序员描述,以使程序员基于所述设计思路编写出对应的程序代码,从而实现对应的视频特效。但如果其中产生沟通误解,双方还需要另外耗费时间去纠正,程序员甚至还需重新编写程序代码。因此,传统的视频特效的开发技术既低效又容易因为程序员理解有误而造成实现的视频特效出现偏差,导致开发周期较长和开发成本较高。

发明内容

[0003] 基于此,本发明提供一种特效实现方法、装置、电子设备及存储介质。
[0004] 根据本发明实施例的第一方面,本发明提供一种特效实现方法,所述方法包括:
[0005] 收到启动特效编辑器的指令时,展示特效编辑器的可视化编辑界面;其中,所述特效编辑器配置有若干特效组件;所述可视化编辑界面配置有特效设计区域和若干特效模,不同特效模块与不同特效组件绑定;
[0006] 收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
[0007] 根据特效设计区域中目标特效模块之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。
[0008] 根据本发明实施例的第二方面,本发明提供一种特效实现装置,所述装置包括:
[0009] 显示模块,用于在收到启动特效编辑器的指令时,展示特效编辑器的可视化编辑界面;其中,所述特效编辑器配置有若干特效组件;所述可视化编辑界面配置有特效设计区域和若干特效模块,不同特效模块与不同特效组件绑定;
[0010] 处理模块,用于在收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
[0011] 程序生成模块,用于根据特效设计区域中目标特效之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。
[0012] 根据本发明实施例第三方面,本发明提供一种电子设备,其包括:
[0013] 处理器;
[0014] 存储器,用于存储可由所述处理器执行的计算机程序
[0015] 其中,所述处理器执行所述程序时实现所述特效实现方法。
[0016] 根据本发明实施例第四方面,本发明提供一种机器可读存储介质,其上存储有程序;所述程序被处理器执行时实现所述特效实现方法。
[0017] 相对于相关技术,本发明实施例至少产生了以下有益技术效果:
[0018] 本发明实施例通过为策划人员提供可以实现特效设计的特效编辑器,在特效编辑器内配置若干特效组件和特效设计的可视化编辑界面、在可视化编辑界面配置特效设计区域和若干特效模块,可以使得策划人员在特效设计区域中依需输入目标特效模块和构建目标特效模块之间的连接关系;随后,通过基于策划人员所构建目标特效模块之间的连接关系自动调用并组合对应的目标特效组件,生成对应的特效着色器程序,即可生成对应的特效包。由此实现策划人员在实现其所设计的特效的过程中无需程序员参与,且可以依需调整特效模块之间的连接关系或增删特效模块,从而可以避免因程序员理解有误而造成实现的特效偏离预期,有利于方便策划人员的特效设计,缩短特效开发周期和降低特效开发成本。
[0019] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明
[0020] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0021] 图1是本发明根据一示例性实施例示出的若干特效模块进行归类显示的一种显示方式的示意图;
[0022] 图2是本发明根据一示例性实施例示出的固值类型的组件类别被触发展开后的一种显示状态示意图;
[0023] 图3是本发明根据一示例性实施例示出的一种可视化编辑界面的示意图;
[0024] 图4是本发明根据一示例性实施例示出的一种在特效设计区域输入特效模块时的可视化编辑界面的示意图;
[0025] 图5是本发明根据一示例性实施例示出的另一种在特效设计区域输入特效模块时的可视化编辑界面的示意图;
[0026] 图6是本发明根据一示例性实施例示出的另一种可视化编辑界面的示意图;
[0027] 图7是本发明根据一示例性实施例示出的模块显示区域被唤出后的一种可视化编辑界面的示意图;
[0028] 图8是本发明根据一示例性实施例示出的模块显示区域被唤出后的另一种可视化编辑界面的示意图;
[0029] 图9是本发明根据一示例性实施例示出的特效设计区域中的目标特效模块之间的连接关系示意图;
[0030] 图10是本发明根据一示例性实施例示出的不同类别的特效组件所绑定的特效模块的示意图;
[0031] 图11是本发明根据一示例性实施例示出的特效编辑器在刚启动时的可视化编辑界面的示意图;
[0032] 图12是本发明根据另一示例性实施例示出的若干特效模块进行归类显示的一种显示方式的示意图;
[0033] 图13是本发明根据一示例性实施例示出的一种特效实现方法的流程图
[0034] 图14是本发明根据一示例性实施例示出的特效编辑器启动时,一种默认展示图像输出组件的特效设计区域的示意图;
[0035] 图15是本发明根据一示例性实施例示出的一种特效实现装置的结构框图
[0036] 图16是本发明根据一示例性实施例示出的一种电子设备的硬件结构图。

具体实施方式

[0037] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0038] 在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0039] 应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0040] 在传统的特效实现技术领域中,一个视频特效或图像特效的开发通常需要策划人员和程序人员共同参与,其中,策划人员需要将特效设计的思路向程序员描述,程序员需要依据策划人员所描述的思路编写出相应的程序代码,以获得相应的特效包。但是,在这一过程中,策划人员和程序人员之间可能会产生沟通误解,因而双方需要耗费较多时间去纠正,甚至导致程序员需重新编写程序代码。从而造成特效开发周期较长和开发成本较高,甚至导致最终实现的特效仍与策划人员的预期存在偏差。
[0041] 基于此,为克服相关技术中特效开发周期较长和开发成本较高的问题,本发明提供了一种可以为策划人员或其他相关人员(以下统称设计者)提供特效设计及实现功能的特效编辑器,所述特效编辑器内配置有若干特效组件和特效设计的可视化编辑界面,所述可视化编辑界面配置有特效设计区域和若干特效模块,不同特效组件功能不同,不同特效模块与不同特效组件绑定。其中,特效模块可以理解为是特效组件在可视化编辑界面中的一种显示形式。在可视化编辑界面中,设计者可以依据其所需实现的特效在特效设计区域中输入相应的特效模块和构建所输入的特效模块之间的连接关系;随后所述特效编辑器可以基于设计者所输入的特效模块及其之间的连接关系自动调用并组合对应的目标特效组件,从而生成对应的特效着色程序,也即生成对应的特效包。由此使得设计者在实现其所设计的特效的过程中无需程序员参与,且可以依需调整特效模块之间的连接关系或增删特效模块,从而可以避免因程序员理解有误而造成最终实现的特效偏离预期,有利于方便设计者的特效设计,缩短特效开发周期和降低特效开发成本。
[0042] 本实施例中,对于每个特效组件,所述特效组件可以属于特效的基础组成部分,例如,假设一个特效主要实现对输入图像的放大和添加滤镜,那么这个特效对应的特效包中的程序代码应该包括图像放大部分和滤镜添加部分;基于此,可以将图像放大部分的程序代码视为第一特效组件,将滤镜添加部分的程序代码视为第二特效组件。这么一来,为实现这个特效,设计者可以在特效设计区域输入与第一特效组件绑定的特效模块和与第二特效组件绑定的特效模块,并按照放大和滤镜添加的处理前后顺序将两个模块依序相接,由此触发特效编辑器依据两个模块的连接关系依序调用第一特效组件和第二特效组件,实现第一特效组件和第二特效组件中的函数之间可以按照对应的连接关系进行相互调用,以生成对应的特效着色器程序。
[0043] 在特效编辑器的开发阶段,针对已经存在或可以想到的每种特效,发明人将所述特效分解成若干相对独立的基础组成部分,并将各基础组成部分对应的程序代码封装成对应的特效组件。但由于不同的特效,其实现的代码逻辑可能相同,例如,其区别仅在于图像的放大倍数不同;对于这种情况,代码逻辑的特效组件配置有一个即可,此时可以将图像放大的特效组件中与倍数相关的数值设置为变量,基于此,可以另外配置用于输入该变量的特效组件,由此无需在特效编辑器中配置代码逻辑相同的多个特效组件,可以减少特效组件对内存空间的占用,并方便设计者输入自定义的图像放大倍数。
[0044] 需要说明的是,所述若干特效组件中,不同特效组件的组合可以产生不同的特效效果,从而满足设计者设计多种新的特效的需求。另外,对于每个特效组件,所述特效组件相当于可以包括数量不限的函数的一段程序代码。
[0045] 在一实施例中,可以依据特效类别的不同将所述若干特效组件划分为:滤镜类型的组件、数学运算类型的组件、动态参数类型的组件、固值类型的组件、节点程序类型的组件、以及输入输出类型的组件。
[0046] 其中,滤镜类型的组件用于实现特定滤镜特效。所述滤镜类型的组件可以包括瘦脸滤镜组件(basicthinfaceFilter)、美颜滤镜组件(beautyfaceFilter)、缩放滤镜组件(ZoomFilter),除此之外,还可以包括相关技术所记载的其他滤镜类型的组件,在此不进行枚举。
[0047] 数学运算类型的组件用于对输入的参数进行数学运算,其中的数学运算可以包括但不限于加、减、乘、除等运算中的至少一种。所述数学运算类型的组件可以包括加法运算组件(add)、减法运算组件(subtract)、乘法运算组件(multiply)、除法运算组件(divide)、叉乘运算组件(cross)、最大值运算组件(max),除此之外,还可以包括相关技术所记载的其他运算类型的组件,在此不进行枚举。以下,举例说明一下数学运算类型的组件的一种应用场景,假设要实现两张图像的颜色混合,则设计者可以选取乘法运算组件,以通过乘法运算组件基于输入的两张图像,将两张图像中对应的每两个像素点的颜色值相乘,从而计算得到两张图像颜色混合后的运算结果。
[0048] 动态参数类型的组件用于对输入的参数进行动态调节,可以在输入的参数需要动态变化的时候应用,例如,需要输入的图像随着时间进行周期性地放大和/或缩小。所述动态参数类型的组件可以包括浮点型参数组件(Float Param)、四位向量型参数组件(Float4 Param)、纹理参数组件(Tex2d Param),除此之外,还可以包括相关技术所记载的其他动参类型的组件,在此不进行枚举。
[0049] 固值类型的组件用于供设计者设置输入到其他组件的常数值,可以应用需要向其他组件输入常数类型的参数的场景,例如,当需要将一张图像的大小缩放为某一常数倍数时,可以在缩放滤镜组件的缩放参数设置端口接入固值类型的组件,并通过固值类型的组件设置缩放参数。所述固值类型的组件可以包括整型常数组件(Int Const)、浮点型常数组件(Float Const)、四维向量型常数组件(Float4 Const),除此之外,还可以包括相关技术所记载的其他常数类型的组件,在此不进行枚举。
[0050] 节点程序类型的组件用于供设计者设置图像中的特效位置或特效纹理,可以包括顶点位置组件(pos)、纹理坐标组件(uv0)、纹理图像组件(sampler2d),除此之外,还可以包括相关技术所记载的其他相关类型的组件,在此不进行枚举。其中,所述顶点位置组件用于供设计者设置输入图像中的顶点位置,设置的顶点位置可用于OpenGL的渲染;所述纹理坐标组件用于供设计者设置输入图像中附加纹理图像的区域的坐标,设置的坐标可用于OpenGL的渲染;所述纹理图像组件用于为设计者提供多种不同的图像纹理,以使策划可以将所需的图像纹理增加到输入图像中。
[0051] 输入输出类型的组件可以包括图像输出组件(Filter Output Tex)、时间输入组件(Time)、音频输入组件(Audio Frequency),除此之外,还可以包括相关技术所记载的其他输入输出类型的组件,在此不进行枚举。其中,所述图像输出组件用于输出由设计者所选取的特效组件处理所得的最终特效图像;所述时间输入组件用于输入特效作用的时间参数,例如,当设计者需要图像或视频画面的缩放比例随着时间发生变化,那么可以通过时间输入组件输入时间参数,并将时间输入组件、动态参数类型的组件与缩放滤镜组件进行关联;所述音频输入组件用于输入音频文件,所述音频文件可以用于控制特效的变化规律,例如,假设某个特效的抖动情况依赖于声音信息,则设计者可以通过音频输入组件输入所需的音频文件,并将音频输入组件、动态参数类型的组件、以及控制特效产生抖动的特效组件进行关联。
[0052] 为方便设计者可以明确特效组件所属类别,并可以直接基于特效组件所属类别快速查找到所需的特效组件,以提高设计者查找所需特效组件的效率和特效设计效率,在一实施例中,在所述可视化编辑界面中,可以归类显示所述若干组件对应的若干特效模块,如图1所示,图1是本发明根据一示例性实施例示出的若干特效模块进行归类显示的一种显示方式的示意图。在图1中,“Const”表示固值类型的组件类别、“Filter”表示滤镜类型的组件类别、“InOut”表示输入输出类型的组件类别、“Math”表示数学运算类型的组件类别、“NodeProgram”表示节点程序类型的组件类别、“Param”表示动态参数类型的组件类别。其中,可以通过点击组件类别所在的栏目而触发组件类别下可视化的特效模块进行展示,如图2所示,图2是本发明根据一示例性实施例示出的固值类型的组件类别被触发展开后的一种显示状态示意图。触发组件类别下的特效模块进行展示后,可以通过点击其中一个特效模块,触发特效模块输入到特效设计区域中。
[0053] 在一个例子中,所述若干特效模块可以一直显示在可视化编辑界面中,基于此,除了特效设计区域以外,还可以在可视化编辑界面中配置模块显示区域,如图3所示,图3是本发明根据一示例性实施例示出的一种可视化编辑界面的示意图,标号31所示之处为特效设计区域,标号32所示之处为模块显示区域。
[0054] 基于图3所示的实施例,设计者可以直接从模块显示区域中展开所需的组件类别,并通过点击所展开的组件类别下的某个特效模块实现将所选的特效模块输入到特效设计区域中,如图4所示,图4是本发明根据一示例性实施例示出的一种在特效设计区域输入特效模块时的可视化编辑界面的示意图。或者,设计者可以通过拖动的方式将所选中的特效模块输入到特效设计区域中,如图5所示,图5是本发明根据一示例性实施例示出的另一种在特效设计区域输入特效模块时的可视化编辑界面的示意图。
[0055] 由此,通过在所述可视化编辑界面中同时配置模块显示区域和特效设计区域,可以方便设计者对特效模块的查看和操作。
[0056] 但这样一来,可视化编辑界面必须为模块显示区域分配一定的显示空间,由此导致特效设计区域的显示范围受限。因此,为至少解决这一技术问题,最大化特效设计区域,在另一个例子中,所述若干特效模块隐藏显示在可视化编辑界面中,如图6所示,图6是本发明根据一示例性实施例示出的另一种可视化编辑界面的示意图,此时,特效设计区域61的面积相当于可视化编辑界面的面积,由此可以很好地扩大了特效设计区域的显示范围。
[0057] 基于图6所示的实施例,为方便设计者可以在特效设计区域直接输入所需的特效模块,可以在特效编辑器中预设用于唤出模块显示区域的指令,例如,设计者可以通过快捷键输入指令的方式唤出模块显示区域,或在特效设计区域中通过长按操作唤出模块显示区域,或在特效设计区域中通过点击鼠标右键的方式唤出模块显示区域,但不限于这些操作方式。由此,特效编辑器收到用于唤出特效模块的指令时,可以在特效设计区域中展示模块显示区域,如图7或图8所示,图7是本发明根据一示例性实施例示出的模块显示区域被唤出后的一种可视化编辑界面的示意图,图8是本发明根据一示例性实施例示出的模块显示区域被唤出后的另一种可视化编辑界面的示意图。
[0058] 设计者在特效设计区域输入所需的目标特效模块的过程中或之后,可以依据所设计的特效的实现逻辑将特效设计区域中的目标特效模块相连接。特效编辑器收到用于指示目标特效模块相连接的指令时,可以生成目标特效模块的连接关系图并显示,例如,以逻辑节点图的形式展示特效设计区域中的目标特效模块及其之间的连接关系,如图9所示,图9是本发明根据一示例性实施例示出的特效设计区域中的目标特效模块之间的连接关系示意图,图9中所示的整型常数组件(Int Const)、缩放滤镜组件(ZoomFilter)以及图像输出组件(Filter Output Tex)之间的关系表示为:整型常数组件向缩放滤镜组件输入设计者当前设定的缩放参数;缩放滤镜组件按照当前缩放参数对图像中的滤镜进行缩放后,向图像输出组件输入经过缩放处理后的图像;图像输出组件输出经过缩放处理后的图像。
[0059] 特效编辑器在生成目标特效模块之间的连接关系图的过程中,可以同时根据特效设计区域中目标特效模块之间的连接关系调用相应的目标特效组件,以使目标特效组件中的函数的调用关系与所述连接关系对应,从而实现目标特效组件之间的组合,以生成对应的特效包。
[0060] 虽然一个特效组件可以与相同类别或不同类别的多个特效组件进行组合而实现特定的特效,但其中也存在不能进行组合的特效组件,可以理解为:特效组件A可以和特效组件B进行组合以完成特定的功能,但特效组件A和特效组件C组合后会发生错误,即无法进行组合。也就是说,一个特效组件中的函数可以与其他函数相互调用,但也可能无法与个别函数相互调用。因此,为实现特效组件之间能够顺利组合,保证特效组件之间的准确调用,在一实施例中,对于每个特效模块,所述特效模块配置有数量不限的输入端口和/或输出端口,各端口处配置有若干模块选项,不同模块选项与不同特效模块绑定。对于配置有一个以上的输入端口或一个以上的输出端口的特效模块,所述特效模块的不同输入端口或不同输出端口中各端口的类型可以互不相同,或者,所述特效模块的不同输入端口中可以包括类型相同和类型不同的端口;同理,所述特效模块的不同输出端口中也可以包括类型相同和类型不同的端口。每个输入端口用于接入类型匹配的特效组件对应的特效模块,以为特效组件之间的相互调用提供准确的接口,保证特效组件之间能够准确调用,并方便设计者的特效设计操作。其中,输入端口和输出端口的类型都可以包括但不限于:数值类型、图像纹理类型、颜色类型。数值类型的端口用于接收或输出数值参数,图像纹理类型的端口用于接收或输出图像纹理,颜色类型的端口用于接收或输出图像的颜色值。
[0061] 在一个例子中,滤镜类型、数学运算类型、动态参数类型、节点程序类型、输入输出类型的特效组件所绑定的特效模块可以同时配置有数量不限的输入端口和输出端口;固值类型的特效组件所绑定的特效模块可以配置有输出端口而不配置输入端口;输入输出类型中的图像输出组件所绑定的特效模块可以配置有输入端口而不配置输出端口。其中各个特效模块的端口可由开发人员预先配置,具体如何配置可依需确定,在此不进行赘述。如图10所示,图10是本发明根据一示例性实施例示出的不同类别的特效组件所绑定的特效模块的示意图,其中,缩放滤镜组件绑定的特效模块102的输入端口包括数值类型的输入端口——缩放参数输入端口Zoom(f)、以及图像纹理类型的输入端口——纹理图像输入端口tex(tex),输出端口包括数值类型的输出端口——纹理图像宽度值输出端口outTexWidth(f)和纹理图像高度值输出端口outTexHeight(f)、以及图像纹理类型的输出端口——纹理图像输出端口out(tex);浮点型常数组件绑定的特效模块101只配置有数值类型的输出端口——缩放参数输出端口out(f);图像输出组件绑定的特效模块103只配置有图像纹理类型的输入端口——纹理图像输入端口In Tex(tex)。并且,从图10可知,特效模块101、特效模块102和特效模块103之间相互连接的输入端口和输出端口的类型相同,可以保证特效组件之间调用的准确性。
[0062] 由此通过为每个特效模块配置数量不限的输入端口和/或输出端口,且各端口处配置有若干模块选项,不同模块选项与不同特效模块绑定;从而使得设计者在特效设计区域输入一个第一特效模块之后,可以在该第一特效模块的输入端口或输出端口处选择所需的模块选项,以触发所选的模块选项绑定的特效模块被输入到特效设计区域并被接入到第一特效模块中所述所选的模块选项所在的端口;由此不断输入所需的特效模块,实现特效设计。从而不仅可以保证特效组件之间相互调用的准确性,而且还可以方便设计者的特效设计操作。
[0063] 为在后续特效设计中可以应用已有的特效着色程序去设计新的特效,例如,在已有的特效着色程序对应的逻辑节点图的基础上,增加特效模块或删除部分特效模块以设计新的特效;以更便于设计者的特效设计操作,并更好地提高特效设计效率。在一实施例中,通过上述提供的任一技术方案生成特效着色程序之后,可以将特效着色程序保存为一组着色程序组件,并将特效着色程序对应的逻辑节点图保存为对应的节点图文件。基于此,除了上述提及的滤镜类型、数学运算类型、动态参数类型、固值类型、节点程序类型和输入输出类型的组件之外,所述若干特效组件还可以包括着色程序类型的组件,用于存储逻辑节点图对应的程序代码。其中,节点图文件的获取途径可以包括:依据设计者在特效设计区域中输入的目标特效模块及目标特效模块之间的连接关系获得、由开发人员在开发阶段预先配置所得。
[0064] 其中,为避免着色程序存储混乱,在一实施例中,对于着色程序类型的组件中的每个特效组件,所述特效组件基于一个节点图文件对应的程序代码封装所得。其中,着色程序类型的特效组件及节点图文件之间的映射关系的存储方式不限。
[0065] 由此,为方便设计者在设计特效时可以快速将所需的逻辑节点图输入到特效设计区域,更好地提高特效实现效率,在一实施例中,所述可视化编辑界面还可以配置有用于触发逻辑节点图输入特效设计区域的文件打开控件,由此设计者可以通过所述文件打开控件快速插入所需的节点图文件。其中,所述文件打开控件可以在特效编辑器启动时显示,在特效设计过程中隐藏,如图11和图10所示,图11是本发明根据一示例性实施例示出的特效编辑器在刚启动时的可视化编辑界面的示意图,在图11中,所述文件打开控件111显示于可视化编辑界面中,此时可以通过触发文件打开控件111而从逻辑节点图的存储路径中选取所需的节点图文件,以使所选的节点图文件对应的逻辑节点图输入到特效设计区域61中。如无需选取节点图文件,可以直接点击特效设计区域61而使特效设计区域61完整显示。在图10中,所述文件打开控件不显示,但可以通过预定操作唤出,例如,可以通过快捷键输入指令的方式唤出,或通过预定的手势唤出,但不限于此。
[0066] 另外,在特效设计过程中,为方便对已有的着色程序类型的组件的快速调用,并简化特效设计区域中的逻辑节点图中的节点的个数,可以为着色程序类型的组件中的每个特效组件都配置对应的特效模块并进行绑定,基于此,在一实施例中,归类显示的所述若干组件对应的组件类别还包括着色程序类型的组件类别,如图12所示,图12是本发明根据另一示例性实施例示出的若干特效模块进行归类显示的一种显示方式的示意图。在图12中,“Const”表示固值类型的组件类别、“Filter”表示滤镜类型的组件类别、“InOut”表示输入输出类型的组件类别、“Math”表示数学运算类型的组件类别、“NodeProgram”表示节点程序类型的组件类别、“Param”表示动态参数类型的组件类别、“Program”表示着色程序类型的组件类别。其中,可以通过点击组件类别所在的栏目而触发组件类别下可视化的特效模块进行展示。由此,通过选取“Program”下的特效模块即可实现所选的特效模块的输入,无需输入占用显示面积较大的逻辑节点图,从而有利于简化特效设计区域中显示的内容,使得特效设计区域中显示的内容更加清楚明了,更便于设计者理解和查看。
[0067] 基于前述特效编辑器的实施例,本发明还提供了利用所述特效编辑器实现的一种特效实现方法,如图13所示,图13是本发明根据一示例性实施例示出的一种特效实现方法的流程图,所述方法可以应用于终端中,包括以下步骤:
[0068] 在步骤S131中,收到启动特效编辑器的指令时,展示特效编辑器的可视化编辑界面;
[0069] 在步骤S132中,收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
[0070] 在步骤S134中,根据特效设计区域中目标特效模块之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。
[0071] 在需要进行特效设计时,设计者可以启动特效编辑器,由此触发终端在前台运行特效编辑器并展示特效编辑器的可视化编辑界面。所述可视化编辑界面可从前述特效编辑器的实施例获知,在此不进行赘述。
[0072] 在所述可视化编辑界面中,设计者可以通过前述特效编辑器的实施例记载的操作方式触发特效设计指令,例如,基于为每个特效模块配置数量不限的输入端口和/或输出端口,且各端口处配置有若干模块选项,不同模块选项与不同特效模块绑定的特效编辑器的实施例,所述特效设计指令可以由以下任一用户操作触发:向特效设计区域插入目标特效模块的操作、特效设计区域中的目标特效模块的模块选项被选中的操作、将特效设计区域中的目标特效模块之间的端口相连的操作。其中,向特效设计区域插入目标特效模块的操作用于触发所述特效设计指令对应的目标特效模块输入并显示于特效设计区域;将特效设计区域中的目标特效模块之间的端口相连的操作用于触发所述特效设计指令对应的目标特效模块之间的端口相互连接,以构建对应的连接关系并显示于特效设计区域;特效设计区域中的目标特效模块的模块选项被选中的操作用于触发所述特效设计指令对应的目标特效模块输入并显示于特效设计区域,且触发所述特效设计指令对应的目标特效模块与被选中的模块选项所属的目标特效模块之间的连接关系的构建。
[0073] 基于此,所述步骤S132中,所述向特效设计区域输入所述特效设计指令对应的目标特效模块和构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系,包括:
[0074] 在步骤S1321中,当所述特效设计指令由特效设计区域中的目标特效模块的模块选项被选中的操作所触发时,于被选中的模块选项所在端口接入所述被选中的模块选项所绑定的目标特效模块。
[0075] 由此使得设计者在特效设计区域输入一个第一特效模块之后,可以在该第一特效模块的输入端口或输出端口处选择所需的模块选项,以触发被选中的模块选项绑定的特效模块被输入到特效设计区域并被接入到第一特效模块中被选中的模块选项所在的端口。由此设计者可以依照上述操作不断输入所需的特效模块,实现特效设计。从而不仅可以保证特效组件之间相互调用的准确性,而且还可以方便设计者的特效设计操作。
[0076] 在根据特效设计指令构建对应的目标特效模块之间的连接关系的过程中,或者在收到用于指示特效设计完成的指令时,可以根据特效设计区域中所有目标特效模块之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。其中,可以根据特效设计区域中所有目标特效模块的端口之间的连接关系,实现所有目标特效模块所绑定的目标特效组件之间按照连接关系所表示的逻辑进行相互调用,从而生成对应的特效着色器程序。
[0077] 生成特效着色器程序之后,为方便设计者得知当前特效设计的效果,在一实施例中,所述方法还可以包括:
[0078] 在步骤S135中,收到特效预览指令时,获取当前输入的目标图像或目标视频文件;
[0079] 在步骤S136中,在目标图像或目标视频文件中增加特效着色器程序对应的特效效果,以生成相应的特效图像或特效视频文件;
[0080] 在步骤S137中,展示所述特效图像或播放所述特效视频文件。
[0081] 由此,在生成特效着色器程序之后,设计者可以通过特效编辑器提供的特效预览功能触发特效编辑器展示特效着色器程序对应的特效效果。在这之中,设计者可以输入所需的目标图像或目标视频文件来确定特效着色器程序对应的特效效果,也可以使用特效编辑器默认输入的目标图像或目标视频文件来确定特效着色器程序对应的特效效果。在特效编辑器获取当前输入的目标图像或目标视频文件之后,将当前特效着色器程序对应的特效效果渲染于目标图像或目标视频文件中,以生成添加有当前特效着色器程序对应的特效画面的特效图像或特效视频文件,并进行展示,以供设计者预览。
[0082] 展示所述特效图像或播放所述特效视频文件之后,如果设计者对当前特效效果不满意,需要改善所设计的特效时,可以在特效设计区域调整目标特效模块的参数或目标特效模块之间的连接关系,也可以增加新的目标特效模块,还可以删除已有的目标特效模块。
[0083] 另外,为方便设计者快速得知之前生成并保存有的特效着色器程序的特效效果,以方便后续应用,在一实施例中,所述方法还可以包括:
[0084] 在步骤S138中,在生成特效着色器程序之后或在收到用于指示保存当前特效着色器程序的指令时,基于特效着色器程序生成对应的特效素材。
[0085] 由此在后续中,如果设计者需要得知已保存的各特效着色器程序对应的特效效果,可以通过其对应的特效素材即可快速获知其所表达的特效效果,无需通过特效编辑器运行特效着色器程序后才能获知对应的特效效果,从而有利于减轻终端的运算负担和方便设计者对特效着色器程序的特效效果的获知。并且,在后续中,设计者可以基于特效素材确定满意的特效着色器程序,并将特效着色器程序打包成特效产品,向相关应用平台进行推送。
[0086] 另外,在特效设计的过程中,为使设计者可以清楚得知特效设计区域中的目标特效模块之间的逻辑关系,在一实施例中,所述方法还可以包括:
[0087] 在步骤S133中,对于已构建有连接关系的目标特效模块,以逻辑节点图的形式展示所述目标特效模块及其之间的连接关系。
[0088] 所述步骤S133中,已构建有连接关系的目标特效模块及其之间的连接关系以逻辑节点图的形式进行展示的方式可参见图9或图10。
[0089] 需要说明的是,特效设计区域中显示的逻辑节点图可以被设计者依需编辑。其中,在第一方面,可以根据针对所述逻辑节点图的编辑指令在所述逻辑节点图中增加指定增加的目标特效模块。例如,在特效设计指令由向特效设计区域插入目标特效模块的操作所触发的情形下,在特效设计区域插入所述特效设计指令对应的目标特效模块,其中,如果所述特效设计指令携带有用于指示插入逻辑节点图中指定位置的信息,则在逻辑节点图的指定位置插入所述特效设计指令对应的目标特效模块,由此实现在逻辑节点图中增加所需的目标特效模块。如果所述特效设计指令未携带有用于指示插入逻辑节点图中指定位置的信息,则在逻辑节点图以外的区域插入所述特效设计指令对应的目标特效模块。对于在逻辑节点图以外的区域插入的目标特效模块,可以在特效设计指令由将所述目标特效模块接入逻辑节点图中指定位置的操作所触发的情形下,将所述目标特效模块接入到逻辑节点图中对应的位置,从而也可以实现在逻辑节点图中增加所需的目标特效模块。除此之外,还可以在特效设计指令由逻辑节点图中的某个目标特效模块的模块选项被选中的操作所触发的情形下,将被选中的模块选项所绑定的目标特效模块插入到逻辑节点图中对应的位置,由此也可以实现在逻辑节点图中增加所需的目标特效模块。
[0090] 在第二方面,可以根据针对所述逻辑节点图的编辑指令改变所述逻辑节点图中指定的目标特效模块之间的连接关系,例如,改变逻辑节点图中某些目标特效模块的连接顺序。
[0091] 在第三方面,可以根据针对所述逻辑节点图的编辑指令删除所述逻辑节点图中指定删除的目标特效模块。
[0092] 基于可视化编辑界面还配置有用于触发逻辑节点图输入特效设计区域的文件打开控件的特效编辑器的实施例,为方便在后续设计中快速应用之前设计完成的逻辑节点图或在之前未完成的逻辑节点图的基础上进行继续设计的操作,在一实施例中,所述方法还可以包括:
[0093] 在步骤S141中,将特效设计区域中的逻辑节点图保存为对应的节点图文件;
[0094] 在步骤S142中,收到由所述文件打开控件被触发所产生的指令时,展示文件选取区域,所述文件选取区域展示有已保存的节点图文件;
[0095] 在步骤S143中,收到用于指示将当前选中的节点图文件输入到特效设计区域的指令时,在特效设计区域输入当前选中的节点图文件对应的逻辑节点图。
[0096] 由此,在需要基于已有的逻辑节点图进行特效设计时,可以方便设计者将所需的逻辑节点图导入到特效设计区域,并基于导入的逻辑节点图继续未完成的特效设计或进行新的特效设计,从而有利于简化设计者进行特效设计的过程和提高特效设计效率。
[0097] 基于前述特效编辑器的实施例可知,由于所述图像输出组件用于输出由设计者所选取的特效组件处理所得的最终特效图像,可以理解为是特效设计中必须应用到的一个基础组件,作为任一种特效设计的最终输出节点,因此,为避免设计者遗漏图像输出组件而导致特效实现过程中出错,在一实施例中,收到启动特效编辑器的指令时,所述方法还可以包括:在特效设计区域中展示所述图像输出组件绑定的特效模块。由此实现在启动特效编辑器时默认将图像输出组件绑定的特效模块展示于特效设计区域中,如图14所示,图14是本发明根据一示例性实施例示出的特效编辑器启动时,一种默认展示图像输出组件的特效设计区域的示意图,其中,标号141所示之处为特效设计区域,标号142所示之处为图像输出组件。
[0098] 对于方法实施例而言,由于其基于特效编辑器的实施例,所以方法实施例中与特效编辑器中相关的部分参见特效编辑器实施例的说明即可,在不进行赘述。
[0099] 与前述特效实现方法对应,本发明还提供了一种特效实现装置,所述特效实现装置可以应用于终端中。如图15所示,图15是本发明根据一示例性实施例示出的一种特效实现装置的结构框图,所述特效实现装置包括:
[0100] 显示模块151,用于在收到启动特效编辑器的指令时,展示特效编辑器的可视化编辑界面;其中,所述特效编辑器配置有若干特效组件;所述可视化编辑界面配置有特效设计区域和若干特效模块,不同特效模块与不同特效组件绑定;
[0101] 处理模块152,用于在收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
[0102] 程序生成模块153,用于根据特效设计区域中目标特效之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。
[0103] 在一实施例中,对于每个特效模块,所述特效模块配置有输入端口和/或输出端口,各端口处配置有若干模块选项;不同模块选项与不同特效模块绑定。
[0104] 在一实施例中,所述特效设计指令由以下任一用户操作触发:向特效设计区域插入目标特效模块的操作、特效设计区域中的目标特效模块的模块选项被选中的操作、将特效设计区域中的目标特效模块之间的端口相连的操作。基于此,所述处理模块152包括:
[0105] 第一处理单元,用于在收到的特效设计指令由特效设计区域中的目标特效模块的模块选项被选中的操作所触发时,于被选中的模块选项所在端口接入所述被选中的模块选项所绑定的目标特效模块;
[0106] 第二处理单元,用于在收到的特效设计指令由向特效设计区域插入目标特效模块的操作所触发时,将所述特效设计指令对应的目标特效模块输入并显示于特效设计区域;
[0107] 第三处理单元,用于在收到的特效设计指令由将特效设计区域中的目标特效模块之间的端口相连的操作所触发时,将所述特效设计指令对应的目标特效模块之间的端口相互连接,以构建对应的连接关系并显示于特效设计区域。
[0108] 在一实施例中,所述装置还可以包括:
[0109] 显示控制模块,用于对于已构建有连接关系的目标特效模块,控制显示模块151以逻辑节点图的形式展示所述目标特效模块及其之间的连接关系。
[0110] 在一实施例中,基于所述装置包括显示控制模块的实施例,所述可视化编辑界面还配置有用于触发逻辑节点图输入特效设计区域的文件打开控件。基于此,所述装置还可以包括:
[0111] 存储模块,用于将特效设计区域中的逻辑节点图保存为对应的节点图文件。
[0112] 基于此,所述显示控制模块还用于在收到由所述文件打开控件被触发所产生的指令时,控制显示模块151展示文件选取区域,所述文件选取区域展示有已保存的节点图文件。相应地,所述处理模块152还用于在收到用于指示将当前选中的节点图文件输入到特效设计区域的指令时,在特效设计区域输入当前选中的节点图文件对应的逻辑节点图。
[0113] 在一实施例中,所述装置还可以包括:
[0114] 获取模块,用于在生成特效着色器程序之后,收到特效预览指令时,获取当前输入的目标图像或目标视频文件;
[0115] 渲染模块,用于在获取模块获取当前输入的目标图像或目标视频文件后,在目标图像或目标视频文件中增加特效着色器程序对应的特效效果,以生成相应的特效图像或特效视频文件。
[0116] 基于此,所述显示模块151还用于展示所述特效图像或播放所述特效视频文件。
[0117] 在一实施例中,所述装置还可以包括:
[0118] 特效素材生成模块,用于在所述程序生成模块153生成特效着色程序后,基于特效着色程序生成对应的特效素材。
[0119] 上述装置中各个模块和单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0120] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。
[0121] 与前述特效实现方法对应,本发明还提供了一种特效实现的电子设备,所述电子设备可以包括:
[0122] 处理器;
[0123] 存储器,用于存储可由所述处理器执行的计算机程序;
[0124] 其中,所述处理器执行所述程序时实现前述任一方法实施例中的特效实现方法。
[0125] 本发明实施例所提供的特效实现装置的实施例可以应用在所述电子设备上。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图16所示,图16是本发明根据一示例性实施例示出的一种电子设备的硬件结构图,除了图16所示的处理器、内存、网络接口、以及非易失性存储器之外,所述电子设备还可以包括其他硬件,如摄像模块、显示模块;或通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0126] 与前述方法实施例对应,本发明实施例还提供一种机器可读存储介质,其上存储有程序,所述程序被处理器执行时实现前述任一方法实施例中的特效实现方法。
[0127] 本发明实施例可采用在一个或多个包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。所述机器可读存储介质可以包括:永久性或非永久性的可移动或非可移动媒体。所述机器可读存储介质的信息存储功能可以由任何可以实现的方法或技术实现。所述信息可以是计算机可读指令、数据结构、程序的模型或其它数据。
[0128] 另外,所述机器可读存储介质包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其它内存技术的记忆体、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其它光学存储器、磁盒式磁带、磁带磁盘存储或其它磁性存储设备或可用于存储可被计算设备访问的信息的其它非传输介质。
[0129] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0130] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
[0131] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈