具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
相关技术中,对于已经实现的特效,设计者(策划人员或普通用户)无法根据后续需求对其进一步处理,仍需依赖程序员对其代码进行修改或调整才能实现对已实现的特效的进一步处理。从而不仅增加程序员的工作负担,耗费较多的人力成本,而且也提高了特效后期处理的难度和降低特效后期处理的效率。
基于此,为至少克服相关技术中特效后期处理难度较高和效率较低的问题,本发明实施例提供了一种特效处理软件,所述特效处理软件可以安装于终端中,也可以作为一种网页端产品,用于对已有的特效进行调整或组合形成新的特效。所述特效处理软件的可视化特效处理界面配置有若干时间轨道,所述时间轨道用于被触发以从特效素材库中导入设计者所需的特效素材,并控制特效素材的播放时间。其中,播放时间包括播放开始时间和播放结束时间,所述特效素材库可以包括以下至少之一但不限于:预先配置在特效处理软件中的特效素材库、预存于特效处理软件的服务端中的特效素材库、预存于特效处理软件所应用的终端中的特效素材库。所述特效处理软件对应的特效处理方法可以应用在终端中,如图1所示,图1是本发明根据一示例性实施例示出的一种特效处理方法的流程图,所述方法可以包括以下步骤:
在步骤S011中,收到启动特效处理软件的指令时,展示所述特效处理软件的可视化特效处理界面;
在步骤S012中,收到时间轨道被触发所产生的指令时,获取导入到当前被触发的时间轨道中的特效素材及特效素材的播放时间;
在步骤S013中,根据各时间轨道中的特效素材的播放时间的时序组合所有特效素材,以生成目标特效素材。
当设计者需要对已经实现的特效进一步处理时,可以运行特效处理软件。此时系统将收到启动特效处理软件的指令,并展示所述可视化特效处理界面,如图2所示,图2是本发明根据一示例性实施例示出的一种可视化特效处理界面的示意图。图2所示的可视化特效处理界面包括时间轨道区域21和时间设置区域22;其中,时间轨道区域21中配置有若干时间轨道,虽然图中只示出了3条时间轨道,但可以通过滑动控件211使得时间轨道3下方的其他时间轨道显示出来;时间设置区域22中配置有用于设置每个时间轨道中的特效素材在视频中进行播放的开始时间和结束时间。
当设计者需要导入特效素材时,可以先选中一条时间轨道,例如时间轨道2,此时系统将收到时间轨道2被触发所产生的指令,并展示特效素材的选取界面,如图3所示,图3是本发明根据一示例性实施例示出的一种特效素材的选取界面的示意图。在图3所示的选取界面中,设计者可以通过点击“浏览”控件或“打开目录”控件从特效素材库中导入所需的特效素材对应的程序包到栏目31中,从而通过栏目31将当前导入的特效素材导入到时间轨道2中,或者,在另个一示例中,选取界面不配置栏目31,设计者可以直接通过点击“浏览”控件或“打开目录”控件从特效素材库中导入所需的特效素材对应的程序包到时间轨道2中,由此可以获得导入到当前被触发的时间轨道中的特效素材。同理,可以根据上述操作将其他所需处理的特效素材导入到其他时间轨道中,并获得已导入的特效素材。其中,所述程序包可以是由Lua脚本实现的逻辑代码文件,也可以由C++语言实现的逻辑代码文件。
在导入所需的特效素材之后,可以选中需要进行播放时间设置的时间轨道,例如,选中时间轨道3。选中时间轨道3后,所述时间设置区域22中的开始时间和结束时间所针对的对象即为时间轨道3中的特效素材,此时设计者可以在开始时间栏目和结束时间栏目中自定义播放开始时间和播放结束时间,由此可以获得时间轨道3中的特效素材的播放时间。
需要说明的是,如果某些时间轨道中的特效素材未被设计者自定义播放时间,则可以认为在特效素材组合时使用系统默认时间,例如,假设只有时间轨道1和2被导入了特效素材,时间轨道1被设计者自定义了播放时间,但时间轨道2未被设计者自定义播放时间,那么,可以默认时间轨道1和时间轨道2中的特效素材的播放时间相同,也可以默认时间轨道2中的特效素材的播放时间比时间轨道1的特效素材的播放时间延迟预设值,本发明实施例对此不进行限定。
设计者导入所需的特效素材和自定义好特效素材的播放时间之后,可以输入用于触发目标特效素材生成的指令,以触发系统根据各时间轨道中的特效素材的播放时间的时序组合所有特效素材,从而生成目标特效素材。其中,所有特效素材的组合过程可以理解为是所有特效素材对应的程序代码中相关函数之间的相互调用。
由此,通过上述技术方案,可以使得设计者基于已有的特效素材进行进一步处理,例如,将已有的特效素材合并成一个目标特效素材,或在此基础上进一步设置已有的特效素材在使用时的播放时刻和播放时长。随后本发明实施例即可根据已输入的特效素材及其播放时间的时序组合生成一个对应的目标特效素材。从而设计者无需依赖程序员才能实现对已有特效素材的进一步处理,可以减轻程序员的工作负担和降低人力成本,也可以降低特效后期处理的难度和提高特效后期处理的效率。
生成的目标特效素材可以被作为特效产品而应用于视频中。以下,举个例子说明一下所述目标特效素材在视频中的效果:
假设目标特效素材由第一特效素材和第二特效素材组成,所述第一特效素材的播放开始时间为视频播放时间的第10s,播放结束时间为视频播放时间的第20s;所述第二特效素材的播放时间为视频播放时间的第15s,播放结束时间为视频播放时间的第20s。这么一来,将目标特效素材应用到某个视频之后,播放到第10s时,当前播放的视频画面会显示有第一特效素材,且第一特效素材将持续播放到第20s;在这期间,播放到第15s时,当前播放的视频画面除了显示有第一特效素材之外,还显示有第二特效素材,且第二特效素材将持续播放到第20s。播放到第20s之后时,第一特效素材和第二特效素材都会消失不见了。
虽然生成后的目标特效素材可以正常应用于后续视频特效处理中,但为保证目标特效素材的效果,设计者一般在得到目标特效素材之后,还要确认目标特效素材是否符合预期要求。基于此,为使设计者得知目标特效素材是否符合预期要求,以在目标特效素材不符合预期要求时及时作出适应性地修改,在一实施例中,生成目标特效素材之后,所述方法还可以包括:
在步骤S014中,收到用于指示播放目标特效素材的指令时,获取已输入的原始视频;
在步骤S015中,根据目标特效素材的播放时间将目标特效素材添加至原始视频对应时段的视频帧中,以生成对应的特效视频;
在步骤S016中,播放所述特效视频。
基于此,所述可视化特效处理界面还可以配置有原始视频导入控件和用于触发特效视频生成的播放控件。基于此,上述中用于触发目标特效素材生成的指令可以由所述播放控件被触发所产生。
设计者需要预览目标特效素材的效果时,可以先通过视频导入控件从预存的视频库中导入用于测试目标特效素材的效果的原始视频。导入原始视频之后,设计者可以通过点击所述播放控件,以触发用于指示播放目标特效素材的指令产生。
当系统收到所述用于指示播放目标特效素材的指令时,获取已经导入的原始视频,并根据目标特效素材的播放时间将目标特效素材添加至原始视频对应时段的视频帧中,以生成对应的特效视频,并对所述特效视频进行播放。其中,所述特效视频中目标特效素材的播放效果可参见上述目标特效素材在视频中的效果的应用示例。
由此,可以方便设计者及时得知目标特效素材的效果,及时确认目标特效素材是否符合预期。
通过上述目标特效素材在视频中的效果的应用示例可知,目标特效素材播放完成之后,即会消失不见,视频照常播放原视频帧。但目标特效素材突然消失不见可能会让观看者觉得比较突然,视频画面过渡较不自然。因此,为至少解决这一技术问题,优化特效视频的视觉效果,在一实施例中,所述可视化特效处理界面还可以配置有用于控制目标特效素材在播放时间内是否以逐渐透明的方式进行呈现的渐隐选项和用于控制目标特效素材在播放时间内透明程度的控制控件。其中,所述控制控件可以以滑杆的形式进行展示,通过滑动滑杆可以调节透明程度。基于此,在生成目标特效素材之前,所述方法还可以包括:当所述渐隐选项处于选中状态时,获取所述控制控件当前所指示的透明系数。相应地,所述步骤S013,根据各时间轨道中的特效素材的播放时间的时序组合所有特效素材,以生成目标特效素材,可以适应性地调整为:根据所述透明系数更新各特效素材中的颜色参数和亮度参数,并根据各时间轨道中的特效素材的播放时间的时序组合所有更新后的特效素材,以生成目标特效素材。
需要说明的是,所述透明系数用于指示特效素材的颜色值和亮度值在预定衰减周期的衰减程度。例如,假设透明系数为10%,预定衰减周期为1s,则对于目标特效素材中的每个特效素材而言,每隔1s,所述特效素材的颜色值将被更新为上一次更新后的颜色值的90%,同理所述特效素材的亮度值将被更新为上一次更新后的亮度值的90%。
由此,可以使得目标特效素材在播放时呈现逐渐透明的效果,使得视频画面过渡比较自然,有利于优化特效视频画面的视觉效果。
在一些情形下,可能需要目标特效素材在视频中循环播放或者连续播放几个周期,因此,为满足这一使用需求,在一实施例中,所述可视化特效处理界面还可以配置有用于设置目标特效素材在视频中进行播放的周期数的周期控件、和/或用于控制目标特效素材在视频中循环播放的循环控件。
基于此,当所述循环控件处于选中状态时,所述特效视频的生成过程可以适应性地调整为:以目标特效素材的播放结束时间为一个特效周期,确定原始视频所包含的特效周期;根据目标特效素材的播放时间将目标特效素材添加至原始视频中每个特效周期中的对应时段的视频帧中,以生成对应的特效视频。以下,举个例子说明一下此示例:
假设目标特效素材的播放开始时间为原始视频的第5s,播放结束时间为原始视频的第15s,原始视频的时长为70s,那么,目标特效素材的特效周期为15s;原始视频包含的特效周期为其时长的第1s~15s、第16s~第30s、第31s~第45s、第46s~第60s、以及第61s~第70s共5个特效周期;其中,第61s~第70s为一个不完整的特效周期。由于目标特效素材的播放开始时间为原始视频的第5s,因此,在原始视频中每个特效周期的第5s才开始播放目标特效素材,且在原始视频中每个特效特效周期的最后一秒结束播放目标特效素材,由此实现循环播放。
当周期控件所指示的周期数大于1时,所述特效视频的生成过程可以适应性地调整为:获取当前周期控件所指示的周期数;以目标特效素材的播放结束时间为一个特效周期,确定原始视频所包含的特效周期;根据目标特效素材的播放时间将目标特效素材添加至原始视频中的第一数量个特效周期中各周期内对应时段的视频帧中,以生成对应的特效视频;其中,所述第一数量的值与所述周期数的值相同。以下,举个例子说明一下此示例:
例如,假设设计者设定的周期数为2,目标特效素材的播放开始时间为原始视频的第5s,播放结束时间为原始视频的第15s,原始视频的时长为70s,那么,目标特效素材的特效周期为15s;原始视频包含的特效周期为其时长的第1s~15s、第16s~第30s、第31s~第45s、第46s~第60s、以及第61s~第70s共5个特效周期;其中,第61s~第70s为一个不完整的特效周期。由于目标特效素材要播放两个周期,则可以从原始视频的上述特效周期中任意选取两个特效周期,将目标特效素材添加至所选的两个特效周期的对应时段;如,选取了第1s~15s和第31s~第45s这两个特效周期,其中的目标特效素材分别添加在第5s~15s和第35s~第45s。由此实现特效视频在播放过程中可以显示两个周期的目标特效素材。
虽然通过上述技术方案可以实现对若干特效素材的组合以及对特效素材在视频中的播放时间和/或播放周期的调整,较好地满足了设计者对特效素材进一步处理的需求,但设计者可以进行处理的对象还是比较有限的。因此,为使得设计者能够从更多方面去调整已经实现的特效素材,以更好地提高特效素材的后期处理效果和特效效果,在一实施例中,本发明还为设计者提供了特效素材的特效参数的可编辑功能,其中的特效参数可以包括以下至少之一:位置参数、角度参数、大小参数、持续时间参数、亮度参数、颜色参数,但不限于此,特效素材对应的程序代码中可以依需改变的变量都可以作为上述可以被设计者调整的特效参数,在此不进行枚举。基于此,获取导入到当前被触发的时间轨道中的特效素材之后,所述方法还可以包括:
在步骤S021中,展示当前导入的特效素材的特效参数;
在步骤S022中,收到特效参数被触发所产生的指令时,展示当前被触发的特效参数对应的参数编辑界面;所述参数编辑界面中配置有用于编辑特效参数的坐标系区域和用于控制坐标系区域中特效参数的变化趋势的线型选取控件;所述坐标系区域中的坐标横轴指示播放时间,坐标纵轴指示特效参数的值;所述线型选取控件中配置的线型选项包括但不限于:直线、曲线和分段曲线;
在步骤S023中,检测到坐标系区域有输入操作时,根据所述输入操作确定输入到坐标系区域中的特效参数坐标点;
在步骤S024中,以线型选取控件中当前被选中的线型选项对应的线型连接输入到坐标系区域中的所有特效参数坐标点,以生成用于描述所述当前被触发的特效参数随播放时间的变化趋势的曲线图;
在步骤S025中,根据所述曲线图更新当前被触发的特效参数,以更新所述当前导入的特效素材。
通过基于设计者对特效素材的导入操作导入特效素材之后,可以在如图3所示的选取界面的栏目31中显示特效素材的程序代码文件名称,并在选取界面中展示栏目31中的特效素材对应的程序代码中可以被编辑的特效参数,例如,假设导入到栏目31中的特效素材的程序代码文件为Lua脚本文件,文件名称为filter,则可以在栏目31中显示“filter.lua”,并显示“filter.lua”中可以被编辑的特效参数,如图4所示,图4是本发明根据一示例性实施例示出的一种在已导入特效素材的选取界面中展示所述已导入的特效素材的特效参数的界面示意图。从图4可知,所述选取界面中配置有与各特效参数一一对应的编辑控件,例如,特效参数1对应编辑控件41。另外,在由于当前导入的程序代码文件中可以被编辑的特效参数过多而无法同时显示在选取界面中时,可以通过滑动图4中所示的滑动控件42去查看未显示出的特效参数。
当图4所示的编辑控件被触发时,即可收到特效参数被触发所产生的指令,此时可以展示当前被触发的特效参数对应的参数编辑界面。此时展示的参数编辑界面中坐标系区域中的曲线图与当前被触发的特效参数的初始值对应,例如,假设当前被触发的特效参数为一个常数值,则其对应的编辑控件被触发后所展示的参数编辑界面可以如图5所示,图5是本发明根据一示例性实施例示出的一种参数编辑界面的示意图,所述参数编辑界面的坐标系区域51显示有直线L1,表示当前被触发的特效参数在其对应的特效素材的播放过程中,其值恒为初始值。不过,在特效参数编辑的过程中,设计者可以通过拖动直线L1上的点或通过在坐标系区域输入新的坐标点,而实现对特效参数的编辑。以下举个例子说明特效参数的一种编辑场景:
假设某个特效素材对应的特效效果是在画面中渲染出一个正方体,所述正方体在画面中的位置和颜色都要随着该特效素材的播放时间发生动态变化,例如,随着播放时间的流逝,正方体从画面中的第一位置运行至第二位置,颜色从蓝色变成绿色,其中,正方体的位置变化过程可以是一个缓慢变化过程,如从第一位置沿着特定轨迹运行至第二位置;也可以是一个突变过程,如从第一位置跳跃到第三位置,之后再从第三位置跳跃到第二位置或沿着特定轨迹运行至第二位置。同样,正方体的颜色变化过程可以是一个缓慢变化过程,如从蓝色逐渐变成蓝绿色,之后再从蓝绿色变成绿色,即色彩不断从蓝色往绿色靠近这一方向进行变化,可以理解为色彩变化过程中有特定的变化方向;也可以是一个突变过程,如从蓝色突然变成红色,再从红色变成黄色,最终才变成绿色,可以理解为色彩变化过程中没有特定的变化方向。
基于此,需要对该特效素材的位置参数和颜色参数进行编辑,以下以颜色参数的编辑为例说明特效参数的一种编辑场景:
假设正方体的颜色变化是一个连续的过程,那么在参数编辑界面中,可以先依需通过线型选项选择连续线型,如曲线或直线。如图6所示,图6是本发明根据一示例性实施例示出的特效参数编辑过程中的一种参数编辑界面的示意图,假设当前被选中的线型选项为曲线,根据坐标系区域的输入操作确定输入到坐标系区域中的特效参数坐标点为点A1和点A2,并在坐标系区域中显示点A1和点A2。此时,可以通过贝塞尔曲线算法依据点A1的坐标、点A2的坐标、以及预设的坐标点斜率,在坐标系区域中生成对应的曲线L2。其中,为方便设计者对曲线斜率的调整,在一实施例中,可以在显示点A1和点A2时,同时显示点A1所在的切线控件61和点A2所在的切线控件62;或者,可以在检测到曲线中的某个点被选中时,显示当前被选中的点所在的切换控件;基于此,设计者可以通过拖动切线控件去改变对应的坐标点所在的切线的斜率,从而改变曲线整体斜率。
由此可以获得编辑后的特效参数的动态变化曲线图,此时可以根据所述曲线图更新对应的特效参数,以使被更新的特效参数对应的特效素材也得以更新。
在另一实施例中,为了方便设计者快速得知坐标系区域中所显示的坐标点的坐标值,所述参数编辑界面除了配置有坐标系区域51和线型选取控件52之外,还可以配置有时间参数显示区域53和特效参数值显示区域54,如图5所示。所述时间参数显示区域53和所述特效参数值显示区域54可以用于显示所述直线L1上的某个点在坐标系中的横坐标值和纵坐标值,例如,在图5所示的直线L1上点击点A之后,系统会根据该操作确定点A的横坐标值和纵坐标值,并分别显示于时间参数显示区域53和特效参数值显示区域54。
在另一实施例中,为实现对曲线线型选项的快速选取,所述选取界面还可以配置有用于确定是否选取曲线线型选项的快捷选取控件,不同特效参数与不同快捷选取控件关联,如图7所示,图7是本发明根据一示例性实施例示出的另一种选取界面示意图,图7中的快捷选取控件71处于被选中状态,快捷选取控件71处于未被选中状态。由此,设计者可以通过选中所需编辑的特效参数关联的快捷选取控件,将用于描述特效参数随播放时间的变化趋势的线型设置为曲线。
在特效参数的编辑过程中,设计者有可能会对当次编辑的特效参数不满意,需要重新编辑特效参数,因此,为方便设计者清空不满意的特效参数,在一实施例中,基于上述任一实施例所记载的选取界面,所述选取界面还可以配置有用于清空已编辑的特效参数数据的重置控件,不同特效参数与不同重置控件关联,其中的重置控件可以表达为如图7中标号73所示的形式。基于此,所述方法还可以包括:检测到重置控件被触发所产生的指令时,清除当前被触发的重置控件所关联的特效参数,或将当前被触发的重置控件所关联的特效参数置为初始值。
上述任一实施例中的技术方案虽然可以满足设计者对已实现的特效素材的编辑需求和提高特效后期处理效率,但设计者只能对特效素材中可被编辑的特效参数进行编辑,无法改变特效素材的其他内容,例如将一个实现在画面中渲染出正方体模型的特效素材编辑为一个实现在画面中渲染出极光效果的特效素材。并且,在设计者需要设计新的特效素材时,依据相关技术,设计者必须将所需实现的视频特效的设计思路向程序员描述,以使程序员基于所述设计思路编写出对应的程序代码去实现对应的特效。但如果产生沟通误解,设计者和程序员还需另外耗费时间去纠正,可能导致程序员需要重新编写代码,从而导致新的特效素材的开发周期较长和开发成本较高。因此,为至少解决设计者无法独立实现新的特效素材、特效素材开发周期和开发成本较高的问题,在一实施例中,本发明实施例还提供了一种可以为设计者提供特效设计及实现功能的特效编辑器,所述特效编辑器可以作为上述特效处理软件的一个功能部分,也可以独立于上述特效处理软件,可以被单独应用以实现特效设计。
所述特效编辑器内配置有若干特效组件和特效设计的可视化特效编辑界面,所述可视化特效编辑界面配置有特效设计区域和若干特效模块,不同特效组件功能不同,不同特效模块与不同特效组件绑定。其中,特效模块可以理解为是特效组件在可视化特效编辑界面中的一种显示形式。在可视化特效编辑界面中,设计者可以依据其所需实现的特效在特效设计区域中输入相应的特效模块和构建所输入的特效模块之间的连接关系;随后所述特效编辑器可以基于设计者所输入的特效模块及其之间的连接关系自动调用并组合对应的目标特效组件,从而生成对应的特效着色程序,也即生成对应的特效包。由此使得设计者在实现其所设计的特效的过程中无需程序员参与,且可以依需调整特效模块之间的连接关系或增删特效模块,从而可以避免因程序员理解有误而造成最终实现的特效偏离预期,有利于方便设计者的特效设计,缩短特效开发周期和降低特效开发成本。
本实施例中,对于每个特效组件,所述特效组件可以属于特效的基础组成部分,例如,假设一个特效主要实现对输入图像的放大和添加滤镜,那么这个特效对应的特效包中的程序代码应该包括图像放大部分和滤镜添加部分;基于此,可以将图像放大部分的程序代码视为第一特效组件,将滤镜添加部分的程序代码视为第二特效组件。这么一来,为实现这个特效,设计者可以在特效设计区域输入与第一特效组件绑定的特效模块和与第二特效组件绑定的特效模块,并按照放大和滤镜添加的处理前后顺序将两个模块依序相接,由此触发特效编辑器依据两个模块的连接关系依序调用第一特效组件和第二特效组件,实现第一特效组件和第二特效组件中的函数之间可以按照对应的连接关系进行相互调用,以生成对应的特效着色器程序。
在特效编辑器的开发阶段,针对已经存在或可以想到的每种特效,发明人将所述特效分解成若干相对独立的基础组成部分,并将各基础组成部分对应的程序代码封装成对应的特效组件。但由于不同的特效,其实现的代码逻辑可能相同,例如,其区别仅在于图像的放大倍数不同;对于这种情况,代码逻辑的特效组件配置有一个即可,此时可以将图像放大的特效组件中与倍数相关的数值设置为变量,基于此,可以另外配置用于输入该变量的特效组件,由此无需在特效编辑器中配置代码逻辑相同的多个特效组件,可以减少特效组件对内存空间的占用,并方便设计者输入自定义的图像放大倍数。
需要说明的是,所述若干特效组件中,不同特效组件的组合可以产生不同的特效效果,从而满足设计者设计多种新的特效的需求。另外,对于每个特效组件,所述特效组件相当于可以包括数量不限的函数的一段程序代码。
在一实施例中,可以依据特效类别的不同将所述若干特效组件划分为:滤镜类型的组件、数学运算类型的组件、动态参数类型的组件、固值类型的组件、节点程序类型的组件、以及输入输出类型的组件。
其中,滤镜类型的组件用于实现特定滤镜特效。所述滤镜类型的组件可以包括瘦脸滤镜组件(basicthinfaceFilter)、美颜滤镜组件(beautyfaceFilter)、缩放滤镜组件(ZoomFilter),除此之外,还可以包括相关技术所记载的其他滤镜类型的组件,在此不进行枚举。
数学运算类型的组件用于对输入的参数进行数学运算,其中的数学运算可以包括但不限于加、减、乘、除等运算中的至少一种。所述数学运算类型的组件可以包括加法运算组件(add)、减法运算组件(subtract)、乘法运算组件(multiply)、除法运算组件(divide)、叉乘运算组件(cross)、最大值运算组件(max),除此之外,还可以包括相关技术所记载的其他运算类型的组件,在此不进行枚举。以下,举例说明一下数学运算类型的组件的一种应用场景,假设要实现两张图像的颜色混合,则设计者可以选取乘法运算组件,以通过乘法运算组件基于输入的两张图像,将两张图像中对应的每两个像素点的颜色值相乘,从而计算得到两张图像颜色混合后的运算结果。
动态参数类型的组件用于对输入的参数进行动态调节,可以在输入的参数需要动态变化的时候应用,例如,需要输入的图像随着时间进行周期性地放大和/或缩小。所述动态参数类型的组件可以包括浮点型参数组件(Float Param)、四位向量型参数组件(Float4Param)、纹理参数组件(Tex2d Param),除此之外,还可以包括相关技术所记载的其他动参类型的组件,在此不进行枚举。
固值类型的组件用于供设计者设置输入到其他组件的常数值,可以应用需要向其他组件输入常数类型的参数的场景,例如,当需要将一张图像的大小缩放为某一常数倍数时,可以在缩放滤镜组件的缩放参数设置端口接入固值类型的组件,并通过固值类型的组件设置缩放参数。所述固值类型的组件可以包括整型常数组件(Int Const)、浮点型常数组件(Float Const)、四维向量型常数组件(Float4 Const),除此之外,还可以包括相关技术所记载的其他常数类型的组件,在此不进行枚举。
节点程序类型的组件用于供设计者设置图像中的特效位置或特效纹理,可以包括顶点位置组件(pos)、纹理坐标组件(uv0)、纹理图像组件(sampler2d),除此之外,还可以包括相关技术所记载的其他相关类型的组件,在此不进行枚举。其中,所述顶点位置组件用于供设计者设置输入图像中的顶点位置,设置的顶点位置可用于OpenGL的渲染;所述纹理坐标组件用于供设计者设置输入图像中附加纹理图像的区域的坐标,设置的坐标可用于OpenGL的渲染;所述纹理图像组件用于为设计者提供多种不同的图像纹理,以使策划可以将所需的图像纹理增加到输入图像中。
输入输出类型的组件可以包括图像输出组件(Filter Output Tex)、时间输入组件(Time)、音频输入组件(Audio Frequency),除此之外,还可以包括相关技术所记载的其他输入输出类型的组件,在此不进行枚举。其中,所述图像输出组件用于输出由设计者所选取的特效组件处理所得的最终特效图像;所述时间输入组件用于输入特效作用的时间参数,例如,当设计者需要图像或视频画面的缩放比例随着时间发生变化,那么可以通过时间输入组件输入时间参数,并将时间输入组件、动态参数类型的组件与缩放滤镜组件进行关联;所述音频输入组件用于输入音频文件,所述音频文件可以用于控制特效的变化规律,例如,假设某个特效的抖动情况依赖于声音信息,则设计者可以通过音频输入组件输入所需的音频文件,并将音频输入组件、动态参数类型的组件、以及控制特效产生抖动的特效组件进行关联。
为方便设计者可以明确特效组件所属类别,并可以直接基于特效组件所属类别快速查找到所需的特效组件,以提高设计者查找所需特效组件的效率和特效设计效率,在一实施例中,在所述可视化特效编辑界面中,可以归类显示所述若干组件对应的若干特效模块,如图8所示,图8是本发明根据一示例性实施例示出的若干特效模块进行归类显示的一种显示方式的示意图。在图8中,“Const”表示固值类型的组件类别、“Filter”表示滤镜类型的组件类别、“InOut”表示输入输出类型的组件类别、“Math”表示数学运算类型的组件类别、“NodeProgram”表示节点程序类型的组件类别、“Param”表示动态参数类型的组件类别。其中,可以通过点击组件类别所在的栏目而触发组件类别下可视化的特效模块进行展示,如图9所示,图9是本发明根据一示例性实施例示出的固值类型的组件类别被触发展开后的一种显示状态示意图。触发组件类别下的特效模块进行展示后,可以通过点击其中一个特效模块,触发特效模块输入到特效设计区域中。
在一个例子中,所述若干特效模块可以一直显示在可视化特效编辑界面中,基于此,除了特效设计区域以外,还可以在可视化特效编辑界面中配置模块显示区域,如图10所示,图10是本发明根据一示例性实施例示出的一种可视化特效编辑界面的示意图,标号101所示之处为特效设计区域,标号102所示之处为模块显示区域。
基于图10所示的实施例,设计者可以直接从模块显示区域中展开所需的组件类别,并通过点击所展开的组件类别下的某个特效模块实现将所选的特效模块输入到特效设计区域中,如图11所示,图11是本发明根据一示例性实施例示出的一种在特效设计区域输入特效模块时的可视化特效编辑界面的示意图。或者,设计者可以通过拖动的方式将所选中的特效模块输入到特效设计区域中,如图12所示,图12是本发明根据一示例性实施例示出的另一种在特效设计区域输入特效模块时的可视化特效编辑界面的示意图。
由此,通过在所述可视化特效编辑界面中同时配置模块显示区域和特效设计区域,可以方便设计者对特效模块的查看和操作。
但这样一来,可视化特效编辑界面必须为模块显示区域分配一定的显示空间,由此导致特效设计区域的显示范围受限。因此,为至少解决这一技术问题,最大化特效设计区域,在另一个例子中,所述若干特效模块隐藏显示在可视化特效编辑界面中,如图13所示,图13是本发明根据一示例性实施例示出的另一种可视化特效编辑界面的示意图,此时,特效设计区域131的面积相当于可视化特效编辑界面的面积,由此可以很好地扩大了特效设计区域的显示范围。
基于图13所示的实施例,为方便设计者可以在特效设计区域直接输入所需的特效模块,可以在特效编辑器中预设用于唤出模块显示区域的指令,例如,设计者可以通过快捷键输入指令的方式唤出模块显示区域,或在特效设计区域中通过长按操作唤出模块显示区域,或在特效设计区域中通过点击鼠标右键的方式唤出模块显示区域,但不限于这些操作方式。由此,特效编辑器收到用于唤出特效模块的指令时,可以在特效设计区域中展示模块显示区域,如图14或图15所示,图14是本发明根据一示例性实施例示出的模块显示区域被唤出后的一种可视化特效编辑界面的示意图,图15是本发明根据一示例性实施例示出的模块显示区域被唤出后的另一种可视化特效编辑界面的示意图。
设计者在特效设计区域输入所需的目标特效模块的过程中或之后,可以依据所设计的特效的实现逻辑将特效设计区域中的目标特效模块相连接。特效编辑器收到用于指示目标特效模块相连接的指令时,可以生成目标特效模块的连接关系图并显示,例如,以逻辑节点图的形式展示特效设计区域中的目标特效模块及其之间的连接关系,如图16所示,图16是本发明根据一示例性实施例示出的特效设计区域中的目标特效模块之间的连接关系示意图,图16中所示的整型常数组件(Int Const)、缩放滤镜组件(ZoomFilter)以及图像输出组件(Filter Output Tex)之间的关系表示为:整型常数组件向缩放滤镜组件输入设计者当前设定的缩放参数;缩放滤镜组件按照当前缩放参数对图像中的滤镜进行缩放后,向图像输出组件输入经过缩放处理后的图像;图像输出组件输出经过缩放处理后的图像。
特效编辑器在生成目标特效模块之间的连接关系图的过程中,可以同时根据特效设计区域中目标特效模块之间的连接关系调用相应的目标特效组件,以使目标特效组件中的函数的调用关系与所述连接关系对应,从而实现目标特效组件之间的组合,以生成对应的特效包。
虽然一个特效组件可以与相同类别或不同类别的多个特效组件进行组合而实现特定的特效,但其中也存在不能进行组合的特效组件,可以理解为:特效组件A可以和特效组件B进行组合以完成特定的功能,但特效组件A和特效组件C组合后会发生错误,即无法进行组合。也就是说,一个特效组件中的函数可以与其他函数相互调用,但也可能无法与个别函数相互调用。因此,为实现特效组件之间能够顺利组合,保证特效组件之间的准确调用,在一实施例中,对于每个特效模块,所述特效模块配置有数量不限的输入端口和/或输出端口,各端口处配置有若干模块选项,不同模块选项与不同特效模块绑定。对于配置有一个以上的输入端口或一个以上的输出端口的特效模块,所述特效模块的不同输入端口或不同输出端口中各端口的类型可以互不相同,或者,所述特效模块的不同输入端口中可以包括类型相同和类型不同的端口;同理,所述特效模块的不同输出端口中也可以包括类型相同和类型不同的端口。每个输入端口用于接入类型匹配的特效组件对应的特效模块,以为特效组件之间的相互调用提供准确的接口,保证特效组件之间能够准确调用,并方便设计者的特效设计操作。其中,输入端口和输出端口的类型都可以包括但不限于:数值类型、图像纹理类型、颜色类型。数值类型的端口用于接收或输出数值参数,图像纹理类型的端口用于接收或输出图像纹理,颜色类型的端口用于接收或输出图像的颜色值。
在一个例子中,滤镜类型、数学运算类型、动态参数类型、节点程序类型、输入输出类型的特效组件所绑定的特效模块可以同时配置有数量不限的输入端口和输出端口;固值类型的特效组件所绑定的特效模块可以配置有输出端口而不配置输入端口;输入输出类型中的图像输出组件所绑定的特效模块可以配置有输入端口而不配置输出端口。其中各个特效模块的端口可由开发人员预先配置,具体如何配置可依需确定,在此不进行赘述。如图17所示,图17是本发明根据一示例性实施例示出的不同类别的特效组件所绑定的特效模块的示意图,其中,缩放滤镜组件绑定的特效模块102的输入端口包括数值类型的输入端口——缩放参数输入端口Zoom(f)、以及图像纹理类型的输入端口——纹理图像输入端口tex(tex),输出端口包括数值类型的输出端口——纹理图像宽度值输出端口outTexWidth(f)和纹理图像高度值输出端口outTexHeight(f)、以及图像纹理类型的输出端口——纹理图像输出端口out(tex);浮点型常数组件绑定的特效模块101只配置有数值类型的输出端口——缩放参数输出端口out(f);图像输出组件绑定的特效模块103只配置有图像纹理类型的输入端口——纹理图像输入端口In Tex(tex)。并且,从图17可知,特效模块171、特效模块172和特效模块173之间相互连接的输入端口和输出端口的类型相同,可以保证特效组件之间调用的准确性。
由此通过为每个特效模块配置数量不限的输入端口和/或输出端口,且各端口处配置有若干模块选项,不同模块选项与不同特效模块绑定;从而使得设计者在特效设计区域输入一个第一特效模块之后,可以在该第一特效模块的输入端口或输出端口处选择所需的模块选项,以触发所选的模块选项绑定的特效模块被输入到特效设计区域并被接入到第一特效模块中所述所选的模块选项所在的端口;由此不断输入所需的特效模块,实现特效设计。从而不仅可以保证特效组件之间相互调用的准确性,而且还可以方便设计者的特效设计操作。
为在后续特效设计中可以应用已有的特效着色程序去设计新的特效,例如,在已有的特效着色程序对应的逻辑节点图的基础上,增加特效模块或删除部分特效模块以设计新的特效;以更便于设计者的特效设计操作,并更好地提高特效设计效率。在一实施例中,通过上述提供的任一技术方案生成特效着色程序之后,可以将特效着色程序保存为一组着色程序组件,并将特效着色程序对应的逻辑节点图保存为对应的节点图文件。基于此,除了上述提及的滤镜类型、数学运算类型、动态参数类型、固值类型、节点程序类型和输入输出类型的组件之外,所述若干特效组件还可以包括着色程序类型的组件,用于存储逻辑节点图对应的程序代码。其中,节点图文件的获取途径可以包括:依据设计者在特效设计区域中输入的目标特效模块及目标特效模块之间的连接关系获得、由开发人员在开发阶段预先配置所得。
其中,为避免着色程序存储混乱,在一实施例中,对于着色程序类型的组件中的每个特效组件,所述特效组件基于一个节点图文件对应的程序代码封装所得。其中,着色程序类型的特效组件及节点图文件之间的映射关系的存储方式不限。
由此,为方便设计者在设计特效时可以快速将所需的逻辑节点图输入到特效设计区域,更好地提高特效处理效率,在一实施例中,所述可视化特效编辑界面还可以配置有用于触发逻辑节点图输入特效设计区域的文件打开控件,由此设计者可以通过所述文件打开控件快速插入所需的节点图文件。其中,所述文件打开控件可以在特效编辑器启动时显示,在特效设计过程中隐藏,如图18和图17所示,图18是本发明根据一示例性实施例示出的特效编辑器在刚启动时的可视化特效编辑界面的示意图,在图18中,所述文件打开控件181显示于可视化特效编辑界面中,此时可以通过触发文件打开控件181而从逻辑节点图的存储路径中选取所需的节点图文件,以使所选的节点图文件对应的逻辑节点图输入到特效设计区域131中。如无需选取节点图文件,可以直接点击特效设计区域131而使特效设计区域131完整显示。在图17中,所述文件打开控件不显示,但可以通过预定操作唤出,例如,可以通过快捷键输入指令的方式唤出,或通过预定的手势唤出,但不限于此。
另外,在特效设计过程中,为方便对已有的着色程序类型的组件的快速调用,并简化特效设计区域中的逻辑节点图中的节点的个数,可以为着色程序类型的组件中的每个特效组件都配置对应的特效模块并进行绑定,基于此,在一实施例中,归类显示的所述若干组件对应的组件类别还包括着色程序类型的组件类别,如图19所示,图19是本发明根据另一示例性实施例示出的若干特效模块进行归类显示的一种显示方式的示意图。在图19中,“Const”表示固值类型的组件类别、“Filter”表示滤镜类型的组件类别、“InOut”表示输入输出类型的组件类别、“Math”表示数学运算类型的组件类别、“NodeProgram”表示节点程序类型的组件类别、“Param”表示动态参数类型的组件类别、“Program”表示着色程序类型的组件类别。其中,可以通过点击组件类别所在的栏目而触发组件类别下可视化的特效模块进行展示。由此,通过选取“Program”下的特效模块即可实现所选的特效模块的输入,无需输入占用显示面积较大的逻辑节点图,从而有利于简化特效设计区域中显示的内容,使得特效设计区域中显示的内容更加清楚明了,更便于设计者理解和查看。
基于前述特效编辑器,对于所述特效素材库中的任一特效素材,所述特效素材的生成过程可以包括:
在步骤S031中,展示可视化特效编辑界面;
在步骤S032中,收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
在步骤S034中,根据特效设计区域中目标特效模块之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序;
在步骤S035中,基于特效着色程序生成对应的特效素材。
在需要进行特效设计时,设计者可以启动特效编辑器,由此触发终端在前台运行特效编辑器并展示特效编辑器的可视化特效编辑界面。所述可视化特效编辑界面可从前述特效编辑器的实施例获知,在此不进行赘述。
在所述可视化特效编辑界面中,设计者可以通过前述特效编辑器的实施例记载的操作方式触发特效设计指令,例如,基于为每个特效模块配置数量不限的输入端口和/或输出端口,且各端口处配置有若干模块选项,不同模块选项与不同特效模块绑定的特效编辑器的实施例,所述特效设计指令可以由以下任一用户操作触发:向特效设计区域插入目标特效模块的操作、特效设计区域中的目标特效模块的模块选项被选中的操作、将特效设计区域中的目标特效模块之间的端口相连的操作。其中,向特效设计区域插入目标特效模块的操作用于触发所述特效设计指令对应的目标特效模块输入并显示于特效设计区域;将特效设计区域中的目标特效模块之间的端口相连的操作用于触发所述特效设计指令对应的目标特效模块之间的端口相互连接,以构建对应的连接关系并显示于特效设计区域;特效设计区域中的目标特效模块的模块选项被选中的操作用于触发所述特效设计指令对应的目标特效模块输入并显示于特效设计区域,且触发所述特效设计指令对应的目标特效模块与被选中的模块选项所属的目标特效模块之间的连接关系的构建。
基于此,所述步骤S032中,所述向特效设计区域输入所述特效设计指令对应的目标特效模块和构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系,包括:
在步骤S0321中,当所述特效设计指令由特效设计区域中的目标特效模块的模块选项被选中的操作所触发时,于被选中的模块选项所在端口接入所述被选中的模块选项所绑定的目标特效模块。
由此使得设计者在特效设计区域输入一个第一特效模块之后,可以在该第一特效模块的输入端口或输出端口处选择所需的模块选项,以触发被选中的模块选项绑定的特效模块被输入到特效设计区域并被接入到第一特效模块中被选中的模块选项所在的端口。由此设计者可以依照上述操作不断输入所需的特效模块,实现特效设计。从而不仅可以保证特效组件之间相互调用的准确性,而且还可以方便设计者的特效设计操作。
在根据特效设计指令构建对应的目标特效模块之间的连接关系的过程中,或者在收到用于指示特效设计完成的指令时,可以根据特效设计区域中所有目标特效模块之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序。其中,可以根据特效设计区域中所有目标特效模块的端口之间的连接关系,实现所有目标特效模块所绑定的目标特效组件之间按照连接关系所表示的逻辑进行相互调用,从而生成对应的特效着色器程序。
在生成特效着色器程序之后或在收到用于指示保存当前特效着色器程序的指令时,基于特效着色器程序生成对应的特效素材。
另外,生成特效着色器程序之后,为方便设计者得知当前特效设计的效果,在一实施例中,所述方法还可以包括:
在步骤S036中,收到特效预览指令时,获取当前输入的目标图像或目标视频文件;
在步骤S037中,在目标图像或目标视频文件中增加特效着色器程序对应的特效效果,以生成相应的特效图像或特效视频文件;
在步骤S038中,展示所述特效图像或播放所述特效视频文件。
由此,在生成特效着色器程序之后,设计者可以通过特效编辑器提供的特效预览功能触发特效编辑器展示特效着色器程序对应的特效效果。在这之中,设计者可以输入所需的目标图像或目标视频文件来确定特效着色器程序对应的特效效果,也可以使用特效编辑器默认输入的目标图像或目标视频文件来确定特效着色器程序对应的特效效果。在特效编辑器获取当前输入的目标图像或目标视频文件之后,将当前特效着色器程序对应的特效效果渲染于目标图像或目标视频文件中,以生成添加有当前特效着色器程序对应的特效画面的特效图像或特效视频文件,并进行展示,以供设计者预览。
展示所述特效图像或播放所述特效视频文件之后,如果设计者对当前特效效果不满意,需要改善所设计的特效时,可以在特效设计区域调整目标特效模块的参数或目标特效模块之间的连接关系,也可以增加新的目标特效模块,还可以删除已有的目标特效模块。
另外,在特效设计的过程中,为使设计者可以清楚得知特效设计区域中的目标特效模块之间的逻辑关系,在一实施例中,所述方法还可以包括:
在步骤S033中,对于已构建有连接关系的目标特效模块,以逻辑节点图的形式展示所述目标特效模块及其之间的连接关系。
所述步骤S033中,已构建有连接关系的目标特效模块及其之间的连接关系以逻辑节点图的形式进行展示的方式可参见图16或图17。
需要说明的是,特效设计区域中显示的逻辑节点图可以被设计者依需编辑。其中,在第一方面,可以根据针对所述逻辑节点图的编辑指令在所述逻辑节点图中增加指定增加的目标特效模块。例如,在特效设计指令由向特效设计区域插入目标特效模块的操作所触发的情形下,在特效设计区域插入所述特效设计指令对应的目标特效模块,其中,如果所述特效设计指令携带有用于指示插入逻辑节点图中指定位置的信息,则在逻辑节点图的指定位置插入所述特效设计指令对应的目标特效模块,由此实现在逻辑节点图中增加所需的目标特效模块。如果所述特效设计指令未携带有用于指示插入逻辑节点图中指定位置的信息,则在逻辑节点图以外的区域插入所述特效设计指令对应的目标特效模块。对于在逻辑节点图以外的区域插入的目标特效模块,可以在特效设计指令由将所述目标特效模块接入逻辑节点图中指定位置的操作所触发的情形下,将所述目标特效模块接入到逻辑节点图中对应的位置,从而也可以实现在逻辑节点图中增加所需的目标特效模块。除此之外,还可以在特效设计指令由逻辑节点图中的某个目标特效模块的模块选项被选中的操作所触发的情形下,将被选中的模块选项所绑定的目标特效模块插入到逻辑节点图中对应的位置,由此也可以实现在逻辑节点图中增加所需的目标特效模块。
在第二方面,可以根据针对所述逻辑节点图的编辑指令改变所述逻辑节点图中指定的目标特效模块之间的连接关系,例如,改变逻辑节点图中某些目标特效模块的连接顺序。
在第三方面,可以根据针对所述逻辑节点图的编辑指令删除所述逻辑节点图中指定删除的目标特效模块。
基于可视化特效编辑界面还配置有用于触发逻辑节点图输入特效设计区域的文件打开控件的特效编辑器的实施例,为方便在后续设计中快速应用之前设计完成的逻辑节点图或在之前未完成的逻辑节点图的基础上进行继续设计的操作,在一实施例中,所述方法还可以包括:
在步骤S041中,将特效设计区域中的逻辑节点图保存为对应的节点图文件;
在步骤S042中,收到由所述文件打开控件被触发所产生的指令时,展示文件选取区域,所述文件选取区域展示有已保存的节点图文件;
在步骤S043中,收到用于指示将当前选中的节点图文件输入到特效设计区域的指令时,在特效设计区域输入当前选中的节点图文件对应的逻辑节点图。
由此,在需要基于已有的逻辑节点图进行特效设计时,可以方便设计者将所需的逻辑节点图导入到特效设计区域,并基于导入的逻辑节点图继续未完成的特效设计或进行新的特效设计,从而有利于简化设计者进行特效设计的过程和提高特效设计效率。
基于前述特效编辑器的实施例可知,由于所述图像输出组件用于输出由设计者所选取的特效组件处理所得的最终特效图像,可以理解为是特效设计中必须应用到的一个基础组件,作为任一种特效设计的最终输出节点,因此,为避免设计者遗漏图像输出组件而导致特效处理过程中出错,在一实施例中,收到启动特效编辑器的指令时,所述方法还可以包括:在特效设计区域中展示所述图像输出组件绑定的特效模块。由此实现在启动特效编辑器时默认将图像输出组件绑定的特效模块展示于特效设计区域中,如图20所示,图20是本发明根据一示例性实施例示出的特效编辑器启动时,一种默认展示图像输出组件的特效设计区域的示意图,其中,标号201所示之处为特效设计区域,标号202所示之处为图像输出组件。
与前述特效处理方法对应,本发明还提供了一种特效处理装置,所述特效处理装置可以应用于终端中。如图21所示,图21是本发明根据一示例性实施例示出的一种特效处理装置的结构框图,所述特效处理装置包括:
第一显示模块211,用于在收到用于指示启动特效处理软件的指令时,展示特效处理软件的可视化特效处理界面;所述可视化特效处理界面配置有若干时间轨道,所述时间轨道用于被触发以从预存的特效素材库中导入特效素材,并控制特效素材的播放时间;
第一获取模块212,用于在收到时间轨道被触发所产生的指令时,获取导入到当前被触发的时间轨道中的特效素材及特效素材的播放时间;
第一生成模块213,用于根据各时间轨道中的特效素材的播放时间的时序组合所有特效素材,以生成目标特效素材。
在一实施例中,所述装置还可以包括:
第二获取模块,用于在收到用于指示播放目标特效素材的指令时,获取已输入的原始视频;
第二生成模块,用于根据目标特效素材的播放时间将目标特效素材添加至原始视频对应时段的视频帧中,以生成对应的特效视频;
播放模块,用于播放所述特效视频。
在一实施例中,所述装置还包括:
第二显示模块,用于在第一获取模块212获取导入到当前被触发的时间轨道中的特效素材之后,展示当前导入的特效素材的特效参数;
第三显示模块,用于在收到特效参数被触发所产生的指令时,展示当前被触发的特效参数对应的参数编辑界面;所述参数编辑界面中配置有用于编辑特效参数的坐标系区域和用于控制坐标系区域中特效参数的变化趋势的线型选取控件;所述坐标系区域中的坐标横轴指示播放时间,坐标纵轴指示特效参数的值;所述线型选取控件中配置的线型选项包括:直线、曲线和分段曲线;
第一确定模块,用于在检测到坐标系区域有输入操作时,根据所述输入操作确定输入到坐标系区域中的特效参数坐标点;
第三生成模块,用于以线型选取控件中当前被选中的线型选项对应的线型连接输入到坐标系区域中的所有特效参数坐标点,以生成用于描述所述当前被触发的特效参数随播放时间的变化趋势的曲线图;
更新模块,用于根据所述曲线图更新当前被触发的特效参数,以更新所述当前导入的特效素材。
在一实施例中,所述装置还可以包括特效编辑器,所述特效编辑器包括:
第四显示模块,用于在收到启动特效编辑器的指令时,展示特效编辑器的可视化特效编辑界面;其中,所述特效编辑器配置有若干特效组件;所述可视化特效编辑界面配置有特效设计区域和若干特效模块,不同特效模块与不同特效组件绑定;
处理模块,用于在收到特效设计指令时,向特效设计区域输入所述特效设计指令对应的目标特效模块和/或构建所述特效设计指令对应的目标特效模块与特效设计区域中其他目标特效模块之间的连接关系;
程序生成模块,用于根据特效设计区域中目标特效之间的连接关系组合相应的目标特效模块所绑定的目标特效组件,以生成对应的特效着色器程序;
特效素材生成模块,用于在所述程序生成模块153生成特效着色程序后,基于特效着色程序生成对应的特效素材。
在一实施例中,对于每个特效模块,所述特效模块配置有输入端口和/或输出端口,各端口处配置有若干模块选项;不同模块选项与不同特效模块绑定。
在一实施例中,所述特效设计指令由以下任一用户操作触发:向特效设计区域插入目标特效模块的操作、特效设计区域中的目标特效模块的模块选项被选中的操作、将特效设计区域中的目标特效模块之间的端口相连的操作。基于此,所述处理模块包括:
第一处理单元,用于在收到的特效设计指令由特效设计区域中的目标特效模块的模块选项被选中的操作所触发时,于被选中的模块选项所在端口接入所述被选中的模块选项所绑定的目标特效模块;
第二处理单元,用于在收到的特效设计指令由向特效设计区域插入目标特效模块的操作所触发时,将所述特效设计指令对应的目标特效模块输入并显示于特效设计区域;
第三处理单元,用于在收到的特效设计指令由将特效设计区域中的目标特效模块之间的端口相连的操作所触发时,将所述特效设计指令对应的目标特效模块之间的端口相互连接,以构建对应的连接关系并显示于特效设计区域。
在一实施例中,所述装置还可以包括:
显示控制模块,用于对于已构建有连接关系的目标特效模块,控制第四显示模块以逻辑节点图的形式展示所述目标特效模块及其之间的连接关系。
在一实施例中,基于所述装置包括显示控制模块的实施例,所述可视化特效编辑界面还配置有用于触发逻辑节点图输入特效设计区域的文件打开控件。基于此,所述装置还可以包括:
存储模块,用于将特效设计区域中的逻辑节点图保存为对应的节点图文件。
基于此,所述显示控制模块还用于在收到由所述文件打开控件被触发所产生的指令时,控制第四显示模块展示文件选取区域,所述文件选取区域展示有已保存的节点图文件。相应地,所述处理模块还用于在收到用于指示将当前选中的节点图文件输入到特效设计区域的指令时,在特效设计区域输入当前选中的节点图文件对应的逻辑节点图。
在一实施例中,所述装置还可以包括:
第三获取模块,用于在生成特效着色器程序之后,收到特效预览指令时,获取当前输入的目标图像或目标视频文件;
渲染模块,用于在第三获取模块获取当前输入的目标图像或目标视频文件后,在目标图像或目标视频文件中增加特效着色器程序对应的特效效果,以生成相应的特效图像或特效视频文件。
基于此,所述第四显示模块还用于展示所述特效图像或播放所述特效视频文件。
上述装置中各个模块和单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。
与前述特效处理方法对应,本发明还提供了一种特效处理的电子设备,所述电子设备可以包括:
处理器;
存储器,用于存储可由所述处理器执行的计算机程序;
显示器;
其中,所述处理器执行所述程序时实现前述任一方法实施例中的特效处理方法,并控制所述显示器的显示状态。
本发明实施例所提供的特效处理装置的实施例可以应用在所述电子设备上。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图22所示,图22是本发明根据一示例性实施例示出的一种电子设备的硬件结构图,除了图22所示的处理器、内存、网络接口、以及非易失性存储器之外,所述电子设备还可以包括其他硬件,如摄像模块;或通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
与前述方法实施例对应,本发明实施例还提供一种机器可读存储介质,其上存储有程序,所述程序被处理器执行时实现前述任一方法实施例中的特效处理方法。
本发明实施例可采用在一个或多个包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。所述机器可读存储介质可以包括:永久性或非永久性的可移动或非可移动媒体。所述机器可读存储介质的信息存储功能可以由任何可以实现的方法或技术实现。所述信息可以是计算机可读指令、数据结构、程序的模型或其它数据。
另外,所述机器可读存储介质包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其它内存技术的记忆体、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其它光学存储器、磁盒式磁带、磁带磁盘存储或其它磁性存储设备或可用于存储可被计算设备访问的信息的其它非传输介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。