当前位置: 首页 > news >正文

Three.js 花瓣雨教程

花瓣雨 ·Flower Rain· ▶ 在线运行案例

  • 案例合集:三维可视化功能案例(threehub.cn)
  • 开源仓库github地址:https://github.com/z2586300277/three-cesium-examples
  • 400个案例代码:网盘链接

你将学到什么

  • OrbitControls 相机轨道交互
  • requestAnimationFrame渲染循环与resize自适应

效果说明

本案例演示花瓣雨效果:基于 WebGL 实现「花瓣雨」可视化效果,附完整可运行源码;核心用到 OrbitControls。建议先打开文首在线案例查看动态画面,再对照下方源码逐步理解。

核心概念

  • OrbitControls轨道旋转缩放;开enableDamping时每帧需controls.update()

实现步骤

  • 搭建 Scene / Camera / Renderer 与 OrbitControls
  • rAF 循环中 update 并 render
  • 代码要点

    import * as THREE from 'three';

    import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';

    const box = document.getElementById('box');

    const scene = new THREE.Scene(); /**

    • 花瓣分组
    */ const petal = new THREE.Group();

    const width = box.clientWidth; const height = box.clientHeight; //窗口宽高比 const k = width / height; //三维场景的显示的上下范围 const s = 200; const camera = new THREE.OrthographicCamera(-sk, sk, s, -s, 1, 1000);

    const renderer = new THREE.WebGLRenderer();

    function create() { //设置相机位置 camera.position.set(0, 200, 500) camera.lookAt(scene.position)

    //设置渲染区域尺寸 renderer.setSize(width, height) //设置背景颜色

    //body元素中插入canvas对象 box.appendChild(renderer.domElement)

    // const axisHelper = new THREE.AxisHelper(1000); // scene.add(axisHelper)

    var flowerTexture1 = new THREE.TextureLoader().load(FILE_HOST + "examples/flowerAndHouse/img/flower1.png"); var flowerTexture2 = new THREE.TextureLoader().load(FILE_HOST + "examples/flowerAndHouse/img/flower2.png"); var flowerTexture3 = new THREE.TextureLoader().load(FILE_HOST + "examples/flowerAndHouse/img/flower3.png"); var flowerTexture4 = new THREE.TextureLoader().load(FILE_HOST + "examples/flowerAndHouse/img/flower4.png"); var flowerTexture5 = new THREE.TextureLoader().load(FILE_HOST + "examples/flowerAndHouse/img/flower5.png"); var imageList = [flowerTexture1, flowerTexture2, flowerTexture3, flowerTexture4, flowerTexture5];

    for (let i = 0; i < 400; i++) { var spriteMaterial = new THREE.SpriteMaterial({ map: imageList[Math.floor(Math.random() * imageList.length)],//设置精灵纹理贴图 }); var sprite = new THREE.Sprite(spriteMaterial); petal.add(sprite);

    sprite.scale.set(40, 50, 1); sprite.position.set(2000(Math.random() - 0.5), 500Math.random(), 2000 * (Math.random() - 0.5)) } scene.add(petal) }

    function render() { petal.children.forEach(sprite => { sprite.position.y -= 5; sprite.position.x += 0.5; if (sprite.position.y < - height / 2) { sprite.position.y = height / 2; } if (sprite.position.x > 1000) { sprite.position.x = -1000 } });

    renderer.render(scene, camera)

    requestAnimationFrame(render) }

    create() render()

    const controls = new OrbitControls(camera, renderer.domElement); controls.autoRotate = true;

    完整源码:GitHub

    小结

    • 本文提供花瓣雨完整 Three.js 源码与在线 Demo,建议先运行案例再改 uniform/参数做二次实验
    • 更多 Three.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库
http://www.jsqmd.com/news/1213401/

相关文章:

  • FastAPI与PostgreSQL高性能API开发实战指南
  • C语言程序设计第三、四天/操作符\输入输出\强制类型转换
  • 5分钟掌握Diablo Edit2:暗黑破坏神II终极角色编辑器完全指南
  • 为什么选择PRIP?并行冗余互联协议的5大优势与应用场景解析
  • 专业开发者必备:Tacent View图像查看器的终极指南
  • Java 中的逻辑控制:输入输出
  • 积家中国官方售后服务中心|服务热线及官方维修地址权威信息公告(2026年7月最新) - 积家官方售后服务中心
  • 基于MSP430F67791A的三相电表校准:从原理到工程实践
  • Three.js 飞线效果教程
  • 2026玻璃机械客户认可吗 口碑推荐零套路价格透明 - mypinpai
  • 从技术视角拆解优质青春剧创作:真实感构建与叙事框架创新
  • 亨得利苏州直营售后中心指南|最新网点地址及官方热线公示(2026年7月最新) - 亨得利中国服务中心
  • Android网络请求实战:OkHttp与Retrofit黄金组合
  • Python办公自动化实战:Excel/Word/PDF高效处理
  • RPG Maker MV/MZ资源解密终极指南:5分钟解锁游戏素材的完整解决方案
  • 超低温干货|文献全梳理:R134a/R23 单机自复叠最优配比 + 全套实操注意事项
  • 深入解析TI EDMA控制器:三维传输、PaRAM与高效数据搬运实践
  • 网盘直链下载助手完整指南:九大平台一键获取真实下载地址
  • 【MyBatis-Plus】源码级吃透 MyBatis 与 MyBatis-Plus:两阶段架构、插件机制与底层增强全解析
  • 采购岗位可以考什么证书 - 众智商学院职业教育
  • 使用QEMU搭建ARM开发环境完整指南
  • 亨得利福州区官方维保核验指南|全网正规售后信息权威更新(2026年7月最新) - 亨得利中国服务中心
  • 重庆能源工业技师学院 - 学习招生
  • DFT笔记79
  • 别踩2026年做培训视频总结的常见成本误区,过来人分享实操经验
  • 2026岳阳制冷设备冷库空气能回收公司TOP5测评 - LYL仔仔
  • Cursor写测试用例实战手册(从Chat界面到CI通过的完整链路)
  • 浪琴中国区官方售后服务中心|官网认证地址及电话全新启用(2026年7月最新) - 浪琴中国服务中心
  • Java开发中避免数组越界与空指针异常的实战指南
  • 南京西路梧桐树下的“时光守望”:百年亨得利,镌刻上海海派风华的岁月长歌 - 亨得利官方维修中心