赞
踩
创建字体模型,需要通过THREE.FontLoader()
方法,来加载json
格式的字体格式类型,然后在加载成功的回调函数中,通过THREE.TextBufferGeometry()
或者THREE.TextGeometry()
,将 需要展现的文本 以及设置好的字体格式对象传递到方法中 来创建Mesh对象,需要注意的是,THREE.TextBufferGeometry()
,不能用作BSP 布尔操作,THREE.TextGeometry()
可以进行几何体布尔运算。
浏览地址:https://ithanmang.gitee.io/threejs/home/201806/20180629/02-textGeometry.html
此处加载的字体模型是英文字体json文件,若想加载中文字,还需要下载相应的ttf
文件,然后通过这个网址[http://gero3.github.io/facetype.js/]把ttf
文件转换为json
文件,再通过FontLoader
加载即可。
这里提供微软雅黑的ttf
文件,欢迎下载:
链接:https://pan.baidu.com/s/1zZiog3YoPZSHCzMoxVLbQw 密码:5w47
var text = 'three.js'; // 使用FontLoader加载字体 var loader = new THREE.FontLoader(); loader.load('../../libs/examples/fonts/gentilis_regular.typeface.json', function (response) { // 文字配置 var fontCfg = { font : response, size : 80, height: 5, curveSegments: 12, bevelEnabled: true, bevelThickness: 10, bevelSize: 8, bevelSegments: 5 }; // TextGeometry文本几何对象 var fontGeometry = new THREE.TextGeometry(text,fontCfg); fontGeometry.computeBoundingBox();//绑定盒子模型 // 文字的材质 var fontMaterial = new THREE.MeshNormalMaterial(); var font = new THREE.Mesh(fontGeometry, fontMaterial); // 计算出整个模型宽度的一半, 不然模型就会绕着x = 0,中心旋转 font.position.x = -(fontGeometry.boundingBox.max.x - fontGeometry.boundingBox.min.x) / 2; scene.add(font); });
需要注意的是,对让几何文本绑定盒子模型,这样好对它的位置进行操作。
<!DOCTYPE html>
<html lang
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。