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开发之可视化大数据地图,更多特效尽在里面,限时折扣哦

相关推荐
allenjiao8 天前
WebGPU vs WebGL:WebGPU什么时候能完全替代WebGL?Web 图形渲染的迭代与未来
前端·图形渲染·webgl·threejs·cesium·webgpu·babylonjs
二川bro8 天前
第59节:常见问题汇编 - 60个典型问题解答
javascript·3d·threejs
孪生引擎观星台12 天前
数字孪生如何破解效率、性能与安全困局?
安全·数字孪生·threejs
gis分享者14 天前
学习threejs,添加ECharts图表
echarts·threejs·material·图表·canvastexture·planegeometry
二川bro17 天前
第40节:AR基础:Marker识别与跟踪
ar·threejs
二川bro19 天前
第33节:程序化生成与无限地形算法
前端·算法·3d·threejs
二川bro20 天前
第30节:大规模地形渲染与LOD技术
前端·threejs
患得患失9491 个月前
【threejs】材质共享导致的典型问题
材质·threejs
gis分享者1 个月前
学习threejs,基于噪声函数的顶点着色器动态插桩技术实现模型形变
threejs·模型·着色器·顶点·动态插桩·噪声函数·形变
gis分享者1 个月前
学习threejs,打造交互式泡泡、粒子特效与科幻氛围
threejs·orbitcontrols·gltfloader·rgbeloader·ambientlight·meshphysical