我最近开始与ThreeJS合作,但我想不出这一点。我想加载我自己的字体来在场景中显示一个3D文本对象,我跟随这个例子,一切都进行得很顺利,但是现在当我只更改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 );没有普通重量和普通风格的字体刀是缺少的。
发布于 2014-08-01 10:49:49
下面是如何查找要使用的字体名称:
"font_family_name":"Trebuchet MS"所以在你的特别例子中:
var textGeo = new THREE.TextGeometry( "THREE.JS", {
size: 200,
height: 50,
curveSegments: 12,
font: "trebuchet ms",
// weight: "normal",
// style: "normal",
bevelThickness: 2,
bevelSize: 5,
bevelEnabled: true
});提示:当您遇到错误时,请在浏览器控制台中评估THREE.FontUtils.faces。这将为您提供所有当前注册字体的名称。
https://stackoverflow.com/questions/25042767
复制相似问题