在Three.js中使用与默认值不同的字体

时间:2013-03-04 18:59:45

标签: javascript fonts three.js typeface.js

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

格雷格

3 个答案:

答案 0 :(得分:2)

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

“familyName”: “字体名”

threejs需要在LOWERCASE中引号内的名称。例如,例如字体: 古英语文本MT

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

font:“old english text mt”

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

var text3d = new THREE.TextGeometry(n.text,{   大小:15,   身高:10,   curveSegments:10,   字体:“猫与狗” });

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

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

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

答案 1 :(得分:1)

我必须为我做的只是在脚本标记中加载字体并更改TextGeometry中的字体:

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

我认为还没有其他必要步骤。

答案 2 :(得分:0)

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