前言

消融效果是有游戏中常用的一种效果,通常用于角色死亡时的消失,消融效果的原理是通过一张噪波贴图,实现模型上随机消失。

效果展示:

正文

噪声图

  • 什么是噪声图:其实就是一张灰度图(如图)

    其实也可以叫做采样图。
    至于噪声图的来源与生成大家可以去网上查一查,文章挺多的,菜鸟主要说一下他与本次要实现的效果之间的联系

实现原理

消融

  • 消融其实就是从随机地方开始,然后向四周蔓延,直到慢慢的全部看不见。
  • 首先我们要对噪声纹理进行采样
  • 由于噪声纹理是一张灰度图,所以采样得到r,g,b都是一样的
  • 取其中的与指定的阈值进行比较
    大家都清楚黑-白的是rgb值从0-1的一个变化过程,咱们至于要指定一个值,当噪声纹理采样的r值小于这个值时将当前这个片元的alpha设置为0
vec4 frag () {vec4 color=mainColor;vec2 uv=v_uv;vec4 noiseCol =texture(moiseTexture, v_uv);if(noiseCol.r<solubility){color=vec4(1.0,1.0,1.0,0.0);}vec4 col = color * texture(mainTexture, v_uv);col = CC_APPLY_FOG(col, factor_fog);return CCFragOutput(col);
}

外描边

菜鸟这个外描边颜色加的确实不咋的,本来像加一个火红的燃烧颜色的,大家可以自己试一下,我将大概的方法说一下,

  • 在上边我们实现了消融
  • 举个例子:
    • 假设我们设定的阈值是0.5,噪声采样的r值小于0.5的透明度设置为0,
    • 我们的描边初始设为0.15(可自己调整)
    • 我们只需要才做一层判断,当噪声采样的r值大于0.5,小于0.5+0.15时对颜色进行修改
 vec4 frag () {vec4 color=mainColor;vec2 uv=v_uv;vec4 noiseCol =texture(moiseTexture, v_uv);float solubility=sin(cc_time.x);if(noiseCol.r<solubility+0.15){float c=(solubility-noiseCol.r)*(0.15/1.0)*0.4;color*=vec4(1.0,c,c,1.0);if(noiseCol.r<solubility){color=vec4(1.0,1.0,1.0,0.0);}}vec4 col = color * texture(mainTexture, v_uv);col = CC_APPLY_FOG(col, factor_fog);return CCFragOutput(col);}

最终的效果就是咱们一开始展示的那样。

地址

  • 微信公众号:搬砖小菜鸟
  • 扫码关注公众号,发送"噪声消融"可获取源码
  • 菜鸟同时创建了一个qq群(960124989)大家可以添加一下,方便大家在使用过程中遇见问题的沟通

Creator3D:shader14_噪声消融相关推荐

  1. 这么全的 Cocos Creator 3.x 学习资源,竟然是免费的!

    目前 Cocos Creator 3.0 越来越成熟,使用 Cocos Creator 做游戏的小伙伴越来越多.我们在这里整理了现阶段最全面.最优质的 Cocos Creator 3.x 的学习资料, ...

  2. CocosCreator消融效果

    效果预览 前期准备 首先我们准备一张噪声图用于后续的噪声消融 核心思路 片段着色器中有一个discard可以将片元的颜色丢弃,那我们的可以读取当前片元的某一个颜色基色(r.g.b),与我们的消融阈值b ...

  3. Creator3D:shader_5分钟做出炫酷水面效果,BlingBling的那种!

    前言 看过菜鸟前边文章的可能知道,菜鸟在前边已经实现了三种非常简单的水面效果,那么今天菜鸟又带来了一个,BlingBling的那种! 效果 咱们还是先来看看效果: 正文 1.实现原理 实现的原理和之前 ...

  4. Unity(入门、中级、中高级、高级)

    Unity Unity 入门 1.Unity的安装与激活 1.1.中国版与国际版 中国版 https://unity.cn/ 国际版 https://unity.com/ 1.2.Unity下载 ht ...

  5. 《Unity Shader入门精要》笔记:高级篇(3)以及扩展

    本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...

  6. 文献阅读笔记——《Plug-and-Play Image Restoration with Deep Denoiser Prior》

    Plug-and-Play Image Restoration with Deep Denoiser Prior 基于深度去噪先验的即插即用图像恢复 DOI:10.1109/TPAMI.2021.30 ...

  7. 游戏图像学习入门到精通-Shader总结篇

    流水线 1.应用阶段:(CPU)输出渲染图元,粗粒度剔除等 比如完全不在相机范围内的需要剔除,文件系统的粒子系统实现就用到粗粒度剔除. 2.几何阶段:(GPU)把顶点坐标转换到屏幕空间,包含了模型空间 ...

  8. Unity游戏开发工程师 知识图谱

    三.Unity学前 1.C#基础 1.1.数据类型 值类型     引用类型     指针类型     装箱与拆箱 1.2.变量 定义     初始化 1.3.常量 定义     引用 1.4.运算符 ...

  9. 【论文学习】ICLR2021,鲁棒早期学习法:抑制记忆噪声标签ROBUST EARLY-LEARNING: HINDERING THE MEMORIZATION OF NOISY LABELS

      论文来自ICLR2021,作者是悉尼大学的Xiaobo Xia博士.论文基于早停和彩票假说,提出了一种处理标签噪声问题的新方法.我就论文要点学习整理,目前还没有找到开源代码,我实现了一份在本文中给 ...

最新文章

  1. 软件开发项目的风险管理 (转)
  2. EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件
  3. 行为型模式之责任链模式
  4. anglar ajax执行2次的原因,angular2 router’解决问题被执行两次
  5. 深入理解 JVM Class文件格式(九)
  6. mongodb 高级查询 统计记录条数
  7. Netty从入门到精通-伪异步I/O编程
  8. 腾讯大动刀:微信试行松绑外链!用户已可打开淘宝、抖音等链接
  9. 【剑指Offer】青蛙跳台阶问题
  10. python中文视频教程-中谷教育python中文视频教程(python视频教程) 完整版
  11. Atitit java zip compress use apache tool jar 压缩的问题 static void zip(java.lang.String zipFileName,
  12. iOS开发60分钟入门
  13. 国外经济学期刊分类汇总(经济学、统计学、精算学和金融计量方面)
  14. uwb定位与wifi、蓝牙和RFID定位技术的区别
  15. java点击登录实现跳转_页面跳转的简单实现(单点登录)
  16. 斗牛/牛牛经典算法java版
  17. 创建服务器站点的步骤,如何自己建立网站 基本步骤和流程有哪些
  18. 有必要给孩子买台灯吗?2023精选专业护眼的台灯
  19. 最短路径-弗洛伊德算法的java实现
  20. 7-1 sdut-循环-7-统计正数和负数的个数(II) (10 分)

热门文章

  1. STM32串口中断接收标记USART_RX_STA 学习
  2. 【JDK7】新特性(1) 概述
  3. 【JDK7】新特性(3) JDBC4.1
  4. python 中execl等表格操作学习心得
  5. 《请给我结果》——姜汝祥
  6. Navicat12.1破 解教程,亲测可用
  7. 网络层协议 ——— IP协议
  8. Java研发小试(面试题)
  9. SpringBoot 在main或者普通类中条用service接口
  10. Python基础02-蟒蛇绘制