three实现三维玻璃材质菱镜旋转反射动画效果代码
代码语言:html
所属分类:三维
代码描述:three实现三维玻璃材质菱镜旋转反射动画效果代码
代码标签: three 三维 玻璃 材质 菱镜 旋转 反射 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
* {
margin: 0;
padding: 0;
}
canvas {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
margin: 0;
padding: 0;
}
</style>
</head>
<body >
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.145.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/RGBELoader.145.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/OrbitControls.145.js"></script>
<script >
!function () {
"use strict";
let e,t,n,o,i,r,a,d,E,l = new THREE.Group(),s = new THREE.Group(),c = 3,w = 1,m = "";
function h() {
let e = this.attributes.position;
if (null != this.index) return;
let t = e.count / 3,n = [],o = new THREE.Triangle(),i = new THREE.Vector3(),r = new THREE.Vector3(),a = new THREE.Vector3();
for (let d = 0; d < t; d++) {
i.fromBufferAttribute(e, 3 * d + 0), r.fromBufferAttribute(e, 3 * d + 1), a.fromBufferAttribute(e, 3 * d + 2),
o.set(i, r, a);
let t = new THREE.Vector3();
o.getMidpoint(t);
let E = i.distanceTo(r),l = Math.sqrt(3) / 2 * E * .33,s = t.clone().normalize().setLength(l);
t.add(s), n.push(t.clone(), i.clone(), r.clone(), t.clone(), r.clone(), a.clone(), t.clone(), a.clone(), i.clone());
}
let d = new THREE.BufferGeometry().setFromPoints(n);
return d.computeVertexNormals(), d;
}
funct.........完整代码请登录后点击上方下载按钮下载查看
网友评论0