canvas+webgl实现三维无底圆柱体内部凹凸不平穿越动画效果代码

代码语言:html

所属分类:三维

代码描述:canvas+webgl实现三维无底圆柱体内部凹凸不平穿越动画效果代码

代码标签: canvas webgl 三维 无底 圆柱体 内部 凹凸 不平 穿越 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">

 
 
<style>
@import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap");

body
, html {
 
margin: 0;
 
padding: 0;
 
width: 100%;
 
height: 100%;
 
overflow: hidden;
 
background: #001;
}
canvas
{
 
position: fixed;
 
top: 0;
 
left: 0;
 
width: 100%;
 
height: 100%;
 
z-index: 0;
}

#controls {
 
position: fixed;
 
top: 10px;
 
left: 10px;
 
z-index: 100;
 
display: flex;
 
align-items: center;
 
z-index: 1;
}
button
{
 
background-color: #4CAF50;
 
border: none;
 
color: white;
 
padding: 15px 32px;
 
text-align: center;
 
text-decoration: none;
 
display: inline-block;
 
border-radius: 10px;
 
font-size: 16px;
 
margin: 4px 2px;
 
cursor: pointer;
 
transition: background-color 0.3s;
 
&:hover {
   
background-color: #25902950;
 
}
 
&:active {
   
background-color: #00FFFFCC;
 
}
}
.btn {
 
background-color: rgba(0, 0, 0, 0.4);
 
border: none;
 
color: rgba(255, 255, 255, 0.4);
 
padding: 10px;
 
text-align: center;
 
text-decoration: none;
 
display: inline-block;
 
font-size: 16px;
 
margin: 2px 2px;
 
cursor: pointer;
 
border-radius: 5px;
 
transition: background-color 0.3s;
}
.btn:hover {
 
background-color: rgba(255, 255, 255, 0.2);
 
color: rgba(255, 255, 0, 1);
}
#fullscreenBtn {
 
font-size: 20px;
}

.container {
 
margin: 0 auto;
 
padding: 2rem;
 
position: absolute;
 
width: 100%;
 
font-family: "Roboto", sans-serif;
 
text-shadow: 0 0 5px #000, 0 0 10px #000;
 
color: #fff;
 
filter: drop-shadow(0 0 10px rgba(0, 0, 50, 0.7))
                drop-shadow
(0 0 15px rgba(0, 0, 0, 0.5))
                drop-shadow
(0 0 20px rgba(0, 0, 0, 0.3));
 
z-index: 2;
}
</style>

 
</head>

<body translate="no">
 
<canvas id="glCanvas"></canvas>

<div class="container">
 
<h1>Animated Shader: Oldschool Tube</h1>
  Lorem ipsum dolor sit amet, at labitur complectitur mei. Tota eloquentiam an sea, nostro electram mea et. Debitis accusata forensibus sed in, no omnium evertitur prodesset eam. Hendrerit torquatos deterruisset no per, eirmod equidem omnesque per ne. Vix appetere percipit cu.
 
<p><button id="fullscreenBtn">⤢ Toggle Fullscreen</button>
</div>

<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/gl-matrix-min.js"></script>
 
     
<script  >
/*
Old School Tube
https://www.shadertoy.com/view/Mly3WV
*/

const canvas = document.getElementById('glCanvas');
const gl = canvas.getContext('webgl2');
if (!gl) {
  console.error('WebGL 2 not supported');
  document.body.innerHTML = 'WebGL 2 is not supported in your browser.';
}

const vertexShaderSource = `#version 300 es
in vec4 aPosition;
void main() {
    gl_Position = aPosition;
}`;

const fragmentShaderSo.........完整代码请登录后点击上方下载按钮下载查看

网友评论0