一种Unity引擎后处理效果过程可视化方法和装置与流程

文档序号:14228348阅读:807来源:国知局
一种Unity引擎后处理效果过程可视化方法和装置与流程

本发明属于电子游戏的渲染技术领域,尤其是涉及一种unity引擎后处理效果过程可视化方法和装置。



背景技术:

电子游戏(简称游戏)被称为第九艺术,它是一种相对特殊的软件,与传统的行业软件相比在整个软件生命周期的各个阶段都有着显著的区别,尤其是在美术效果的调校和美术资源的制作等方面更是如此。美术资源生产和效果研发是一种工艺相对复杂的生产活动,整个过程中需要美术和程序人员间的紧密配合。

后处理效果是游戏中常用的一类渲染技术,其原理类似于图像处理,将一组二维数据作为输入,通过施加某种特定算法,如灰度化、低通滤波和高通滤波等对原始数据进行变换最终获得灰度、模糊或锐化后的图像。主要的区别在于某些后处理算法中除了颜色缓冲区之外还有深度/模板缓冲区的数据的参与。也就是说它不仅限于图像处理,还可能包括图形方面(如几何、着色或光照方面)的计算。常见的后处理效果包括:抗锯齿(anti-aliasing)、泛光(bloom)、景深(depthoffield)、tonemapping和颜色调节(colorcorrection)。它们的算法各异,但基本流程是一致的:将渲染完毕的场景图像或上一个后处理效果的输出图像作为当前后处理效果的输入,经过当前节点内部一系列的算法处理后将图像输出给下一后处理节点继续处理或写入屏幕缓存区。这些后处理效果构成了一条后处理栈,通过对原始图像不断地处理获得加强了照片真实感或带有特定艺术效果的最终图像。原理如图1所示。

虽然美术人员能够通过开启和关闭部分后处理节点来调节特定后处理效果的输出,但是对于内部实现复杂的后处理效果而言,这样调节方式还是不够直观。



技术实现要素:

本发明要解决的技术问题是,提供一种游戏的后处理效果能够让美术人员和设计人员对整个场景的视觉体验进行调整,从而更好的烘托场景的氛围增强玩家的沉浸感的unity引擎后处理效果过程可视化方法。

为解决上述技术问题,本发明采用的技术方案是,该unity引擎后处理效果过程可视化方法,将后处理效果在游戏引擎中被构建为后处理栈的线性处理过程,包括以下步骤:

(1)通过中间状态类对渲染状态进行抽象,每个中间状态类的实例包含的数据为一个指向帧缓冲对象的引用,参数列表和说明文本;建一个状态缓存列表,记录对应后处理效果每个关键阶段的完整状态;

(2)将当前后处理效果采集到的所有中间渲染状态展示给用户,从所述步骤(1)中获取状态缓存列表,扩展后处理检视面板,在监视面板的下方添加一个可以开关的预览面板,在这个面板中绘制所有的中间状态,根据中间状态对象之间的时序、因果关系将其进行合理的排列并使用有向线条连接以示意之间的关系,并且以每个中间状的阶段性渲染结果作为缩略图直观的将节点渲染出来;

(3)将所述步骤(2)中的中间状态对象更多的内部细节暴露出来,使用基于eidtorwindow的独立的窗口绘制用户所需数据,对于图像数据,每份中间状态的图像使用拷贝的方式而不是直接指向原始数据;调节参数,通过为每个参数增加attribute的方式进行标识,在调用采集模块的参数绑定接口时,将于参数相关的标识传入,然后在运行时通过反射的方式获取状态相关参数并生成相关界面提供用户调整。

上述技术方案中的方法可以在几乎不修改已有代码的基础上整合一套可以向美术人员展示后处理过程中各项中间步骤的可视化工具,美术人员可以通过该工具曝露出的每个处理节点中各阶段的中间状态来更精准的把控美术效果;将更多的内部状态直观的曝露出来,让美术人员能够更直观的调节每一个参数,观察到每个阶段的变化,更高效的调出想要表现的效果,提高了工作质量和效率。

在步骤(2)中,用户可以看到离线缓冲区的缩略图和描述文字,进而可以了解在哪一步没有满足预期。调整后处理效果的参数,所有缩略图能够根据参数的变化实时更新,方便用户准确的理解算法意图,从而实现预期效果;展示给用户看的图形界面可以根据实际需求进行任意的设计,例如:可以使用单独的窗口显示,也可以显示在当前后处理效果组件的监视面板上。显示方式可以灵活设计,例如简单的矩阵方式罗列,或者使用流程图的方式展示,方法不一而足。

在步骤(3)中,中间状态对象更多的内部细节,如当前中间状态对象完整尺寸的渲染结果预览图,并且提供rgba逐通道预览、展示与之关联的调整参数和相关说明,展示给用户查看的图形界面同样可以根据实际需求进行任意的设计,简化或添加用户需要了解的数据。

优选的,在所述步骤(1)中,提供两类接口对所述状态缓存列表进行构建和维护,一类接口用于构建中间状态对象、中间对象包含的数据以及绑定资源和参数至该动态对象上,另一类接口用于中间状态的数据收集和状态更新。

本发明要解决的另一技术问题是,提供一种unity引擎后处理效果过程可视化装置,包括有:

中间状态采集模块,用于通过中间状态类对渲染状态进行抽象,具有状态缓存列表单元,用于记录对应后处理效果每个关键阶段的完整状态;

其中,状态缓存列表单元还可用于构建中间状态对象;

中间状态整体预览模块,用于对当前后处理效果过程提供一个整体可视化描述,采用界面将当前后处理效果采集到的所有中间渲染状态展示给用户;

中间状态细节显示模块,用于将中间状态对象更多的内部细节暴露出来。

中间状态整体预览模块目的是对当前后处理效过提供一个整体可视化描述,该模块的界面将当前后处理效果采集到的所有中间渲染状态展示给用户,用户可以看到离线缓冲区的缩略图和描述文字,进而可以了解在哪一步没有满足预期,调整后处理效果的参数,所有缩略图能够根据参数的变化实时更新,方便用户准确的理解算法意图,从而实现预期效果。

中间状态细节显示模块将中间状态对象更多的内部细节暴露出来,如当前中间状态对象完整尺寸的渲染结果预览图,并且提供rgba逐通道预览、展示与之关联的调整参数和相关说明,该模块的图形界面同样可以根据实际需求进行任意的设计,简化或添加用户需要了解的数据。

优选的,所述中间状态采集模块具有两类接口,用于对状态缓存列表单元进行构建和维护,一类接口用于构建中间状态对象、中间对象包含的数据、以及绑定资源和参数至该动态对象上,另一类接口用于中间状态的数据收集和状态更新。

附图说明

下面结合附图和本发明的实施方式进一步详细说明:

图1为后处理效果结构示意图;其中包括:后处理栈图和每个后处理效果内部流程图;

图2为本发明unity引擎后处理效果过程可视化方法具体实施例的示意图;

图3为本发明unity引擎后处理效果过程可视化装置的结构示意图。

具体实施方式

本发明的unity引擎后处理效果过程可视化方法,将后处理效果在游戏引擎中被构建为后处理栈的线性处理过程,包括以下步骤:

(1)通过中间状态类对渲染状态进行抽象,每个中间状态类的实例包含的数据为一个指向帧缓冲对象的引用,参数列表和说明文本;建一个状态缓存列表,记录对应后处理效果每个关键阶段的完整状态;

(2)将当前后处理效果采集到的所有中间渲染状态展示给用户,从所述步骤(1)中获取状态缓存列表,扩展后处理检视面板,在监视面板的下方添加一个可以开关的预览面板,在这个面板中绘制所有的中间状态,根据中间状态对象之间的时序、因果关系将其进行合理的排列并使用有向线条连接以示意之间的关系,并且以每个中间状的阶段性渲染结果作为缩略图直观的将节点渲染出来;

(3)将所述步骤(2)中的中间状态对象更多的内部细节暴露出来,使用基于eidtorwindow的独立的窗口绘制用户所需数据,对于图像数据,每份中间状态的图像使用拷贝的方式而不是直接指向原始数据;调节参数,通过为每个参数增加attribute的方式进行标识,在调用采集模块的参数绑定接口时,将于参数相关的标识传入,然后在运行时通过反射的方式获取状态相关参数并生成相关界面提供用户调整。

在所述步骤(1)中,提供两类接口对所述状态缓存列表进行构建和维护,一类接口用于构建中间状态对象、中间对象包含的数据以及绑定资源和参数至该动态对象上,另一类接口用于中间状态的数据收集和状态更新。

如图3所示,是unity引擎后处理效果过程可视化装置的结构示意图,包括有:

中间状态采集模块,用于通过中间状态类对渲染状态进行抽象,具有状态缓存列表单元,用于记录对应后处理效果每个关键阶段的完整状态;

其中,状态缓存列表单元还可用于构建中间状态对象;

中间状态整体预览模块,用于对当前后处理效果过程提供一个整体可视化描述,采用界面将当前后处理效果采集到的所有中间渲染状态展示给用户;

中间状态细节显示模块,用于将中间状态对象更多的内部细节暴露出来。

所述中间状态采集模块具有两类接口,用于对状态缓存列表单元进行构建和维护,一类接口用于构建中间状态对象、中间对象包含的数据、以及绑定资源和参数至该动态对象上,另一类接口用于中间状态的数据收集和状态更新。

如图2所示,与具体后处理效果整合时,技术人员需要调用中间状态采集模块为算法中每个关键点构建中间状态对象,并为其绑定帧缓冲对象和填入相关的参数属性,以及该阶段的描述文本。

美术人员使用时,可以打开状态整体预览模块提供的界面,对整个后处理效果的流程进行详细的了解和全面的把控。可以通过流程图去追溯原因,并结合关联参数和说明文本对相应的节点进行合理的调整。当需要详细查看某一个中间渲染状态时,可以通过某种特定方式对整体显示模块界面中的某一状态进行操作(包括但不限于双击、快捷键或上下文菜单的方式)打开中间渲染状态细节显示模块的界面。该界面提供用户查看当前阶段帧缓冲区的详细信息,例如格式、尺寸以及每个rgba颜色通道。

下面结合泛光(bloom)效果做个详细的说明。

泛光后处理的流程通常分为降采样(downsample)、亮部截取(thresholding)、模糊(blurring)、和与原图像混合几个阶段。其中部分阶段会使用迭代的方式反复处理一份图像数据。用户既可以为每个关键阶段构建一个中间状态对象,也可以为每个阶段的每次处理构建一个。例如,降采样是个将目标图像按预定缩小比例和迭代次数反复处理的过程。可以为整个过程创建一个中间状态对象,并绑定最终处理的帧缓冲和缩小比例、迭代次数等参数。同时也可以为这个过程中每次迭代创建一个中间状态对象,并将每次迭代结果和相关参数与之绑定。这样中间状态采集模块会在后续每帧中持续更新,并将数据提供给另两个模块。

如果最终的泛光效果并不明显,可以通过打开中间状态整体预览和细节预览窗口给出的渲过过程图追溯原因。通过亮部截取的状态查出是因为阈值设定过高还是强度设置过低,并进行相应的调整。

上面结合附图对本发明的实施方式作了详细的说明,但是本发明不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1