Cocos Creator3D武器发光Shader,其实我就随便弄了一下
零、别看广告,看疗效
虽然标题叫武器发光,其实它还能实现魔法护盾、动态光柱等效果。别说话,看图!
阿子最近沉迷于学英语和写代码,可HIGH了。
一看时间,竟然已经十天没发稿了。
但这不能怪阿子,要怪就怪Cocos Creator 3D可玩性太高了,我竟然有一丝丝沉迷。
突然好想轮播一遍影帝们的台词
渣渣辉:你知道我这五年是怎么过的吗?这五年.....我每天都躲在家里玩Cocos Creator 3D,你是不知道,它对一个男人来说,有多重要。
轱舔乐:大嘎吼,我系轱舔乐,介里有磊没有玩过的船新版本,几需三番钟,磊造会干我一样,爱向节款引擎。
山鸡:是兄弟,就来砍我,我在Cocos Creator 3D等你!
好了,不闹了。
但话说回来,经过一个多月的把玩,我觉得Cocos Creator 3D可玩性非常高。
1、在H5领域,Cocos Creator 3D是现今唯一一款从设计之初就从头到尾运用ECS(entity component system)架构的引擎。
2、有很多效果待开发,新鲜感十足。
3、搞不定的地方就翻源码。
4、从学习方面来说,它就是一款开源的Unity3D。
5、研究它,能够满足我“抄一个Unity3D引擎"的梦。
对于很多人来说,他可能精通UE4,也可能精通Cocos。但它没有机会精通Unity3D。
为什么?因为你看不到代码啊!引擎应用层框架之下,是你看不到的汪洋大海。
如果你不一窥究竟,那终将只是匆匆过客,来去无痕。
一、单张纹理实现动态特效的用途
3D游戏的效果实现与2D截然不同。2D游戏只需要美术出好图,效果就会很棒。但在3D游戏中,如果程序员对引擎不了解,不能充分利用Shader来实现一些强大的效果,单纯依靠美术堆叠。 容易出现以下问题
1、模型量大,渲染吃力
2、贴图过多,包体过大
3、模型大、贴图多、效果依然不好
这就是3D和2D的区别,如果发挥不好,可能做好的3D模型和贴图进了游戏场景,效果就要大打折扣了。
对于单线纹理能够实现的效果,远远不止如此。配合强大的Shader我们可以实现很多粒子效果和序列帧效果可以做到的事。它的优势很明显
1、比粒子效果更省GPU
2、比序列帧更省包体和内存
3、在没有美术给资源的情况,靠程序员调参数就可以实现。
对于1和2,其实很多团队并不在意。 但对于第3个优势,可能就说到很多中小团队或者独立开发者的心坎里了。可以说,这是性价比最高的方式。
可能有的人说,我就做2D游戏,我不做3D。研究这个干什么?
阿子可以告诉一个点:如果你在3D里面,锁定摄像机来做2D游戏,那么你将拥有光照、Shader等所有3D可以用上的能力,并且不影响你2D游戏的品质。
二、实现原理和制作方法
如果你掌握了基本的Shader编写,明白Shader中纹理采样,UV等内容,那理解这个原理就非常简单了。 我们用的原理就是UV动画。
需要的原材料
1、发光图片 阿子随便找的一张(GIF中黄色是通过材质调色改变的)
2、噪声图
核心代码实现步骤
1、使用UV采样噪声图
2、将噪声图的r,g通道值加上原来的UV,进行发光图采样。采样的时候需要乘以一个缩放因子,控制偏移的强弱。
我们知道,UV采样是对应像素值的。如果我们对UV进行了干扰,那我们采样出来的像素值就是有偏移的。自然就可以形成与原图不一样的不扭曲效果。
那怎么让它动起来呢?
我们只需要分别对噪声图采样和发光图的UV根据cc_time.x进行偏移(乘以一个因子即可控制偏移速度),就能得到动起来的效果。
三、源码获取
说再多也是白搭,反正原理就这么简单,大家想白嫖的其实就是代码。阿子给大家放在了开源框架qfw里了。不知道qfw是什么的,公众号主菜单页面回复 全都要 即可获得相关链接查看。
qfw中的案例Demo均需要阿子从自己的项目中剥离过去,所以需要一定的时间。
如果点击进去没有发现武器发光(Weapon Glow)案例,表示阿子还没有来得及发布,还请耐心等待,等不及的朋友欢迎私聊催更。
四、下节预告
我要预告一下下一篇内容,因为本篇内容和下一篇的内容,各类项目必考。下一篇是教大家模拟实现大气折射(也叫空间扭曲,热力扭曲等名称),看红箭头部分。还没有关注阿子的赶紧关注,阿子会继续分享大家用得上的经验和技巧。
关注一下
这里总有你要的
阿子的文章比较随性,但是很真实。不会刻意取材,迎合哪类读者。阿子想给大家分享的东西有很多,包括但不限于教程、代码、经验、Shader、商机。喜欢的话,就关注一下吧。
求一波
关注、点赞、在看、评论、转发
你的支持
就是阿子写作动力的源泉
读者越多
阿子写作的动力就会越强
你们看到的内容也将更多
你身边的朋友也能多一个获得信息的地方
这是一个三方共赢的操作
何乐而不为呢?
灯还是太暗了,阿子要做自己的太阳,照亮诗和远方。
全都要
很多小伙伴表示不知道如何获得本公众号的源码,看到上面的三个字了吗,公众号主菜单页面回复‘全都要‘即可获得你想要的全部