three.js如何实现3D动态文字效果
前言
大家好,这里是 css 魔法使——alphardex。
之前在逛国外网站的时候,发现有些网站的文字是刻在3d图形上的,并且能在图形上运动,视觉效果相当不错,于是笔者就也想用three.js来尝试复现出这种效果
上图只是所有效果的其中之一,接下来让我们一起开干吧~
准备工作
笔者自行封装的three.js模板:three.js starter
读者可以点击右下角fork一份后再开始本项目
本项目需要用到位图字体,可以直接复制的html里的font字体代码
一个注意点:three-bmfont-text这个库依赖全局的three.js,因此要在js里额外引入一次three.js,如下图
实现思路
- 加载位图字体文件,将其转化为文字对象所需要的形状和材质
- 创建文字对象
- 创建渲染目标,可以理解为canvas中的canvas,因为接下来我们要将文字对象本身当做贴图
- 创建承载字体的容器,将文字对象作为贴图贴上去
- 动画
正片
搭好架子
加载和创建字体
首先加载字体文件,并创建出形状和材质,有了这两样就能创建出字体对象了
着色器
顶点着色器
通用模板,直接cv即可
片元着色器
利用fract函数创建重复的贴图,加上位移距离displacement使得贴图能随着时间的增加而动起来,再用clamp函数来根据z轴大小限定阴影的范围,意思是离画面越远则阴影越重,反之离画面越近则阴影越轻
此时文本显示到了屏幕上
创建渲染目标
为了将字体对象本身作为贴图,创建了一个渲染目标
创建字体容器
创建一个容器,并将字体对象本身作为贴图贴上去,再应用动画即可完成
别忘了把相机调远一些
风骚的动态文字出现了:)
项目地址
demo里不止本文创建的这一种形状,大家可以随意把玩。
总结
到此这篇关于three.js如何实现3d动态文字效果的文章就介绍到这了,更多相关three.js 3d动态文字内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 江湖家居工长版又出北美之约模板啦~
下一篇: 基于JavaScript实现简单的轮播图
推荐阅读
-
如何实现动态删除javascript函数_javascript技巧
-
急将动态网站全部页面转换成静态页面,脱机显示,该如何实现 ,多谢大家
-
如何用FLASH作为PPT的背景实现FLASH背景动态效果
-
vue2 中如何实现动态表单增删改查实例
-
如何实现一个支持动态扩容的数组
-
php 如何配合easyui 实现,datagrid1点击某行,然后datagrid2 进行动态查询。
-
CSS3如何实现2D转换和3D转换,他们有何区别_html/css_WEB-ITnose
-
博客个人中心的所有动态显示部分内容和图片用PHP如何实现
-
js如何实现动态无缝轮播
-
详解如何实现Element树形控件Tree在懒加载模式下的动态更新