three.js 创建文字的几种方法

简介: three.js 创建文字的几种方法

three.js 创建文字的几种方法

1. DOM + CSS

传统网页html实现

2. 将文字绘制到画布中,并将其用作Texture(纹理)

将文字保存为图片格式,再将其当作一张蒙皮材质,贴到某个物体上

3. 在你所喜欢的3D软件里创建模型,并导出给three.js

建模实现,成本高,效果好

4. three.js自带的文字几何体

  1. 构造器
var loader = new THREE.FontLoader();

loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {

    var geometry = new THREE.TextGeometry( 'Hello three.js!', {
        font: font,
        size: 80,
        height: 5,
        curveSegments: 12,
        bevelEnabled: true,
        bevelThickness: 10,
        bevelSize: 8,
        bevelSegments: 5
    } );
} );

TextGeometry(text : String, parameters : Object)
text — 将要显示的文本。
parameters — 包含有下列参数的对象:

font — THREE.Font的实例。

size — Float。字体大小,默认值为100。
height — Float。挤出文本的厚度。默认值为50。
curveSegments — Integer。(表示文本的)曲线上点的数量。默认值为12。
bevelEnabled — Boolean。是否开启斜角,默认为false。
bevelThickness — Float。文本上斜角的深度,默认值为20。
bevelSize — Float。斜角与原始文本轮廓之间的延伸距离。默认值为8。
bevelSegments — Integer。斜角的分段数。默认值为3。

  1. 可用的字体

文本几何体使用 typeface.json所生成的字体。 一些已有的字体可以在/examples/fonts中找到,且必须在页面中引入。

字体 字重 风格 文件路径
helvetiker normal normal /examples/fonts/helvetiker_regular.typeface.json
helvetiker bold normal /examples/fonts/helvetiker_bold.typeface.json
optimer normal normal /examples/fonts/optimer_regular.typeface.json
optimer bold normal /examples/fonts/optimer_bold.typeface.json
gentilis normal normal /examples/fonts/gentilis_regular.typeface.json
gentilis bold normal /examples/fonts/gentilis_bold.typeface.json
droid sans normal normal /examples/fonts/droid/droid_sans_regular.typeface.json
droid sans bold normal /examples/fonts/droid/droid_sans_bold.typeface.json
droid serif normal normal /examples/fonts/droid/droid_serif_regular.typeface.json
droid serif bold normal /examples/fonts/droid/droid_serif_bold.typeface.json

5. 位图字体

BMFonts (位图字体) 可以将字形批处理为单个BufferGeometry。BMFont的渲染支持自动换行、字母间距、字句调整、signed distance fields with standard derivatives、multi-channel signed distance fields、多纹理字体等特性。 详情请参阅three-bmfont-text。

现有库存的字体在项目中同样可用,就像A-Frame Fonts一样, 或者你也可以从任何TTF字体中创建你自己的字体,优化时,只需要包含项目中所需的字符即可。

这是一些有用的工具:

msdf-bmfont-web (web-based)
msdf-bmfont-xml (commandline)
hiero (desktop app)

目录
相关文章
|
9天前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
125 59
|
30天前
|
JavaScript 前端开发
JavaScript遍历数组和对象常用方法总结
以上代码展示了数组和对象的多种遍历方法。对于数组,使用了传统的 `for` 循环、`for...in` 和 ES6 的 `for...of` 进行遍历;对于对象,则通过 `for...in`、`Object.keys()`、`Object.values()` 和 `Object.entries()` 来获取键值对。`for...of` 循环适用于遍历具有迭代协议的数据结构,如数组、字符串等,而对象遍历则更多地依赖于 `Object` 方法来获取其属性集合。
JavaScript遍历数组和对象常用方法总结
|
3天前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
16 2
|
25天前
|
JavaScript 前端开发
JavaScript基础知识-方法
文章通过示例代码讲解了JavaScript中如何给对象添加方法以及如何调用这些方法。
20 2
JavaScript基础知识-方法
|
25天前
|
JavaScript 前端开发
JavaScript基础知识-数组的常用方法
关于JavaScript基础知识-数组的常用方法。
16 1
JavaScript基础知识-数组的常用方法
|
4天前
|
JavaScript 前端开发
JS之concat方法
本文介绍了JavaScript中`concat`方法的使用,展示了如何利用该方法来合并数组,包括与字符串、数字、对象等类型的拼接,以及使用扩展运算符进行合并的示例。
7 0
JS之concat方法
|
10天前
|
JavaScript 前端开发
JavaScript Array map() 方法
JavaScript Array map() 方法
|
30天前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
30天前
|
JavaScript 算法 前端开发
JS算法必备之Array常用操作方法
这篇文章详细介绍了JavaScript中数组的创建、检测、转换、排序、操作方法以及迭代方法等,提供了数组操作的全面指南。
JS算法必备之Array常用操作方法
|
9天前
|
JavaScript 前端开发
JavaScript 中的新 Set 方法
JavaScript 中的新 Set 方法