Cocos Shader入门学习案例:实现物体消融效果
创作时间:
作者:
@小白创作中心
Cocos Shader入门学习案例:实现物体消融效果
引用
CSDN
1.
https://m.blog.csdn.net/weixin_52985165/article/details/137857476
本文将介绍如何使用Cocos引擎实现物体的消融效果。通过在Shader中添加噪声图属性,修改片段着色器代码,并使用脚本控制节点的消融过程,可以实现物体逐渐消失的视觉效果。
Shader配置
在CCEffect中添加以下属性:
properties:
dissolveMap: { value: white, editor: { tooltip: '噪音图'} }
dissolveThreshold: { value: 0.3, editor: { tooltip: '溶解阈值'} }
edgeColor: { value: [1, 1, 1, 1] ,editor: { type: color, tooltip: '边缘颜色'}}
edgeWidth: { value: 0.05, editor: { tooltip: '边缘宽度'} }
片段着色器修改
声明部分
#if USE_TEXTURE
uniform sampler2D dissolveMap; // 噪音图
#endif
uniform Dissolve { // 消融相关
vec4 edgeColor;
float edgeWidth;
float dissolveThreshold;
};
入口函数
void main () {
vec4 o = vec4(1, 1, 1, 1);
#if USE_TEXTURE
vec4 dissolveValue = texture2D(dissolveMap, v_uv0);
if (dissolveValue.r < dissolveThreshold) { // 溶解
discard;
}
o = texture2D(texture, v_uv0);
#endif
o *= v_color;
if (dissolveValue.r < dissolveThreshold + edgeWidth && o.a > 0.0) { // 边缘
float edge = smoothstep(dissolveThreshold - edgeWidth, dissolveThreshold + edgeWidth, dissolveValue.r);
vec4 finalColor = mix(o, edgeColor, edge);
o = finalColor;
}
gl_FragColor = o.rgba;
}
脚本控制
使用以下脚本控制节点的消融过程:
const {ccclass, property} = cc._decorator;
@ccclass
export default class DissolveEffect extends cc.Component {
@property
dissolveInterval: number = 0.01;
@property
dissolveStep: number = 0.01;
start () {
const material = this.getComponent(cc.Sprite).getMaterial(0);
material.setProperty('dissolveThreshold', 0);
this.schedule(()=>{
let dissolveThreshold = material.getProperty('dissolveThreshold', 0);
dissolveThreshold += this.dissolveStep;
material.setProperty('dissolveThreshold', dissolveThreshold);
// console.log(dissolveThreshold);
}, this.dissolveInterval, 1/this.dissolveStep);
}
}
最终效果
热门推荐
照片管理怎么取消水印记存
给新手父母的14个睡眠建议:如何安然度过新生儿时期
怎么把手机上的视频传到电脑上不压缩画质,如何将手机上的视频无损传输到电脑
医保小知识 | 职工医保“个人账户”知多少?
紫薯的花青素奥秘:蒸烤冷热不同吃法,营养留存指南
双节科普丨美食诱惑下,三高患者的智慧饮食策略
《易经》入门与天文:一个时间穿越者掌握天象,能确认所在时空吗
“王凤雅事件”舆情研究:一面映射网络募捐、城乡差异、善恶反转的多棱镜
莉安娜·桑德罗特:《英雄传说 轨迹系列》中的钢之圣女
登陆艇演变迎来新趋势
东德是如何向西德贩卖犯人的
成都3小时飙拢昆明!重大进展→
世界十大飞行动物:黑白兀鹫上榜,第一寿命比人类还长
鼓浪屿看日出最佳时间 鼓浪屿什么时间可以看日出
现代主义与后现代主义:6个事实和13件艺术作品解惑
荞麦的五大健康益处:从营养到功效的全面解析
品牌遭遇负面舆情后,如何制定有效的危机公关方案
独栋别墅的优缺点及投资价值分析
关于增生性疤痕的一些问题
服用中成药需要注意什么?
观音菩萨的三个重要纪念日:诞生、成道与出家
同为祛痰药,乙酰半胱氨酸和氨溴索有什么不同?
素描的观察方法 | 起形阶段的意识
比亚迪市值再上1万亿元 科技创新浪潮推动中国资产价值重估
网线接线顺序详解:快速掌握标准接法技巧
湖人最近18场多强?14胜4负战绩同期第一 防守效率居首+连克强敌
四川成立大型国企蜀道集团 今年底总资产预计将超万亿元
盘古、伏羲、女娲、黄帝、炎帝、蚩尤、后羿人物关系
申请EB1A,是否必须获得行业内的重要奖项才能成功?
《哪吒2》票房狂飙全记录:14天改写中国影史的神话轨迹