查看: 19788|回复: 964
[图文原创教程] Unity3D体积烟雾制作思路分享_by474

522

薇星辰

14

薇积分

4697

精灵币

三星会员

CGwell游戏特效01期学员一年相伴 感谢有你薇儿被上了100天CGwell游戏特效03期学员CGwell游戏特效04期学员二年相伴 感谢有你

发表于 2017-4-12 22:21
在一些写实风格的游戏中,我们经常可以看到由爆炸、燃烧所产生的滚滚浓烟。其中的的烟雾特效好似不是一张贴图,而像是真实的物理烟雾。例如

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47460 作者:474 帖子ID:39592

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47425 作者:474 帖子ID:39592

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47446 作者:474 帖子ID:39592
什么是体积烟雾?先看一下对比图。

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47475 作者:474 帖子ID:39592
左边和右边用到的是同一张贴图。明显可以看到,左边的更真实、具有空间感和立体感,右边就显得比较平。那么这种体积烟是怎么做的呢?通常有几种做法,一个是利用法线图将烟雾的光照信息记录下来,通过计算得到贴图的明暗关系与受光情况。另一种是利用一张遮罩图,人工将贴图的亮面和暗面划分出来(也是大菠萝3的做法)。这里主要讲第二种方法。




首先我们在制作shader前,先明确几个需求:
1、shader需要有两张贴图,一张烟雾纹理(带有alpha通道)、一张mask遮罩(用来划分明暗面)。
2、需要控制烟雾出生的旋转角度来制造随机感,但是遮罩图是不会旋转的(或者旋转角度是个固定值)
3、可以使用粒子系统控制烟雾透明度,从而达到淡入淡出的自然消散效果。


接下来开始分析:

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47432 作者:474 帖子ID:39592

框1部分的作用是:利用单色通道(R)去控制贴图的旋转角度。其中的随机系数,是对单色通道的数值进行一个倍数放大的运算,来提高随机性。有人会问:粒子系统里不是有随机初始角度吗?这个问题我们稍后再说。
框2部分的作用是:通过一个数去控制mask图的旋转角度,这个数是一个确定的值,可以再shader外部去调整,0-1代表一个旋转周期。
最后的顶点色Vertex Color的alpha通道与贴图通道相乘,以便于在粒子系统里控制淡入淡出。

接下来是贴图部分。这里我用到两张贴图,纹理图是

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47418 作者:474 帖子ID:39592
遮罩图是

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47479 作者:474 帖子ID:39592
。纹理图你可以使用各种各样的烟雾贴图去尝试,遮罩图的绘制方法也很简单。(涂涂抹抹随便乱画)


最后是粒子部分,发射器基本参数大家都会,这里就不一一详细说了。重点部分是:
1、不能再按照以往常规的做法给start rotation 0-360的随机变化去改变贴图的初始角度了。因为一旦改变,mask图也会跟着旋转,明暗关系就乱了。
2、刚才我们在shader里是利用单色通道去控制纹理图的旋转角度,所以这里我们利用初始颜色,将它设置为从为从黑道白的随机值,即可实现纹理图的随机旋转。

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47470 作者:474 帖子ID:39592



之后就完成啦,附上gif图,一个是多角度的动态,一个是改变光照方向动态。

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47438 作者:474 帖子ID:39592

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47438 作者:474 帖子ID:39592



需要说明的是,因为我们在制作shader的过程中,占用了R通道,所以无法通过粒子系统去改变烟雾的颜色。解决办法也很简单,你可以再shader中加入控制颜色的外部变量,或者直接ps涂涂抹抹乱花一通,至于更加帅气的拓展就要靠各位小伙伴们的聪明才智来自由发挥了~


附上制作好的shader文件,当然还是希望大家理解原理之后举一反三。
游客,如果您要查看本帖隐藏内容请回复  升级到三星会员以上或VIP,获得免回复权限









cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47432 作者:474 帖子ID:39592

cgwellUnity3D体积烟雾制作思路分享_by474

cgwellUnity3D体积烟雾制作思路分享_by47481 作者:474 帖子ID:39592

cgwellUnity3D体积烟雾制作思路分享_by4741 作者:474 帖子ID:39592 True Smoke.rar (2.36 KB, 下载次数: 263, 售价: 10 精灵币)

评分

参与人数 11精灵币 +77 薇积分 +5 收起 理由
老K丶 + 10 马老师厉害了。
房诗鹭 + 10 啥也不说了,精灵币是你的了
离水丶 + 5 厉害了马老师
小威哥 + 10 你就是特效界的科学家~
戏魁、 + 3 赞一个!
L酱 + 10 水帖处罚
DaBing + 2 给你一个B,证明我爱过
JS_柒 + 10 你就是游戏特效之星
云何为人演说 + 2 啥也不说了,精灵币是你的了
好纯洁的名字 + 10 给你一个B,证明我爱过
大AD + 10 给你一个B,证明我爱过

查看全部评分




上一篇:制作魔法阵
下一篇:AE------溶解亮边效果和粒子飘动的教程..........

17

薇星辰

0

薇积分

13

精灵币

见习会员

发表于 2017-5-9 08:59
大神,我看了你发的关于体积烟雾的帖子,我贴图和shader都一模一样可是连不出来你那样的效果。我用粒子黑白通道随机值改变不了烟雾的旋转,还是要通过0-360取控制,可是做出来很奇怪,还有blending的模式里blend mode是选择的哪个模式啊。谢谢大神,问题有点多,希望看到帮我解答一下,谢谢、cgwellUnity3D体积烟雾制作思路分享_by47415 作者:PPSS 帖子ID:39592
楼层回复(0) 收起

140

薇星辰

2

薇积分

329

精灵币

二星会员

发表于 2017-4-25 10:42
大神请问一下,如何让粒子能收到光照影响,像最下面那张有火的烟,下方靠近火的位置的烟会有被光照红的表现,这个怎么实现?我在烟雾粒子下方加了一个灯光但是粒子并没有被照亮
楼层回复(3) 收起
  • murasakijade可以添加颜色的节点,用时间来控制
    2017-6-5 14:17 回复
  • TTTMMM回复 murasakijade :666
    2017-11-25 01:25 回复
  • AsasC你好!道友!你的问题解决了么? 我想知道你是怎么弄的,我没弄明白~
    2018-1-9 17:25 回复

97

薇星辰

4

薇积分

172

精灵币

二星会员

发表于 2017-6-5 14:21
大神,想请问下,有没有可以直接控制随机旋转角度的节点?我用的不是unity,但是也想实现这样的效果,所以在想节点上有没有可能性。
楼层回复(0) 收起

50

薇星辰

0

薇积分

87

精灵币

一星会员

发表于 2017-7-3 08:34

您好,我学了您的体积感烟雾,基本成型,但每个粒子四个角会有一点点发黑,贴图是都做了ALPHA的,请问是什么原因。
楼层回复(0) 收起

3

薇星辰

0

薇积分

10

精灵币

见习会员

发表于 2017-5-18 11:31
您好,我学了您的体积感烟雾,基本成型,但每个粒子四个角会有一点点发黑,贴图是都做了ALPHA的,请问是什么原因。
楼层回复(1) 收起

180

薇星辰

0

薇积分

384

精灵币

二星会员

CGwell游戏特效01期学员

发表于 2017-4-25 14:02
您好,我学了您的体积感烟雾,基本成型,但每个粒子四个角会有一点点发黑,贴图是都做了ALPHA的,请问是什么原因。。cgwellUnity3D体积烟雾制作思路分享_by47418 作者:fen 帖子ID:39592
楼层回复(2) 收起
  • LancerD查看贴图模式,如果烟雾的贴图是reapeat的话,在rotation给到一定值之后因为贴图纹理的重复会在粒子的四个角多一些东西,把贴图属性从reapeat改成clamp就可以了。你可以试试
    2017-4-26 15:50 回复
  • murasakijade回复 LancerD :感谢!!解决了~~!
    2017-6-5 14:19 回复

244

薇星辰

32

薇积分

2197

精灵币

三星会员

CGwell游戏特效01期学员

发表于 2017-4-20 15:58
粒子的start color虽然能百变贴图旋转,但是这个不会影响粒子发射的贴图的颜色么?

楼层回复(2) 收起
  • 474不会,因为已经在shader里去掉了自发光通道的顶点色属性,粒子系统里的那个color并不影响实际颜色
    2017-4-20 21:56 回复
  • 舒舒回复 474 :soga~感谢大大
    2017-4-21 09:53 回复

348

薇星辰

28

薇积分

843

精灵币

二星会员

CGwell游戏特效02期学员CGwell游戏特效04期学员

发表于 2017-4-13 20:08
好鸡贼的手段,不过我想问一下大神、框一 里面为什么要做绝对值处理啊?不太理解这一步...
楼层回复(1) 收起
  • 474可能是为了防止输入负值造成影响吧,不过你也可以试试不加没准也
    2017-4-14 11:22 回复

54

薇星辰

0

薇积分

35

精灵币

一星会员

发表于 2017-6-26 10:17

分析的还不错...一直没怎么注意这游戏的特效..认真看一下感觉挺不错的...
楼层回复(0) 收起

407

薇星辰

3

薇积分

798

精灵币

二星会员

CGwell游戏特效04期学员

发表于 2017-4-14 16:04
求教大神火焰的部分应该怎么做,也有什么特殊的shader吗
楼层回复(1) 收起
  • 474火焰和烟雾的思路一样 注意颜色过渡(那张图是网上找的)
    2017-4-20 21:58 回复
苟利国家生死以岂因祸福趋避之

410

薇星辰

4

薇积分

757

精灵币

二星会员

CGwell游戏特效01期学员CGwell游戏特效02期学员CGwell游戏特效04期学员

发表于 2017-4-12 22:30
给大佬递茶
楼层回复(0) 收起

379

薇星辰

25

薇积分

2424

精灵币

三星会员

薇儿被上了100天CGwell游戏特效03期学员CGwell游戏特效04期学员

发表于 2017-4-12 22:32
很棒
楼层回复(0) 收起

400

薇星辰

9

薇积分

40

精灵币

二星会员

CGwell游戏特效03期学员

发表于 2017-4-12 22:32
嗯,路过
楼层回复(0) 收起

420

薇星辰

4

薇积分

40

精灵币

二星会员

CGwell游戏特效01期学员薇儿被上了100天

发表于 2017-4-12 22:33
递酒!
楼层回复(0) 收起

380

薇星辰

16

薇积分

3902

精灵币

三星会员

CGwell游戏特效01期学员

发表于 2017-4-12 22:33
好厉害啊,非常好,跪拜
楼层回复(0) 收起

653

薇星辰

47

薇积分

1288

精灵币

三星会员

CGwell游戏特效01期学员

发表于 2017-4-12 22:34
474大神也是为了那本书吗~~cgwellUnity3D体积烟雾制作思路分享_by47437 作者:杨杨杨丶 帖子ID:39592
楼层回复(0) 收起

375

薇星辰

5

薇积分

538

精灵币

二星会员

薇儿被上了100天CGwell游戏特效03期学员CGwell游戏特效04期学员

发表于 2017-4-12 22:38
感谢分享
楼层回复(0) 收起

140

薇星辰

2

薇积分

165

精灵币

二星会员

CGwell游戏特效04期学员

发表于 2017-4-12 22:39
感谢大大分享
楼层回复(0) 收起

119

薇星辰

0

薇积分

254

精灵币

二星会员

CGwell游戏特效03期学员

发表于 2017-4-12 22:40
cgwellUnity3D体积烟雾制作思路分享_by4748 作者:dapingguo 帖子ID:39592
楼层回复(0) 收起

您需要登录后才可以回帖 登录 | 普通注册

本版积分规则 回复 诸如“sadasdasf”“撒旦撒旦撒范围为” 将被直接禁言 快捷回复内容选择:

CG薇儿热门讨论X

误删公告

近日,本站受到了持续性的广告垃圾信息轰炸,管理员已经积极删帖,但可能存在误删的情况,对此造成的不变深感歉意。...

参加讨论查看详情
快速回复 返回列表 客服中心
快速回复 返回顶部 返回列表