1.创建2D文字canvas

makeLabelCanvas(baseWidth, size, name) {const borderSize = 2;const ctx = document.createElement('canvas').getContext('2d');const font =  `${size}px bold sans-serif`;ctx.font = font;// console.log("ctx",ctx)// measure how long the name will beconst textWidth = ctx.measureText(name).width;const doubleBorderSize = borderSize * 2;const width = baseWidth + doubleBorderSize;const height = size + doubleBorderSize;ctx.canvas.width = width;ctx.canvas.height = height;// need to set font again after resizing canvasctx.font = font;ctx.textBaseline = 'middle';ctx.textAlign = 'center';ctx.fillStyle = '#fffffc';ctx.fillRect(0, 0, width, height);// scale to fit but don't stretchconst scaleFactor = Math.min(1, baseWidth / textWidth);ctx.translate(width / 2, height / 2);ctx.scale(scaleFactor, 1);ctx.fillStyle = 'black';ctx.fillText(name, 0, 0);return ctx.canvas;},

2.创建文字精灵

addSpirit(name){const canvas=this.makeLabelCanvas(300,70,name);const canvasTexture = new THREE.CanvasTexture(canvas);canvasTexture.minFilter = THREE.LinearFilter;canvasTexture.wrapS = THREE.ClampToEdgeWrapping;canvasTexture.wrapT = THREE.ClampToEdgeWrapping;const labelMaterial = new THREE.SpriteMaterial({map: canvasTexture,transparent: true,});const label = new THREE.Sprite(labelMaterial);label.position.z=this.minY+300;const labelBaseScale = 1;label.scale.x = canvas.width  * labelBaseScale;label.scale.y = canvas.height * labelBaseScale;return label},

3.给需要的模型添加精灵(精灵图的内容可修改)

//加入显示设备名的精灵图let label=this.addSpirit(device.name)// console.log("精灵",canvas)copyMesh.add(label);

思路提供参考链接                   精灵样式修改属性参考

three.js给模型添加动态的文字精灵(vue)相关推荐

  1. 如何给视频添加动态文字水印?

    如何给视频添加动态文字水印?添加水印是视频制作环节中最后的一个步骤,视频添加水印可以有效防止视频被盗用,还能有效保护自己的版权.有时候我们希望给视频添加动态的文字水印,比例文字水印在视频中上下或者左右 ...

  2. THREEJS在场景图上动态标识一些文字方法二(文字精灵sprite)

    threejs文字精灵sprite的实现 1.手动添加文字精灵 2.通过json动态获取文字精灵,并进行交互 3.point模型只表示位置 4.CircleGeometry实现 5.3.PlaneGe ...

  3. js 给动态li添加动态点击事件

    一.给动态li添加动态点击事件 试了网上的on,live,bind绑定,都不起作用.最后看到https://bbs.csdn.net/topics/390414057 上的代码.试了一遍,demo o ...

  4. php文字添加投影,视频加动态标题文字 视频标题文字添加阴影边框 给视频加上炫酷的文字标题...

    开篇就来点个题:今天的教程内容就是视频添加文字标题,虽然都是给视频加文字标题但是今天的和往常有点不太一样呢!软件中不仅自带了许多炫酷的标题模板外,还可以对文字标题进行编辑,给标题添加动态效果,修改文字 ...

  5. js动态设置文字大小

    js动态设置文字大小 <script>function setRem() {var ui_w = 375;// 获取屏幕的宽度var clientWidth = document.docu ...

  6. ArcGIS JS先添加动态图层,再添加切片图层后不显示

    场景: 现在要在一个地图上添加动态服务图层和切片服务图层,当创建好图层之后,使用map.addLayer()方法,先把动态图层加到地图上,再把切片图层加到地图上,出现一个现象:只能看到加载的动态图层, ...

  7. Android使用Opengl录像时添加(动态)水印

    最近需要开发一个类似行车记录仪的app,其中需要给录制的视频添加动态水印.我使用的是OpenGL开发的,刚开始实现的是静态水印,后面才实现的动态水印. 先上效果图,左下角的是静态水印,中间偏下的是时间 ...

  8. 【视频加水印】Video Watermark Pro视频添加动态水印(附工具下载地址)

    <Video Watermark Pro>是一款专门给视频加水印的软件,这个软件可以帮用户快速加水印,而且可以批量加水印,软件操作起来简单又快捷,有需要的用户不要错过. 软件特色 1.将水 ...

  9. 50 Three.js让模型或者group居中,获取模型的最小大小

    模型居中 让模型居中的方法最简单了,直接给geometry调用center()方法就实现了,模型居中显示. //让图形居中显示geom.center(); 获取模型的最小大小 获取模型最下的大小的原理 ...

最新文章

  1. SQL语句从入门到精通之笔记大全
  2. 如何利用1%推广费用提高50%的用户增长
  3. 人工智能的突破需要颠覆图灵机吗?
  4. Nearest Opposite Parity(反向建边+spfa)
  5. python内置模块有哪些_python中那些小众但有用的内置模块
  6. Docker 操作手册
  7. 学.net还是php,ASP.NET和php哪个更容易学
  8. c语言考试常考试卷,c语言面试最必考的十道试题,求职必看!!!
  9. Spring Boot学习笔记:Spring Boot核心配置
  10. c语言增加动态分配的存储空间吗,C语言 关于内存动态分配问题
  11. 解决 PL/SQL Oracle错误:ORA-01033
  12. excel线性拟合的斜率_邵励治的机器学习 2 / 100 天:「简单线性回归」
  13. 老罗android开发视频教程 下载地址
  14. 阿里云前端周刊 - 第 9 期
  15. WebRTC NAT穿透服务器 coturn服务搭建
  16. 阿里聚合直播盒子APP源码™ AlijuheCMS Build Demo 20190206
  17. ABAQUS仿真软件经典案例——水滴入水分析
  18. 科学-天文学:天文学百科
  19. 切换分支报错:Untracked Files Prevent Checkout
  20. 在OpenCV里实现内旋轮线

热门文章

  1. 对不起,腾讯我也拒绝了
  2. 前端论坛、博客及公众号汇总 1
  3. Typora 快捷键大全
  4. 如何使用vb通过outlook收发邮件
  5. Linux如何修改字符为中文以及安装中文输入法
  6. 推荐一部很好的电影《本杰明.巴顿的奇事》
  7. 计算机专业答辩委员会评语,答辩委员会评语大全
  8. 未来的新智能应该是什么样子呢?
  9. 非酋用计算机,《神武4》电脑版:洗宠100次必变异 再也不用流非酋泪
  10. [转] 最牛B 的 Linux Shell 命令