Creator3D:shader14_噪声消融
前言
消融效果是有游戏中常用的一种效果,通常用于角色死亡时的消失,消融效果的原理是通过一张噪波贴图,实现模型上随机消失。
效果展示:
正文
噪声图
- 什么是噪声图:其实就是一张灰度图(如图)
其实也可以叫做采样图。
至于噪声图的来源与生成大家可以去网上查一查,文章挺多的,菜鸟主要说一下他与本次要实现的效果之间的联系
实现原理
消融
- 消融其实就是从随机地方开始,然后向四周蔓延,直到慢慢的全部看不见。
- 首先我们要对噪声纹理进行采样
- 由于噪声纹理是一张灰度图,所以采样得到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_噪声消融相关推荐
- 这么全的 Cocos Creator 3.x 学习资源,竟然是免费的!
目前 Cocos Creator 3.0 越来越成熟,使用 Cocos Creator 做游戏的小伙伴越来越多.我们在这里整理了现阶段最全面.最优质的 Cocos Creator 3.x 的学习资料, ...
- CocosCreator消融效果
效果预览 前期准备 首先我们准备一张噪声图用于后续的噪声消融 核心思路 片段着色器中有一个discard可以将片元的颜色丢弃,那我们的可以读取当前片元的某一个颜色基色(r.g.b),与我们的消融阈值b ...
- Creator3D:shader_5分钟做出炫酷水面效果,BlingBling的那种!
前言 看过菜鸟前边文章的可能知道,菜鸟在前边已经实现了三种非常简单的水面效果,那么今天菜鸟又带来了一个,BlingBling的那种! 效果 咱们还是先来看看效果: 正文 1.实现原理 实现的原理和之前 ...
- Unity(入门、中级、中高级、高级)
Unity Unity 入门 1.Unity的安装与激活 1.1.中国版与国际版 中国版 https://unity.cn/ 国际版 https://unity.com/ 1.2.Unity下载 ht ...
- 《Unity Shader入门精要》笔记:高级篇(3)以及扩展
本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...
- 文献阅读笔记——《Plug-and-Play Image Restoration with Deep Denoiser Prior》
Plug-and-Play Image Restoration with Deep Denoiser Prior 基于深度去噪先验的即插即用图像恢复 DOI:10.1109/TPAMI.2021.30 ...
- 游戏图像学习入门到精通-Shader总结篇
流水线 1.应用阶段:(CPU)输出渲染图元,粗粒度剔除等 比如完全不在相机范围内的需要剔除,文件系统的粒子系统实现就用到粗粒度剔除. 2.几何阶段:(GPU)把顶点坐标转换到屏幕空间,包含了模型空间 ...
- Unity游戏开发工程师 知识图谱
三.Unity学前 1.C#基础 1.1.数据类型 值类型 引用类型 指针类型 装箱与拆箱 1.2.变量 定义 初始化 1.3.常量 定义 引用 1.4.运算符 ...
- 【论文学习】ICLR2021,鲁棒早期学习法:抑制记忆噪声标签ROBUST EARLY-LEARNING: HINDERING THE MEMORIZATION OF NOISY LABELS
论文来自ICLR2021,作者是悉尼大学的Xiaobo Xia博士.论文基于早停和彩票假说,提出了一种处理标签噪声问题的新方法.我就论文要点学习整理,目前还没有找到开源代码,我实现了一份在本文中给 ...
最新文章
- 软件开发项目的风险管理 (转)
- EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件
- 行为型模式之责任链模式
- anglar ajax执行2次的原因,angular2 router’解决问题被执行两次
- 深入理解 JVM Class文件格式(九)
- mongodb 高级查询 统计记录条数
- Netty从入门到精通-伪异步I/O编程
- 腾讯大动刀:微信试行松绑外链!用户已可打开淘宝、抖音等链接
- 【剑指Offer】青蛙跳台阶问题
- python中文视频教程-中谷教育python中文视频教程(python视频教程) 完整版
- Atitit java zip compress use apache tool jar	 压缩的问题 static void	zip(java.lang.String zipFileName,
- iOS开发60分钟入门
- 国外经济学期刊分类汇总(经济学、统计学、精算学和金融计量方面)
- uwb定位与wifi、蓝牙和RFID定位技术的区别
- java点击登录实现跳转_页面跳转的简单实现(单点登录)
- 斗牛/牛牛经典算法java版
- 创建服务器站点的步骤,如何自己建立网站 基本步骤和流程有哪些
- 有必要给孩子买台灯吗?2023精选专业护眼的台灯
- 最短路径-弗洛伊德算法的java实现
- 7-1 sdut-循环-7-统计正数和负数的个数(II) (10 分)