【Three.js】报警效果

赋上一张报警贴图(白色的):

 直接上代码:

      let texture = new THREE.TextureLoader().load("images/circle2White.png");
      let material = new THREE.SpriteMaterial({ //创建精灵材质
        map: texture,         // 赋值贴图
        color: "#ff0000",     // 设置颜色
        transparent: true,    // 是否开启透明度
        opacity: 1,           // 设置透明度
        depthWrite: false,    // 深度写入
      });
      const sprite = new THREE.Sprite(material); //创建精灵,精灵永远朝向相机
      sprite.position.set(27, 33, 13);
      scene.add(sprite);

      animate();

      let circle_n = 0
      function animate() {
        requestAnimationFrame(animate);
        circle_n = circle_n > 20 ? 0 : circle_n + 0.2
        sprite.scale.set(0.5 * circle_n + 0.5, 0.5 * circle_n + 0.5, 0.5 * circle_n + 0.5)
        if (sprite.material) {
          sprite.material.opacity = circle_n === 0 ? 1 : sprite.material.opacity - 0.006
        }
      }

 Sprite精灵 官网API:https://threejs.org/docs/index.html?q=Sprite#api/zh/objects/Sprite

ps:
1.加载图片。这里的图片我使用的是项目的绝对路径,图片我放在public下。也可以使用相对路径../../xxx.obj,../代表当前脚本父文件夹。如果没反应就查看下log看看是否图片没加载出来。

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
以下是使用three.js实现雪花效果的代码示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Three.js Snowfall</title> <style> body { margin: 0; overflow: hidden; } </style> </head> <body> <script src="https://cdn.bootcdn.net/ajax/libs/three.js/r128/three.min.js"></script> <script> var scene, camera, renderer, snowflakes = []; function init() { scene = new THREE.Scene(); camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1000); camera.position.z = 100; renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); for (var i = 0; i < 200; i++) { var snowflakeGeometry = new THREE.BoxGeometry(1, 1, 1); var snowflakeMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff }); var snowflake = new THREE.Mesh(snowflakeGeometry, snowflakeMaterial); snowflake.position.x = Math.random() * 200 - 100; snowflake.position.y = Math.random() * 200 - 100; snowflake.position.z = Math.random() * 200 - 100; snowflakes.push(snowflake); scene.add(snowflake); } } function animate() { requestAnimationFrame(animate); for (var i = 0; i < snowflakes.length; i++) { snowflakes[i].position.y -= Math.random() * 0.5; snowflakes[i].position.x += Math.random() * 0.5 - 0.25; snowflakes[i].position.z += Math.random() * 0.5 - 0.25; if (snowflakes[i].position.y < -100) { snowflakes[i].position.y = 100; } } renderer.render(scene, camera); } init(); animate(); </script> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值