【发布时间】:2015-05-06 09:35:13
【问题描述】:
我最近开始使用 ThreeJS,但我想不通。 我想加载自己的字体以在场景中显示 3D 文本对象,我跟着 this example 一切顺利,但现在当我只更改 TextGeometry 对象中的“字体:”选项时,一切都崩溃了,什么都没有显示(错误是字体未定义)
我使用 typeFace 创建字体并包含脚本似乎很好, 我个人认为我输入错误的字体名称有一些东西,因为我在某处读到 .typeface.js 之间的所有内容都是threeJS正在寻找的实际字体名称,应该包含(小写),但是在示例中,没有 _regular 。 或者字体名称和字体系列之间的区别......不知道!
谢谢。
<script type="text/javascript" src="mrdoob-three.js-1769fbf/examples/fonts/helvetiker_regular.typeface.js"></script>
<script type="text/javascript" src="trebuchet_ms.typeface.js"></script>
var textGeo = new THREE.TextGeometry( "THREE.JS", {
size: 50,
height: 10,
curveSegments: 50,
// font: "helvetiker", works fine
font: "trebuchet_ms",
// weight: "bold",
// style: "normal",
bevelThickness: 11,
bevelSize: 0,
bevelEnabled: true
});
textGeo.computeBoundingBox();
var textMaterial = new THREE.MeshPhongMaterial( { color: 0xff0000} );
var mesh = new THREE.Mesh( textGeo, textMaterial );
mesh.position.set(0,0,0) ;
mesh.castShadow = true;
mesh.receiveShadow = true;
scene.add( mesh );
Uncaught 正常粗细和正常样式的字体 trebuchet 是 不见了。
【问题讨论】:
-
你是如何创建这个字体的?
-
从字体名称中删除下划线,或者最好将字体文件命名为
trebuchet_regular。 -
typeface.js文件中的字体是怎么命名的?可以试试不带下划线的字体吗?
-
供以后参考,由于typeface.neocracy.org/fonts.html已关闭,请使用gero3.github.io/facetype.js