three实现鲜花跳舞动画效果代码
代码语言:html
所属分类:动画
代码描述:three实现鲜花跳舞动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body { margin: 0; overflow: hidden; user-select: none;} canvas { display: block; } #play-pause-btn { position: absolute; top: 10px; right: 10px; padding: 10px 20px; background-color: #fff; border: 1px solid #ccc; cursor: pointer; } </style> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/dat.gui-min.js"></script> </head> <body> <script type="module"> import * as THREE from 'https://cdn.skypack.dev/three@0.136.0/build/three.module.js'; import { OrbitControls } from 'https://cdn.skypack.dev/three@0.136.0/examples/jsm/controls/OrbitControls.js'; import { OBJLoader } from 'https://cdn.skypack.dev/three@0.136.0/examples/jsm/loaders/OBJLoader.js'; import { EffectComposer } from 'https://cdn.skypack.dev/three@0.136.0/examples/jsm/postprocessing/EffectComposer.js'; import { RenderPass } from 'https://cdn.skypack.dev/three@0.136.0/examples/jsm/postprocessing/RenderPass.js'; import { UnrealBloomPass } from 'https://cdn.skypack.dev/three@0.136.0/examples/jsm/postprocessing/UnrealBloomPass.js'; import { GlitchPass } from 'https://cdn.skypack.dev/three@0.136.0/examples/jsm/postprocessing/GlitchPass.js'; import { ShaderPass } from 'https://cdn.skypack.dev/three@0.136.0/examples/jsm/postprocessing/ShaderPass.js'; import { gsap } from 'https://cdn.skypack.dev/gsap@3.9.1'; import anime from 'https://cdn.skypack.dev/animejs@3.2.1'; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); const controls = new OrbitControls(camera, renderer.domElement); controls.enableDamping = true; controls.dampingFactor = 0.5; controls.enableZoom = true; controls.minDistance = 10; controls.maxDistance = 50; const petalGeometry = new THREE.SphereGeometry(0.2, 16, 16, 0, Math.PI * 2, 0, Math.PI / 2); const petalMaterial = new THREE.MeshBasicMaterial({ color: 'red' }); const flowers = []; for (let i = 0; i < 1000; i++) { const flower = new THREE.Group(); for (let j = 0; j < 5; j++) { const petal = new THREE.Mesh(petalGeometry, petalMaterial); petal.position.set( Math.cos(j * Math.........完整代码请登录后点击上方下载按钮下载查看
网友评论0