webgl实现逼真液态玻璃鼠标指针及视频播放器代码
代码语言:html
所属分类:多媒体
代码描述:webgl实现逼真液态玻璃鼠标指针及视频播放器代码
代码标签: webgl 逼真 液态 玻璃 鼠标 指针 视频 播放器 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> html, body { width: 100%; height: 100%; overflow: hidden; } body { background: #121318; } body.playing canvas { cursor: none; } canvas { width: 100%; height: 100%; } video { z-index: -1; position: absolute; width: 100%; height: 100%; opacity: 0; } button.start { z-index: 999; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } </style> </head> <body translate="no"> <!-- adding video here for demo simplicity. hidden with CSS and passed to shader as a texture --> <video id="video" src="//repo.bfw.wiki/bfwrepo/video/5d8449e2482ad.mp4" controls crossOrigin="anonymous" muted playsinline loop preload="auto" /> <!-- the main frag shader where the magic happens --> <script id="fragmentShader" type="x-shader/x-fragment"> precision mediump float; uniform vec2 resolution; uniform float time; uniform float timeDelta; uniform vec2 mouseLoc; uniform sampler2D txVideo; uniform vec2 videoResolution; uniform float videoProgress; varying vec2 uv; #define TAU 6.28318530718 #define VIDEO_GLOW_AMOUNT 1.5 #define VIDEO_GLOW_DIM 0.8 #define MOUSE_SIZE 0.042 #define MOUSE_WIDTH 0.8 #define MOUSE_EDGE 0.02 #define MOUSE_DISPLACEMENT_DIST 0.03 #define MOUSE_BASE_ALBEDO vec3(.4) #define MOUSE_BASE_ALPHA 0.15 #define MOUSE_SPECULAR_INTENSITY 5.0 #define PROGRESS_BAR_L 0.1 #define PROGRESS_BAR_R 0.9 #define PROGRESS_BAR_Y 0.85 #define PROGRESS_BAR_THICKNESS 0.004 #define DEBUG 0 // change to 1 to see debug visuals for "glass" displacement // color blend functions from https://github.com/jamieowen/glsl-blend float blendOverlay(float base, float blend) { return base<0.5?(2.0*base*blend):(1.0-2.0*(1.0-base)*(1.0-blend)); } vec3 blendOverlay(vec3 base, vec3 blend) { return vec3(blendOverlay(base.r,blend.r),blendOverlay(base.g,blend.g),blendOverlay(base..........完整代码请登录后点击上方下载按钮下载查看
网友评论0