three.js低版本添加文字(如71版本)

研究了半天,最后终于加载成功了,记录一下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的声明部分被注释了,如图

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

 

转载于:https://www.cnblogs.com/sangzs/p/9597226.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值