利用单一材质的[wiki]粒子[/wiki]制作真实的火焰是比较吃力的,把[wiki]爆炸[/wiki]火焰的燃烧状态分析一下的话我们可以将其分为三种效果状态
1.爆炸中核心燃烧部分的火焰效果,呈炽热的黄色
2.爆炸中围绕核心部分滚动的灼热火焰效果,呈红色。
3.爆炸中滚动的黑灰色烟尘效果。
所以,我们需要的就是三个在相互缠绕、交融中滚动散开的粒子层,三层粒子如果分别用黄、红、灰色来表示的话,其反映的剖面的相互关系应如图n-a所示,三者间既要有交融又要有相互的内外层次。.
下面我们就开始制作这三层粒子。
1.建立一个nurbs球体,设置其半径值为3,选择此球体,选择modify>make live命令,此时球体线框变为绿色
2/.选择particles>article tool命令右侧的小方块,在弹出的窗口中设置。
3.使用particle tool工具在nurbs球体上画出覆盖整个球体表面并且有一定密度变化的粒子层,达到所需要的效果后按enter键,完成粒子的建立,在outliner窗口中为其重命名
为yellow,我们将用它制作爆炸中核心燃烧部分的火焰效果。
4.在outliner窗口中选择nurbs球体,用缩放工具将其放大到原来的1.1倍,继续使用particle tool工具在nurbs球体表面画出和上步操作要求相同的粒子,完成
后在outliner窗口中为其重命名为red,我们将用它制作爆炸中围绕核心部分滚动的灼热火焰效果。
5.再次在outliner窗口中选择nurbs球体,用缩放工具将其放大到原来的1.1倍,继续使用particle tool工具在nurbs球体表面画出和上步操作要求相同的粒子,
完成后在outliner窗口中为其重命名为black,我们将用它制作爆炸中滚动的黑灰色烟尘效果。
6.在outliner窗口中选择nurbs球体,按ctrl+h键,隐藏它,在outliner窗口中选择所有的粒子,选择 Window>general editors>attribute sPRead sheet...命令,在channels box中修改粒子的类型为cloud,
7.我们还需要为粒子建立力场,使其产生散射出去的动态效果,在outliner窗口中选择所有的粒子,选择fields>turbulence命令,加入扰动力(设置自己实验)
8.继续在outliner窗口中选择所有的粒子,加入fields>drag,添加拖沓力场
9.选择所有的粒子,选择fields>radial命令
10.在outliner窗口中选择radial力场,打开其属性窗口,为magnitude项设置的关键帧,使用radial力场的目的是为了给粒子提供一个瞬间的散射速度。
11.在radial力场属性窗口,将volume shape类型设置为sphere,并使用缩放工具将其放大到能够包容所有的粒子的程度。
12.由于我们没有用发射器而使用了固定数量的粒子,为了弥补粒子散开而留下的缝隙,我们还需要使粒子的在散开的过程中增大相应的radius值,选择yellow粒子,打开其属性窗口,为radius项设置如图所示的关键帧。
13.选择red粒子,打开其属性窗口,为radius项设置如图所示的关键帧
14.选择black粒子,打开其属性窗口,为radius项设置如图所示的关键帧。
15.按时间滑块上的播放按钮,就可以看到粒子的散射过程了
材质是制作爆炸火焰效果的非常重要的因素,blob map的影响纹理决定了火焰的类别,在这里我们使用的是stuCCo纹理。[wiki]cg[/wiki]l中国数字[wiki]艺术[/wiki]在线
首先我们要实现的是yellow粒子的纹理,建立一个particle cloud材质,为其重新命名为yellow,打开它的属性窗口,对其设置
点击yellow材质的life color属性项,为其加入一个ramp纹理节点,对ramp纹理节点的各颜色点位置与颜色设置
点击yellow材质的life transparency属性项,为其加入一个ramp纹理节点,对ramp纹理节点设置
点击yellow材质的blob map属性项,为其加入一个stuCCo纹理节点,对stuCCo1纹理节点设置
点击stuCCo1纹理节点的channel1属性项,为其加入一个stuCCo2纹理节点,对stuCCo2纹理节点的channel1和channel2颜色设置
对stuCCo2纹理节点的贴图坐标设置,这个数值自己实验,多次[wiki]渲染[/wiki]实验,自己满意就行。
将yellow材质赋予yellow粒子,在outliner窗口中选择red和black粒子,按ctrl+h键,隐藏它们,建立一盏intensity为16的ambient light,使它只照亮yellow粒子。
渲染一下,我们可以看到呈炽热的黄色的核心燃烧部分的火焰效果
我们继续制作black粒子的材质,在multilister窗口中,选择red材质,选择edit>duplicate>shading network命令,复制出一个red材质的材质体系,为其重新命名为black,
multilister窗口中删除影响black材质life color属性项的ramp5纹理节点,将black材质的color改为纯黑色,
修改影响black材质life transparency属性项的ramp6纹理节点.
修改影响black材质blob map属性项的stuCCo6纹理节点
将black材质赋予black粒子,取消black粒子的隐藏状态,建立一盏intensity为0.1的directionallight,使它照亮black粒子、yellow粒子和red粒子
red粒子的材质,相对yellow材质的设置差不多,只是相对暗一些,将red材质赋予red粒子,取消red粒子的隐藏状态,建立一盏intensity为1.2的directionallight,使它照亮red粒子和yellow粒子,
现在渲染就好些了
为了使火焰的燃烧动态更接近真实,火焰材质的纹理贴图坐标应具有与粒子运动相似形态,为了使贴图坐标能获得力场的影响,我们还需建立一个 nurbscube物体,建立后,在outliner窗口点击nurbscube1左侧的小加号,展开它的下一层级,我们[wiki]发现[/wiki] 它由六个nurbs面构成,当前火焰材质的三维贴图坐标刚好也正有6个,用鼠标中键将贴图坐标逐一依次拖动到每一个nurbs面下,使其成为nurbs面的子物体。
建立drag、turbulence力场,在dynamic relationshiPS窗口中使nurbscube物体的每一个面都与刚才建立的力场建立连结
在persp窗口屏障掉nurbs物体和粒子的显示,按时间滑块上的播放按钮,可以看到火焰材质的三维贴图坐标在间接继承力场影响力的状态下运动的状况,