首页 > 其他分享 >Threejs下雪效果

Threejs下雪效果

时间:2022-11-07 21:33:53浏览次数:45  
标签:Threejs const 效果 下雪 雪花 几何体 缓冲区 new pointsMaterial

目的

尝试一下通过粒子系统制造下雪的效果

原理

方法一:通过BufferGeometry绘制n个点,并给点材质传下雪的贴图,渲染的时候对点进行旋转,来实现下雪的效果。

方法二:通过精灵模型Sprite也可以实现(下次一定)

实现

1、制造雪花

实现逻辑
1、创造粒子缓冲区几何体
2、创建缓冲区存储雪花的粒子
3、随机生成顶点的位置并给粒子缓冲区几何体传值
4、设置点的纹理材质(雪花贴图)
5、加入场景搞定!

//1、创造粒子缓冲区几何体
const particlesGeometry = new THREE.BufferGeometry();
const count = 10000;

//2、创建缓冲区存储雪花的粒子
const positions = new Float32Array(count * 3);

//3、随机生成顶点的位置并给粒子缓冲区几何体传值
//Math.random()生成0到小于1的值,生成-100到100的点
  for (let i = 0; i < count * 3; i++) {
    positions[i] = Math.random() * 100-100;
  }
    particlesGeometry.setAttribute(
    "position",
    new THREE.BufferAttribute(positions, 3)
  );

//4、设置点的纹理材质(雪花贴图)
  const pointsMaterial = new THREE.PointsMaterial();
  pointsMaterial.size = 0.5;
    // 载入纹理
  const textureLoader = new THREE.TextureLoader();
  const texture = textureLoader.load(`雪花.png`);
  // 设置点材质纹理
    pointsMaterial.map = texture;
    pointsMaterial.alphaMap = texture;

//5、加入场景搞定!
scene.add(points);

2、雪花动起来

  points.rotation.x += 3*Math.pow(10,-3);

实现效果

img

标签:Threejs,const,效果,下雪,雪花,几何体,缓冲区,new,pointsMaterial
From: https://www.cnblogs.com/webglblog/p/16867542.html

相关文章

  • 【每日一练】26—CSS实现响应式卡片悬停效果
    今天练习的这个小项目,是一个产品卡片式的介绍说明,像我们在一些个人简历产品说明里或者产品说明里会经常使用这样的内容设计,然后再配上合适的图片即可。例如,我们在个人简历上......
  • 【每日一练】28—用Swiper实现的3D滑动效果
    今天我们练习一个用swiper实现的3D轮播图效果,这个效果需要将swiper文件引入到HTML中,然后再结合CSS就实现了以下效果:我把今天练习项目中的素材文件打包了,大家根据需要自行下......
  • 【每日一练】16—响应式电子日历效果的实现
    写在前面今天练习的小项目是一个电子日历,这个日历我个人觉得还是非常实用的,现在,我们一起来看一下最终的效果:HTML代码:<!DOCTYPEhtml><htmllang="zh-CN"><head><metach......
  • 【每日一练】18—搜索框效果的实现
    写在前面搜索框是很常用的一个功能,因此,今天我们一起来练习写一个搜索框的效果,希望今天的这个练习对你有帮助,下面我们一起来看今天练习的最终效果:HTML代码:<!DOCTYPEhtml><ht......
  • 【每日一练】19—CSS 实现撕纸的效果
    写在前面今天我们来练习一个CSS实现的撕纸效果,这个效果,也会在一些设计网站上经常看到,但是这个用PS可以直接做成一张图片,但是,今天我们用CSS通过两张图片就实现了,这样做的好处......
  • 【每日一练】20—CSS实现文字动画效果
    写在前面今天来到了我们的第20个小项目的练习,距离我们100个小项目的练习,我们已经完成了五分之一了,剩下的五分之四,我们一起加油练习。今天练习的这个小项目是一个CSS实现的文......
  • css通用效果代码
    1.小米的hover上移效果&:hover{-webkit-box-shadow:015px30pxrgba(0,0,0,.1);box-shadow:015px30pxrgba(0,0,0,.1)......
  • flutter 中实现磨砂玻璃效果
    flutter中实现磨砂玻璃效果前言磨砂玻璃效果是一个很酷的用户界面概念,使我们的用户界面看起来更有吸引力。它基本上是一个模糊的覆盖与减少不透明度,以区分或减少某一观......
  • 手机:手机网页版小视频。类似抖音效果
    <!DOCTYPEhtml><html><headrunat="server"><metaname="viewport"content="width=device-width,initial-scale=1.0,minimum-scale=1.0,user-scalable=no">......
  • threejs_threejs3
    向量的clone方法和copy方法求两点之间的距离向量之间的叉乘three.js生成的renderer.domElement如何添加到目标的元素中直接引入想要的函数,可以不需要像以前那样引......