webgl+canvas实现穿越建筑物体内部动画效果代码

代码语言:html

所属分类:动画

代码描述:webgl+canvas实现穿越建筑物体内部动画效果代码

代码标签: webgl canvas 穿越 建筑 物体 内部 动画

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

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

<head>
    <meta charset="UTF-8">
<style>
body,
html {
	position: absolute;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #000;
	user-select: none;
}
canvas {
	position: absolute;
	width: 100%;
	height: 100%;
	user-select: none;
	touch-action: none;
	content-zooming: none;
	background: #000;
}
</style>


</head>

<body>

    <canvas></canvas>

    <script id="vertexShader" type="x-shader/x-vertex">
        attribute vec2 aPosition;
        uniform vec2 uResolution;
        void main() {
        gl_Position = vec4(((aPosition / uResolution * 2.0) - 1.0) * vec2(1, -1), 0, 1);
        }
    </script>



    <script id="fragmentShader" type="x-shader/x-fragment">
        precision highp float;
        uniform vec2 uResolution;
        uniform vec3 ue;
        uniform vec2 ucs;
        void main() {
        const float Z = 3.0;
        const float IZ = 1.0 / Z;
        vec2 uv = (gl_FragCoord.xy - 0.5 * uResolution.xy) / min(uResolution.y, uResolution.x);
        float cn = ucs.x;
        float sn = ucs.y;
        float rx = uv.x;
        float ry = uv.y;
        float rz = 0.4;
        float d = 1.0;
        float ex = ue.x;
        float ey = ue.y;
        float ez = ue.z;
        float tx = ex;
        float ty = ey;
        float tz = ez;
        float gx = cn * rx + sn * rz;
        float gy = ry;
        float gz = cn * rz - sn * rx;
        rx = gx;
        ry = gz;
        rz = gy;
        gx = cn * rx + sn * rz;
        gy = ry;
        gz = cn * rz - sn * rx;
     .........完整代码请登录后点击上方下载按钮下载查看

网友评论0