Threejs利用着色器编写动态飞线特效

一、导语

动态飞线特效是可视化数据地图中常见的需求之一,鼠标点击的区块作为终点,从其他区块飞线至点击区块,附带颜色变换或者结合粒子动画

二、分析

  1. 利用创建3点来构成贝塞尔曲线,形成线段
  2. 利用着色器材质来按照线段以及时间点变化来变化线段的颜色形成动画

三、上基础代码

复制代码
 // 贝塞尔曲线
    const curve = new THREE.QuadraticBezierCurve3(source, center, target)

    // 创建曲线
    const geometry = new THREE.TubeGeometry(curve, 64, 0.03)
    const tubeLineMaterial = new THREE.ShaderMaterial({
      transparent:true,
      uniforms: {
        baseColor: {
          value: new THREE.Color(baseColor)
        },
        finallyColor: {
          value: new THREE.Color(finallyColor)
        },
        time: this.lineTime
      },
      vertexShader: `
        ***
        `,
      fragmentShader: `
       ***
      `
    })

四、利用着色器来形成颜色变化的动画

具体动态效果实现可以关注课程ThreejsWeb3D开发之可视化大数据地图,更多特效尽在里面,限时折扣哦

相关推荐
陶甜也1 天前
threeJS 实现开花的效果
前端·vue·blender·threejs
二川bro4 天前
第25节:VR基础与WebXR API入门
前端·3d·vr·threejs
哈哈地图7 天前
three.js手机端的4种旋转方式
threejs·手机交互
咔咔一顿操作8 天前
第五章 vue3 + Three.js 实现高级镜面反射效果案例解析
前端·javascript·vue.js·人工智能·信息可视化·threejs
咔咔一顿操作8 天前
第六章 Vue3 + Three.js 实现高质量全景图查看器:从基础到优化
开发语言·javascript·人工智能·ecmascript·threejs
二川bro1 个月前
第八篇:交互入门:鼠标拾取物体
前端·交互·threejs
救救孩子把2 个月前
Three.js 从零入门:构建你的第一个 Web 3D 世界
前端·javascript·3d·threejs
七月的冰红茶2 个月前
【threejs】第一人称视角之八叉树碰撞检测
前端·threejs
三月的一天2 个月前
React Three Fiber 实现 3D 模型点击高亮交互的核心技巧
3d·webgl·threejs·reactthreefiber
gis分享者2 个月前
学习threejs,使用自定义GLSL 着色器,生成漂流的3D能量球
3d·threejs·着色器·glsl·shadermaterial·能量球