html5 canvas基于webgl制作的仿ps羽化笔刷液态动画特效,羽化笔刷跟随鼠标移动绘画,很有梦幻效果。

查看演示

下载资源:

5

次 下载资源

下载积分:

20

积分

js代码

attribute vec4 a_position;

uniform mat4 u_modelViewMatrix;

uniform mat4 u_projectionMatrix;

void main() {

gl_Position = a_position;

}

precision highp float;

uniform vec2 u_resolution;

uniform vec2 u_mouse;

uniform float u_time;

uniform sampler2D u_noise;

uniform sampler2D u_buffer;

uniform bool u_bufferpass;

#define PI 3.141592653589793

#define TAU 6.283185307179586

vec2 getScreenSpace() {

vec2 uv = (gl_FragCoord.xy) / min(u_resolution.y, u_resolution.x);

return uv;

}

#define pow2(x) (x * x)

const int samples = 2;

const float sigma = float(samples) * 0.25;

float gaussian(vec2 i) {

return 1.0 / (2.0 * PI * pow2(sigma)) * exp(-((pow2(i.x) + pow2(i.y)) / (2.0 * pow2(sigma))));

}

vec3 blur(sampler2D sp, vec2 uv, vec2 scale) {

vec3 col = vec3(0.0);

float accum = 0.0;

float weight;

vec2 offset;

for (int x = -samples / 2; x < samples / 2; ++x) {

for (int y = -samples / 2; y < samples / 2; ++y) {

offset = vec2(x, y);

weight = gaussian(offset);

col += texture2D(sp, uv + scale * offset).rgb * weight;

accum += weight;

}

}

return col / accum;

}

const float blurStrength = 2.;

const float blurMultiplier = 0.998;

void main() {

vec2 uv = getScreenSpace();

vec2 sample = gl_FragCoord.xy / u_resolution;

vec3 colour = vec3(sin(uv.x)*.5+.5, sin(uv.y)*.5+.5, 1.);

float s = texture2D(u_buffer, sample).r;

vec2 ps = vec2(1.0) / u_resolution.xy;

if(u_bufferpass) {

s = (blur(u_buffer, sample + vec2(.001), ps*blurStrength) * blurMultiplier).r;

float c = s * .999 + smoothstep(length(ps)*20., .0, length(uv - u_mouse)*.5) * .5;

colour = vec3(c);

} else {

colour = mix(vec3(0.2), colour, sin(s)*.5+.5);

colour *= colour*2.;

}

gl_FragColor = vec4(colour,1.0);

}

html5 图片羽化,html5+webgl仿ps羽化笔刷液态动画特效相关推荐

  1. ps眼睫毛笔刷的使用

    很多人下载了ps眼睫毛笔刷但很多初学者都不清楚ps眼睫毛笔刷怎么用的,这里我就ps眼睫毛笔来边做图片边讲ps眼睫毛笔刷的用法. 先看效果图片. 再来看看原图吧.现制作过程吧: 第二步.ps眼睫毛笔刷怎 ...

  2. ps绘画笔刷如何安装导入【一步步教你】

    ps绘画笔刷如何安装导入?很多用Photoshop画画的小伙伴,不会安装绘画笔刷,设计师也得安装笔刷,今天就详细教大家如何安装或者导入PS软件的笔刷! 1.点击画笔工具旁边的小箭头,然后选择设置,找到 ...

  3. ps闪电效果制作教程和PS闪电笔刷、插件下载制作闪电效果

    内容提要:本文介绍ps闪电效果的几种制作方法,使用滤镜和外挂插件.PS闪电笔刷,均可以制作闪电效果.对PS感兴趣的朋友可加PS学习交流群:142574315   我们在拍摄的时候,想要拍摄到闪电是有困 ...

  4. html5图片邀请函,html5,邀请函.doc

    html5,邀请函 html5,邀请函 看来HTML5的浪潮又要让我们的广告客户浑身湿透了.他们想要华丽的页面,想要让用户觉得他们很酷.事实上,即使他们只做了一张很廉价的"活动邀请函&quo ...

  5. 1000G素材资源大礼包,里面包含设计软件、设计师字体包,PS教程笔刷等。

    PS字体教程链接:    http://pan.baidu.com/s/1i4SBrkL     密码: 2gi7 PPT 链接:   http://pan.baidu.com/s/1qZsB4nE ...

  6. opencv 图片边缘渐变_opencv滤镜-PS羽化特效

    羽化特效羽化是ps术语,羽化原理是令选区内外衔接部分虚化,起到渐变的作用从而达到自然衔接的效果,是ps及其其它版本中的处理图片的重要工具.羽化可使像素选区的边缘变得模糊,有助于所选区域与周围的像素混合 ...

  7. HTML5图片裁剪工具 HTML5 image crop tool

    这是一篇介绍如何利用HTML5的canvas标签来裁剪图片的教程.图片裁剪的典型应用就是网站的头像裁剪.利用HTML5来裁剪图片,只需要在客户端实现,不需要将坐标数据发送至服务器端. 第1步. HTM ...

  8. html5 图片弹跳,html5 canvas画布里面圆球弹跳动画效果代码

    特效描述:html5 canvas 画布 圆球弹跳动画.html5 跳动的球体 代码结构 1. HTML代码 Untitled Document body { margin: 0px; } var i ...

  9. html5 loader,7种基于GSAP的SVG Loader加载动画特效

    这是一组效果非常炫酷的基于GSAP的SVG Loader加载动画特效.这组SVG加载动画特效共有7种效果,分别使用GSAP对SVG进行操纵,制作出各种炫酷的Loading加载动画效果. 这些SVG加载 ...

最新文章

  1. BF法-字符模式匹配
  2. 2021-03-16 汽车二自由度操纵稳定性 Matlab simulink
  3. 在C#中怎么调用Resources文件中的图片
  4. ffmpeg文档3:播放声音
  5. 计算机二级python考试大纲2020_【2020年9月全国计算机二级Python考试大纲】- 环球网校...
  6. 实现滑动分页(微博分页方式)
  7. Python爬取百度文库doc文档
  8. ipad 邮箱服务器端口,ipad邮箱设置,牛排,YAHOO邮箱(后缀为yahoo
  9. 和最好的朋友,创最好的事业|巴菲特与芒格的绝世友情
  10. Linux之磁盘与文件系统管理
  11. UEFI Protocol使用
  12. android studio Statistic插件不显示
  13. 【有奖调研】| 参与区块链调研,赢千元大奖!
  14. C语言之实用调试技巧
  15. #榜样的力量#航班管家全球大交通出行疫情追踪服务系统丨数据猿新冠战“疫”公益策划...
  16. python零基础网站制作_为做网站而准备
  17. zookeeper和k8s_Kubernetes(k8s)运行ZooKeeper,一个分布式系统协调器
  18. bzoj4864 [BeiJing 2017 Wc]神秘物质
  19. 【Linux】修改腾讯云轻量应用服务器的hostname
  20. 静态网络与动态网络的区别(简单易懂)

热门文章

  1. 力软下拉框多选_下拉框--可多选
  2. 小谷机器人连不上wifi_小谷连不上网怎么办
  3. 推荐10款效率可以翻倍的IDEA插件,撸码利器
  4. 本地计算机出现多个网络连接,电脑网络连接出现感叹号?教你一招解决
  5. Win11保留的存储空间怎么关闭?Win11释放系统保留存储空间教程
  6. 简单的微服务feign之间调用授权/安全验证
  7. LoadRunner的函数全集
  8. Hololens2开机无法启动无法开机问题
  9. 【原创】超级详细的iPhone铃声制作、导入、设置全过程教程
  10. SPARC架构下的反汇编(二)——准备知识