笑容逐渐消失? shader 编程入门实战 ! Cocos Creator!

2023-05-16


编程斗图!随手拈来!文章底部获取完整代码!

效果预览

为了实现这个效果,需要准备两张相近的图片。

在 Cocos Creator 编辑器中,新建一个材质 MaterialEffect 选择为 gradient,拖入两张图片。

新建一个 Sprite 节点,拖入材质。

接着再写个脚本,定时控制 Sprite 材质中的混合因子。

update(dt) {
  // sp :cc.Sprite
  let material = sp['sharedMaterials'][0];
  if (material) {
      this._gradient_value = (this._gradient_value + 0.003) % 1;
      material.setProperty('gradient_value', this._gradient_value);
  }
}

那么shader effect是如何实现的呢?

片元着色器根据变化的混合因子,从两幅纹理中采样得到的颜色,按照比例混合,就能实现图片平滑过度的效果了。片元着色器代码参考如下。

void main () {
  vec4 o_first = vec4(1, 1, 1, 1);
  vec4 o_last = vec4(1, 1, 1, 1);


  #if USE_TEXTURE
    o_first *= texture2D(texture_first, v_uv0);
    o_last *= texture2D(texture_last, v_uv0);
  #endif


  o_first *= v_color;
  o_last *= v_color;


  gl_FragColor = o_first * (1.0 - gradient_value) + o_last * gradient_value;
}


以上为白玉无冰使用 Cocos Creator v2.2.2 开发"图像渐变-shader"的技术分享。有什么想法欢迎留言交流!如果这篇对你有点帮助,欢迎分享给身边的朋友。


用鼠标编辑的多边形裁剪! gizmo 插件入门 ! Cocos Creator!

使用卷积实现各种滤镜效果!shader 编程实战!Cocos Creator!

飘扬的旗帜!shader 编程实战!Cocos Creator!

如何实现高抛平抛发射?从抛物线说起!Cocos Creator!

为何你的弹球如丝般顺滑?不停歇的球!技术分享!源码相送!

2D / 3D 往期精选!附送 github 地址!Cocos Creator !

原创不易!转载请保留文末二维码,以及完整代码获取方式!

完整代码:https://github.com/baiyuwubing/cocos-creator-examples/tree/master/gradient

点击“阅读原文”查看完整代码

我就知道你“在看”▼

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

笑容逐渐消失? shader 编程入门实战 ! Cocos Creator! 的相关文章

  • VNC远程登录操作Ubuntu16.04

    VNC远程登录操作Ubuntu16 04 目录 总述一 设置Ubuntu16 04 xff0c 允许进行远程控制二 安装vncserver三 安装dconf editor 取消权限限制 四 远程连接Ubuntu 16 04 总述 VNC实现
  • 安装Melodic在sudo rosdep init时报错:ERROR: cannot download default sources list from:***

    报错如下 xff1a ERROR cannot download default sources list from https raw githubusercontent com ros rosdistro master rosdep s
  • 机器视觉(一)——ROS中的图像数据

    机器视觉 xff08 一 xff09 ROS中的图像数据 目录 总述一 二维图像数据二 三维点云数据 总述 无论是USB摄像头还是RGBD摄像头 xff0c 发布的图像数据格式多种多样 xff0c 在处理这些数据之前 就需要了解这些数据的格
  • ROS与机器学习(三)——手写数字识别

    ROS与机器学习 xff08 三 xff09 手写数字识别 目录 1 理论基础2 TensorFlow中的MNIST例程2 1 创建模型2 2 训练模型2 3 评估模型 3 基于ROS实现MNIST3 1 初始化ROS节点3 2 设置ROS
  • centos7升级 cmake

    一 删除旧版本cmake 升级到最新版本前应事先删除旧版本内核 cmake version yum remove y cmake 二 安装需要的模块 yum install y libxml2 libxml2 devel bzip2 bzi
  • SQLyog错误解决方案

    使用sqlyog连接 Mysql 出现的错误 使用sqlyog连接 Mysql 出现的错误 使用sqlyog连接 Mysql 出现的错误使用sqlyog连接 Mysql 出现的错误1251错误原因 xff1a 解决方案 xff1a 使用sq
  • ubuntu在更新软件时出现E: Release file for http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease

    问题 E Release file for http security ubuntu com ubuntu dists bionic security InRelease is not valid yet invalid for anoth
  • LeetCode之二分查找实战2之第一个错误的版本(278)、猜数字大小(374)

    二分查找2 1 第一个错误的版本 278 2 猜数字大小 xff08 374 xff09 1 第一个错误的版本 278 题目描述 xff1a 简单题 你是产品经理 xff0c 目前正在带领一个团队开发新的产品 不幸的是 xff0c 你的产品
  • python之逻辑回归项目实战——信用卡欺诈检测

    信用卡欺诈检测 1 项目介绍2 项目背景3 分析项目4 数据读取与分析4 1 加载数据4 2 查看数据的标签分布 5 数据预处理5 1 特征标准化5 2 使用下采样解决样本数据不均衡 6 训练数据即划分数据集7 模型建立7 1 sklear
  • C++ 全局变量的跨文件使用

    文章目录 前言一 extern的使用二 容易犯的错误 前言 在写C 43 43 工程文件的时候 xff0c 往往会用到一些所有类都使用的数据 xff0c 比如数据文件等 xff0c 一种写法是写成静态类 xff0c 调用数据时使用类名加属性
  • VS2019使用C++创建winform界面

    用C 43 43 实现winform界面 算是对上一篇文章的补充吧 xff0c 实际上不需要那么繁琐也可以做到 事先准备 打开VS xff0c 新建一个CLR项目 如果在选项中没有发现CLR项目 xff1a 1 找到Visual Studi
  • c++面试题(亲测常问)

    注意 xff1a 此题为我自己面试被问到的 xff0c 及一些摘抄的 xff0c 如有侵权请联系我马上删除 xff01 1 2 32位指针地址所占字节数 为四 举例说明 xff1a char p char test 10 p 61 test
  • torchvision与torch的对应关系及下载链接

    https github com pytorch vision 另外 xff1a Ubuntu18下编译安装torchvision C 43 43 API的详细过程
  • Logisim计算机组成原理实验16位无符号比较器设计

    Logisim用4位无符号比较器构建16位无符号比较器 4位无符号比较器设计思路表达式构建 16位无符号比较器构建思路构建 4位无符号比较器设计 思路 不同位之间进行比较 xff0c 高位优先 真值表太麻烦 xff0c 可以利用表达式进行构
  • React+hooks+TS练习

    一 初始化项目 通过create react app命令创建项目 xff0c template表示使用typescript xff08 node版本高于14才能使用npx xff09 npx create span class token
  • 基于Python的信用卡欺诈检测机器学习案例报告

    本报告借助Python语言探究了在机器学习中 面对一个大型的人与人之间交易的数据集 如何尽快处理大量数据并区分某交易记录是正常的用户行为还是潜在的信用卡欺诈行为 最终通过构建分类模型来对欺诈交易进行分类区分 并通过恰当的方式对构建的模型进行
  • 一个既有趣又简单的整人代码——关机代码

    这一篇博客来的比我的预计时间要长啊 xff0c 在这一周多的时间里 xff0c 我几乎很少有休息和出去玩耍的时间 说实话 xff0c 这样忙碌的生活给我的感觉还是蛮好的 xff0c 让我有一种很充实的感觉 xff0c 有种自己在与时间赛跑的
  • 【CMake】CMakeList编写整理

    什么是CMake 如果软件想跨平台 xff0c 必须要保证能够在不同平台编译 而如果使用 Make 工具 xff0c 就得为每一种标准写一次 Makefile CMake 就是针对上面问题所设计的工具 xff1a 它首先允许开发者编写一种平
  • 解决 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...警告

    解决 WARN util NativeCodeLoader Unable to load native hadoop library for your platform using builtin java classes where ap
  • Vue获取数组的数组数据

    Q xff1a 如何在vue获取数组的数组 xff1f A xff1a 用到js的map对象方法 一 data里要先定义好有两个数组 二 主要代码 这样就可以获取到数组的子数组数据

随机推荐

  • Ubuntu18.04 GAAS学习笔记

    GAAS学习笔记 1 环境构建1 1 依赖项安装1 2 ros安装1 3 MAVROS安装1 4 PX4 Firmware安装 全程参考官方文档 xff0c 总结遇见的错误 xff1a https gaas gitbook io guide
  • ArUco标定板生成与打印

    链接如下 xff1a https span class token punctuation span span class token operator span chev span class token punctuation span
  • ROS工作空间与功能包

    工作空间 工作空间 xff08 workspace xff09 是一个存放工程开发相关文件的文件夹 xff0c 其目录下有 xff1a src xff1a 代码空间 xff08 Source Space xff09 build xff1a
  • Ubuntu20.04安装UHD及GUN Radio3.9

    目录 1 安装UHD依赖库及UHD 2 安装GNU Radio3 9 3 1 安装UHD依赖库及UHD 总结自 xff1a USRP Hardware Driver and USRP Manual Building and Installi
  • ros安装的依赖问题

    问题描述 xff1a ros kinetic desktop full 依赖 ros kinetic desktop 但是它将不会被安装 依赖 ros kinetic perception 但是它将不会被安装 依赖 ros kinetic
  • STM32MP157驱动开发——字符设备驱动

    一 简介 字符设备是 Linux 驱动中最基本的一类设备驱动 xff0c 字符设备就是一个一个字节 xff0c 按照字节 流进行读写操作的设备 xff0c 读写数据是分先后顺序的 比如我们最常见的点灯 按键 IIC SPI xff0c LC
  • Java样卷

    一 问答题 请解释一下Java语言的主要特点 至少说明五个特点 进程和线程的概念是什么 xff1f 两者有什么区别和联系 什么是流 xff1f 什么是字节流 xff1f 什么是字符流 xff1f 字节流和字符流的差别是什么 xff1f 二
  • CodeBlocks如何将英文环境改为中文

    一 下载汉化包 xff08 链接如下 xff09 链接 xff1a https pan baidu com s 1U FMZuFvFQ9 70whXcIwQ 提取码 xff1a 2333 二 选择路径 将汉化包中的文件 xff08 Code
  • 浅谈多任务学习

    目录 一 前言及定义 二 多任务学习 xff08 MTL xff09 的两种方法 2 1 参数的硬共享机制 xff08 hard parameter sharing xff09 2 2 参数的软共享机制 xff08 soft paramet
  • PyTorch在GPU上跑代码需要迁移哪些东西?

    一 数据 模型 损失函数需要迁移到GPU上 使用GPU训练时 xff0c 数据 函数和模型都必须同时放在GPU上 xff0c 否则会出错 xff08 1 xff09 判断GPU是否可用 if torch cuda is available
  • C++ Primer 第五版学习 第一、二章

    一 标准输入输出 cin是标准输入 xff08 istream对象 xff09 cout是标准输出 xff08 ostream xff09 cerr是标准错误 xff0c 用来输出警告和错误消息 clog用来输出程序运行时的一般性信息 二
  • C++ Primer第五版学习 第四章第五章

    补第三章 size t size t是一些C C 43 43 标准在stddef h cstddef中定义的 这个类型足以用来表示对象的大小 size t的真实类型与操作系统有关 在32位架构中被普遍定义为 xff1a typedef un
  • C++笔试题

    1 用预处理指令 define声明一个常数 xff0c 用以表明1年中有多少秒 xff1f define SECONDS PER YEAR 60 60 24 365 UL 2 写一个标准宏MIN xff0c 这个宏输入两个参数并返回较小的一
  • C++ Primer第五版学习 第十章

    泛型算法为什么叫泛型 可以运用在多种容器类型之上 xff0c 而容器内的元素类型也可以多样化 标准库算法对迭代器而不是容器进行操作 因此 xff0c 算法不能直接添加或删除元素 find iter1 iter2 value 搜索算法 前两个
  • kindle操作:传输下载的书籍、更改书籍封面

    kindle 可以使用 calibre 软件进行电子书的管理 xff0c 官网下载地址为 xff1a https calibre ebook com download calibre 是一款电子书管理的开源软件 xff0c 支持Window
  • C++ Primer第五版学习 第十一章

    一 关联容器类型 按关键字有序保存元素 map关联数组 xff0c 保存关键字 值对set关键字即值 xff0c 即只保存关键字的容器multimap关键字可重复出现的mapmultiset关键字可重复出现的set 无序集合 unorder
  • C++ Primer第五版学习 第十二章

    一 三种内存 静态内存 xff1a 保存局部static对象 类static数据成员以及定义在任何函数之外的变量 栈内存 xff1a 保存定义在函数内的非static对象 分配在静态内存和栈内存中的对象由编译器自动创建和销毁 对于栈对象 x
  • EC20、RM500Q在TX2上或其他设备上模块识别不到

    首先本人使用的是minipcie接口 xff0c RM500Q也是转成minipcie接口接入设备的 xff0c 然后运行命令lsusb xff0c 看不到这些模块 曾尝试在两个设备上移植过EC20和RM500都遇到同样的问题 xff0c
  • 【NVIDIA】显卡报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver

    输入nvidia smi报错如下 xff1a NVIDIA SMI has failed because it couldn 39 t communicate with the NVIDIA driver Make sure that th
  • 笑容逐渐消失? shader 编程入门实战 ! Cocos Creator!

    编程斗图 xff01 随手拈来 xff01 文章底部获取完整代码 xff01 效果预览 为了实现这个效果 xff0c 需要准备两张相近的图片 在 Cocos Creator 编辑器中 xff0c 新建一个材质 Material xff0c