three实现三维粒子鼠标交互动画代码

代码语言:html

所属分类:粒子

代码描述:three实现三维粒子鼠标交互动画代码,可调参数

代码标签: three 三维 粒子 鼠标 交互 动画 代码

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GPGPU Curl Noise Flowfield Particles</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            overflow: hidden;
            background-color: #000a14;
        }
        canvas {
            display: block;
        }
    </style>
    <!-- Import maps for Three.js -->
    <script type="importmap">
        {
            "imports": {
                "three": "https://unpkg.com/three@0.160.0/build/three.module.js",
                "three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/"
            }
        }
    </script>
</head>
<body>
    <script type="module">
        import * as THREE from 'three';
        import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
        import { GPUComputationRenderer } from 'three/addons/misc/GPUComputationRenderer.js';
        import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
        import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
        import { ShaderPass } from 'three/addons/postprocessing/ShaderPass.js';
        import GUI from 'https://unpkg.com/lil-gui@0.19.1/dist/lil-gui.esm.min.js';

        // --- Config ---
        const config = {
            particleCount: 128, // 128x128 = 16384 Particles
            scale: 2.5,
            strength: 1.0,
            speed: 0.5,
            curlSpeed: 0.3,
            mouseRadius: 0.25,
            mouseStrength: 2.5,
            particleSize: 8.0,
            paletteA: [0.48, 0.79, 0.88],
            paletteB: [0.60, 0.40, 1.00],
            paletteC: [1.30, 1.90, 1.50],
            paletteD: [0.10, 0.30, 0.50]
        };

        // --- Main Setup ---
        const canvas = document.createElement('canvas');
        document.body.appendChild(canvas);

        const renderer = new THREE.WebGLRenderer({ canvas, antialias: true, alpha: true, powerPreference: "high-performance" });
        renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
        renderer.setSize(window.innerWidth, window.innerHeight);
        renderer.setClearColor(new THREE.Color(0, 10/255, 20/255), 1);

        const scene = new THREE.Scene();
        
        const camera = new TH.........完整代码请登录后点击上方下载按钮下载查看

网友评论0