三维立体波纹效果

代码语言:html

所属分类:三维

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

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<style>
html, body {
  margin: 0;
}

canvas {
  display: block;
}
</style>

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

<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/three.109.js"></script>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/OrbitControls.min.js"></script>
<script>
function App() {
  const conf = {
    el: 'canvas',
    fov: 75,
    cameraZ: 100,
    background: 0xffffff };


  let renderer, scene, camera, cameraCtrl;
  let width, height, cx, cy, wWidth, wHeight;
  const { randFloat: rnd, randFloatSpread: rndFS } = THREE.Math;

  let ripple;
  let gridWWidth, gridWHeight, gridWidth, gridHeight;

  const mouse = new THREE.Vector2();
  const mousePlane = new THREE.Plane(new THREE.Vector3(0, 0, 1), 0);
  const mousePosition = new THREE.Vector3();
  const raycaster = new THREE.Raycaster();
  let mouseOver = false;

  init();

  function init() {
    renderer = new THREE.WebGLRenderer({ canvas: document.getElementById(conf.el), antialias: true });
    // if (!renderer.extensions.get('OES_texture_float')) {
    //   alert('no floating point texture support');
    //   return;
    // }

    camera = new THREE.PerspectiveCamera(conf.fov);
    camera.position.z = conf.cameraZ;

    updateSize();
    window.addEventListener('resize', updateSize, false);

    gridWWidth = wWidth;
    gridWHeight = wHeight;
    gridWidth = gridWWidth * width / wWidth;
    gridHeight = gridWHeight * height / wHeight;
    ripple = new RippleEffect(renderer, gridWidth, gridHeight, 1 / 5).........完整代码请登录后点击上方下载按钮下载查看

网友评论1

  1. # 61
    这个需要three支撑
    goodman 2020-02-03回复