研究了半天,最后终于加载成功了,记录一下three.js 71版本的文字加载,下面开始整个过程

首先,将ttf字体转换成js文件

源码版: https://github.com/gero3/facetype.js

在线版: http://gero3.github.io/facetype.js/

并引入项目,如

<script src="./lib/arial_black_regular.typeface.js"></script>

此处有不少坑,我来提醒一下

js字体文件名需要改为 xxxxxxx_regular.typeface.js 或 xxxxxxx.typeface.js (本人未验证是否必须,消息来源于其他文章,请自己尝试)

且,文件名 arial_black_regular.typeface 必须全部小写 (本人已验证,确实必须小写,请自己尝试)

其次,打开  arial_black_regular.typeface.js 文件,搜索关键词 familyName ,将familyName 的值改为这个字体的名称,

以我在做的项目为例,我改为 arialblack ,依然小写(本人已验证,确实必须小写,请自己尝试)

然后,在项目中的需要创建字体的地方定义文字对象的配置

var options = {
size: 10,
height: 0,
weight: 'normal',
font: 'arialblack',  //这个名字就是刚才修改的familyName的值
style: 'normal',
bevelThickness: 1,
bevelSize: 1,
bevelSegments: 1,
curveSegments: 50,
steps: 1
}; // 显示内容
var text = "Text3D"; // 字体几何模型 
var text_geometry = new THREE.TextGeometry(text, options); // 字体材质
var text_material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); // 字体网格
var text_mesh = new THREE.Mesh(text_geometry, text_material); // 加入到场景中
scene.add(text_mesh);

最后,效果如下 (如果导入的字体中没有中文。

当显示内容又包含中文,如“引入Three-Text3D成功”,汉字会变成?问号)

如果你使用71版本的 three.js 有可能出现下面的情况 (71版本的three.min.js正常)

这是因为与生产版本three.min.js相比,开发版本three.js中,_typeface_js的声明部分被注释了,如图

解开注释即可,但是揭开后是否存在其他问题,我并没有验证

three.js低版本添加文字(如71版本)的更多相关文章

  1. JS为网页添加文字水印【原创】

    最近需要实现为网页添加水印的功能,由于水印的信息是动态生成的,而百度谷歌上的方法往往都是为网页添加图片水印或为图片添加水印,而为网页添加文字水印相关资料较少,于是就自己动手写了这个代码. 通常加动态水 ...

  2. [Kernel]内核版本添加字符和内核版本'+'解决

    转自:http://blog.csdn.net/adaptiver/article/details/7225980 之前每次由于git仓库编译出来每次都带有'+', 导致都需要使用git archiv ...

  3. three.js添加文字

    添加文字需要用到fontLoader,测试貌似只能异步.在success中回调. 对于中文字体,需要将ttf格式转换为json格式或者是js格式之后才能使用,不过一般转换之后的文件比较大.建议使用Fo ...

  4. chart.js图表库案例赏析,饼图添加文字

    chart.js图表库案例赏析,饼图添加文字 Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas 基础上.目前,它支持6种图表类型(折线图,条形图, ...

  5. js/jq 动态添加的元素不能触发绑定事件解决方案

    <!-- Copyright 2017-10-27, Jachin QQ: 381558301 Email: 381558301@qq.com 请看看你们的版本并对号入座: jquery1.6版 ...

  6. C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9

    视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...

  7. js设置光标插入文字和HTML

    原文链接:js设置光标插入文字和HTML 在一个textarea的某个光标位置插入文字或者在某个编辑器中插入图片html内容,我最近经常和这些打交道,但总是一团模糊,今天整理一下关于如何插入文字,设置 ...

  8. php给图片添加文字水印方法汇总

    在php中要给图片加水印我们需要给php安装GD库了,这里我们不介绍GD库安装,只介绍怎么利用php给图片添加文字水印的4种方法的汇总.有需要的小伙伴可以参考下. 1: 面向过程的编写方法 1 2 3 ...

  9. js 面向对象 动态添加标签

    有点逻辑 上代码 thml布局 点击查看代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...

随机推荐

  1. 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务

    转载:https://blog.csdn.net/sunshinegyan/article/details/80017012 前提:本地已经安装好了MongoDB服务 1启动MongoDB: 方法1: ...

  2. github 配置ssh

    https://www.cnblogs.com/superGG1990/p/6844952.html

  3. 21.与重入锁相关联的Condition

    import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * ...

  4. elasticsearch 6.x 安装search guard

    前言 es之前版本一直无用户验证功能,不过官方有提供一x-pack,但是问题是付费.在es的6.3.2版本中,已经集成了x-pack,虽然es团队已经对x-pack开源,但是在该版本中如果需要使用到安 ...

  5. leetcode-165周赛-1277-统计全为1的正方形子矩阵

    题目描述: 自己的提交: class Solution: def countSquares(self, matrix: List[List[int]]) -> int: if not matri ...

  6. PHP发送公众号模板消息

    <?php /* * 模板消息发送,电脑端测试时需要手动填写openid * 微信端会自动获取当前openid发送无需填写 */ header("Content-type: text/ ...

  7. zabbix 如何监控php-fpm?

    zabbix监控php-fpm主要是通过nginx配置php-fpm的状态输出页面,在正则取值.要nginx能输出php-fpm的状态首先要先修改php-fpm的配置,没有开启nginx是没有法输出p ...

  8. 【Flutter学习】页面布局之宽高尺寸处理

    一,概述 Flutter中拥有30多种预定义的布局widget,常用的有Container.Padding.Center.Flex.Row.Colum.ListView.GridView.按照< ...

  9. BZOJ 3569: DZY Loves Chinese II(线性基)

    传送门 解题思路 首先构造出一个生成树,考虑不连接的情况.假设连通两点的非树边和树边都断掉后不连通,那么可以给所有的非树边随机一个互不相同的值,然后树边的权值为过他两端点的非树边权值的异或和,这个可以 ...

  10. MSSQLSERVER错误1

      错误信息 数据库日志记录 09/07/2017 16:10:31,登录,未知,Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数 ...