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

相关推荐
Jedi Hongbin17 天前
threejs替换全部物体材质
材质·threejs
AllBlue1 个月前
左手坐标系、右手坐标系、坐标轴方向
blender·webgl·threejs·cesium
夏暖冬凉2 个月前
Three.js投射光线实现三维物体交互
javascript·threejs
懒懒de尐彪2 个月前
使用threejs实现3D卡片菜单
threejs
threelab2 个月前
three完全开源扩展案例05-围栏着色器
开源·threejs·着色器
threelab2 个月前
3D Web开发新篇章:threelab探索之旅
3d·webgl·threejs
@Eric啊2 个月前
threejs
threejs
trayvontang2 个月前
Threejs环境、透视相机、坐标系、光源
threejs·透视相机·threejs流程·threejs基础
幻梦丶海炎3 个月前
【Threejs进阶教程-着色器篇】1. Shader入门(ShadertoyShader和ThreejsShader入门)
webgl·threejs·着色器·shadertoy·glsl
Champion.XL3 个月前
Node.js 渲染三维模型并导出为图片
node.js·webgl·threejs·服务端渲染三维模型·gl