首页 > 其他分享 >Threejs利用着色器编写动态飞线特效

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

时间:2023-12-17 13:04:41浏览次数:32  
标签:Threejs const 飞线 THREE new 区块 着色器

一、导语

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

Threejs利用着色器编写动态飞线特效_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开发之可视化大数据地图,更多特效尽在里面,限时折扣哦

标签:Threejs,const,飞线,THREE,new,区块,着色器
From: https://blog.51cto.com/u_12427952/8860959

相关文章

  • Threejs漫天多彩粒子天空--粒子系统打造
    一、导语漫天多彩粒子天空特效应该也是Threejs项目中挺常见的一个需求,因为它是基于粒子系统,可以衍生出许多的不一样的方案,比如,星空特效,下雨特效,飘雪特效等等,不仅可以用在项目中增加氛围,有时候可以结合gis业务去使用二、分析利用Points粒子特效去实现多个物体的生成使用贴图去给粒子......
  • 计算机图形:可编程着色器
    目录OpenGL渲染流水线固定功能流水线可编程功能流水线顶点着色器片元着色器几何着色器曲面细分着色器OpenGL着色语言(GLSL)着色器结构OpenGL中使用着色器基本数据类型矢量矩阵结构、数组控制结构GLSL函数与OpenGL通信OpenGL渲染流水线图形API提供对硬件操作的标准接口,对程序员提......
  • threejs 大屏炫酷3D地图-附源码
    炫酷3D地图效果如下:代码注释非常详细:create(){//添加雾,随着距离线性增大,只能看到一个小是视野范围内的场景,地图缩小很多东西就会看不清//this.scene.fog=newTHREE.Fog(0x191919,30,70)this.getCenterPoint()//计算城市中心点,并将center存储到loca......
  • ThreeJS导入失败
    title:ThreeJS导入失败banner_img:https://proxy.thisis.plus/aadc0c1c0eb1c7f5e57ab3b42256cb0.jpgdate:2023-1-1310:00:00categories:-踩坑tags:-ThreeJS问题描述-index.html-src.js-node_modules-three-...在src.js中用如下方式导入ThreeJSimport*......
  • ThreeJS实现屏幕坐标转3d坐标
    title:ThreeJS实现屏幕坐标转3d坐标banner_img:https://drive.studyinglover.com/api/raw/?path=/photos/blog/background/e4127f10a90d5f6fd4f77b0225a19878.jpgdate:2023-2-420:30:00categories:-工具tags:-ThreeJSThreeJS实现屏幕坐标转3d坐标本文使用chatGPT辅......
  • threejs—01—概念
    一、物体如何移动所有的物体不管是PerspectiveCamera()还是mesh()构造函数,都是继承Object3D()的。因为继承,所以,camera实例和mesh实例,不仅可以访问自己构造函数的函数原型prototype对象里的东西,也可以访问Object3D()函数的属性。其中,Object3D()函数有一个position属性很重要,通......
  • ThreejsWeb3D开发之可视化大数据地图
    详情课程链接:​​Threejs之数据可视化大屏地图​​简介:从0到1采用Vite去搭建Threejs场景,数据可视化地图效果基本满足,详细解说着色器入门到编写,学习Threejs从基础到进阶操作,带你将Three.js技术落地,掌握其实际应用一、初始化Threejs场景二、超真实度假天空效果二(1)Sky天空效果......
  • 着色器
    概念:attribute用于向顶点着色器,传输几何图形待处理的各种属性,例如:顶点坐标,UV坐标等等注意:attribute只能用于顶点着色器中,值在运行时会从几何图形属性中取值点击查看代码functioncreateBasic(){//目标:着色器变量-attribute使用//作用:用于向顶点着色器中传入几......
  • threejs的坐标渲染和着色
    点击查看代码functioncreateBasic(){//目标:了解顶点坐标绘制正方形//1.准备BufferGemotry缓冲几何图形//2.准备32位浮点数的数组,定义矩形的顶点位置//3.准备BufferAttribute属性缓冲对象,保存几何图形的属性值//4.把属性设置给几何图形对象//......
  • OpenGL 着色器详解
    1.GLSL语言glsl语言是用来编写着色器的,通过一段一段包含main函数的程序片段,告诉渲染引擎怎么去渲染内容。glsl语言的语法有点类似c语言风格,只是增加了一些特有的关键字来修饰变量,下面是一个着色器基本的程序结构:首先声明的是GLSL的版本号和模式,然后就是声明变量。像其他语言......