关于学习老师的有点科幻的特效小人shader的学习

其主要是通过三角波函数作为动态的纹理进行透明和不透明的过度变换,然后通过在该基础上叠加噪声纹理,从而使其过度的更加多样化。最后通过smoothstep函数来改变其x的范围来达到不同的突变过渡程度。在该遮罩的基础上,将顶点加上法线的方向从而产生向外膨胀的效果。

                float4 EffectAnim(float noise, float mask, float3 normal, inout float3 vertex){float baseMask = abs(frac(vertex.y * _EffectParams.x - _Time.x * _EffectParams.y) - 0.5) * 2.0;//计算基础纹理baseMask = min(1.0, baseMask * 2.0);baseMask += (noise - 0.5) * _EffectParams.z;    //将噪声纹理叠加到前面所创建的程序纹理中//特效遮罩的各级别扭曲程度float4 effectMask = float4(0.0,0.0,0.0,0.0);effectMask.x = smoothstep(0.0,0.9, baseMask);   //把突变约束在0-0.9之间effectMask.y = smoothstep(0.2, 0.7, baseMask);effectMask.z = smoothstep(0.4, 0.5, baseMask);  //把突变约束在0.4-0.5之间//顶点色存入遮罩中effectMask.w = mask;vertex.xz += normal.xz * (1 - effectMask.y) * _EffectParams.w * mask;return effectMask;}       

该函数作用在顶点shader之中,并且在使用之前要先对噪声纹理进行采样从而得到噪声的信息。

在像素shader中,先是要把特效的纹理用uv1来进行采样,因为要实现整个小人是从下往上进行特效过渡,如果是用原本的把小人分为头、身的uv0坐标则会产生头和身子同时出现光带,不太符合所想要的效果,所以另外开一个uv空间来存储整个小人的信息。

设置参数来接收输出结构中使用完上面的函数的不同遮罩突变的信息。使用该透明遮罩的时候,需要对该对应的透明度进行归一化处理。

发光则是通过得到中间变换的区域乘上希望发光的网格线部分来得到,并且乘上自己可以起到pow函数的功能

                    //特效部分float3 var_EffectTex = tex2D(_EffectTex, i.uv1).xyz;float meshMask = var_EffectTex.x;float randomDisappearMask = var_EffectTex.y;float slopMask = var_EffectTex.z;float smallMask = i.EffectMask.x;float middleMask = i.EffectMask.y;float bigMask = i.EffectMask.z;float baseMask = i.EffectMask.w;float bigOpacity = saturate(floor( randomDisappearMask + middleMask));float middleOpacity = saturate(floor( slopMask + bigMask));float opacity =  lerp(1.0, min(bigOpacity, middleOpacity), baseMask);float meshEmission = (bigMask - smallMask)* meshMask ;meshEmission = meshEmission * meshEmission ;emission += _EffectCol * meshEmission * baseMask;

不同x范围的遮罩:

bigMask:

middleMask:

smallMask:

可以看到效果越来越柔和。

赛博朋克版特效shader相关推荐

  1. ae手机版特效软件如何制作抖音热门视频飞天特效的教程

    ae手机版特效软件如何制作抖音热门视频飞天特效的教程 ae手机版下载ae手机版特效软件下载ae手机版特效软件教程 抖音热门视频上的飞天特效.腾云驾雾特效等等视频很多人看完感觉惊奇,问手机可以做吗,其实 ...

  2. 10000字详解,炫酷的3D特效Shader是如何炼成的

    一.花花世界,从本文开始 本文真正的标题为:<Cocos Shader入门基础五:是纹理给了你这个花花世界> 不瞒大家说,终于要续写这个系列了,麒麟子想想都激动. 时光飞逝,离上一篇文章 ...

  3. 【精华分享】【Unity特效Shader】关于特效学习的总览

    Unity自带的Asset Store里面有很多免费着色器.特效资源. 不管是什么类型的 游戏 ,特效 的使用 对于 一个 游戏来说 非常 的重要. 游戏特效,作为游戏 制作 到后期 的时候,和音效 ...

  4. Unity 支持UGUI Mask遮罩的PhotoShop混合模式特效Shader

    shader代码: Shader "/BlendShader/Blend Operations" {Properties{_Color("Color Tint" ...

  5. Godot Engine:4.0版的Shader即将支持全局和实例uniform类型,更多玩法即将解锁!

    并非译文,官网原文请见<Godot 4.0 gets global and per-instance shader uniforms> 文章目录 全局uniform 衍生玩法: 1. 将角 ...

  6. unity后期特效shader之photoshop混合模式公式的应用

    在网上看到了一些颜色混合模式的公式,链接:https://jingyan.baidu.com/article/36d6ed1f7c04801bcf4883c2.html 觉着挺实用的,写个shader ...

  7. 特斯拉自动驾驶使用的技术_为什么特斯拉不会使用激光雷达

    特斯拉自动驾驶使用的技术 Almost every single company working on self-driving cars right now uses LIDAR. Uber, Wa ...

  8. 【Unity3D Shader编程】之九 深入理解Unity5中的Standard Shader (一)屏幕水幕特效的实现

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/49556461 作者:毛星云(浅 ...

  9. Shader相关Mask裁切UI粒子特效或者3D模型

    转载自:http://www.xuanyusong.com/archives/3518 原理就是把Mask的裁切区域传给粒子特效Shader,当超出这个区域那么直接让它完全透明即可.粒子特效的源生sh ...

最新文章

  1. 题目1204:农夫、羊、菜和狼的故事
  2. ios UIWebView 播放优酷土豆视频
  3. zblog php版调用代码,zblogphp调用指定单篇文章代码升级版
  4. 大数据思维是企业互联网化的思维内核
  5. protobuf java学习
  6. 两个前端项目利用iframe进行通信
  7. Android 混淆大全一篇就够了
  8. QAV250四轴穿越机安装全程详解(多图)
  9. 黑客们会用到哪些Python技术?
  10. Unix-Center.Net需要你的帮助
  11. 倪海厦天纪笔记16_倪海厦《天纪·天机道》笔记
  12. Hadoop2.x Yarn作业提交(客户端)
  13. MongoDB –更新为大写
  14. 数电基础知识Flash讲解
  15. 【算法竞赛学习笔记】莫队算法-超优雅的暴力算法
  16. java斜杠_java中对斜杠的处理
  17. chart.js 饼图显示百分比_干货收藏 | 用matplotlib和Pyecharts花式绘制饼图
  18. android视频播放的方法,Android实现视频播放的几种方式
  19. linux卷查看命令,[命令] Linux 命令组 lvm(逻辑卷管理)
  20. 不会吧,不会吧,不会还有人不知道Python给图片加水印超级简单哦

热门文章

  1. Markdown高级(使用教程)持续整理
  2. 六年前开始的等待——写在潘爱民译《深入解析Windows 操作系统,第4版》出版之际
  3. java spark的使用和配置
  4. 懒人之家-QQ客服右侧
  5. 收音机c语言程序,基于51单片机的数字FM调频收音机的设计(附接线图,主程序代码)...
  6. 交易、账务系统去Oracle经验
  7. 【Aegisub相关】template table 和 template environment table
  8. 广度优先搜索(BFS) 详解
  9. 硬齿面齿轮减速机与软齿面的区别
  10. Kubernetes--自动缩扩容