html 产生烟雾效果,html5 canvas抽象模糊烟雾动画特效
特效描述:html5 canvas 抽象模糊 烟雾动画特效。html5 canvas绘制彩色模糊的烟雾动画、抽象模糊的烟雾动画特效
代码结构
1. 引入CSS
2. 引入JS
3. HTML代码
void main() {
gl_Position = vec4( position, 1.0 );
}
uniform vec2 u_resolution;
uniform float u_time;
const int octaves = 10;
const int octavesWarp = 3;
const float seed = 43758.5453123;
const float seed2 = 73156.8473192;
const float PI = 3.14159265359;
const float TAU = 6.28318530718;
float random(float val) {
return fract(sin(val) * seed);
}
vec2 random2(vec2 st, float seed){
st = vec2( dot(st,vec2(127.1,311.7)),
dot(st,vec2(269.5,183.3)) );
return -1.0 + 2.0*fract(sin(st)*seed);
}
float random2d(vec2 uv) {
return fract(
sin(
dot( uv.xy, vec2(12.9898, 78.233) )
) * seed);
}
// Value Noise by Inigo Quilez - iq/2013
// https://www.shadertoy.com/view/lsf3WH
float noise(vec2 st, float seed) {
vec2 i = floor(st);
vec2 f = fract(st);
vec2 u = f*f*(3.0-2.0*f);
return mix( mix( dot( random2(i + vec2(0.0,0.0), seed ), f - vec2(0.0,0.0) ),
dot( random2(i + vec2(1.0,0.0), seed ), f - vec2(1.0,0.0) ), u.x),
mix( dot( random2(i + vec2(0.0,1.0), seed ), f - vec2(0.0,1.0) ),
dot( random2(i + vec2(1.0,1.0), seed ), f - vec2(1.0,1.0) ), u.x), u.y);
}
vec3 plotCircle(vec2 pos, vec2 uv, float size) {
return vec3(smoothstep(size, size + 0.05, length(uv - pos)));
}
// FBM function courtesy of Patricio Vivo
float fbm (in vec2 st, float seed) {
// Initial values
float value = 0.0;
float amplitude = .5;
float frequency = 0.;
// Loop of octaves
for (int i = octaves; i > 0; i--) {
value += amplitude * noise(st, seed);
st *= 2.;
amplitude *= .5;
}
return value;
}
// FBM function courtesy of Patricio Vivo
float fbmWarp (in vec2 st, float seed) {
// Initial values
float value = 0.0;
float amplitude = .5;
float frequency = 0.;
// Loop of octaves
for (int i = octavesWarp; i > 0; i--) {
value += amplitude * noise(st, seed);
st *= 2.;
amplitude *= .5;
}
return value;
}
float fbm2 ( in vec2 _st, float seed) {
float v = 0.0;
float a = 0.5;
vec2 shift = vec2(100.0);
// Rotate to reduce axial bias
mat2 rot = mat2(cos(0.5), sin(0.5),
-sin(0.5), cos(0.50));
for (int i = 0; i < octaves; ++i) {
v += a * noise(_st, seed);
_st = rot * _st * 2.0 + shift;
a *= 0.5;
}
return v;
}
mat2 rotate2d(float _angle){
return mat2(cos(_angle),sin(_angle),
-sin(_angle),cos(_angle));
}
void main() {
vec2 uv = (gl_FragCoord.xy - 0.5 * u_resolution.xy) / u_resolution.y;
uv *= 5.;
uv.x += cos(u_time / 5000.) * 1000.;
uv.y -= sin(u_time / 3000.) * 500.;
uv /= 5.;
vec2 noiseuv = uv;
noiseuv.x -= u_time/100.;
float offsetVal = fbmWarp(noiseuv, seed);
vec2 direction = normalize(vec2(1.));
direction = rotate2d(offsetVal * TAU) * direction;
vec2 uvN = uv * 2. + direction * sin(u_time / 10.) * 1.;
vec2 uvN2 = uv * 2. + direction * sin(1. + u_time / 10.) * 1.;
float noiseVal = fbm2(uvN, seed2);
float noiseVal2 = fbm2(uvN2, seed);
vec3 colour = vec3(noiseVal + noiseVal2);
colour.rg += noiseVal2;
colour.r += .1;
colour.gb += noiseVal;
// colour.b += mix(noiseVal, noiseVal2, sin(u_time / 20.)) * 5.;
colour += 0.1;
// colour *= noiseVal * noiseVal;
// colour.gb += uvN / 5.;
gl_FragColor = vec4(colour, 1.);
}
html 产生烟雾效果,html5 canvas抽象模糊烟雾动画特效相关推荐
- html5 雨滴效果,html5 canvas下雨滴掉落动画特效
特效描述:html5 canvas 雨滴掉落动画 动画特效.html5 canvas绘制下雨场景动画.雨滴动画. 代码结构 1. 引入JS 2. HTML代码 // TO DO // Remove r ...
- html画布敲碎的视频,html5 canvas碎纸屑空中飘落动画特效
特效描述:html5 canvas碎纸屑 空中飘落动画特效.canvas绘制空中飘落的纸屑动画特效. 代码结构 1. HTML代码 "use strict"; var _creat ...
- html5倒计时效果,html5+css3进度条倒计时动画特效代码【推荐】
html5+css3进度条倒计时动画特效这个作品在今天上网找网络资源的时候无意中发现的,看到效果非常棒并且很实用,就第一时间把它整理出来与大家分享了,主要用到了html5.javascript和css ...
- php实现下雪场景,html5 canvas逼真下雪场景动画特效
这是一款效果十分逼真的html5 canvas下雪场景动画特效插件.这款下雪特效是基于Jason Brown的Snowfall jquery plugin的基础上制作的.在Snowfall jquer ...
- html语音播放动画,html5 canvas+js音频可视化动画特效
html5 canvas+js实现的音频可视化动画特效,选择一首本地音频文件播放查看效果. 查看演示 下载资源: 13 次 下载资源 下载积分: 20 积分 js代码 window.onload = ...
- 基于 HTML5 Canvas 实现的文字动画特效
前言 文字是网页中最基本的元素,一般我们在网页上都是展示的静态文字,但是就效果来说,还是比较枯燥的.文字淡入淡出的动画效果在项目中非常实用,如果有某些关键的文字,可以通过这种动态的效果来提醒用户阅读. ...
- html5 canvas实现雷达扫描动画特效
先看一下最终效果 实现思路 绘制4个圆 绘制一个十字线 绘制一个扫描的指针 让指针转起来 雷达构造函数 function Radar(){this.renderArr=[];//待渲染对象存储数组th ...
- android 五彩纸屑动画,HTML5 Canvas五彩纸屑粒子动画特效
JavaScript 语言: JaveScriptBabelCoffeeScript 确定 const getRandom = (min, max) => { return Math.rando ...
- html ip输入框效果,html5 input文本框输入动画特效
特效描述:文本框输入动画 动画特效.几个更鼓舞人心的风格为文本框输入动画包括一些新技术和新思想. 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 Manami Username Web ...
最新文章
- linux命令注入,Linux kernel本地命令注入漏洞
- spring in action小结4.1
- xhr返回值_XMLHttpRequest发送POST、GET请求以及接收返回值
- redis logfile 只读_docker 配置redis主从,哨兵sentinel
- Objective-C 2.0 with Cocoa Foundation---对象的初始化以及实例变量的作用域(1)
- 浅析C++开发工程师的高薪就业方向
- 批处理基础知识-EXIT
- c语言图书管理系统简单代码,C语言图书管理系统代码
- Abaqus取消汉化(汉译英,英译汉)
- 数据挖掘—网格搜索2
- Pr 音频效果参考:振幅与压限
- 淘宝动态评分绿了怎么办
- GitHub简介、fork、pull和clone、快速起步
- 计算机界面无法全部显示,电脑屏幕不能完整显示软件界面怎么处理
- (比较器)Comparator比较器
- 手机解除移动宽带屏蔽_家用宽带为什么Wifi比有线网速快很多?是谁偷走了你的带宽?...
- AIGC在营销图片生成技术综述
- connect by prior
- 使用Android studio开发一个数独游戏APP 系列第一讲
- 多元线性回归的基础理解
热门文章
- Formz.Renderzone.Plus.v6.5.4-ISO 1CD (建模软件)
- 【HNU小学期硬件实训】基于QT上位机的汽车监控警报系统
- 创建WinPE启动盘、常用imagex指令、常用dism指令
- 淘宝网店相册搬家流程
- 菜鸟变大神,8个创意移动电源实例教程
- flask jsonify
- f:selectitem的Long 型等数值的转换问题
- 用 Python 做 盯盘机器人,股票价格实时监控并邮件通知你!
- 三星note8 html5,三星Galaxy Note8屏幕材质_三星Galaxy Note8屏幕分辨率-太平洋IT百科
- vmare:桥接模式(设置都正常,但是无法ping通,主机不可达)