4

所以我在一个项目中使用了three.js,并且希望能够使用默认的“helvetiker”以外的字体。我做了一些挖掘,发现您需要使用 typeface.js 转换字体以获取字体文件,并且已经这样做了,我只是不知道如何将这种字体“插入”到threejs中。我已经挖掘了 mrdoob three.js 示例并且找不到任何东西,我还在three.js 源文件中挖掘并在 THREE.FontUtils 中找到了一个 loadFace 函数,但我不确定如何使用它. 这是我第一个使用 Three.js 的项目,所以任何帮助都将不胜感激。谢谢!

格雷格

4

3 回答 3

2

我看到这个问题没有得到确切的回答。threejs 所需的确切字体名称应在字体 (js) 文件的末尾找到。这是:

“familyName”:“字体名称”

threejs 需要引号内的名称,但要小写。所以例如字体示例:Old English Text MT

您应该在 (js) 字体文件的末尾找到...,"familyName":"Old English Text MT",... 所以您填写三个js:

字体:“旧英文文本 mt”

(或任何在引号中的familyName之后但小写的内容。如果您在(js)字体文件中编辑familyName之后的文本,例如“familyName”:“cAt aNd DOg”,那么您必须使用它。所以threejs声明应该看起来那么:

var text3d = new THREE.TextGeometry(n.text, { size: 15, height: 10, curveSegments: 10, font: "cat and dog" });

最后确保将 (js) 字体文件放入网站的标题部分,例如:

<script src="fonts/droid/droid_serif_bold.typeface.js"></script>

最后有用的是(js)字体文件生成器的链接:http: //typeface.neocracy.org/fonts.html

于 2013-11-27T17:32:58.730 回答
1

我所要做的就是在脚本标签中加载字体并更改 TextGeometry 中的字体:

var text3d = new THREE.TextGeometry(n.text, {
  size: 10,
  height: 5,
  curveSegments: 2,
  font: "droid sans"  //change this
});

我认为不需要任何其他步骤。

于 2013-03-04T19:17:22.440 回答
0

正如 Tim 所说,唯一棘手的事情是正确设置字体名称。它似乎是生成的 js 中的“姓氏”,font_family_name小写的 ( ) - 保留空格。如果您觉得方便,您甚至可以编辑它(在 .js 中)——我自己已经完成

于 2013-03-09T02:45:57.383 回答