html5钻石,html5 canvas发光的钻石背景动画特效

特效描述:html5canvas 发光的钻石 背景动画特效。html5 canvas three.js绘制闪烁的钻石背景动画,跟随鼠标移动改变形状效果。

代码结构

1. 引入JS

2. HTML代码

void main() {

gl_Position = vec4( position, 1.0 );

}

uniform vec2 u_resolution;

uniform vec2 u_mouse;

uniform float u_time;

uniform vec3 u_colours[ 5 ];

const float multiplier = .5;

const int octaves = 4;

const float seed = 86135.7315468;

float random2d(vec2 uv) {

return fract(

sin(

dot( uv.xy, vec2(12.9898, 78.233) )

) * seed);

}

mat2 rotate2d(float _angle){

return mat2(cos(_angle),sin(_angle),

-sin(_angle),cos(_angle));

}

// Created by inigo quilez - iq/2013

// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

// http://www.iquilezles.org/www/articles/voronoilines/voronoilines.htm

vec2 random2( vec2 p ) {

return fract(sin(vec2(dot(p,vec2(127.1,311.7)),dot(p,vec2(269.5,183.3))))*43758.5453);

}

vec3 voronoi( in vec2 x, inout vec2 nearest_point, inout vec2 s_nearest_point, inout float s_nearest_distance, inout float nearest_distance, in bool highlight, vec2 mouse) {

vec2 n = floor(x);

vec2 f = fract(x);

// first pass: regular voronoi

vec2 mg, mr;

float md = 8.0;

float smd = 8.0;

for (int j= -1; j <= 1; j++) {

for (int i= -1; i <= 1; i++) {

vec2 g = vec2(float(i),float(j));

vec2 o = random2( n + g );

o = 0.5 + 0.4*sin((u_time / 10.) + 6.2831*o);

o *= length(mouse.y) * 2.;

vec2 r = g + o - f;

float d = dot(r,r);

if( d

smd = md;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值