webgl+canvas实现逼真水面波动涟漪与火苗燃烧动画效果代码
代码语言:html
所属分类:动画
代码描述:webgl+canvas实现逼真水面波动涟漪与火苗燃烧动画效果代码
代码标签: webgl canvas 逼真 水面 波动 涟漪 火苗 燃烧 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
* {
box-sizing: border-box;
}
html, body {
margin: 0;
min-height: 100vh;
overflow: hidden;
background-image:linear-gradient(black,black,black,rgb(45, 0, 0));
touch-action: none;
}
canvas {
width: 100%;
height: auto;
object-fit: contain;
}
.wrapper{
position:absolute;
opacity:.8;
width:100%;
height:100%;
left:0%;
top:0%;
background:transparent;
background-size: cover;
backdrop-filter: brightness(50%);
}
.wrapper .cover {
position:absolute;
left:0%;
right:0%;
height:100%;
width:100%;
background:transparent;
}
.wrapper .reflection {
position:absolute;
left:50%;
top:110vh;
height:.1%;
width:.1%;
background:transparent;
border-radius:50%;
opacity:1;
box-shadow: 0px 0px 400px 100px orange ;
}
#particles-js {
position: absolute;
width: 100%;
height: 100%;
-webkit-animation: rotate infinite;
animation-duration:500s;
animation-delay:0s;
}
@keyframes rotate {
50% {transform:rotateZ(10deg);}
}
</style>
</head>
<body>
<!-- partial:index.partial.html -->
<canvas id="canvas">
</canvas>
<div class="wrapper">
<div class="reflection"></div>
<div id="particles-js"></div>
<div class="cover"></div>
</div>
<script >
/*
Credit to Matthias Hurle for the webgl class and Johan for the particlejs src
*/
/** @type {HTMLCanvasElement} */
const canvas = window.canvas;
const gl = canvas.getContext("webgl2");
const dpr = Math.max(1, .5 * window.devicePixelRatio);
/** @type {Map<string,PointerEvent>} */
const touches = new Map();
const vertexSource = `#version 300 es
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif
in vec2 position;
void main(void) {
gl_Position = vec4(position, 0., 1.);
}
`;
const fragmentSour.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0