webgl+gsap+three实现三维透明地球鼠标点击标注地理坐标位置效果代码
代码语言:html
所属分类:三维
代码描述:webgl+gsap+three实现三维透明地球鼠标点击标注地理坐标位置效果代码
代码标签: webgl gsap three 三维 透明 地球 鼠标 点击 标注 地理 坐标 位置
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
body {
padding: 0;
margin: 0;
overflow: hidden;
}
.page {
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
.title {
position: fixed;
bottom: 10%;
left: 0;
width: 100%;
text-align: center;
font-family: sans-serif;
}
#globe-3d, #globe-2d-overlay, #globe-popup-overlay, .globe-popup {
display: block;
position: absolute;
}
#globe-2d-overlay, #globe-popup-overlay {
pointer-events: none;
}
.globe-popup {
top: 0;
left: 0;
background-color: white;
opacity: 0;
color: #111;
font-family: sans-serif;
padding: 5px 10px;
font-size: 15px;
border-radius: 3px;
filter: drop-shadow(0px 0px 3px #555555);
}
</style>
</head>
<body >
<div class="page">
<div class="title">click to add a pointer</div>
<div class="globe-wrapper">
<canvas id="globe-3d"></canvas>
<canvas id="globe-2d-overlay"></canvas>
<div id="globe-popup-overlay">
<div class="globe-popup"></div>
</div>
</div>
</div>
<script type="x-shader/x-fragment" id="fragment-shader-map">
uniform sampler2D u_map_tex;
varying float vOpacity;
varying vec2 vUv;
void main() {
vec3 color = texture2D(u_map_tex, vUv).rgb;
color -= .2 * length(gl_PointCoord.xy - vec2(.5));
float dot = 1. - smoothstep(.38, .4, length(gl_PointCoord.xy - vec2(.5)));
if (dot < 0.5) discard;
gl_FragColor = vec4(color, dot * vOpacity);
}
</script>
<script type="x-shader/x-vertex" id="vertex-shader-map">
uniform sampler2D u_map_tex;
uniform float u_dot_si.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0