特效扭曲处理方法、装置、电子设备及介质与流程

    专利2022-07-08  91


    本发明涉及图像处理技术领域,尤其是涉及一种特效扭曲处理方法、装置、电子设备及介质。



    背景技术:

    立体动画是近年来随着计算机软硬件技术的发展而产生的一新兴技术,其是建立在计算机科学、数学、物理、人工智能等基础上的综合学科。当下流行的现代游戏也是立体动画的表现形式之一,其通常使用unity进行创作。

    在相关技术中,unity针对特效扭曲主要利用两个相机进行处理,一个相机绘制需要扭曲的特效参数,另一个相机正常绘制游戏场景,然后在后处理阶段进行相应的渲染处理。但是,由于相机对场景的裁剪过程耗时较长且在后处理阶段中需要使用相机替换着色器,从而导致整体处理效率低。

    目前针对相关技术中利用多相机实现特效扭曲的方式导致整体处理效率低的问题,尚未提出有效的解决方案。



    技术实现要素:

    为了克服相关技术的不足,本发明的目的在于提供一种特效扭曲处理方法、装置、电子设备及介质,其具有操作简单和处理效率高的优点。

    本发明的目的之一采用如下技术方案实现:

    一种特效扭曲处理方法,所述方法包括:

    判断第一场景是否完成特效渲染,若是,则获取扭曲参数;

    使用commandbuffer操作将所述扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,所述扭曲渲染纹理与所述特效配合设置;

    将所述扭曲渲染纹理传入扭曲着色器中,以对所述特效进行扭曲渲染。

    在其中一些实施例中,所述扭曲参数包括:扭曲强度、扭曲位置、细节噪声、扭曲形状、透明度等中的一种或多种组合。

    在其中一些实施例中,所述方法包括;

    接收衰减信号,响应所述衰减信号更新扭曲参数,且更新后的扭曲参数区别于更新前的扭曲参数;

    基于所述更新后的扭曲参数更新所述扭曲渲染纹理和所述扭曲着色器,以对所述特效的扭曲渲染进行更新。

    在其中一些实施例中,在获取扭曲参数之前,所述方法还包括:

    查询是否存在除扭曲后处理之外的后处理,若是,则均记为待选后处理,若否,则允许执行获取扭曲参数;

    选择任意一待选后处理并记为选定后处理,将所述选定后处理与所述扭曲后处理合并,然后允许获取扭曲参数。

    在其中一些实施例中,在所述将所述选定后处理与所述扭曲后处理合并的情况下,所述选定后处理和所述扭曲后处理采用同一个着色器。

    在其中一些实施例中,所述选择任意一待选后处理并记为选定后处理包括:

    查询各个待选后处理的优先级;

    选择优先级最高的待选后处理并记为选定后处理。

    在其中一些实施例中,所述方法还包括

    获取特效参数;

    基于commandbuffer操作将所述特效参数绘制于渲染纹理中,得到特效渲染纹理,所述特效渲染纹理与所述第一场景配合设置;

    将所述特效渲染纹理传入特效着色器中,以对所述第一场景进行特效渲染。

    本发明的目的之二采用如下技术方案实现:

    一种特效扭曲处理装置,包括:

    判断模块,用于判断第一场景是否完成特效渲染,若是,则获取扭曲参数;

    第一处理模块,用于使用commandbuffer操作将所述扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,所述扭曲渲染纹理与所述特效配合设置;

    第二处理模块,用于将所述扭曲渲染纹理传入扭曲着色器中,以对所述特效进行扭曲渲染。

    本发明的目的之三在于提供执行发明目的之一的电子设备,其包括存储器和处理器,所处存储器中存储有计算机程序,所述处理器被设置为执行所述计算机程序时实现上述的方法。

    本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。

    相比相关技术,本发明的有益效果在于:利用commandbuffer操作得到扭曲渲染纹理,然后将该扭曲渲染纹理传入扭曲着色器,从而实现对特效的扭曲,以节省使用多个相机绘制和替换着色器的开销,该技术方案的操作不仅简单,还提高扭曲的整体处理效率;当第一场景完成特效渲染后,则进入了后处理状态,即特效和扭曲在处理时相互独立,以减少对特效渲染的影响。

    附图说明

    此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

    图1是本申请实施例一所示特效扭曲处理方法的流程图;

    图2是本申请实施例二所示更新步骤的流程图;

    图3是本申请实施例三所示合并步骤的流程图;

    图4是本申请实施例四所示特效扭曲处理装置的结构框图;

    图5是本申请实施例五所示电子设备的结构框图。

    附图说明:41、判断模块;42、第一处理模块;43、第二处理模块;

    具体实施方式

    为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

    可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

    实施例一

    本实施例一提供了一种特效扭曲处理方法,旨在解决相关技术中利用多相机实现特效扭曲的方式导致整体处理效率低的问题。

    图1是本申请实施例一所示特效扭曲处理方法的流程图,参照图1所示,本方法包括步骤s101至步骤s104。

    步骤s101、判断第一场景是否完成特效渲染,若是,则执行步骤s102,若否,则不做处理。在此值得说明的是,当第一场景完成特效渲染之后,则进入后处理阶段,且在后处理阶段之中的任意处理过程均视为一个后处理,因此,该特效扭曲处理也是一个后处理过程,可以视为扭曲后处理。在此,将完成特效渲染的第一场景记为第二场景,将完成扭曲的第二场景记为第三场景。

    步骤s102、获取扭曲参数。该扭曲参数由开发人员预设,该扭曲参数与特效扭曲的效果是相关联的。该扭曲参数可以包括扭曲强度、扭曲位置、细节噪声、扭曲形状、透明度等中的一种或多种组合,当然,该扭曲特效参数不限于上述类型。在此值得说明的是,扭曲形状以mask贴图的形式呈现;该扭曲参数可以通过脚本来开放给特效进行编辑。

    步骤s103、使用commandbuffer操作将扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,扭曲渲染纹理与特效配合设置。可以理解,该commandbuffer操作是unity下的,具体操作在此不做赘述。由于该扭曲是针对特效的,因此该扭曲渲染纹理应当在位置、形状等上与特效存在关联。在此值得说明的是,该扭曲渲染纹理保存在rgba这4个不同的通道中。

    步骤s104、将扭曲渲染纹理传入扭曲着色器中,以对特效进行扭曲渲染。在此值得说明的是,该扭曲渲染纹理携带有相应的材质。将扭曲渲染纹理传入着色器之后,在着色器下查询与该材质对应的渲染器,采集扭曲渲染纹理利用渲染器对第二场景进行扭曲,而扭曲效果自然地局限在扭曲渲染纹理表示范围内。

    综上,利用commandbuffer操作得到扭曲渲染纹理,然后将该扭曲渲染纹理传入扭曲着色器,从而实现对特效的扭曲渲染,以节省使用多个相机绘制和替换着色器的开销,该技术方案的操作不仅简单,还提高扭曲的整体处理效率;当第一场景完成特效渲染后,则进入了后处理状态,即特效和扭曲在处理时相互独立,以减少对特效渲染的影响。

    在此值得说明的是,该方法的步骤是基于执行设备完成的。具体地,该执行设备可以为服务器、云服务器、用户端以及处理器等设备,但该执行设备不限于上述类型。

    可以理解,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

    作为可选的技术方案,该特效扭曲处理方法还可以包括特效处理步骤。

    该特效处理步骤可以包括:

    获取特效参数;

    基于commandbuffer操作将特效参数绘制于渲染纹理中,得到特效渲染纹理,特效渲染纹理与第一场景配合设置;

    将特效渲染纹理传入特效着色器中,以对第一场景进行特效渲染。

    该特效渲染和扭曲渲染均是基于commandbuffer操作和着色器实现的,因此,该特效处理也相对于多相机的方式也更为简单和高效,具体过程可以参照步骤s101至步骤s104中的相关说明,具体在此不再赘述,但是步骤s102至步骤s104均应当在特效处理步骤均完成后执行。

    进一步地,由于扭曲后处理在执行时是需要截取第二场景的全屏截图作为后处理目标,因此,特效着色器和扭曲着色器可以采用同一个着色器,即经由特效处理步骤后可以得到第二场景的全屏截图,该全屏截图可以直接作为扭曲后处理的后处理目标。通过该技术方案,不仅可以节省后处理目标的截取时间,还避免了特效着色器和扭曲着色器之间的切换,以提高整体的处理效率。

    实施例二

    本实施例二提供了一种特效扭曲处理方法,本实施例二是在实施例一的基础上进行的。该方法还可以包括更新步骤,图2是本申请实施例二所示更新步骤的流程图。

    参照图1和图2所示,该更新步骤可以包括步骤s201至步骤s203。

    步骤s201、接收衰减信号,响应衰减信号更新扭曲参数。更新后的扭曲参数区别于更新前的扭曲参数。可以理解,该衰减信号可以是执行设备根据开发人员的设置生成的,其生成频率在此不做限定。该衰减信号的生成【频率优选为1帧/次。

    步骤s202、基于更新后的扭曲参数和commandbuffer更新扭曲渲染纹理。具体地,查询接收衰减信号之前的原扭曲渲染纹理,然后可以通过调整原扭曲渲染纹理以实现与更新后的扭曲参数对应,或生成一与更新后的扭曲参数对应的扭曲渲染纹理并代替原扭曲渲染纹理,以实现更新扭曲渲染纹理。

    相应地,该执行设备需要动态收集与扭曲参数对应的材质。例如扭曲效果的透明度需要呈曲线改变,则执行设备需要逐帧采样透明度曲线中的透明度传递给与扭曲参数对应的材质,以便于更新扭曲渲染纹理和着色器。

    步骤s203、基于更新后的扭曲渲染纹理更新扭曲着色器,该扭曲着色器的更新也可以采用调整或替换的方式,但是出于性能的考虑,该扭曲渲染纹理和扭曲着色器的更新优选采用以调整的方式实现。

    通过该技术方案,对特效扭曲的效果进行实时更新,从而提高立体动画的动态效果,提高用户体验,且特效扭曲的更新也是基于commandbuffer操作和着色器实现的,因此,该特效扭曲的更新处理也相对于多相机的方式也更为简单和高效。

    实施例三

    本实施例三提供一种特效扭曲处理方法,本实施例三在实施例一和/或实施例二的基础上进行的。该方法还可以包括合并步骤,图3是本申请实施例三所示合并步骤的流程图,参照图1和图3所示,该合并步骤可以包括步骤s301至步骤s304。

    步骤s301、查询是否存在除扭曲后处理之外的后处理,若是,执行步骤s303及相应步骤,若否,则执行步骤s302。在进入后处理阶段,后处理通常不限于扭曲后处理,例如tonemapping后处理,具体需要开发人员根据场景进行设置。

    在此值得说明的是,该步骤s301是在获取扭曲参数之前执行的,例如在步骤s102之前或在在响应衰减信号之前。可以理解在步骤s201中,响应衰减信号更新扭曲参数也是另一种形式的获取扭曲参数。

    步骤s302、允许执行获取扭曲参数。在此值得说明的是,该步骤s302是与上述实施例一的步骤s102或上述实施例二的步骤s201配合设置的。即在进行特效扭曲且允许执行获取扭曲参数时,则继续执行步骤s102;在特效扭曲更新且允许执行获取扭曲参数时,则继续响应衰减信号对扭曲参数进行更新。

    步骤s303、将初扭曲后处理外的后处理均记为待选后处理;

    步骤s304、选择任意一待选后处理并记为选定后处理,将选定后处理与扭曲后处理合并,然后执行步骤s302。可以理解,在将选定后处理与扭曲后处理合并的情况下,选定后处理和扭曲后处理采用同一个着色器。

    在此以tonemapping后处理和扭曲后处理为例进行说明。当二者处于独立状态时,tonemapping后处理和扭曲后处理各自截取当前场景的全屏截图,分别利用着色器进行渲染,由此可见,此处需要执行两个截取动作,且还需要两个着色器,因此还涉及了着色器的切换,当然该tonemapping后处理和扭曲后处理是具有先后顺序的,但是在此不做具体说明。当二者处于合并状态时,例如:扭曲后处理是在tonemapping后处理之前,则扭曲后处理截取当前场景的全屏截图,并在扭曲后处理完成后得到扭曲的效果图,该扭曲的效果图可以直接作为tonemapping后处理所需的全屏截图,且二者使用同一着色器。因此,通过该技术方案,可以节省一个后处理,相应地提高整体的处理效率和性能。

    优选地,在步骤s304中的选定后处理的选择优选采用优先级的方式实现,具体地:查询各个待选后处理的优先级,各个待选处理的优选级由开发人员预先设置;选择优先级最高的待选后处理并记为选定后处理。

    实施例四

    本实施例四提供一种特效扭曲处理装置,其为上述实施例的虚拟装置结构。图4是本申请实施例四所示特效扭曲处理装置的结构框图,参照图4所示,该装置包括:判断模块41、第一处理模块42、第二处理模块43。

    判断模块41用于判断第一场景是否完成特效渲染,若是,则获取扭曲参数;

    第一处理模块42用于使用commandbuffer操作将扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,扭曲渲染纹理与特效配合设置;

    第二处理模块43用于将扭曲渲染纹理传入扭曲着色器中,以对特效进行扭曲渲染。

    需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

    实施例五

    本实施例五提供了一种电子设备,图5是本申请实施例五所示电子设备的结构框图,参照图5所示,该电子设备包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行实现上述实施例中的任意一种特效扭曲处理方法,具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

    可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

    另外,结合上述实施例中的特效扭曲处理方法,本申请实施例五可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种特效扭曲处理方法,该方法包括:

    判断第一场景是否完成特效渲染,若是,则获取扭曲参数;

    使用commandbuffer操作将扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,扭曲渲染纹理与特效配合设置;

    将扭曲渲染纹理传入扭曲着色器中,以对特效进行扭曲渲染。

    如图5所示,以一个处理器为例,电子设备中的处理器、存储器、输入装置和输出装置可以通过总线或其他方式连接,图5中以通过总线连接为例。

    存储器作为一种计算机可读存储介质,可以包括高速随机存取存储器、非易失性存储器等,可用于存储操作系统、软件程序、计算机可执行程序和数据库,如本发明实施例一的特效扭曲处理方法对应的程序指令/模块,还可以包括内存,可用于为操作系统和计算机程序提供运行环境。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。

    处理器用于提供计算和控制能力,可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。处理器通过运行存储在存储器中的计算机可执行程序、软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现实施例一的特效扭曲处理方法。

    该电子设备的输出装置可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

    该电子设备还可包括网络接口/通信接口,该电子设备的网络接口用于与外部的终端通过网络连接通信。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

    本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

    本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)、dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

    值得注意的是,在该特效扭曲处理方法的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

    除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

    以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。


    技术特征:

    1.一种特效扭曲处理方法,其特征在于,所述方法包括:

    判断第一场景是否完成特效渲染,若是,则获取扭曲参数;

    使用commandbuffer操作将所述扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,所述扭曲渲染纹理与所述特效配合设置;

    将所述扭曲渲染纹理传入扭曲着色器中,以对所述特效进行扭曲渲染。

    2.根据权利要求1所述的方法,其特征在于,所述扭曲参数包括:扭曲强度、扭曲位置、细节噪声、扭曲形状、透明度等中的一种或多种组合。

    3.根据权利要求1所述的方法,其特征在于,所述方法包括;

    接收衰减信号,响应所述衰减信号更新扭曲参数,且更新后的扭曲参数区别于更新前的扭曲参数;

    基于所述更新后的扭曲参数更新所述扭曲渲染纹理和所述扭曲着色器,以对所述特效的扭曲渲染进行更新。

    4.根据权利要求1至3中任意一项所述的方法,其特征在于,在获取扭曲参数之前,所述方法还包括:

    查询是否存在除扭曲后处理之外的后处理,若是,则均记为待选后处理,若否,则允许执行获取扭曲参数;

    选择任意一待选后处理并记为选定后处理,将所述选定后处理与所述扭曲后处理合并,然后允许获取扭曲参数。

    5.根据权利要求4所述的方法,在所述将所述选定后处理与所述扭曲后处理合并的情况下,所述选定后处理和所述扭曲后处理采用同一个着色器。

    6.根据权利要求4所述的方法,其特征在于,所述选择任意一待选后处理并记为选定后处理包括:

    查询各个待选后处理的优先级;

    选择优先级最高的待选后处理并记为选定后处理。

    7.根据权利要求1至3中任意一项所述的方法,其特征在于,所述方法还包括:

    获取特效参数;

    基于commandbuffer操作将所述特效参数绘制于渲染纹理中,得到特效渲染纹理,所述特效渲染纹理与所述第一场景配合设置;

    将所述特效渲染纹理传入特效着色器中,以对所述第一场景进行特效渲染。

    8.一种特效扭曲处理装置,其特征在于,包括:

    判断模块,用于判断第一场景是否完成特效渲染,若是,则获取扭曲参数;

    第一处理模块,用于使用commandbuffer操作将所述扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,所述扭曲渲染纹理与所述特效配合设置;

    第二处理模块,用于将所述扭曲渲染纹理传入扭曲着色器中,以对所述特效进行扭曲渲染。

    9.一种电子设备,其包括存储器和处理器,其特征在于,所处存储器中存储有计算机程序,所述处理器被设置为执行所述计算机程序时实现权利要求1至7中任意一项所述的方法。

    10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任意一项所述的方法。

    技术总结
    本发明公开了一种特效扭曲处理方法,涉及图像处理技术领域,用于解决相关技术中利用多相机实现特效扭曲的方式导致整体处理效率低的问题。其中,该方法具体包括:判断第一场景是否完成特效渲染,若是,则获取扭曲参数;使用Command Buffer操作将扭曲参数绘制于渲染纹理中,得到扭曲渲染纹理,扭曲渲染纹理与特效配合设置;将扭曲渲染纹理传入扭曲着色器中以对特效进行扭曲渲染。本发明具有操作简单和处理效率高的优点。

    技术研发人员:刘璐
    受保护的技术使用者:杭州电魂网络科技股份有限公司
    技术研发日:2020.11.19
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-16028.html

    最新回复(0)