APP下载

基于OpenGL 的视频特效粒子系统在MAYA 中的实现

2020-09-04

科学技术创新 2020年26期
关键词:生命周期粒子实体

尹 君 赵 静 邓 涛 张 宁

(河南省科学技术信息研究院,河南 郑州450003)

1 OpenGL(Open Graphics Library)简介

OpenGL(Open Graphics Library)是图形应用软件的专业的程序接口,它具有跨编程语言、跨不同平台的接口规格(API)。OpenGL 本质上是一种规范,它严格规定了函数的执行情况和执行范围,以及他们的输出值域。而如何实现内部的单独函数则是由OpenGL 库的开发者决定的。目前OpenGL 的最新的规范库是OpenGL 4.6。OpenGL 作为一个调用方便、功能强大的底层图形库,是几乎所有三维软件、游戏接口的一个标准。而Maya、3DsMax 等专业的三维软件,则是依据OpenGL 图形接口进行设计的,特别是在3D 图像渲染管线,专业的三维软件与支持OpenGL 的高级别的显卡相结合,使图像渲染达到相应任务的要求。图形渲染流水线程可以分为几个阶段,每个阶段是前一阶段输出后的结果,这些阶段都是高度专业化的,具有并行处理的特点。调用OpenGL 图形库的每个显卡都有数万个小核心处理器,它们在GPU 上为每个阶段运行自己的微程序,并快速处理图形渲染过程,这个微程序就是着色器。着色器用着色器语言(GLSL)编写。由于GPU 上没有默认的顶点和片段着色器,因此必须至少定义一个顶点着色器和一个片段着色器(图1)。通常,OpenGL 图形库为Maya 和3DMax 提供图形输入和输出的着色器标准,而Maya 和3DsMax 是OpenGL 图形界面的专业编程软件。它们是标准的编程接口软件,所以一个好的OpenGL 图形卡可以很好地与Maya 配合使用,为视频特效提供良好的制作基础。

图1 着色器原理示意图

2 OpenGL 环境下粒子系统在Maya 中的表达

在视频节目特效表达上,OpenGL 粒子系统能很好的实现制作者的想法,使视频特效更加出色。

2.1 粒子系统的特点和基本思想

视频特效粒子系统自从里夫斯(Reeves)于1983 年提出粒子系统的概念以来,就有各种各样的粒子系统定义。粒子系统的一个普遍公认的定义是:粒子系统由具有相同属性规则的微小个体组成,大量微小个体可以随机显示不同特征的粒子的集合体[1]。

粒子系统具有以下性质。

(1)单独的粒子无法形成粒子系统,一般的粒子系统通常由许多单独的粒子集组成。

(2)粒子系统中的每一个微粒子的集体表达属性是一致的。例如,在模拟烟火时,每个烟火束都呈现出不同的色彩,运动轨迹表现为向上跳跃并向下扩散直至消失。

(3)OpenGL 粒子系统中微粒子的初始属性具有一定程度的随机性。例如,在重力作用下雨滴降落场景中,每个微小雨粒子具有不同的路径和方向、滴落速度等初始属性。OpenGL 图形库的粒子系统中的每个粒子的初始属性都是相同的,如:单个粒子的发射速度、大小、形状、受立场的影响值域等。时间在粒子系统中同样存在,出生、运动和死亡每个微粒子都要经历的时间节点,时间的流逝加载于虚拟世界中的每一个粒子,故以上属性与时间存在相应的函数关系。作为视频特效中描述不规则微个体最常用的理论,粒子系统理论也愈加成熟。作为有一定的生命属性的微小粒子,粒子的随机分布性和指定力场的无限干扰性。其变化形式和运动属性每一刻都存在变化。粒子系统充分证明了不规则模糊目标的随机性和动态性。它模拟了火焰、天空、大地和丛林等自然景观。一般认为粒子系统是最成功的模拟不规则微实体时模糊图像的生成方法[2]。因此,OpenGL粒子系统在Maya 中的基本生态原理是:

(1)粒子系统的实体构成假说。粒子的有限属性集可以填充连续和离散的运动以及确定的粒子在粒子系统中运动的模糊对象。在不间断的运动时间节点内,它们具有特定的空间分布的广度和深度。

(2)假定粒子系统中的微粒子实体彼此独立。

(3)微实体粒子属性的假设原理。粒子系统中微实体粒子的存在不是抽象的,而是具有一定的属性特征。粒子包括空间位置属性,质量属性,运动属性(例如加速度和速度),外观属性(例如亮度,尺寸,颜色,形状)和生产属性(例如生命周期)等。随着时间的流逝,以上的粒子属性都会随之产生相应的缓慢变化。

(4)粒子的时间生命假设。每个粒子系统都有一个生命周期概念,每个粒子在特定时间段内都需要经历出生,活动和死亡的三个基本生命过程。

(5)粒子运动的假设。在粒子的生命周期中,它们都能产生某些类型的运动。粒子系统主要描述不规则物体,例如波浪,火焰,爆炸和瀑布。尤其是在动态材料仿真和动态流体仿真中,粒子系统具有自己的无可比拟优势并具有两个特征。首先它不仅由颗粒组成,而且还比较简单,并且具有可以自由调整的特定结构属性。其次,可以在创建过程中将随机属性添加到粒子系统模型中,并且创建好的模型不需要太多的计算时间。

2.2 Maya 粒子系统的构建过程

一个基本的粒子系统是由一组粒子构成的子系列,在创建过程中粒子不是标准的几何体,粒子系统也不是静止不动的,子系列中的各个粒子都保持着本身的生命周期,粒子被创建,它们的初始速度和状态随时间变化而变化并直至死亡。粒子的各种移动和变化效果是通过调整生命周期属性参数而产生的并且具有粒子本身的随机性。此随机性使粒子系统产生的特殊效果更加逼真。May 的特效粒子系统通过以下步骤构建:

(1)创建微粒子实体。创建Maya 粒子系统,首先要创建微粒子实体,在初次创建粒子运动过程中,需要掌握粒子的移动方向和速度,当前位置,粒子的颜色,纹理变化等微粒子实体的基本属性。图2 为maya 中的粒子属性列表,它包含了生命当前生命值、生命周期变化值、粒子当前大小、粒子当前运动速度、粒子运动加速度等属性。

图2 粒子属性列表

(2)创建粒子发射器。创建好基本微粒子实体后,必须创建粒子发射器来构建复杂的粒子属性。该发射器可以控制微粒子实体的发射角度和总体数量,以及和其有关的整体的粒子参数属性设置。如起始发射位置、起始发射速度、发射加速度、发射角度方向、粒子初始大小等参数设置。在Maya 中可在Nparticle命令栏中构建该发射器。

(3)创建粒子。Maya 粒子系统含有数量庞大的单独微粒子,因此性能消耗是必须要考虑的。创建相对应的粒子池是提高粒子系统的性能必选方案,大量的微粒子在初始化参数后放入该粒子池中。当发射器开始发射微粒子时,粒子池中的微粒子降被删除并迁徙放置在初始发射列表中。当微粒子经过本身的整个时间周期湮灭后。发射列表将自动删除这些微粒子,然后将它们送回到粒子池。粒子池的使用不但提高粒子系统的性能,还减少了粒子初始化迭代的次数,并控制了粒子的数量。

(4)更新粒子。发射器发射粒子后,粒子自身的属性状态和运动状态将伴随时间的连续变化而更新。因粒子系统控制了粒子的生命周期。故当粒子湮灭时,粒子池将随之更新发射列表以配合新粒子的产生。

(5)渲染粒子。当粒子的运动属性和时间属性都设置好后,即进入粒子渲染准备阶段,在该阶段,可进行粒子的材质、纹理、贴图、形变等设置。为了节省硬件开支,提高渲染速度,可以首先使用正方形或球体来模拟微粒子。直到对运动形态满意后,可进行粒子系统的正式渲染,包括加入粒子的透明度和纹理形状等属性的渲染。通过不断的调整渲染参数,以使粒子达到视频特效的预定要求。

3 粒子系统编辑器实现Open GL 图形程序接口的结合

独立于操作系统和Windows, Open GL 作为一个方便和强大的底层图形库。基于它的应用程序可以很容易地跨平台移植;利用Open GL 实现粒子系统在三维软件中的完美运行,既方便又有效。基于粒子系统模型的创建,maya 粒子系统编辑器把编码使用开放在Open GL 开发库上。系统编辑器属性设置窗口共有三种类别,分别是:粒子系统整体属性、粒子系统效果属性和粒子发射器数据。Maya 粒子场景中的可视化效果会随属性修改的参数变化而实时变化。故用户可以通过调整属性参数来控制各种场景的仿真效果。

4 结论

Open GL 建立了虚拟环境平台和虚拟的建模方法和算法,简化了粒子系统的实时性能,并且了增强粒子系统真实感。以实时为出发点,解算器控制粒子产生的面积和粒子的产生数量,利用有限的显示效果来实现极致的视频特效。粒子特效系统不但可以应用于影视节目的虚拟场景,还可以用于游戏的制作。在视频特效领域有着非常广阔的发展应用前景,故基于Open GL 的粒子特效对视频特效制作的发展具有重要意义。

猜你喜欢

生命周期粒子实体
全生命周期下呼吸机质量控制
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
基于膜计算粒子群优化的FastSLAM算法改进
前海自贸区:金融服务实体
从生命周期视角看并购保险
民用飞机全生命周期KPI的研究与应用
Conduit necrosis following esophagectomy:An up-to-date literature review
实体书店步入复兴期?
企业生命周期及其管理
两会进行时:紧扣实体经济“钉钉子”